1 #include "nit__coloring.sep.0.h"
2 /* method coloring#POSetConflictGraph#core for (self: POSetConflictGraph[Object]): HashSet[Object] */
3 val
* nit___nit__POSetConflictGraph___core(val
* self
) {
4 val
* var
/* : HashSet[Object] */;
5 val
* var1
/* : HashSet[Object] */;
6 var1
= self
->attrs
[COLOR_nit__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", FILE_nit__coloring
, 22);
16 /* method coloring#POSetConflictGraph#border for (self: POSetConflictGraph[Object]): HashSet[Object] */
17 val
* nit___nit__POSetConflictGraph___border(val
* self
) {
18 val
* var
/* : HashSet[Object] */;
19 val
* var1
/* : HashSet[Object] */;
20 var1
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
21 if (unlikely(var1
== NULL
)) {
22 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
23 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
30 /* method coloring#POSetConflictGraph#crown for (self: POSetConflictGraph[Object]): HashSet[Object] */
31 val
* nit___nit__POSetConflictGraph___crown(val
* self
) {
32 val
* var
/* : HashSet[Object] */;
33 val
* var1
/* : HashSet[Object] */;
34 var1
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[Object]> */
35 if (unlikely(var1
== NULL
)) {
36 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
37 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 34);
44 /* method coloring#POSetConflictGraph#conflicts for (self: POSetConflictGraph[Object]): HashMap[Object, Set[Object]] */
45 val
* nit___nit__POSetConflictGraph___conflicts(val
* self
) {
46 val
* var
/* : HashMap[Object, Set[Object]] */;
47 val
* var1
/* : HashMap[Object, Set[Object]] */;
48 var1
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
49 if (unlikely(var1
== NULL
)) {
50 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
51 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
58 /* method coloring#POSetConflictGraph#poset for (self: POSetConflictGraph[Object]): POSet[Object] */
59 val
* nit___nit__POSetConflictGraph___poset(val
* self
) {
60 val
* var
/* : POSet[Object] */;
61 val
* var1
/* : POSet[Object] */;
62 var1
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
63 if (unlikely(var1
== NULL
)) {
64 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
65 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
72 /* method coloring#POSetConflictGraph#poset= for (self: POSetConflictGraph[Object], POSet[Object]) */
73 void nit___nit__POSetConflictGraph___poset_61d(val
* self
, val
* p0
) {
74 short int var
/* : Bool */;
77 const struct type
* type_struct
;
78 const char* var_class_name
;
79 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[E] */
80 /* <p0:POSet[Object]> isa POSet[E] */
81 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nit__POSetConflictGraph___35dE
];
82 cltype
= type_struct
->color
;
83 idtype
= type_struct
->id
;
84 if(cltype
>= p0
->type
->table_size
) {
87 var
= p0
->type
->type_table
[cltype
] == idtype
;
90 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
91 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
92 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
95 self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
= p0
; /* _poset on <self:POSetConflictGraph[Object]> */
98 /* method coloring#POSetConflictGraph#init for (self: POSetConflictGraph[Object]) */
99 void nit___nit__POSetConflictGraph___standard__kernel__Object__init(val
* self
) {
101 nit___nit__POSetConflictGraph___extract_core(self
); /* Direct call coloring#POSetConflictGraph#extract_core on <self:POSetConflictGraph[Object]>*/
104 nit___nit__POSetConflictGraph___extract_border(self
); /* Direct call coloring#POSetConflictGraph#extract_border on <self:POSetConflictGraph[Object]>*/
107 nit___nit__POSetConflictGraph___extract_crown(self
); /* Direct call coloring#POSetConflictGraph#extract_crown on <self:POSetConflictGraph[Object]>*/
110 nit___nit__POSetConflictGraph___compute_conflicts(self
); /* Direct call coloring#POSetConflictGraph#compute_conflicts on <self:POSetConflictGraph[Object]>*/
114 /* method coloring#POSetConflictGraph#extract_core for (self: POSetConflictGraph[Object]) */
115 void nit___nit__POSetConflictGraph___extract_core(val
* self
) {
116 val
* var
/* : HashSet[Object] */;
117 val
* var2
/* : HashSet[Object] */;
118 val
* var3
/* : POSet[Object] */;
119 val
* var5
/* : POSet[Object] */;
120 val
* var_
/* var : POSet[Object] */;
121 val
* var6
/* : Iterator[nullable Object] */;
122 val
* var_7
/* var : Iterator[Object] */;
123 short int var8
/* : Bool */;
124 val
* var9
/* : nullable Object */;
125 val
* var_e
/* var e: Object */;
126 val
* var10
/* : POSet[Object] */;
127 val
* var12
/* : POSet[Object] */;
128 val
* var13
/* : POSetElement[nullable Object] */;
129 val
* var14
/* : Collection[nullable Object] */;
130 long var15
/* : Int */;
131 long var16
/* : Int */;
132 short int var17
/* : Bool */;
133 short int var19
/* : Bool */;
136 const char* var_class_name
;
137 short int var20
/* : Bool */;
138 val
* var21
/* : HashSet[Object] */;
139 val
* var23
/* : HashSet[Object] */;
140 val
* var24
/* : POSet[Object] */;
141 val
* var26
/* : POSet[Object] */;
142 val
* var27
/* : POSetElement[nullable Object] */;
143 val
* var28
/* : Collection[nullable Object] */;
145 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
146 var2
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
147 if (unlikely(var2
== NULL
)) {
148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
149 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
157 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[Object]>*/
160 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
161 var5
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
162 if (unlikely(var5
== NULL
)) {
163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
164 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
173 var6
= poset___poset__POSet___standard__abstract_collection__Collection__iterator(var_
);
178 var8
= ((short int (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
) /* is_ok on <var_7:Iterator[Object]>*/;
182 var9
= ((val
* (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
) /* item on <var_7:Iterator[Object]>*/;
186 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
187 var12
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
188 if (unlikely(var12
== NULL
)) {
189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
190 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
198 var13
= poset___poset__POSet____91d_93d(var10
, var_e
);
201 var14
= poset___poset__POSetElement___direct_greaters(var13
);
204 var15
= ((long (*)(val
* self
))(var14
->class->vft
[COLOR_standard__abstract_collection__Collection__length
]))(var14
) /* length on <var14:Collection[nullable Object](Collection[Object])>*/;
208 { /* Inline kernel#Int#> (var15,var16) on <var15:Int> */
209 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
210 /* <var16:Int> isa OTHER */
211 var19
= 1; /* easy <var16:Int> isa OTHER*/
212 if (unlikely(!var19
)) {
213 var_class_name
= type_standard__Int
.name
;
214 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
215 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
218 var20
= var15
> var16
;
226 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
227 var23
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
228 if (unlikely(var23
== NULL
)) {
229 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
230 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
238 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
239 var26
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
240 if (unlikely(var26
== NULL
)) {
241 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
242 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
250 var27
= poset___poset__POSet____91d_93d(var24
, var_e
);
253 var28
= poset___poset__POSetElement___greaters(var27
);
256 standard___standard__SimpleCollection___add_all(var21
, var28
); /* Direct call abstract_collection#SimpleCollection#add_all on <var21:HashSet[Object]>*/
261 ((void (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
) /* next on <var_7:Iterator[Object]>*/;
267 BREAK_label
: (void)0;
269 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:Iterator[Object]> */
275 /* method coloring#POSetConflictGraph#extract_border for (self: POSetConflictGraph[Object]) */
276 void nit___nit__POSetConflictGraph___extract_border(val
* self
) {
277 val
* var
/* : HashSet[Object] */;
278 val
* var2
/* : HashSet[Object] */;
279 val
* var3
/* : HashSet[Object] */;
280 val
* var5
/* : HashSet[Object] */;
281 val
* var_
/* var : HashSet[Object] */;
282 val
* var6
/* : Iterator[nullable Object] */;
283 val
* var_7
/* var : Iterator[Object] */;
284 short int var8
/* : Bool */;
285 val
* var9
/* : nullable Object */;
286 val
* var_e
/* var e: Object */;
287 short int var10
/* : Bool */;
288 short int var11
/* : Bool */;
289 val
* var12
/* : HashSet[Object] */;
290 val
* var14
/* : HashSet[Object] */;
291 val
* var17
/* : HashSet[Object] */;
292 val
* var19
/* : HashSet[Object] */;
293 val
* var_20
/* var : HashSet[Object] */;
294 val
* var21
/* : Iterator[nullable Object] */;
295 val
* var_22
/* var : Iterator[Object] */;
296 short int var23
/* : Bool */;
297 val
* var24
/* : nullable Object */;
298 val
* var_e25
/* var e: Object */;
299 val
* var26
/* : HashSet[Object] */;
300 val
* var28
/* : HashSet[Object] */;
302 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
303 var2
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
304 if (unlikely(var2
== NULL
)) {
305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
306 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
314 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[Object]>*/
317 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
318 var5
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
319 if (unlikely(var5
== NULL
)) {
320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
321 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
330 var6
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
335 var8
= ((short int (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
) /* is_ok on <var_7:Iterator[Object]>*/;
339 var9
= ((val
* (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
) /* item on <var_7:Iterator[Object]>*/;
343 var10
= nit___nit__POSetConflictGraph___is_border(self
, var_e
);
351 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
352 var14
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
353 if (unlikely(var14
== NULL
)) {
354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
355 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
363 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var12
, var_e
); /* Direct call hash_collection#HashSet#add on <var12:HashSet[Object]>*/
365 BREAK_label
: (void)0;
367 ((void (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
) /* next on <var_7:Iterator[Object]>*/;
373 BREAK_label15
: (void)0;
375 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:Iterator[Object]> */
380 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
381 var19
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
382 if (unlikely(var19
== NULL
)) {
383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
384 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
393 var21
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_20
);
398 var23
= ((short int (*)(val
* self
))(var_22
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_22
) /* is_ok on <var_22:Iterator[Object]>*/;
402 var24
= ((val
* (*)(val
* self
))(var_22
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_22
) /* item on <var_22:Iterator[Object]>*/;
406 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
407 var28
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
408 if (unlikely(var28
== NULL
)) {
409 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
410 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
418 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__remove(var26
, var_e25
); /* Direct call hash_collection#HashSet#remove on <var26:HashSet[Object]>*/
421 ((void (*)(val
* self
))(var_22
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_22
) /* next on <var_22:Iterator[Object]>*/;
427 BREAK_label29
: (void)0;
429 { /* Inline abstract_collection#Iterator#finish (var_22) on <var_22:Iterator[Object]> */
435 /* method coloring#POSetConflictGraph#is_border for (self: POSetConflictGraph[Object], Object): Bool */
436 short int nit___nit__POSetConflictGraph___is_border(val
* self
, val
* p0
) {
437 short int var
/* : Bool */;
438 short int var1
/* : Bool */;
441 const struct type
* type_struct
;
442 const char* var_class_name
;
443 val
* var_e
/* var e: Object */;
444 val
* var2
/* : POSet[Object] */;
445 val
* var4
/* : POSet[Object] */;
446 val
* var5
/* : POSetElement[nullable Object] */;
447 val
* var6
/* : Collection[nullable Object] */;
448 val
* var_
/* var : Collection[Object] */;
449 val
* var7
/* : Iterator[nullable Object] */;
450 val
* var_8
/* var : Iterator[Object] */;
451 short int var9
/* : Bool */;
452 val
* var10
/* : nullable Object */;
453 val
* var_child
/* var child: Object */;
454 val
* var11
/* : HashSet[Object] */;
455 val
* var13
/* : HashSet[Object] */;
456 short int var14
/* : Bool */;
457 short int var15
/* : Bool */;
458 short int var17
/* : Bool */;
459 /* Covariant cast for argument 0 (e) <p0:Object> isa E */
460 /* <p0:Object> isa E */
461 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph___35dE
];
462 cltype
= type_struct
->color
;
463 idtype
= type_struct
->id
;
464 if(cltype
>= p0
->type
->table_size
) {
467 var1
= p0
->type
->type_table
[cltype
] == idtype
;
469 if (unlikely(!var1
)) {
470 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
471 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
472 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 78);
477 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
478 var4
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
479 if (unlikely(var4
== NULL
)) {
480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
481 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
489 var5
= poset___poset__POSet____91d_93d(var2
, var_e
);
492 var6
= poset___poset__POSetElement___direct_smallers(var5
);
496 var7
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[Object]>*/;
501 var9
= ((short int (*)(val
* self
))(var_8
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_8
) /* is_ok on <var_8:Iterator[Object]>*/;
505 var10
= ((val
* (*)(val
* self
))(var_8
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_8
) /* item on <var_8:Iterator[Object]>*/;
509 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
510 var13
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
511 if (unlikely(var13
== NULL
)) {
512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
513 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
521 var14
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var11
, var_child
);
530 ((void (*)(val
* self
))(var_8
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_8
) /* next on <var_8:Iterator[Object]>*/;
536 BREAK_label
: (void)0;
538 { /* Inline abstract_collection#Iterator#finish (var_8) on <var_8:Iterator[Object]> */
548 /* method coloring#POSetConflictGraph#extract_crown for (self: POSetConflictGraph[Object]) */
549 void nit___nit__POSetConflictGraph___extract_crown(val
* self
) {
550 val
* var
/* : HashSet[Object] */;
551 val
* var2
/* : HashSet[Object] */;
552 val
* var3
/* : POSet[Object] */;
553 val
* var5
/* : POSet[Object] */;
554 val
* var_
/* var : POSet[Object] */;
555 val
* var6
/* : Iterator[nullable Object] */;
556 val
* var_7
/* var : Iterator[Object] */;
557 short int var8
/* : Bool */;
558 val
* var9
/* : nullable Object */;
559 val
* var_e
/* var e: Object */;
560 short int var10
/* : Bool */;
561 val
* var11
/* : HashSet[Object] */;
562 val
* var13
/* : HashSet[Object] */;
563 short int var14
/* : Bool */;
564 short int var15
/* : Bool */;
565 short int var_16
/* var : Bool */;
566 val
* var17
/* : HashSet[Object] */;
567 val
* var19
/* : HashSet[Object] */;
568 short int var20
/* : Bool */;
569 short int var21
/* : Bool */;
570 val
* var22
/* : HashSet[Object] */;
571 val
* var24
/* : HashSet[Object] */;
573 { /* Inline coloring#POSetConflictGraph#crown (self) on <self:POSetConflictGraph[Object]> */
574 var2
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[Object]> */
575 if (unlikely(var2
== NULL
)) {
576 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
577 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 34);
585 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[Object]>*/
588 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
589 var5
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
590 if (unlikely(var5
== NULL
)) {
591 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
592 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
601 var6
= poset___poset__POSet___standard__abstract_collection__Collection__iterator(var_
);
606 var8
= ((short int (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
) /* is_ok on <var_7:Iterator[Object]>*/;
610 var9
= ((val
* (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
) /* item on <var_7:Iterator[Object]>*/;
614 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
615 var13
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
616 if (unlikely(var13
== NULL
)) {
617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
618 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
626 var14
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var11
, var_e
);
632 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
633 var19
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
634 if (unlikely(var19
== NULL
)) {
635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
636 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
644 var20
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var17
, var_e
);
653 { /* Inline coloring#POSetConflictGraph#crown (self) on <self:POSetConflictGraph[Object]> */
654 var24
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[Object]> */
655 if (unlikely(var24
== NULL
)) {
656 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
657 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 34);
665 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var22
, var_e
); /* Direct call hash_collection#HashSet#add on <var22:HashSet[Object]>*/
670 ((void (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
) /* next on <var_7:Iterator[Object]>*/;
676 BREAK_label
: (void)0;
678 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:Iterator[Object]> */
684 /* method coloring#POSetConflictGraph#compute_conflicts for (self: POSetConflictGraph[Object]) */
685 void nit___nit__POSetConflictGraph___compute_conflicts(val
* self
) {
686 val
* var
/* : HashMap[Object, Set[Object]] */;
687 val
* var2
/* : HashMap[Object, Set[Object]] */;
688 val
* var3
/* : HashSet[Object] */;
689 val
* var5
/* : HashSet[Object] */;
690 val
* var_
/* var : HashSet[Object] */;
691 val
* var6
/* : Iterator[nullable Object] */;
692 val
* var_7
/* var : Iterator[Object] */;
693 short int var8
/* : Bool */;
694 val
* var9
/* : nullable Object */;
695 val
* var_e
/* var e: Object */;
696 val
* var10
/* : POSet[Object] */;
697 val
* var12
/* : POSet[Object] */;
698 val
* var13
/* : POSetElement[nullable Object] */;
699 val
* var14
/* : Collection[nullable Object] */;
701 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
702 var2
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
703 if (unlikely(var2
== NULL
)) {
704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
705 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
713 standard___standard__HashMap___standard__abstract_collection__Map__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Set[Object]]>*/
716 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
717 var5
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
718 if (unlikely(var5
== NULL
)) {
719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
720 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
729 var6
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
734 var8
= ((short int (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
) /* is_ok on <var_7:Iterator[Object]>*/;
738 var9
= ((val
* (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
) /* item on <var_7:Iterator[Object]>*/;
742 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
743 var12
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
744 if (unlikely(var12
== NULL
)) {
745 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
746 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
754 var13
= poset___poset__POSet____91d_93d(var10
, var_e
);
757 var14
= poset___poset__POSetElement___greaters(var13
);
760 nit___nit__POSetConflictGraph___add_conflicts(self
, var14
); /* Direct call coloring#POSetConflictGraph#add_conflicts on <self:POSetConflictGraph[Object]>*/
763 ((void (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
) /* next on <var_7:Iterator[Object]>*/;
769 BREAK_label
: (void)0;
771 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:Iterator[Object]> */
777 /* method coloring#POSetConflictGraph#add_conflict for (self: POSetConflictGraph[Object], Object, Object) */
778 void nit___nit__POSetConflictGraph___add_conflict(val
* self
, val
* p0
, val
* p1
) {
779 short int var
/* : Bool */;
782 const struct type
* type_struct
;
783 const char* var_class_name
;
784 short int var1
/* : Bool */;
787 const struct type
* type_struct4
;
788 const char* var_class_name5
;
789 val
* var_e
/* var e: Object */;
790 val
* var_o
/* var o: Object */;
791 val
* var6
/* : HashMap[Object, Set[Object]] */;
792 val
* var8
/* : HashMap[Object, Set[Object]] */;
793 short int var9
/* : Bool */;
794 short int var10
/* : Bool */;
795 val
* var11
/* : HashMap[Object, Set[Object]] */;
796 val
* var13
/* : HashMap[Object, Set[Object]] */;
797 val
* var14
/* : HashSet[Object] */;
798 val
* var15
/* : HashMap[Object, Set[Object]] */;
799 val
* var17
/* : HashMap[Object, Set[Object]] */;
800 short int var18
/* : Bool */;
801 short int var19
/* : Bool */;
802 val
* var20
/* : HashMap[Object, Set[Object]] */;
803 val
* var22
/* : HashMap[Object, Set[Object]] */;
804 val
* var23
/* : HashSet[Object] */;
805 val
* var24
/* : HashMap[Object, Set[Object]] */;
806 val
* var26
/* : HashMap[Object, Set[Object]] */;
807 val
* var27
/* : nullable Object */;
808 val
* var28
/* : HashMap[Object, Set[Object]] */;
809 val
* var30
/* : HashMap[Object, Set[Object]] */;
810 val
* var31
/* : nullable Object */;
811 /* Covariant cast for argument 0 (e) <p0:Object> isa E */
812 /* <p0:Object> isa E */
813 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph___35dE
];
814 cltype
= type_struct
->color
;
815 idtype
= type_struct
->id
;
816 if(cltype
>= p0
->type
->table_size
) {
819 var
= p0
->type
->type_table
[cltype
] == idtype
;
821 if (unlikely(!var
)) {
822 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
823 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
824 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 100);
827 /* Covariant cast for argument 1 (o) <p1:Object> isa E */
828 /* <p1:Object> isa E */
829 type_struct4
= self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph___35dE
];
830 cltype2
= type_struct4
->color
;
831 idtype3
= type_struct4
->id
;
832 if(cltype2
>= p1
->type
->table_size
) {
835 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
837 if (unlikely(!var1
)) {
838 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
839 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name5
);
840 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 100);
846 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
847 var8
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
848 if (unlikely(var8
== NULL
)) {
849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
850 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
858 var9
= standard___standard__MapRead___has_key(var6
, var_e
);
863 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
864 var13
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
865 if (unlikely(var13
== NULL
)) {
866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
867 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
874 var14
= NEW_standard__HashSet(self
->type
->resolution_table
->types
[COLOR_standard__HashSet__nit__POSetConflictGraph___35dE
]);
876 standard___standard__HashSet___standard__kernel__Object__init(var14
); /* Direct call hash_collection#HashSet#init on <var14:HashSet[Object]>*/
879 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var11
, var_e
, var14
); /* Direct call hash_collection#HashMap#[]= on <var11:HashMap[Object, Set[Object]]>*/
884 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
885 var17
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
886 if (unlikely(var17
== NULL
)) {
887 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
888 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
896 var18
= standard___standard__MapRead___has_key(var15
, var_o
);
901 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
902 var22
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
903 if (unlikely(var22
== NULL
)) {
904 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
905 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
912 var23
= NEW_standard__HashSet(self
->type
->resolution_table
->types
[COLOR_standard__HashSet__nit__POSetConflictGraph___35dE
]);
914 standard___standard__HashSet___standard__kernel__Object__init(var23
); /* Direct call hash_collection#HashSet#init on <var23:HashSet[Object]>*/
917 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var20
, var_o
, var23
); /* Direct call hash_collection#HashMap#[]= on <var20:HashMap[Object, Set[Object]]>*/
922 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
923 var26
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
924 if (unlikely(var26
== NULL
)) {
925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
926 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
934 var27
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var24
, var_e
);
937 ((void (*)(val
* self
, val
* p0
))(var27
->class->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var27
, var_o
) /* add on <var27:nullable Object(Set[Object])>*/;
940 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
941 var30
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
942 if (unlikely(var30
== NULL
)) {
943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
944 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
952 var31
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var28
, var_o
);
955 ((void (*)(val
* self
, val
* p0
))(var31
->class->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var31
, var_e
) /* add on <var31:nullable Object(Set[Object])>*/;
959 /* method coloring#POSetConflictGraph#add_conflicts for (self: POSetConflictGraph[Object], Collection[Object]) */
960 void nit___nit__POSetConflictGraph___add_conflicts(val
* self
, val
* p0
) {
961 short int var
/* : Bool */;
964 const struct type
* type_struct
;
965 const char* var_class_name
;
966 val
* var_es
/* var es: Collection[Object] */;
967 val
* var_
/* var : Collection[Object] */;
968 val
* var1
/* : Iterator[nullable Object] */;
969 val
* var_2
/* var : Iterator[Object] */;
970 short int var3
/* : Bool */;
971 val
* var4
/* : nullable Object */;
972 val
* var_e1
/* var e1: Object */;
973 val
* var_5
/* var : Collection[Object] */;
974 val
* var6
/* : Iterator[nullable Object] */;
975 val
* var_7
/* var : Iterator[Object] */;
976 short int var8
/* : Bool */;
977 val
* var9
/* : nullable Object */;
978 val
* var_e2
/* var e2: Object */;
979 /* Covariant cast for argument 0 (es) <p0:Collection[Object]> isa Collection[E] */
980 /* <p0:Collection[Object]> isa Collection[E] */
981 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Collection__nit__POSetConflictGraph___35dE
];
982 cltype
= type_struct
->color
;
983 idtype
= type_struct
->id
;
984 if(cltype
>= p0
->type
->table_size
) {
987 var
= p0
->type
->type_table
[cltype
] == idtype
;
989 if (unlikely(!var
)) {
990 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
991 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name
);
992 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 107);
998 var1
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[Object]>*/;
1003 var3
= ((short int (*)(val
* self
))(var_2
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_2
) /* is_ok on <var_2:Iterator[Object]>*/;
1007 var4
= ((val
* (*)(val
* self
))(var_2
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_2
) /* item on <var_2:Iterator[Object]>*/;
1012 var6
= ((val
* (*)(val
* self
))(var_5
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_5
) /* iterator on <var_5:Collection[Object]>*/;
1017 var8
= ((short int (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
) /* is_ok on <var_7:Iterator[Object]>*/;
1021 var9
= ((val
* (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
) /* item on <var_7:Iterator[Object]>*/;
1025 nit___nit__POSetConflictGraph___add_conflict(self
, var_e1
, var_e2
); /* Direct call coloring#POSetConflictGraph#add_conflict on <self:POSetConflictGraph[Object]>*/
1028 ((void (*)(val
* self
))(var_7
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
) /* next on <var_7:Iterator[Object]>*/;
1034 BREAK_label
: (void)0;
1036 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:Iterator[Object]> */
1037 RET_LABEL10
:(void)0;
1041 ((void (*)(val
* self
))(var_2
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_2
) /* next on <var_2:Iterator[Object]>*/;
1047 BREAK_label11
: (void)0;
1049 { /* Inline abstract_collection#Iterator#finish (var_2) on <var_2:Iterator[Object]> */
1050 RET_LABEL12
:(void)0;
1055 /* method coloring#POSetColorer#is_colored for (self: POSetColorer[Object]): Bool */
1056 short int nit___nit__POSetColorer___is_colored(val
* self
) {
1057 short int var
/* : Bool */;
1058 short int var1
/* : Bool */;
1059 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1064 /* method coloring#POSetColorer#is_colored= for (self: POSetColorer[Object], Bool) */
1065 void nit___nit__POSetColorer___is_colored_61d(val
* self
, short int p0
) {
1066 self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
= p0
; /* _is_colored on <self:POSetColorer[Object]> */
1069 /* method coloring#POSetColorer#ids for (self: POSetColorer[Object]): Map[Object, Int] */
1070 val
* nit___nit__POSetColorer___ids(val
* self
) {
1071 val
* var
/* : Map[Object, Int] */;
1072 short int var1
/* : Bool */;
1073 short int var3
/* : Bool */;
1074 val
* var4
/* : HashMap[Object, Int] */;
1075 val
* var6
/* : HashMap[Object, Int] */;
1077 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1078 var3
= self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1083 if (unlikely(!var1
)) {
1084 PRINT_ERROR("Runtime error: %s", "Assert failed");
1085 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 167);
1089 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1090 var6
= self
->attrs
[COLOR_nit__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1091 if (unlikely(var6
== NULL
)) {
1092 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1093 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 170);
1105 /* method coloring#POSetColorer#ids_cache for (self: POSetColorer[Object]): HashMap[Object, Int] */
1106 val
* nit___nit__POSetColorer___ids_cache(val
* self
) {
1107 val
* var
/* : HashMap[Object, Int] */;
1108 val
* var1
/* : HashMap[Object, Int] */;
1109 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1110 if (unlikely(var1
== NULL
)) {
1111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1112 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 170);
1119 /* method coloring#POSetColorer#colors for (self: POSetColorer[Object]): Map[Object, Int] */
1120 val
* nit___nit__POSetColorer___colors(val
* self
) {
1121 val
* var
/* : Map[Object, Int] */;
1122 short int var1
/* : Bool */;
1123 short int var3
/* : Bool */;
1124 val
* var4
/* : HashMap[Object, Int] */;
1125 val
* var6
/* : HashMap[Object, Int] */;
1127 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1128 var3
= self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1133 if (unlikely(!var1
)) {
1134 PRINT_ERROR("Runtime error: %s", "Assert failed");
1135 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 175);
1139 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
1140 var6
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1141 if (unlikely(var6
== NULL
)) {
1142 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1143 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 178);
1155 /* method coloring#POSetColorer#colors_cache for (self: POSetColorer[Object]): HashMap[Object, Int] */
1156 val
* nit___nit__POSetColorer___colors_cache(val
* self
) {
1157 val
* var
/* : HashMap[Object, Int] */;
1158 val
* var1
/* : HashMap[Object, Int] */;
1159 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1160 if (unlikely(var1
== NULL
)) {
1161 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1162 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 178);
1169 /* method coloring#POSetColorer#poset_cache for (self: POSetColorer[Object]): POSet[Object] */
1170 val
* nit___nit__POSetColorer___poset_cache(val
* self
) {
1171 val
* var
/* : POSet[Object] */;
1172 val
* var1
/* : POSet[Object] */;
1173 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1174 if (unlikely(var1
== NULL
)) {
1175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1176 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 185);
1183 /* method coloring#POSetColorer#poset_cache= for (self: POSetColorer[Object], POSet[Object]) */
1184 void nit___nit__POSetColorer___poset_cache_61d(val
* self
, val
* p0
) {
1185 short int var
/* : Bool */;
1188 const struct type
* type_struct
;
1189 const char* var_class_name
;
1190 /* Covariant cast for argument 0 (poset_cache) <p0:POSet[Object]> isa POSet[E] */
1191 /* <p0:POSet[Object]> isa POSet[E] */
1192 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nit__POSetColorer___35dE
];
1193 cltype
= type_struct
->color
;
1194 idtype
= type_struct
->id
;
1195 if(cltype
>= p0
->type
->table_size
) {
1198 var
= p0
->type
->type_table
[cltype
] == idtype
;
1200 if (unlikely(!var
)) {
1201 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1202 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
1203 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 185);
1206 self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
= p0
; /* _poset_cache on <self:POSetColorer[Object]> */
1209 /* method coloring#POSetColorer#conflicts for (self: POSetColorer[Object]): Map[Object, Set[Object]] */
1210 val
* nit___nit__POSetColorer___conflicts(val
* self
) {
1211 val
* var
/* : Map[Object, Set[Object]] */;
1212 short int var1
/* : Bool */;
1213 short int var3
/* : Bool */;
1214 val
* var4
/* : Map[Object, Set[Object]] */;
1215 val
* var6
/* : Map[Object, Set[Object]] */;
1217 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1218 var3
= self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1223 if (unlikely(!var1
)) {
1224 PRINT_ERROR("Runtime error: %s", "Assert failed");
1225 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 189);
1229 { /* Inline coloring#POSetColorer#conflicts_cache (self) on <self:POSetColorer[Object]> */
1230 var6
= self
->attrs
[COLOR_nit__coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1231 if (unlikely(var6
== NULL
)) {
1232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1233 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 192);
1245 /* method coloring#POSetColorer#conflicts_cache for (self: POSetColorer[Object]): Map[Object, Set[Object]] */
1246 val
* nit___nit__POSetColorer___conflicts_cache(val
* self
) {
1247 val
* var
/* : Map[Object, Set[Object]] */;
1248 val
* var1
/* : Map[Object, Set[Object]] */;
1249 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1250 if (unlikely(var1
== NULL
)) {
1251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1252 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 192);
1259 /* method coloring#POSetColorer#conflicts_cache= for (self: POSetColorer[Object], Map[Object, Set[Object]]) */
1260 void nit___nit__POSetColorer___conflicts_cache_61d(val
* self
, val
* p0
) {
1261 short int var
/* : Bool */;
1264 const struct type
* type_struct
;
1265 const char* var_class_name
;
1266 /* Covariant cast for argument 0 (conflicts_cache) <p0:Map[Object, Set[Object]]> isa Map[E, Set[E]] */
1267 /* <p0:Map[Object, Set[Object]]> isa Map[E, Set[E]] */
1268 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetColorer___35dE__standard__Set__nit__POSetColorer___35dE
];
1269 cltype
= type_struct
->color
;
1270 idtype
= type_struct
->id
;
1271 if(cltype
>= p0
->type
->table_size
) {
1274 var
= p0
->type
->type_table
[cltype
] == idtype
;
1276 if (unlikely(!var
)) {
1277 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1278 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name
);
1279 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 192);
1282 self
->attrs
[COLOR_nit__coloring__POSetColorer___conflicts_cache
].val
= p0
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1285 /* method coloring#POSetColorer#graph for (self: POSetColorer[Object]): POSetConflictGraph[Object] */
1286 val
* nit___nit__POSetColorer___graph(val
* self
) {
1287 val
* var
/* : POSetConflictGraph[Object] */;
1288 val
* var1
/* : POSetConflictGraph[Object] */;
1289 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1290 if (unlikely(var1
== NULL
)) {
1291 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1292 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1299 /* method coloring#POSetColorer#graph= for (self: POSetColorer[Object], POSetConflictGraph[Object]) */
1300 void nit___nit__POSetColorer___graph_61d(val
* self
, val
* p0
) {
1301 short int var
/* : Bool */;
1304 const struct type
* type_struct
;
1305 const char* var_class_name
;
1306 /* Covariant cast for argument 0 (graph) <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1307 /* <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1308 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph__nit__POSetColorer___35dE
];
1309 cltype
= type_struct
->color
;
1310 idtype
= type_struct
->id
;
1311 if(cltype
>= p0
->type
->table_size
) {
1314 var
= p0
->type
->type_table
[cltype
] == idtype
;
1316 if (unlikely(!var
)) {
1317 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1318 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name
);
1319 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1322 self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
= p0
; /* _graph on <self:POSetColorer[Object]> */
1325 /* method coloring#POSetColorer#colorize for (self: POSetColorer[Object], POSet[Object]) */
1326 void nit___nit__POSetColorer___colorize(val
* self
, val
* p0
) {
1327 short int var
/* : Bool */;
1330 const struct type
* type_struct
;
1331 const char* var_class_name
;
1332 val
* var_poset
/* var poset: POSet[Object] */;
1333 short int var2
/* : Bool */;
1336 const struct type
* type_struct5
;
1337 const char* var_class_name6
;
1338 val
* var7
/* : POSetConflictGraph[Object] */;
1339 short int var9
/* : Bool */;
1342 const struct type
* type_struct12
;
1343 const char* var_class_name13
;
1344 val
* var14
/* : POSetConflictGraph[Object] */;
1345 val
* var16
/* : POSetConflictGraph[Object] */;
1346 val
* var17
/* : HashMap[Object, Set[Object]] */;
1347 val
* var19
/* : HashMap[Object, Set[Object]] */;
1348 short int var21
/* : Bool */;
1351 const struct type
* type_struct24
;
1352 const char* var_class_name25
;
1353 short int var26
/* : Bool */;
1354 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[E] */
1355 /* <p0:POSet[Object]> isa POSet[E] */
1356 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nit__POSetColorer___35dE
];
1357 cltype
= type_struct
->color
;
1358 idtype
= type_struct
->id
;
1359 if(cltype
>= p0
->type
->table_size
) {
1362 var
= p0
->type
->type_table
[cltype
] == idtype
;
1364 if (unlikely(!var
)) {
1365 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1366 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
1367 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 196);
1372 { /* Inline coloring#POSetColorer#poset_cache= (self,var_poset) on <self:POSetColorer[Object]> */
1373 /* Covariant cast for argument 0 (poset_cache) <var_poset:POSet[Object]> isa POSet[E] */
1374 /* <var_poset:POSet[Object]> isa POSet[E] */
1375 type_struct5
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nit__POSetColorer___35dE
];
1376 cltype3
= type_struct5
->color
;
1377 idtype4
= type_struct5
->id
;
1378 if(cltype3
>= var_poset
->type
->table_size
) {
1381 var2
= var_poset
->type
->type_table
[cltype3
] == idtype4
;
1383 if (unlikely(!var2
)) {
1384 var_class_name6
= var_poset
== NULL ?
"null" : var_poset
->type
->name
;
1385 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name6
);
1386 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 185);
1389 self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
= var_poset
; /* _poset_cache on <self:POSetColorer[Object]> */
1393 var7
= NEW_nit__POSetConflictGraph(self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph__nit__POSetColorer___35dE
]);
1395 ((void (*)(val
* self
, val
* p0
))(var7
->class->vft
[COLOR_nit__coloring__POSetConflictGraph__poset_61d
]))(var7
, var_poset
) /* poset= on <var7:POSetConflictGraph[Object]>*/;
1398 ((void (*)(val
* self
))(var7
->class->vft
[COLOR_standard__kernel__Object__init
]))(var7
) /* init on <var7:POSetConflictGraph[Object]>*/;
1401 { /* Inline coloring#POSetColorer#graph= (self,var7) on <self:POSetColorer[Object]> */
1402 /* Covariant cast for argument 0 (graph) <var7:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1403 /* <var7:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1404 type_struct12
= self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph__nit__POSetColorer___35dE
];
1405 cltype10
= type_struct12
->color
;
1406 idtype11
= type_struct12
->id
;
1407 if(cltype10
>= var7
->type
->table_size
) {
1410 var9
= var7
->type
->type_table
[cltype10
] == idtype11
;
1412 if (unlikely(!var9
)) {
1413 var_class_name13
= var7
== NULL ?
"null" : var7
->type
->name
;
1414 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name13
);
1415 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1418 self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
= var7
; /* _graph on <self:POSetColorer[Object]> */
1423 nit___nit__POSetColorer___allocate_ids(self
); /* Direct call coloring#POSetColorer#allocate_ids on <self:POSetColorer[Object]>*/
1426 nit___nit__POSetColorer___compute_colors(self
); /* Direct call coloring#POSetColorer#compute_colors on <self:POSetColorer[Object]>*/
1429 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1430 var16
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1431 if (unlikely(var16
== NULL
)) {
1432 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1433 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1437 RET_LABEL15
:(void)0;
1441 { /* Inline coloring#POSetConflictGraph#conflicts (var14) on <var14:POSetConflictGraph[Object]> */
1442 var19
= var14
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var14:POSetConflictGraph[Object]> */
1443 if (unlikely(var19
== NULL
)) {
1444 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1445 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
1449 RET_LABEL18
:(void)0;
1453 { /* Inline coloring#POSetColorer#conflicts_cache= (self,var17) on <self:POSetColorer[Object]> */
1454 /* Covariant cast for argument 0 (conflicts_cache) <var17:HashMap[Object, Set[Object]]> isa Map[E, Set[E]] */
1455 /* <var17:HashMap[Object, Set[Object]]> isa Map[E, Set[E]] */
1456 type_struct24
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetColorer___35dE__standard__Set__nit__POSetColorer___35dE
];
1457 cltype22
= type_struct24
->color
;
1458 idtype23
= type_struct24
->id
;
1459 if(cltype22
>= var17
->type
->table_size
) {
1462 var21
= var17
->type
->type_table
[cltype22
] == idtype23
;
1464 if (unlikely(!var21
)) {
1465 var_class_name25
= var17
== NULL ?
"null" : var17
->type
->name
;
1466 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name25
);
1467 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 192);
1470 self
->attrs
[COLOR_nit__coloring__POSetColorer___conflicts_cache
].val
= var17
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1471 RET_LABEL20
:(void)0;
1476 { /* Inline coloring#POSetColorer#is_colored= (self,var26) on <self:POSetColorer[Object]> */
1477 self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
= var26
; /* _is_colored on <self:POSetColorer[Object]> */
1478 RET_LABEL27
:(void)0;
1483 /* method coloring#POSetColorer#allocate_ids for (self: POSetColorer[Object]) */
1484 void nit___nit__POSetColorer___allocate_ids(val
* self
) {
1485 val
* var
/* : HashMap[Object, Int] */;
1486 val
* var2
/* : HashMap[Object, Int] */;
1487 val
* var3
/* : HashSet[Object] */;
1488 val
* var4
/* : POSet[Object] */;
1489 val
* var6
/* : POSet[Object] */;
1490 val
* var7
/* : Array[nullable Object] */;
1491 val
* var_elements
/* var elements: HashSet[Object] */;
1492 val
* var8
/* : POSet[Object] */;
1493 val
* var10
/* : POSet[Object] */;
1494 val
* var11
/* : Array[nullable Object] */;
1495 val
* var_
/* var : Array[Object] */;
1496 val
* var12
/* : ArrayIterator[nullable Object] */;
1497 val
* var_13
/* var : ArrayIterator[Object] */;
1498 short int var14
/* : Bool */;
1499 val
* var15
/* : nullable Object */;
1500 val
* var_e
/* var e: Object */;
1501 val
* var16
/* : HashMap[Object, Int] */;
1502 val
* var18
/* : HashMap[Object, Int] */;
1503 val
* var19
/* : HashMap[Object, Int] */;
1504 val
* var21
/* : HashMap[Object, Int] */;
1505 long var22
/* : Int */;
1506 val
* var23
/* : nullable Object */;
1508 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1509 var2
= self
->attrs
[COLOR_nit__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1510 if (unlikely(var2
== NULL
)) {
1511 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1512 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 170);
1520 standard___standard__HashMap___standard__abstract_collection__Map__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Int]>*/
1522 var3
= NEW_standard__HashSet(self
->type
->resolution_table
->types
[COLOR_standard__HashSet__nit__POSetColorer___35dE
]);
1524 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
1525 var6
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1526 if (unlikely(var6
== NULL
)) {
1527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1528 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 185);
1536 var7
= standard__array___Collection___to_a(var4
);
1539 standard___standard__HashSet___from(var3
, var7
); /* Direct call hash_collection#HashSet#from on <var3:HashSet[Object]>*/
1541 var_elements
= var3
;
1543 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
1544 var10
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1545 if (unlikely(var10
== NULL
)) {
1546 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1547 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 185);
1555 var11
= poset___poset__POSet___linearize(var8
, var_elements
);
1559 var12
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1564 var14
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_13
);
1568 var15
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_13
);
1572 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1573 var18
= self
->attrs
[COLOR_nit__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1574 if (unlikely(var18
== NULL
)) {
1575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1576 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 170);
1580 RET_LABEL17
:(void)0;
1584 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1585 var21
= self
->attrs
[COLOR_nit__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1586 if (unlikely(var21
== NULL
)) {
1587 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1588 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 170);
1592 RET_LABEL20
:(void)0;
1596 var22
= standard___standard__HashMap___standard__abstract_collection__MapRead__length(var19
);
1599 var23
= BOX_standard__Int(var22
); /* autobox from Int to nullable Object */
1600 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var16
, var_e
, var23
); /* Direct call hash_collection#HashMap#[]= on <var16:HashMap[Object, Int]>*/
1603 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_13
); /* Direct call array#ArrayIterator#next on <var_13:ArrayIterator[Object]>*/
1609 BREAK_label
: (void)0;
1611 { /* Inline abstract_collection#Iterator#finish (var_13) on <var_13:ArrayIterator[Object]> */
1612 RET_LABEL24
:(void)0;
1617 /* method coloring#POSetColorer#compute_colors for (self: POSetColorer[Object]) */
1618 void nit___nit__POSetColorer___compute_colors(val
* self
) {
1619 val
* var
/* : HashMap[Object, Int] */;
1620 val
* var2
/* : HashMap[Object, Int] */;
1621 val
* var3
/* : POSetConflictGraph[Object] */;
1622 val
* var5
/* : POSetConflictGraph[Object] */;
1623 val
* var6
/* : HashSet[Object] */;
1624 val
* var8
/* : HashSet[Object] */;
1625 val
* var9
/* : POSetConflictGraph[Object] */;
1626 val
* var11
/* : POSetConflictGraph[Object] */;
1627 val
* var12
/* : HashSet[Object] */;
1628 val
* var14
/* : HashSet[Object] */;
1630 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
1631 var2
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1632 if (unlikely(var2
== NULL
)) {
1633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1634 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 178);
1642 standard___standard__HashMap___standard__abstract_collection__Map__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Int]>*/
1645 nit___nit__POSetColorer___colorize_core(self
); /* Direct call coloring#POSetColorer#colorize_core on <self:POSetColorer[Object]>*/
1648 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1649 var5
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1650 if (unlikely(var5
== NULL
)) {
1651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1652 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1660 { /* Inline coloring#POSetConflictGraph#border (var3) on <var3:POSetConflictGraph[Object]> */
1661 var8
= var3
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <var3:POSetConflictGraph[Object]> */
1662 if (unlikely(var8
== NULL
)) {
1663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
1664 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
1672 nit___nit__POSetColorer___colorize_set(self
, var6
); /* Direct call coloring#POSetColorer#colorize_set on <self:POSetColorer[Object]>*/
1675 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1676 var11
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1677 if (unlikely(var11
== NULL
)) {
1678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1679 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1683 RET_LABEL10
:(void)0;
1687 { /* Inline coloring#POSetConflictGraph#crown (var9) on <var9:POSetConflictGraph[Object]> */
1688 var14
= var9
->attrs
[COLOR_nit__coloring__POSetConflictGraph___crown
].val
; /* _crown on <var9:POSetConflictGraph[Object]> */
1689 if (unlikely(var14
== NULL
)) {
1690 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
1691 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 34);
1695 RET_LABEL13
:(void)0;
1699 nit___nit__POSetColorer___colorize_set(self
, var12
); /* Direct call coloring#POSetColorer#colorize_set on <self:POSetColorer[Object]>*/
1703 /* method coloring#POSetColorer#colorize_core for (self: POSetColorer[Object]) */
1704 void nit___nit__POSetColorer___colorize_core(val
* self
) {
1705 val
* var
/* : POSet[Object] */;
1706 val
* var2
/* : POSet[Object] */;
1707 val
* var3
/* : POSetConflictGraph[Object] */;
1708 val
* var5
/* : POSetConflictGraph[Object] */;
1709 val
* var6
/* : HashSet[Object] */;
1710 val
* var8
/* : HashSet[Object] */;
1711 val
* var9
/* : Array[nullable Object] */;
1712 val
* var_
/* var : Array[Object] */;
1713 val
* var10
/* : ArrayIterator[nullable Object] */;
1714 val
* var_11
/* var : ArrayIterator[Object] */;
1715 short int var12
/* : Bool */;
1716 val
* var13
/* : nullable Object */;
1717 val
* var_e
/* var e: Object */;
1718 long var14
/* : Int */;
1719 long var_color
/* var color: Int */;
1720 val
* var15
/* : POSetConflictGraph[Object] */;
1721 val
* var17
/* : POSetConflictGraph[Object] */;
1722 val
* var18
/* : HashMap[Object, Set[Object]] */;
1723 val
* var20
/* : HashMap[Object, Set[Object]] */;
1724 val
* var21
/* : nullable Object */;
1725 val
* var_conflicts
/* var conflicts: Set[Object] */;
1726 short int var22
/* : Bool */;
1727 short int var23
/* : Bool */;
1728 long var24
/* : Int */;
1729 long var25
/* : Int */;
1730 short int var27
/* : Bool */;
1733 const char* var_class_name
;
1734 long var28
/* : Int */;
1735 val
* var29
/* : HashMap[Object, Int] */;
1736 val
* var31
/* : HashMap[Object, Int] */;
1737 val
* var32
/* : nullable Object */;
1739 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
1740 var2
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1741 if (unlikely(var2
== NULL
)) {
1742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1743 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 185);
1751 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1752 var5
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1753 if (unlikely(var5
== NULL
)) {
1754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1755 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1763 { /* Inline coloring#POSetConflictGraph#core (var3) on <var3:POSetConflictGraph[Object]> */
1764 var8
= var3
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <var3:POSetConflictGraph[Object]> */
1765 if (unlikely(var8
== NULL
)) {
1766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
1767 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
1775 var9
= poset___poset__POSet___linearize(var
, var6
);
1779 var10
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1784 var12
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_11
);
1788 var13
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_11
);
1792 var14
= nit___nit__POSetColorer___min_color(self
, var_e
);
1796 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1797 var17
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1798 if (unlikely(var17
== NULL
)) {
1799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1800 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1804 RET_LABEL16
:(void)0;
1808 { /* Inline coloring#POSetConflictGraph#conflicts (var15) on <var15:POSetConflictGraph[Object]> */
1809 var20
= var15
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var15:POSetConflictGraph[Object]> */
1810 if (unlikely(var20
== NULL
)) {
1811 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1812 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
1816 RET_LABEL19
:(void)0;
1820 var21
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var18
, var_e
);
1822 var_conflicts
= var21
;
1825 var22
= nit___nit__POSetColorer___is_color_free(self
, var_color
, var_conflicts
);
1831 { /* Inline kernel#Int#+ (var_color,var24) on <var_color:Int> */
1832 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
1833 /* <var24:Int> isa OTHER */
1834 var27
= 1; /* easy <var24:Int> isa OTHER*/
1835 if (unlikely(!var27
)) {
1836 var_class_name
= type_standard__Int
.name
;
1837 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1838 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
1841 var28
= var_color
+ var24
;
1844 RET_LABEL26
:(void)0;
1852 BREAK_label
: (void)0;
1854 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
1855 var31
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1856 if (unlikely(var31
== NULL
)) {
1857 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1858 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 178);
1862 RET_LABEL30
:(void)0;
1866 var32
= BOX_standard__Int(var_color
); /* autobox from Int to nullable Object */
1867 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var29
, var_e
, var32
); /* Direct call hash_collection#HashMap#[]= on <var29:HashMap[Object, Int]>*/
1870 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[Object]>*/
1876 BREAK_label33
: (void)0;
1878 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[Object]> */
1879 RET_LABEL34
:(void)0;
1884 /* method coloring#POSetColorer#colorize_set for (self: POSetColorer[Object], Set[Object]) */
1885 void nit___nit__POSetColorer___colorize_set(val
* self
, val
* p0
) {
1886 short int var
/* : Bool */;
1889 const struct type
* type_struct
;
1890 const char* var_class_name
;
1891 val
* var_set
/* var set: Set[Object] */;
1892 val
* var1
/* : POSet[Object] */;
1893 val
* var3
/* : POSet[Object] */;
1894 val
* var4
/* : Array[nullable Object] */;
1895 val
* var_
/* var : Array[Object] */;
1896 val
* var5
/* : ArrayIterator[nullable Object] */;
1897 val
* var_6
/* var : ArrayIterator[Object] */;
1898 short int var7
/* : Bool */;
1899 val
* var8
/* : nullable Object */;
1900 val
* var_e
/* var e: Object */;
1901 val
* var9
/* : HashMap[Object, Int] */;
1902 val
* var11
/* : HashMap[Object, Int] */;
1903 long var12
/* : Int */;
1904 val
* var13
/* : nullable Object */;
1905 /* Covariant cast for argument 0 (set) <p0:Set[Object]> isa Set[E] */
1906 /* <p0:Set[Object]> isa Set[E] */
1907 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Set__nit__POSetColorer___35dE
];
1908 cltype
= type_struct
->color
;
1909 idtype
= type_struct
->id
;
1910 if(cltype
>= p0
->type
->table_size
) {
1913 var
= p0
->type
->type_table
[cltype
] == idtype
;
1915 if (unlikely(!var
)) {
1916 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1917 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[E]", var_class_name
);
1918 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 236);
1923 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
1924 var3
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1925 if (unlikely(var3
== NULL
)) {
1926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1927 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 185);
1935 var4
= poset___poset__POSet___linearize(var1
, var_set
);
1939 var5
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1944 var7
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_6
);
1948 var8
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_6
);
1952 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
1953 var11
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1954 if (unlikely(var11
== NULL
)) {
1955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1956 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 178);
1960 RET_LABEL10
:(void)0;
1964 var12
= nit___nit__POSetColorer___min_color(self
, var_e
);
1967 var13
= BOX_standard__Int(var12
); /* autobox from Int to nullable Object */
1968 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var9
, var_e
, var13
); /* Direct call hash_collection#HashMap#[]= on <var9:HashMap[Object, Int]>*/
1971 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_6
); /* Direct call array#ArrayIterator#next on <var_6:ArrayIterator[Object]>*/
1977 BREAK_label
: (void)0;
1979 { /* Inline abstract_collection#Iterator#finish (var_6) on <var_6:ArrayIterator[Object]> */
1980 RET_LABEL14
:(void)0;
1985 /* method coloring#POSetColorer#min_color for (self: POSetColorer[Object], Object): Int */
1986 long nit___nit__POSetColorer___min_color(val
* self
, val
* p0
) {
1987 long var
/* : Int */;
1988 short int var1
/* : Bool */;
1991 const struct type
* type_struct
;
1992 const char* var_class_name
;
1993 val
* var_e
/* var e: Object */;
1994 long var2
/* : Int */;
1995 long var3
/* : Int */;
1996 long var5
/* : Int */;
1997 long var_max_color
/* var max_color: Int */;
1998 val
* var6
/* : POSet[Object] */;
1999 val
* var8
/* : POSet[Object] */;
2000 val
* var9
/* : POSetElement[nullable Object] */;
2001 val
* var10
/* : Collection[nullable Object] */;
2002 val
* var_
/* var : Collection[Object] */;
2003 val
* var11
/* : Iterator[nullable Object] */;
2004 val
* var_12
/* var : Iterator[Object] */;
2005 short int var13
/* : Bool */;
2006 val
* var14
/* : nullable Object */;
2007 val
* var_p
/* var p: Object */;
2008 val
* var15
/* : HashMap[Object, Int] */;
2009 val
* var17
/* : HashMap[Object, Int] */;
2010 short int var18
/* : Bool */;
2011 short int var19
/* : Bool */;
2012 val
* var20
/* : HashMap[Object, Int] */;
2013 val
* var22
/* : HashMap[Object, Int] */;
2014 val
* var23
/* : nullable Object */;
2015 long var24
/* : Int */;
2016 long var_color
/* var color: Int */;
2017 short int var25
/* : Bool */;
2018 short int var27
/* : Bool */;
2021 const char* var_class_name30
;
2022 short int var31
/* : Bool */;
2023 long var34
/* : Int */;
2024 long var35
/* : Int */;
2025 short int var37
/* : Bool */;
2028 const char* var_class_name40
;
2029 long var41
/* : Int */;
2030 /* Covariant cast for argument 0 (e) <p0:Object> isa E */
2031 /* <p0:Object> isa E */
2032 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetColorer___35dE
];
2033 cltype
= type_struct
->color
;
2034 idtype
= type_struct
->id
;
2035 if(cltype
>= p0
->type
->table_size
) {
2038 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2040 if (unlikely(!var1
)) {
2041 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2042 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
2043 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 241);
2049 { /* Inline kernel#Int#unary - (var2) on <var2:Int> */
2056 var_max_color
= var3
;
2058 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
2059 var8
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2060 if (unlikely(var8
== NULL
)) {
2061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2062 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 185);
2070 var9
= poset___poset__POSet____91d_93d(var6
, var_e
);
2073 var10
= poset___poset__POSetElement___direct_greaters(var9
);
2077 var11
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[Object]>*/;
2082 var13
= ((short int (*)(val
* self
))(var_12
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_12
) /* is_ok on <var_12:Iterator[Object]>*/;
2086 var14
= ((val
* (*)(val
* self
))(var_12
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_12
) /* item on <var_12:Iterator[Object]>*/;
2090 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2091 var17
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2092 if (unlikely(var17
== NULL
)) {
2093 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2094 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 178);
2098 RET_LABEL16
:(void)0;
2102 var18
= standard___standard__MapRead___has_key(var15
, var_p
);
2110 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2111 var22
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2112 if (unlikely(var22
== NULL
)) {
2113 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2114 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 178);
2118 RET_LABEL21
:(void)0;
2122 var23
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var20
, var_p
);
2124 var24
= ((struct instance_standard__Int
*)var23
)->value
; /* autounbox from nullable Object to Int */;
2127 { /* Inline kernel#Int#> (var_color,var_max_color) on <var_color:Int> */
2128 /* Covariant cast for argument 0 (i) <var_max_color:Int> isa OTHER */
2129 /* <var_max_color:Int> isa OTHER */
2130 var27
= 1; /* easy <var_max_color:Int> isa OTHER*/
2131 if (unlikely(!var27
)) {
2132 var_class_name30
= type_standard__Int
.name
;
2133 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30
);
2134 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
2137 var31
= var_color
> var_max_color
;
2140 RET_LABEL26
:(void)0;
2144 var_max_color
= var_color
;
2147 BREAK_label
: (void)0;
2149 ((void (*)(val
* self
))(var_12
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_12
) /* next on <var_12:Iterator[Object]>*/;
2155 BREAK_label32
: (void)0;
2157 { /* Inline abstract_collection#Iterator#finish (var_12) on <var_12:Iterator[Object]> */
2158 RET_LABEL33
:(void)0;
2163 { /* Inline kernel#Int#+ (var_max_color,var34) on <var_max_color:Int> */
2164 /* Covariant cast for argument 0 (i) <var34:Int> isa OTHER */
2165 /* <var34:Int> isa OTHER */
2166 var37
= 1; /* easy <var34:Int> isa OTHER*/
2167 if (unlikely(!var37
)) {
2168 var_class_name40
= type_standard__Int
.name
;
2169 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40
);
2170 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
2173 var41
= var_max_color
+ var34
;
2176 RET_LABEL36
:(void)0;
2184 /* method coloring#POSetColorer#is_color_free for (self: POSetColorer[Object], Int, Collection[Object]): Bool */
2185 short int nit___nit__POSetColorer___is_color_free(val
* self
, long p0
, val
* p1
) {
2186 short int var
/* : Bool */;
2187 short int var1
/* : Bool */;
2190 const struct type
* type_struct
;
2191 const char* var_class_name
;
2192 long var_color
/* var color: Int */;
2193 val
* var_set
/* var set: Collection[Object] */;
2194 val
* var_
/* var : Collection[Object] */;
2195 val
* var2
/* : Iterator[nullable Object] */;
2196 val
* var_3
/* var : Iterator[Object] */;
2197 short int var4
/* : Bool */;
2198 val
* var5
/* : nullable Object */;
2199 val
* var_e
/* var e: Object */;
2200 short int var6
/* : Bool */;
2201 val
* var7
/* : HashMap[Object, Int] */;
2202 val
* var9
/* : HashMap[Object, Int] */;
2203 short int var10
/* : Bool */;
2204 short int var_11
/* var : Bool */;
2205 val
* var12
/* : HashMap[Object, Int] */;
2206 val
* var14
/* : HashMap[Object, Int] */;
2207 val
* var15
/* : nullable Object */;
2208 short int var16
/* : Bool */;
2209 short int var18
/* : Bool */;
2210 long var19
/* : Int */;
2211 short int var20
/* : Bool */;
2212 short int var22
/* : Bool */;
2213 /* Covariant cast for argument 1 (set) <p1:Collection[Object]> isa Collection[E] */
2214 /* <p1:Collection[Object]> isa Collection[E] */
2215 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Collection__nit__POSetColorer___35dE
];
2216 cltype
= type_struct
->color
;
2217 idtype
= type_struct
->id
;
2218 if(cltype
>= p1
->type
->table_size
) {
2221 var1
= p1
->type
->type_table
[cltype
] == idtype
;
2223 if (unlikely(!var1
)) {
2224 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
2225 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name
);
2226 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 252);
2233 var2
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[Object]>*/;
2238 var4
= ((short int (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_3
) /* is_ok on <var_3:Iterator[Object]>*/;
2242 var5
= ((val
* (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_3
) /* item on <var_3:Iterator[Object]>*/;
2246 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2247 var9
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2248 if (unlikely(var9
== NULL
)) {
2249 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2250 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 178);
2258 var10
= standard___standard__MapRead___has_key(var7
, var_e
);
2263 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2264 var14
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2265 if (unlikely(var14
== NULL
)) {
2266 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2267 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 178);
2271 RET_LABEL13
:(void)0;
2275 var15
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var12
, var_e
);
2278 { /* Inline kernel#Int#== (var15,var_color) on <var15:nullable Object(Int)> */
2279 var18
= (var15
!= NULL
) && (var15
->class == &class_standard__Int
);
2281 var19
= ((struct instance_standard__Int
*)var15
)->value
; /* autounbox from nullable Object to Int */;
2282 var18
= (var19
== var_color
);
2286 RET_LABEL17
:(void)0;
2300 ((void (*)(val
* self
))(var_3
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_3
) /* next on <var_3:Iterator[Object]>*/;
2306 BREAK_label
: (void)0;
2308 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:Iterator[Object]> */
2309 RET_LABEL21
:(void)0;
2318 /* method coloring#BucketsColorer#colors for (self: BucketsColorer[Object, Object]): HashMap[Object, Int] */
2319 val
* nit___nit__BucketsColorer___colors(val
* self
) {
2320 val
* var
/* : HashMap[Object, Int] */;
2321 val
* var1
/* : HashMap[Object, Int] */;
2322 var1
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2323 if (unlikely(var1
== NULL
)) {
2324 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2325 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 284);
2332 /* method coloring#BucketsColorer#conflicts for (self: BucketsColorer[Object, Object]): HashMap[Object, Set[Object]] */
2333 val
* nit___nit__BucketsColorer___conflicts(val
* self
) {
2334 val
* var
/* : HashMap[Object, Set[Object]] */;
2335 val
* var1
/* : HashMap[Object, Set[Object]] */;
2336 var1
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2337 if (unlikely(var1
== NULL
)) {
2338 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2339 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 285);
2346 /* method coloring#BucketsColorer#colorize for (self: BucketsColorer[Object, Object], Map[Object, Set[Object]]): Map[Object, Int] */
2347 val
* nit___nit__BucketsColorer___colorize(val
* self
, val
* p0
) {
2348 val
* var
/* : Map[Object, Int] */;
2349 short int var1
/* : Bool */;
2352 const struct type
* type_struct
;
2353 const char* var_class_name
;
2354 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
2355 long var2
/* : Int */;
2356 long var_min_color
/* var min_color: Int */;
2357 val
* var_
/* var : Map[Object, Set[Object]] */;
2358 val
* var3
/* : MapIterator[nullable Object, nullable Object] */;
2359 val
* var_4
/* var : MapIterator[Object, Set[Object]] */;
2360 short int var5
/* : Bool */;
2361 val
* var6
/* : nullable Object */;
2362 val
* var_holder
/* var holder: Object */;
2363 val
* var7
/* : nullable Object */;
2364 val
* var_hbuckets
/* var hbuckets: Set[Object] */;
2365 val
* var_8
/* var : Set[Object] */;
2366 val
* var9
/* : Iterator[nullable Object] */;
2367 val
* var_10
/* var : Iterator[Object] */;
2368 short int var11
/* : Bool */;
2369 val
* var12
/* : nullable Object */;
2370 val
* var_bucket
/* var bucket: Object */;
2371 val
* var13
/* : HashMap[Object, Int] */;
2372 val
* var15
/* : HashMap[Object, Int] */;
2373 short int var16
/* : Bool */;
2374 long var_color
/* var color: Int */;
2375 short int var17
/* : Bool */;
2376 short int var18
/* : Bool */;
2377 long var19
/* : Int */;
2378 long var20
/* : Int */;
2379 short int var22
/* : Bool */;
2382 const char* var_class_name25
;
2383 long var26
/* : Int */;
2384 val
* var28
/* : HashMap[Object, Int] */;
2385 val
* var30
/* : HashMap[Object, Int] */;
2386 val
* var31
/* : nullable Object */;
2387 val
* var36
/* : HashMap[Object, Int] */;
2388 val
* var38
/* : HashMap[Object, Int] */;
2389 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
2390 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
2391 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__BucketsColorer___35dH__standard__Set__nit__BucketsColorer___35dE
];
2392 cltype
= type_struct
->color
;
2393 idtype
= type_struct
->id
;
2394 if(cltype
>= p0
->type
->table_size
) {
2397 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2399 if (unlikely(!var1
)) {
2400 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2401 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
2402 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 287);
2407 nit___nit__BucketsColorer___compute_conflicts(self
, var_buckets
); /* Direct call coloring#BucketsColorer#compute_conflicts on <self:BucketsColorer[Object, Object]>*/
2410 var_min_color
= var2
;
2413 var3
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_
) /* iterator on <var_:Map[Object, Set[Object]]>*/;
2418 var5
= ((short int (*)(val
* self
))(var_4
->class->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_4
) /* is_ok on <var_4:MapIterator[Object, Set[Object]]>*/;
2422 var6
= ((val
* (*)(val
* self
))(var_4
->class->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_4
) /* key on <var_4:MapIterator[Object, Set[Object]]>*/;
2426 var7
= ((val
* (*)(val
* self
))(var_4
->class->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_4
) /* item on <var_4:MapIterator[Object, Set[Object]]>*/;
2428 var_hbuckets
= var7
;
2429 var_8
= var_hbuckets
;
2431 var9
= ((val
* (*)(val
* self
))(var_8
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_8
) /* iterator on <var_8:Set[Object]>*/;
2436 var11
= ((short int (*)(val
* self
))(var_10
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_10
) /* is_ok on <var_10:Iterator[Object]>*/;
2440 var12
= ((val
* (*)(val
* self
))(var_10
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_10
) /* item on <var_10:Iterator[Object]>*/;
2444 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
2445 var15
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2446 if (unlikely(var15
== NULL
)) {
2447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2448 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 284);
2452 RET_LABEL14
:(void)0;
2456 var16
= standard___standard__MapRead___has_key(var13
, var_bucket
);
2462 var_color
= var_min_color
;
2465 var17
= nit___nit__BucketsColorer___is_color_free(self
, var_bucket
, var_color
);
2471 { /* Inline kernel#Int#+ (var_color,var19) on <var_color:Int> */
2472 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
2473 /* <var19:Int> isa OTHER */
2474 var22
= 1; /* easy <var19:Int> isa OTHER*/
2475 if (unlikely(!var22
)) {
2476 var_class_name25
= type_standard__Int
.name
;
2477 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25
);
2478 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
2481 var26
= var_color
+ var19
;
2484 RET_LABEL21
:(void)0;
2492 BREAK_label27
: (void)0;
2494 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
2495 var30
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2496 if (unlikely(var30
== NULL
)) {
2497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2498 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 284);
2502 RET_LABEL29
:(void)0;
2506 var31
= BOX_standard__Int(var_color
); /* autobox from Int to nullable Object */
2507 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var28
, var_bucket
, var31
); /* Direct call hash_collection#HashMap#[]= on <var28:HashMap[Object, Int]>*/
2509 var_color
= var_min_color
;
2510 BREAK_label
: (void)0;
2512 ((void (*)(val
* self
))(var_10
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_10
) /* next on <var_10:Iterator[Object]>*/;
2518 BREAK_label32
: (void)0;
2520 { /* Inline abstract_collection#Iterator#finish (var_10) on <var_10:Iterator[Object]> */
2521 RET_LABEL33
:(void)0;
2525 ((void (*)(val
* self
))(var_4
->class->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_4
) /* next on <var_4:MapIterator[Object, Set[Object]]>*/;
2531 BREAK_label34
: (void)0;
2533 { /* Inline abstract_collection#MapIterator#finish (var_4) on <var_4:MapIterator[Object, Set[Object]]> */
2534 RET_LABEL35
:(void)0;
2538 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
2539 var38
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2540 if (unlikely(var38
== NULL
)) {
2541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2542 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 284);
2546 RET_LABEL37
:(void)0;
2554 /* method coloring#BucketsColorer#is_color_free for (self: BucketsColorer[Object, Object], Object, Int): Bool */
2555 short int nit___nit__BucketsColorer___is_color_free(val
* self
, val
* p0
, long p1
) {
2556 short int var
/* : Bool */;
2557 short int var1
/* : Bool */;
2560 const struct type
* type_struct
;
2561 const char* var_class_name
;
2562 val
* var_bucket
/* var bucket: Object */;
2563 long var_color
/* var color: Int */;
2564 val
* var2
/* : HashMap[Object, Set[Object]] */;
2565 val
* var4
/* : HashMap[Object, Set[Object]] */;
2566 short int var5
/* : Bool */;
2567 val
* var6
/* : HashMap[Object, Set[Object]] */;
2568 val
* var8
/* : HashMap[Object, Set[Object]] */;
2569 val
* var9
/* : nullable Object */;
2570 val
* var_
/* var : Set[Object] */;
2571 val
* var10
/* : Iterator[nullable Object] */;
2572 val
* var_11
/* var : Iterator[Object] */;
2573 short int var12
/* : Bool */;
2574 val
* var13
/* : nullable Object */;
2575 val
* var_other
/* var other: Object */;
2576 short int var14
/* : Bool */;
2577 val
* var15
/* : HashMap[Object, Int] */;
2578 val
* var17
/* : HashMap[Object, Int] */;
2579 short int var18
/* : Bool */;
2580 short int var_19
/* var : Bool */;
2581 val
* var20
/* : HashMap[Object, Int] */;
2582 val
* var22
/* : HashMap[Object, Int] */;
2583 val
* var23
/* : nullable Object */;
2584 short int var24
/* : Bool */;
2585 short int var26
/* : Bool */;
2586 long var27
/* : Int */;
2587 short int var28
/* : Bool */;
2588 short int var30
/* : Bool */;
2589 /* Covariant cast for argument 0 (bucket) <p0:Object> isa E */
2590 /* <p0:Object> isa E */
2591 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__BucketsColorer___35dE
];
2592 cltype
= type_struct
->color
;
2593 idtype
= type_struct
->id
;
2594 if(cltype
>= p0
->type
->table_size
) {
2597 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2599 if (unlikely(!var1
)) {
2600 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2601 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
2602 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 305);
2608 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
2609 var4
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2610 if (unlikely(var4
== NULL
)) {
2611 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2612 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 285);
2620 var5
= standard___standard__MapRead___has_key(var2
, var_bucket
);
2624 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
2625 var8
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2626 if (unlikely(var8
== NULL
)) {
2627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2628 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 285);
2636 var9
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var6
, var_bucket
);
2640 var10
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[Object]>*/;
2645 var12
= ((short int (*)(val
* self
))(var_11
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_11
) /* is_ok on <var_11:Iterator[Object]>*/;
2649 var13
= ((val
* (*)(val
* self
))(var_11
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_11
) /* item on <var_11:Iterator[Object]>*/;
2653 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
2654 var17
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2655 if (unlikely(var17
== NULL
)) {
2656 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2657 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 284);
2661 RET_LABEL16
:(void)0;
2665 var18
= standard___standard__MapRead___has_key(var15
, var_other
);
2670 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
2671 var22
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2672 if (unlikely(var22
== NULL
)) {
2673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2674 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 284);
2678 RET_LABEL21
:(void)0;
2682 var23
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var20
, var_other
);
2685 { /* Inline kernel#Int#== (var23,var_color) on <var23:nullable Object(Int)> */
2686 var26
= (var23
!= NULL
) && (var23
->class == &class_standard__Int
);
2688 var27
= ((struct instance_standard__Int
*)var23
)->value
; /* autounbox from nullable Object to Int */;
2689 var26
= (var27
== var_color
);
2693 RET_LABEL25
:(void)0;
2707 ((void (*)(val
* self
))(var_11
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_11
) /* next on <var_11:Iterator[Object]>*/;
2713 BREAK_label
: (void)0;
2715 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:Iterator[Object]> */
2716 RET_LABEL29
:(void)0;
2727 /* method coloring#BucketsColorer#compute_conflicts for (self: BucketsColorer[Object, Object], Map[Object, Set[Object]]) */
2728 void nit___nit__BucketsColorer___compute_conflicts(val
* self
, val
* p0
) {
2729 short int var
/* : Bool */;
2732 const struct type
* type_struct
;
2733 const char* var_class_name
;
2734 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
2735 val
* var1
/* : HashMap[Object, Set[Object]] */;
2736 val
* var3
/* : HashMap[Object, Set[Object]] */;
2737 val
* var_
/* var : Map[Object, Set[Object]] */;
2738 val
* var4
/* : MapIterator[nullable Object, nullable Object] */;
2739 val
* var_5
/* var : MapIterator[Object, Set[Object]] */;
2740 short int var6
/* : Bool */;
2741 val
* var7
/* : nullable Object */;
2742 val
* var_holder
/* var holder: Object */;
2743 val
* var8
/* : nullable Object */;
2744 val
* var_hbuckets
/* var hbuckets: Set[Object] */;
2745 val
* var_9
/* var : Set[Object] */;
2746 val
* var10
/* : Iterator[nullable Object] */;
2747 val
* var_11
/* var : Iterator[Object] */;
2748 short int var12
/* : Bool */;
2749 val
* var13
/* : nullable Object */;
2750 val
* var_bucket
/* var bucket: Object */;
2751 val
* var14
/* : HashMap[Object, Set[Object]] */;
2752 val
* var16
/* : HashMap[Object, Set[Object]] */;
2753 short int var17
/* : Bool */;
2754 short int var18
/* : Bool */;
2755 val
* var19
/* : HashMap[Object, Set[Object]] */;
2756 val
* var21
/* : HashMap[Object, Set[Object]] */;
2757 val
* var22
/* : HashSet[Object] */;
2758 val
* var_23
/* var : Set[Object] */;
2759 val
* var24
/* : Iterator[nullable Object] */;
2760 val
* var_25
/* var : Iterator[Object] */;
2761 short int var26
/* : Bool */;
2762 val
* var27
/* : nullable Object */;
2763 val
* var_obucket
/* var obucket: Object */;
2764 short int var28
/* : Bool */;
2765 val
* var29
/* : HashMap[Object, Set[Object]] */;
2766 val
* var31
/* : HashMap[Object, Set[Object]] */;
2767 short int var32
/* : Bool */;
2768 short int var33
/* : Bool */;
2769 val
* var34
/* : HashMap[Object, Set[Object]] */;
2770 val
* var36
/* : HashMap[Object, Set[Object]] */;
2771 val
* var37
/* : HashSet[Object] */;
2772 val
* var38
/* : HashMap[Object, Set[Object]] */;
2773 val
* var40
/* : HashMap[Object, Set[Object]] */;
2774 val
* var41
/* : nullable Object */;
2775 val
* var42
/* : HashMap[Object, Set[Object]] */;
2776 val
* var44
/* : HashMap[Object, Set[Object]] */;
2777 val
* var45
/* : nullable Object */;
2778 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
2779 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
2780 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__BucketsColorer___35dH__standard__Set__nit__BucketsColorer___35dE
];
2781 cltype
= type_struct
->color
;
2782 idtype
= type_struct
->id
;
2783 if(cltype
>= p0
->type
->table_size
) {
2786 var
= p0
->type
->type_table
[cltype
] == idtype
;
2788 if (unlikely(!var
)) {
2789 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2790 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
2791 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 314);
2796 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
2797 var3
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2798 if (unlikely(var3
== NULL
)) {
2799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2800 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 285);
2808 standard___standard__HashMap___standard__abstract_collection__Map__clear(var1
); /* Direct call hash_collection#HashMap#clear on <var1:HashMap[Object, Set[Object]]>*/
2812 var4
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_
) /* iterator on <var_:Map[Object, Set[Object]]>*/;
2817 var6
= ((short int (*)(val
* self
))(var_5
->class->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_5
) /* is_ok on <var_5:MapIterator[Object, Set[Object]]>*/;
2821 var7
= ((val
* (*)(val
* self
))(var_5
->class->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_5
) /* key on <var_5:MapIterator[Object, Set[Object]]>*/;
2825 var8
= ((val
* (*)(val
* self
))(var_5
->class->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_5
) /* item on <var_5:MapIterator[Object, Set[Object]]>*/;
2827 var_hbuckets
= var8
;
2828 var_9
= var_hbuckets
;
2830 var10
= ((val
* (*)(val
* self
))(var_9
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_9
) /* iterator on <var_9:Set[Object]>*/;
2835 var12
= ((short int (*)(val
* self
))(var_11
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_11
) /* is_ok on <var_11:Iterator[Object]>*/;
2839 var13
= ((val
* (*)(val
* self
))(var_11
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_11
) /* item on <var_11:Iterator[Object]>*/;
2843 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
2844 var16
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2845 if (unlikely(var16
== NULL
)) {
2846 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2847 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 285);
2851 RET_LABEL15
:(void)0;
2855 var17
= standard___standard__MapRead___has_key(var14
, var_bucket
);
2860 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
2861 var21
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2862 if (unlikely(var21
== NULL
)) {
2863 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2864 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 285);
2868 RET_LABEL20
:(void)0;
2871 var22
= NEW_standard__HashSet(self
->type
->resolution_table
->types
[COLOR_standard__HashSet__nit__BucketsColorer___35dE
]);
2873 standard___standard__HashSet___standard__kernel__Object__init(var22
); /* Direct call hash_collection#HashSet#init on <var22:HashSet[Object]>*/
2876 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var19
, var_bucket
, var22
); /* Direct call hash_collection#HashMap#[]= on <var19:HashMap[Object, Set[Object]]>*/
2880 var_23
= var_hbuckets
;
2882 var24
= ((val
* (*)(val
* self
))(var_23
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_23
) /* iterator on <var_23:Set[Object]>*/;
2887 var26
= ((short int (*)(val
* self
))(var_25
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_25
) /* is_ok on <var_25:Iterator[Object]>*/;
2891 var27
= ((val
* (*)(val
* self
))(var_25
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_25
) /* item on <var_25:Iterator[Object]>*/;
2893 var_obucket
= var27
;
2895 var28
= ((short int (*)(val
* self
, val
* p0
))(var_obucket
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_obucket
, var_bucket
) /* == on <var_obucket:Object>*/;
2902 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
2903 var31
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2904 if (unlikely(var31
== NULL
)) {
2905 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2906 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 285);
2910 RET_LABEL30
:(void)0;
2914 var32
= standard___standard__MapRead___has_key(var29
, var_obucket
);
2919 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
2920 var36
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2921 if (unlikely(var36
== NULL
)) {
2922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2923 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 285);
2927 RET_LABEL35
:(void)0;
2930 var37
= NEW_standard__HashSet(self
->type
->resolution_table
->types
[COLOR_standard__HashSet__nit__BucketsColorer___35dE
]);
2932 standard___standard__HashSet___standard__kernel__Object__init(var37
); /* Direct call hash_collection#HashSet#init on <var37:HashSet[Object]>*/
2935 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var34
, var_obucket
, var37
); /* Direct call hash_collection#HashMap#[]= on <var34:HashMap[Object, Set[Object]]>*/
2940 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
2941 var40
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2942 if (unlikely(var40
== NULL
)) {
2943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2944 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 285);
2948 RET_LABEL39
:(void)0;
2952 var41
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var38
, var_bucket
);
2955 ((void (*)(val
* self
, val
* p0
))(var41
->class->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var41
, var_obucket
) /* add on <var41:nullable Object(Set[Object])>*/;
2958 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
2959 var44
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2960 if (unlikely(var44
== NULL
)) {
2961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2962 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 285);
2966 RET_LABEL43
:(void)0;
2970 var45
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var42
, var_obucket
);
2973 ((void (*)(val
* self
, val
* p0
))(var45
->class->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var45
, var_bucket
) /* add on <var45:nullable Object(Set[Object])>*/;
2975 BREAK_label
: (void)0;
2977 ((void (*)(val
* self
))(var_25
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_25
) /* next on <var_25:Iterator[Object]>*/;
2983 BREAK_label46
: (void)0;
2985 { /* Inline abstract_collection#Iterator#finish (var_25) on <var_25:Iterator[Object]> */
2986 RET_LABEL47
:(void)0;
2990 ((void (*)(val
* self
))(var_11
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_11
) /* next on <var_11:Iterator[Object]>*/;
2996 BREAK_label48
: (void)0;
2998 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:Iterator[Object]> */
2999 RET_LABEL49
:(void)0;
3003 ((void (*)(val
* self
))(var_5
->class->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_5
) /* next on <var_5:MapIterator[Object, Set[Object]]>*/;
3009 BREAK_label50
: (void)0;
3011 { /* Inline abstract_collection#MapIterator#finish (var_5) on <var_5:MapIterator[Object, Set[Object]]> */
3012 RET_LABEL51
:(void)0;
3017 /* method coloring#POSetBucketsColorer#colors for (self: POSetBucketsColorer[Object, Object]): HashMap[Object, Int] */
3018 val
* nit___nit__POSetBucketsColorer___colors(val
* self
) {
3019 val
* var
/* : HashMap[Object, Int] */;
3020 val
* var1
/* : HashMap[Object, Int] */;
3021 var1
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3022 if (unlikely(var1
== NULL
)) {
3023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3024 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 335);
3031 /* method coloring#POSetBucketsColorer#poset for (self: POSetBucketsColorer[Object, Object]): POSet[Object] */
3032 val
* nit___nit__POSetBucketsColorer___poset(val
* self
) {
3033 val
* var
/* : POSet[Object] */;
3034 val
* var1
/* : POSet[Object] */;
3035 var1
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3036 if (unlikely(var1
== NULL
)) {
3037 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
3038 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 336);
3045 /* method coloring#POSetBucketsColorer#poset= for (self: POSetBucketsColorer[Object, Object], POSet[Object]) */
3046 void nit___nit__POSetBucketsColorer___poset_61d(val
* self
, val
* p0
) {
3047 short int var
/* : Bool */;
3050 const struct type
* type_struct
;
3051 const char* var_class_name
;
3052 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[H] */
3053 /* <p0:POSet[Object]> isa POSet[H] */
3054 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nit__POSetBucketsColorer___35dH
];
3055 cltype
= type_struct
->color
;
3056 idtype
= type_struct
->id
;
3057 if(cltype
>= p0
->type
->table_size
) {
3060 var
= p0
->type
->type_table
[cltype
] == idtype
;
3062 if (unlikely(!var
)) {
3063 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3064 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[H]", var_class_name
);
3065 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 336);
3068 self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___poset
].val
= p0
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3071 /* method coloring#POSetBucketsColorer#conflicts for (self: POSetBucketsColorer[Object, Object]): Map[Object, Set[Object]] */
3072 val
* nit___nit__POSetBucketsColorer___conflicts(val
* self
) {
3073 val
* var
/* : Map[Object, Set[Object]] */;
3074 val
* var1
/* : Map[Object, Set[Object]] */;
3075 var1
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
3076 if (unlikely(var1
== NULL
)) {
3077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3078 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 337);
3085 /* method coloring#POSetBucketsColorer#conflicts= for (self: POSetBucketsColorer[Object, Object], Map[Object, Set[Object]]) */
3086 void nit___nit__POSetBucketsColorer___conflicts_61d(val
* self
, val
* p0
) {
3087 short int var
/* : Bool */;
3090 const struct type
* type_struct
;
3091 const char* var_class_name
;
3092 /* Covariant cast for argument 0 (conflicts) <p0:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
3093 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
3094 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetBucketsColorer___35dH__standard__Set__nit__POSetBucketsColorer___35dH
];
3095 cltype
= type_struct
->color
;
3096 idtype
= type_struct
->id
;
3097 if(cltype
>= p0
->type
->table_size
) {
3100 var
= p0
->type
->type_table
[cltype
] == idtype
;
3102 if (unlikely(!var
)) {
3103 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3104 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[H]]", var_class_name
);
3105 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 337);
3108 self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___conflicts
].val
= p0
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
3111 /* method coloring#POSetBucketsColorer#colorize for (self: POSetBucketsColorer[Object, Object], Map[Object, Set[Object]]): Map[Object, Int] */
3112 val
* nit___nit__POSetBucketsColorer___colorize(val
* self
, val
* p0
) {
3113 val
* var
/* : Map[Object, Int] */;
3114 short int var1
/* : Bool */;
3117 const struct type
* type_struct
;
3118 const char* var_class_name
;
3119 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
3120 val
* var2
/* : HashMap[Object, Int] */;
3121 val
* var4
/* : HashMap[Object, Int] */;
3122 val
* var5
/* : POSet[Object] */;
3123 val
* var7
/* : POSet[Object] */;
3124 val
* var8
/* : Collection[nullable Object] */;
3125 val
* var9
/* : Array[nullable Object] */;
3126 val
* var_
/* var : Array[Object] */;
3127 val
* var10
/* : ArrayIterator[nullable Object] */;
3128 val
* var_11
/* var : ArrayIterator[Object] */;
3129 short int var12
/* : Bool */;
3130 val
* var13
/* : nullable Object */;
3131 val
* var_h
/* var h: Object */;
3132 val
* var14
/* : POSet[Object] */;
3133 val
* var16
/* : POSet[Object] */;
3134 val
* var17
/* : POSetElement[nullable Object] */;
3135 val
* var18
/* : Collection[nullable Object] */;
3136 long var19
/* : Int */;
3137 long var_color
/* var color: Int */;
3138 val
* var20
/* : nullable Object */;
3139 val
* var_21
/* var : Set[Object] */;
3140 val
* var22
/* : Iterator[nullable Object] */;
3141 val
* var_23
/* var : Iterator[Object] */;
3142 short int var24
/* : Bool */;
3143 val
* var25
/* : nullable Object */;
3144 val
* var_bucket
/* var bucket: Object */;
3145 val
* var26
/* : HashMap[Object, Int] */;
3146 val
* var28
/* : HashMap[Object, Int] */;
3147 short int var29
/* : Bool */;
3148 short int var30
/* : Bool */;
3149 short int var31
/* : Bool */;
3150 long var32
/* : Int */;
3151 long var33
/* : Int */;
3152 short int var35
/* : Bool */;
3155 const char* var_class_name38
;
3156 long var39
/* : Int */;
3157 val
* var41
/* : HashMap[Object, Int] */;
3158 val
* var43
/* : HashMap[Object, Int] */;
3159 val
* var44
/* : nullable Object */;
3160 long var45
/* : Int */;
3161 long var46
/* : Int */;
3162 short int var48
/* : Bool */;
3165 const char* var_class_name51
;
3166 long var52
/* : Int */;
3167 val
* var57
/* : HashMap[Object, Int] */;
3168 val
* var59
/* : HashMap[Object, Int] */;
3169 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3170 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3171 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetBucketsColorer___35dH__standard__Set__nit__POSetBucketsColorer___35dE
];
3172 cltype
= type_struct
->color
;
3173 idtype
= type_struct
->id
;
3174 if(cltype
>= p0
->type
->table_size
) {
3177 var1
= p0
->type
->type_table
[cltype
] == idtype
;
3179 if (unlikely(!var1
)) {
3180 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3181 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
3182 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 339);
3187 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3188 var4
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3189 if (unlikely(var4
== NULL
)) {
3190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3191 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 335);
3199 standard___standard__HashMap___standard__abstract_collection__Map__clear(var2
); /* Direct call hash_collection#HashMap#clear on <var2:HashMap[Object, Int]>*/
3202 { /* Inline coloring#POSetBucketsColorer#poset (self) on <self:POSetBucketsColorer[Object, Object]> */
3203 var7
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3204 if (unlikely(var7
== NULL
)) {
3205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
3206 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 336);
3214 var8
= ((val
* (*)(val
* self
))(var_buckets
->class->vft
[COLOR_standard__abstract_collection__MapRead__keys
]))(var_buckets
) /* keys on <var_buckets:Map[Object, Set[Object]]>*/;
3217 var9
= poset___poset__POSet___linearize(var5
, var8
);
3221 var10
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
3226 var12
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_11
);
3230 var13
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_11
);
3234 { /* Inline coloring#POSetBucketsColorer#poset (self) on <self:POSetBucketsColorer[Object, Object]> */
3235 var16
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3236 if (unlikely(var16
== NULL
)) {
3237 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
3238 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 336);
3242 RET_LABEL15
:(void)0;
3246 var17
= poset___poset__POSet____91d_93d(var14
, var_h
);
3249 var18
= poset___poset__POSetElement___direct_greaters(var17
);
3252 var19
= nit___nit__POSetBucketsColorer___min_color(self
, var18
, var_buckets
);
3256 var20
= ((val
* (*)(val
* self
, val
* p0
))(var_buckets
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_h
) /* [] on <var_buckets:Map[Object, Set[Object]]>*/;
3260 var22
= ((val
* (*)(val
* self
))(var_21
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_21
) /* iterator on <var_21:Set[Object]>*/;
3265 var24
= ((short int (*)(val
* self
))(var_23
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_23
) /* is_ok on <var_23:Iterator[Object]>*/;
3269 var25
= ((val
* (*)(val
* self
))(var_23
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_23
) /* item on <var_23:Iterator[Object]>*/;
3273 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3274 var28
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3275 if (unlikely(var28
== NULL
)) {
3276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3277 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 335);
3281 RET_LABEL27
:(void)0;
3285 var29
= standard___standard__MapRead___has_key(var26
, var_bucket
);
3293 var30
= nit___nit__POSetBucketsColorer___is_color_free(self
, var_color
, var_h
, var_buckets
);
3299 { /* Inline kernel#Int#+ (var_color,var32) on <var_color:Int> */
3300 /* Covariant cast for argument 0 (i) <var32:Int> isa OTHER */
3301 /* <var32:Int> isa OTHER */
3302 var35
= 1; /* easy <var32:Int> isa OTHER*/
3303 if (unlikely(!var35
)) {
3304 var_class_name38
= type_standard__Int
.name
;
3305 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38
);
3306 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
3309 var39
= var_color
+ var32
;
3312 RET_LABEL34
:(void)0;
3320 BREAK_label40
: (void)0;
3322 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3323 var43
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3324 if (unlikely(var43
== NULL
)) {
3325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3326 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 335);
3330 RET_LABEL42
:(void)0;
3334 var44
= BOX_standard__Int(var_color
); /* autobox from Int to nullable Object */
3335 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var41
, var_bucket
, var44
); /* Direct call hash_collection#HashMap#[]= on <var41:HashMap[Object, Int]>*/
3339 { /* Inline kernel#Int#+ (var_color,var45) on <var_color:Int> */
3340 /* Covariant cast for argument 0 (i) <var45:Int> isa OTHER */
3341 /* <var45:Int> isa OTHER */
3342 var48
= 1; /* easy <var45:Int> isa OTHER*/
3343 if (unlikely(!var48
)) {
3344 var_class_name51
= type_standard__Int
.name
;
3345 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51
);
3346 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
3349 var52
= var_color
+ var45
;
3352 RET_LABEL47
:(void)0;
3356 BREAK_label
: (void)0;
3358 ((void (*)(val
* self
))(var_23
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_23
) /* next on <var_23:Iterator[Object]>*/;
3364 BREAK_label53
: (void)0;
3366 { /* Inline abstract_collection#Iterator#finish (var_23) on <var_23:Iterator[Object]> */
3367 RET_LABEL54
:(void)0;
3371 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[Object]>*/
3377 BREAK_label55
: (void)0;
3379 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[Object]> */
3380 RET_LABEL56
:(void)0;
3384 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3385 var59
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3386 if (unlikely(var59
== NULL
)) {
3387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3388 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 335);
3392 RET_LABEL58
:(void)0;
3400 /* method coloring#POSetBucketsColorer#min_color for (self: POSetBucketsColorer[Object, Object], Collection[Object], Map[Object, Set[Object]]): Int */
3401 long nit___nit__POSetBucketsColorer___min_color(val
* self
, val
* p0
, val
* p1
) {
3402 long var
/* : Int */;
3403 short int var1
/* : Bool */;
3406 const struct type
* type_struct
;
3407 const char* var_class_name
;
3408 short int var2
/* : Bool */;
3411 const struct type
* type_struct5
;
3412 const char* var_class_name6
;
3413 val
* var_others
/* var others: Collection[Object] */;
3414 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
3415 long var7
/* : Int */;
3416 long var8
/* : Int */;
3417 long var10
/* : Int */;
3418 long var_min
/* var min: Int */;
3419 val
* var_
/* var : Collection[Object] */;
3420 val
* var11
/* : Iterator[nullable Object] */;
3421 val
* var_12
/* var : Iterator[Object] */;
3422 short int var13
/* : Bool */;
3423 val
* var14
/* : nullable Object */;
3424 val
* var_holder
/* var holder: Object */;
3425 long var15
/* : Int */;
3426 long var_color
/* var color: Int */;
3427 short int var16
/* : Bool */;
3428 short int var18
/* : Bool */;
3431 const char* var_class_name21
;
3432 short int var22
/* : Bool */;
3433 long var24
/* : Int */;
3434 long var25
/* : Int */;
3435 short int var27
/* : Bool */;
3438 const char* var_class_name30
;
3439 long var31
/* : Int */;
3440 /* Covariant cast for argument 0 (others) <p0:Collection[Object]> isa Collection[H] */
3441 /* <p0:Collection[Object]> isa Collection[H] */
3442 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Collection__nit__POSetBucketsColorer___35dH
];
3443 cltype
= type_struct
->color
;
3444 idtype
= type_struct
->id
;
3445 if(cltype
>= p0
->type
->table_size
) {
3448 var1
= p0
->type
->type_table
[cltype
] == idtype
;
3450 if (unlikely(!var1
)) {
3451 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3452 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[H]", var_class_name
);
3453 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 354);
3456 /* Covariant cast for argument 1 (buckets) <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3457 /* <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3458 type_struct5
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetBucketsColorer___35dH__standard__Set__nit__POSetBucketsColorer___35dE
];
3459 cltype3
= type_struct5
->color
;
3460 idtype4
= type_struct5
->id
;
3461 if(cltype3
>= p1
->type
->table_size
) {
3464 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
3466 if (unlikely(!var2
)) {
3467 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
3468 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
3469 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 354);
3476 { /* Inline kernel#Int#unary - (var7) on <var7:Int> */
3486 var11
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[Object]>*/;
3491 var13
= ((short int (*)(val
* self
))(var_12
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_12
) /* is_ok on <var_12:Iterator[Object]>*/;
3495 var14
= ((val
* (*)(val
* self
))(var_12
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_12
) /* item on <var_12:Iterator[Object]>*/;
3499 var15
= nit___nit__POSetBucketsColorer___max_color(self
, var_holder
, var_buckets
);
3503 { /* Inline kernel#Int#> (var_color,var_min) on <var_color:Int> */
3504 /* Covariant cast for argument 0 (i) <var_min:Int> isa OTHER */
3505 /* <var_min:Int> isa OTHER */
3506 var18
= 1; /* easy <var_min:Int> isa OTHER*/
3507 if (unlikely(!var18
)) {
3508 var_class_name21
= type_standard__Int
.name
;
3509 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21
);
3510 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
3513 var22
= var_color
> var_min
;
3516 RET_LABEL17
:(void)0;
3520 var_min
= var_color
;
3524 ((void (*)(val
* self
))(var_12
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_12
) /* next on <var_12:Iterator[Object]>*/;
3530 BREAK_label
: (void)0;
3532 { /* Inline abstract_collection#Iterator#finish (var_12) on <var_12:Iterator[Object]> */
3533 RET_LABEL23
:(void)0;
3538 { /* Inline kernel#Int#+ (var_min,var24) on <var_min:Int> */
3539 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
3540 /* <var24:Int> isa OTHER */
3541 var27
= 1; /* easy <var24:Int> isa OTHER*/
3542 if (unlikely(!var27
)) {
3543 var_class_name30
= type_standard__Int
.name
;
3544 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30
);
3545 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
3548 var31
= var_min
+ var24
;
3551 RET_LABEL26
:(void)0;
3559 /* method coloring#POSetBucketsColorer#max_color for (self: POSetBucketsColorer[Object, Object], Object, Map[Object, Set[Object]]): Int */
3560 long nit___nit__POSetBucketsColorer___max_color(val
* self
, val
* p0
, val
* p1
) {
3561 long var
/* : Int */;
3562 short int var1
/* : Bool */;
3565 const struct type
* type_struct
;
3566 const char* var_class_name
;
3567 short int var2
/* : Bool */;
3570 const struct type
* type_struct5
;
3571 const char* var_class_name6
;
3572 val
* var_holder
/* var holder: Object */;
3573 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
3574 long var7
/* : Int */;
3575 long var8
/* : Int */;
3576 long var10
/* : Int */;
3577 long var_max
/* var max: Int */;
3578 val
* var11
/* : nullable Object */;
3579 val
* var_
/* var : Set[Object] */;
3580 val
* var12
/* : Iterator[nullable Object] */;
3581 val
* var_13
/* var : Iterator[Object] */;
3582 short int var14
/* : Bool */;
3583 val
* var15
/* : nullable Object */;
3584 val
* var_bucket
/* var bucket: Object */;
3585 val
* var16
/* : HashMap[Object, Int] */;
3586 val
* var18
/* : HashMap[Object, Int] */;
3587 short int var19
/* : Bool */;
3588 short int var20
/* : Bool */;
3589 val
* var21
/* : HashMap[Object, Int] */;
3590 val
* var23
/* : HashMap[Object, Int] */;
3591 val
* var24
/* : nullable Object */;
3592 long var25
/* : Int */;
3593 long var_color
/* var color: Int */;
3594 short int var26
/* : Bool */;
3595 short int var28
/* : Bool */;
3598 const char* var_class_name31
;
3599 short int var32
/* : Bool */;
3600 /* Covariant cast for argument 0 (holder) <p0:Object> isa H */
3601 /* <p0:Object> isa H */
3602 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetBucketsColorer___35dH
];
3603 cltype
= type_struct
->color
;
3604 idtype
= type_struct
->id
;
3605 if(cltype
>= p0
->type
->table_size
) {
3608 var1
= p0
->type
->type_table
[cltype
] == idtype
;
3610 if (unlikely(!var1
)) {
3611 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3612 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
3613 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 364);
3616 /* Covariant cast for argument 1 (buckets) <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3617 /* <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3618 type_struct5
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetBucketsColorer___35dH__standard__Set__nit__POSetBucketsColorer___35dE
];
3619 cltype3
= type_struct5
->color
;
3620 idtype4
= type_struct5
->id
;
3621 if(cltype3
>= p1
->type
->table_size
) {
3624 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
3626 if (unlikely(!var2
)) {
3627 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
3628 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
3629 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 364);
3636 { /* Inline kernel#Int#unary - (var7) on <var7:Int> */
3645 var11
= ((val
* (*)(val
* self
, val
* p0
))(var_buckets
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_holder
) /* [] on <var_buckets:Map[Object, Set[Object]]>*/;
3649 var12
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[Object]>*/;
3654 var14
= ((short int (*)(val
* self
))(var_13
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_13
) /* is_ok on <var_13:Iterator[Object]>*/;
3658 var15
= ((val
* (*)(val
* self
))(var_13
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_13
) /* item on <var_13:Iterator[Object]>*/;
3662 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3663 var18
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3664 if (unlikely(var18
== NULL
)) {
3665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3666 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 335);
3670 RET_LABEL17
:(void)0;
3674 var19
= standard___standard__MapRead___has_key(var16
, var_bucket
);
3682 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3683 var23
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3684 if (unlikely(var23
== NULL
)) {
3685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3686 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 335);
3690 RET_LABEL22
:(void)0;
3694 var24
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var21
, var_bucket
);
3696 var25
= ((struct instance_standard__Int
*)var24
)->value
; /* autounbox from nullable Object to Int */;
3699 { /* Inline kernel#Int#> (var_color,var_max) on <var_color:Int> */
3700 /* Covariant cast for argument 0 (i) <var_max:Int> isa OTHER */
3701 /* <var_max:Int> isa OTHER */
3702 var28
= 1; /* easy <var_max:Int> isa OTHER*/
3703 if (unlikely(!var28
)) {
3704 var_class_name31
= type_standard__Int
.name
;
3705 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31
);
3706 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
3709 var32
= var_color
> var_max
;
3712 RET_LABEL27
:(void)0;
3716 var_max
= var_color
;
3719 BREAK_label
: (void)0;
3721 ((void (*)(val
* self
))(var_13
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_13
) /* next on <var_13:Iterator[Object]>*/;
3727 BREAK_label33
: (void)0;
3729 { /* Inline abstract_collection#Iterator#finish (var_13) on <var_13:Iterator[Object]> */
3730 RET_LABEL34
:(void)0;
3738 /* method coloring#POSetBucketsColorer#is_color_free for (self: POSetBucketsColorer[Object, Object], Int, Object, Map[Object, Set[Object]]): Bool */
3739 short int nit___nit__POSetBucketsColorer___is_color_free(val
* self
, long p0
, val
* p1
, val
* p2
) {
3740 short int var
/* : Bool */;
3741 short int var1
/* : Bool */;
3744 const struct type
* type_struct
;
3745 const char* var_class_name
;
3746 short int var2
/* : Bool */;
3749 const struct type
* type_struct5
;
3750 const char* var_class_name6
;
3751 long var_color
/* var color: Int */;
3752 val
* var_holder
/* var holder: Object */;
3753 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
3754 val
* var7
/* : Map[Object, Set[Object]] */;
3755 val
* var9
/* : Map[Object, Set[Object]] */;
3756 short int var10
/* : Bool */;
3757 short int var11
/* : Bool */;
3758 short int var12
/* : Bool */;
3759 val
* var13
/* : Map[Object, Set[Object]] */;
3760 val
* var15
/* : Map[Object, Set[Object]] */;
3761 val
* var16
/* : nullable Object */;
3762 val
* var_
/* var : Set[Object] */;
3763 val
* var17
/* : Iterator[nullable Object] */;
3764 val
* var_18
/* var : Iterator[Object] */;
3765 short int var19
/* : Bool */;
3766 val
* var20
/* : nullable Object */;
3767 val
* var_conflict
/* var conflict: Object */;
3768 val
* var21
/* : nullable Object */;
3769 val
* var_22
/* var : Set[Object] */;
3770 val
* var23
/* : Iterator[nullable Object] */;
3771 val
* var_24
/* var : Iterator[Object] */;
3772 short int var25
/* : Bool */;
3773 val
* var26
/* : nullable Object */;
3774 val
* var_bucket
/* var bucket: Object */;
3775 val
* var27
/* : HashMap[Object, Int] */;
3776 val
* var29
/* : HashMap[Object, Int] */;
3777 short int var30
/* : Bool */;
3778 short int var31
/* : Bool */;
3779 val
* var32
/* : HashMap[Object, Int] */;
3780 val
* var34
/* : HashMap[Object, Int] */;
3781 val
* var35
/* : nullable Object */;
3782 short int var36
/* : Bool */;
3783 short int var38
/* : Bool */;
3784 long var39
/* : Int */;
3785 short int var40
/* : Bool */;
3786 short int var45
/* : Bool */;
3787 /* Covariant cast for argument 1 (holder) <p1:Object> isa H */
3788 /* <p1:Object> isa H */
3789 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetBucketsColorer___35dH
];
3790 cltype
= type_struct
->color
;
3791 idtype
= type_struct
->id
;
3792 if(cltype
>= p1
->type
->table_size
) {
3795 var1
= p1
->type
->type_table
[cltype
] == idtype
;
3797 if (unlikely(!var1
)) {
3798 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
3799 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
3800 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 375);
3803 /* Covariant cast for argument 2 (buckets) <p2:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3804 /* <p2:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3805 type_struct5
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetBucketsColorer___35dH__standard__Set__nit__POSetBucketsColorer___35dE
];
3806 cltype3
= type_struct5
->color
;
3807 idtype4
= type_struct5
->id
;
3808 if(cltype3
>= p2
->type
->table_size
) {
3811 var2
= p2
->type
->type_table
[cltype3
] == idtype4
;
3813 if (unlikely(!var2
)) {
3814 var_class_name6
= p2
== NULL ?
"null" : p2
->type
->name
;
3815 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
3816 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 375);
3823 { /* Inline coloring#POSetBucketsColorer#conflicts (self) on <self:POSetBucketsColorer[Object, Object]> */
3824 var9
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
3825 if (unlikely(var9
== NULL
)) {
3826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3827 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 337);
3835 var10
= standard___standard__MapRead___has_key(var7
, var_holder
);
3845 { /* Inline coloring#POSetBucketsColorer#conflicts (self) on <self:POSetBucketsColorer[Object, Object]> */
3846 var15
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
3847 if (unlikely(var15
== NULL
)) {
3848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3849 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 337);
3853 RET_LABEL14
:(void)0;
3857 var16
= ((val
* (*)(val
* self
, val
* p0
))(var13
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var13
, var_holder
) /* [] on <var13:Map[Object, Set[Object]]>*/;
3861 var17
= ((val
* (*)(val
* self
))(var_
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[Object]>*/;
3866 var19
= ((short int (*)(val
* self
))(var_18
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_18
) /* is_ok on <var_18:Iterator[Object]>*/;
3870 var20
= ((val
* (*)(val
* self
))(var_18
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_18
) /* item on <var_18:Iterator[Object]>*/;
3872 var_conflict
= var20
;
3874 var21
= ((val
* (*)(val
* self
, val
* p0
))(var_buckets
->class->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_conflict
) /* [] on <var_buckets:Map[Object, Set[Object]]>*/;
3878 var23
= ((val
* (*)(val
* self
))(var_22
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_22
) /* iterator on <var_22:Set[Object]>*/;
3883 var25
= ((short int (*)(val
* self
))(var_24
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_24
) /* is_ok on <var_24:Iterator[Object]>*/;
3887 var26
= ((val
* (*)(val
* self
))(var_24
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_24
) /* item on <var_24:Iterator[Object]>*/;
3891 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3892 var29
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3893 if (unlikely(var29
== NULL
)) {
3894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 335);
3899 RET_LABEL28
:(void)0;
3903 var30
= standard___standard__MapRead___has_key(var27
, var_bucket
);
3911 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3912 var34
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3913 if (unlikely(var34
== NULL
)) {
3914 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3915 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 335);
3919 RET_LABEL33
:(void)0;
3923 var35
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var32
, var_bucket
);
3926 { /* Inline kernel#Int#== (var35,var_color) on <var35:nullable Object(Int)> */
3927 var38
= (var35
!= NULL
) && (var35
->class == &class_standard__Int
);
3929 var39
= ((struct instance_standard__Int
*)var35
)->value
; /* autounbox from nullable Object to Int */;
3930 var38
= (var39
== var_color
);
3934 RET_LABEL37
:(void)0;
3943 BREAK_label
: (void)0;
3945 ((void (*)(val
* self
))(var_24
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_24
) /* next on <var_24:Iterator[Object]>*/;
3951 BREAK_label41
: (void)0;
3953 { /* Inline abstract_collection#Iterator#finish (var_24) on <var_24:Iterator[Object]> */
3954 RET_LABEL42
:(void)0;
3958 ((void (*)(val
* self
))(var_18
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_18
) /* next on <var_18:Iterator[Object]>*/;
3964 BREAK_label43
: (void)0;
3966 { /* Inline abstract_collection#Iterator#finish (var_18) on <var_18:Iterator[Object]> */
3967 RET_LABEL44
:(void)0;
3976 /* method coloring#POSetBucketsColorer#init for (self: POSetBucketsColorer[Object, Object]) */
3977 void nit___nit__POSetBucketsColorer___standard__kernel__Object__init(val
* self
) {
3979 ((void (*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__POSetBucketsColorer___standard__kernel__Object__init
]))(self
) /* init on <self:POSetBucketsColorer[Object, Object]>*/;