1 #include "nit__coloring.sep.0.h"
2 /* method coloring#POSetConflictGraph#core for (self: POSetConflictGraph[nullable Object]): HashSet[nullable Object] */
3 val
* nit___nit__POSetConflictGraph___core(val
* self
) {
4 val
* var
/* : HashSet[nullable Object] */;
5 val
* var1
/* : HashSet[nullable Object] */;
6 var1
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable 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[nullable Object]): HashSet[nullable Object] */
17 val
* nit___nit__POSetConflictGraph___border(val
* self
) {
18 val
* var
/* : HashSet[nullable Object] */;
19 val
* var1
/* : HashSet[nullable Object] */;
20 var1
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable 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[nullable Object]): HashSet[nullable Object] */
31 val
* nit___nit__POSetConflictGraph___crown(val
* self
) {
32 val
* var
/* : HashSet[nullable Object] */;
33 val
* var1
/* : HashSet[nullable Object] */;
34 var1
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[nullable 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[nullable Object]): HashMap[nullable Object, Set[nullable Object]] */
45 val
* nit___nit__POSetConflictGraph___conflicts(val
* self
) {
46 val
* var
/* : HashMap[nullable Object, Set[nullable Object]] */;
47 val
* var1
/* : HashMap[nullable Object, Set[nullable Object]] */;
48 var1
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable 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[nullable Object]): POSet[nullable Object] */
59 val
* nit___nit__POSetConflictGraph___poset(val
* self
) {
60 val
* var
/* : POSet[nullable Object] */;
61 val
* var1
/* : POSet[nullable Object] */;
62 var1
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable 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[nullable Object], POSet[nullable 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[nullable Object]> isa POSet[E] */
80 /* <p0:POSet[nullable 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[nullable Object]> */
98 /* method coloring#POSetConflictGraph#order for (self: POSetConflictGraph[nullable Object]): Array[nullable Object] */
99 val
* nit___nit__POSetConflictGraph___order(val
* self
) {
100 val
* var
/* : Array[nullable Object] */;
101 val
* var1
/* : Array[nullable Object] */;
102 var1
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___order
].val
; /* _order on <self:POSetConflictGraph[nullable Object]> */
103 if (unlikely(var1
== NULL
)) {
104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _order");
105 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 51);
112 /* method coloring#POSetConflictGraph#order= for (self: POSetConflictGraph[nullable Object], Array[nullable Object]) */
113 void nit___nit__POSetConflictGraph___order_61d(val
* self
, val
* p0
) {
114 short int var
/* : Bool */;
117 const struct type
* type_struct
;
118 const char* var_class_name
;
119 /* Covariant cast for argument 0 (order) <p0:Array[nullable Object]> isa Array[E] */
120 /* <p0:Array[nullable Object]> isa Array[E] */
121 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Array__nit__POSetConflictGraph___35dE
];
122 cltype
= type_struct
->color
;
123 idtype
= type_struct
->id
;
124 if(cltype
>= p0
->type
->table_size
) {
127 var
= p0
->type
->type_table
[cltype
] == idtype
;
129 if (unlikely(!var
)) {
130 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
131 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[E]", var_class_name
);
132 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 51);
135 self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___order
].val
= p0
; /* _order on <self:POSetConflictGraph[nullable Object]> */
138 /* method coloring#POSetConflictGraph#init for (self: POSetConflictGraph[nullable Object]) */
139 void nit___nit__POSetConflictGraph___standard__kernel__Object__init(val
* self
) {
140 val
* var
/* : POSet[nullable Object] */;
141 val
* var2
/* : POSet[nullable Object] */;
142 val
* var3
/* : POSet[nullable Object] */;
143 val
* var5
/* : POSet[nullable Object] */;
144 val
* var6
/* : Array[nullable Object] */;
145 short int var8
/* : Bool */;
148 const struct type
* type_struct
;
149 const char* var_class_name
;
151 nit___nit__POSetConflictGraph___extract_core(self
); /* Direct call coloring#POSetConflictGraph#extract_core on <self:POSetConflictGraph[nullable Object]>*/
154 nit___nit__POSetConflictGraph___extract_border(self
); /* Direct call coloring#POSetConflictGraph#extract_border on <self:POSetConflictGraph[nullable Object]>*/
157 nit___nit__POSetConflictGraph___extract_crown(self
); /* Direct call coloring#POSetConflictGraph#extract_crown on <self:POSetConflictGraph[nullable Object]>*/
160 nit___nit__POSetConflictGraph___compute_conflicts(self
); /* Direct call coloring#POSetConflictGraph#compute_conflicts on <self:POSetConflictGraph[nullable Object]>*/
163 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[nullable Object]> */
164 var2
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
165 if (unlikely(var2
== NULL
)) {
166 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
167 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
175 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[nullable Object]> */
176 var5
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
177 if (unlikely(var5
== NULL
)) {
178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
179 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
187 var6
= poset___poset__POSet___linearize(var
, var3
);
190 { /* Inline coloring#POSetConflictGraph#order= (self,var6) on <self:POSetConflictGraph[nullable Object]> */
191 /* Covariant cast for argument 0 (order) <var6:Array[nullable Object]> isa Array[E] */
192 /* <var6:Array[nullable Object]> isa Array[E] */
193 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Array__nit__POSetConflictGraph___35dE
];
194 cltype
= type_struct
->color
;
195 idtype
= type_struct
->id
;
196 if(cltype
>= var6
->type
->table_size
) {
199 var8
= var6
->type
->type_table
[cltype
] == idtype
;
201 if (unlikely(!var8
)) {
202 var_class_name
= var6
== NULL ?
"null" : var6
->type
->name
;
203 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[E]", var_class_name
);
204 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 51);
207 self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___order
].val
= var6
; /* _order on <self:POSetConflictGraph[nullable Object]> */
213 /* method coloring#POSetConflictGraph#extract_core for (self: POSetConflictGraph[nullable Object]) */
214 void nit___nit__POSetConflictGraph___extract_core(val
* self
) {
215 val
* var
/* : HashSet[nullable Object] */;
216 val
* var2
/* : HashSet[nullable Object] */;
217 val
* var3
/* : POSet[nullable Object] */;
218 val
* var5
/* : POSet[nullable Object] */;
219 val
* var_
/* var : POSet[nullable Object] */;
220 val
* var6
/* : Iterator[nullable Object] */;
221 val
* var_7
/* var : Iterator[nullable Object] */;
222 short int var8
/* : Bool */;
223 val
* var9
/* : nullable Object */;
224 val
* var_e
/* var e: nullable Object */;
225 val
* var10
/* : POSet[nullable Object] */;
226 val
* var12
/* : POSet[nullable Object] */;
227 val
* var13
/* : POSetElement[nullable Object] */;
228 val
* var14
/* : Collection[nullable Object] */;
229 long var15
/* : Int */;
230 short int var16
/* : Bool */;
231 short int var18
/* : Bool */;
234 const char* var_class_name
;
235 short int var19
/* : Bool */;
236 val
* var20
/* : HashSet[nullable Object] */;
237 val
* var22
/* : HashSet[nullable Object] */;
238 val
* var23
/* : POSet[nullable Object] */;
239 val
* var25
/* : POSet[nullable Object] */;
240 val
* var26
/* : POSetElement[nullable Object] */;
241 val
* var27
/* : Collection[nullable Object] */;
243 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[nullable Object]> */
244 var2
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
245 if (unlikely(var2
== NULL
)) {
246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
247 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
255 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[nullable Object]>*/
258 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[nullable Object]> */
259 var5
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
260 if (unlikely(var5
== NULL
)) {
261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
262 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
271 var6
= poset___poset__POSet___standard__abstract_collection__Collection__iterator(var_
);
276 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[nullable Object]>*/
280 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[nullable Object]>*/
284 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[nullable Object]> */
285 var12
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
286 if (unlikely(var12
== NULL
)) {
287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
288 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
296 var13
= poset___poset__POSet____91d_93d(var10
, var_e
);
299 var14
= poset___poset__POSetElement___direct_greaters(var13
);
302 var15
= ((long(*)(val
* self
))((((long)var14
&3)?class_info
[((long)var14
&3)]:var14
->class)->vft
[COLOR_standard__abstract_collection__Collection__length
]))(var14
); /* length on <var14:Collection[nullable Object]>*/
305 { /* Inline kernel#Int#> (var15,1l) on <var15:Int> */
306 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
307 /* <1l:Int> isa OTHER */
308 var18
= 1; /* easy <1l:Int> isa OTHER*/
309 if (unlikely(!var18
)) {
310 var_class_name
= type_standard__Int
.name
;
311 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
312 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
323 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[nullable Object]> */
324 var22
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
325 if (unlikely(var22
== NULL
)) {
326 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
327 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
335 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[nullable Object]> */
336 var25
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
337 if (unlikely(var25
== NULL
)) {
338 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
339 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
347 var26
= poset___poset__POSet____91d_93d(var23
, var_e
);
350 var27
= poset___poset__POSetElement___greaters(var26
);
353 standard___standard__SimpleCollection___add_all(var20
, var27
); /* Direct call abstract_collection#SimpleCollection#add_all on <var20:HashSet[nullable Object]>*/
358 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[nullable Object]>*/
364 BREAK_label
: (void)0;
366 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[nullable Object]>*/
370 /* method coloring#POSetConflictGraph#extract_border for (self: POSetConflictGraph[nullable Object]) */
371 void nit___nit__POSetConflictGraph___extract_border(val
* self
) {
372 val
* var
/* : HashSet[nullable Object] */;
373 val
* var2
/* : HashSet[nullable Object] */;
374 val
* var3
/* : HashSet[nullable Object] */;
375 val
* var5
/* : HashSet[nullable Object] */;
376 val
* var_
/* var : HashSet[nullable Object] */;
377 val
* var6
/* : Iterator[nullable Object] */;
378 val
* var_7
/* var : Iterator[nullable Object] */;
379 short int var8
/* : Bool */;
380 val
* var9
/* : nullable Object */;
381 val
* var_e
/* var e: nullable Object */;
382 short int var10
/* : Bool */;
383 short int var11
/* : Bool */;
384 val
* var12
/* : HashSet[nullable Object] */;
385 val
* var14
/* : HashSet[nullable Object] */;
386 val
* var16
/* : HashSet[nullable Object] */;
387 val
* var18
/* : HashSet[nullable Object] */;
388 val
* var_19
/* var : HashSet[nullable Object] */;
389 val
* var20
/* : Iterator[nullable Object] */;
390 val
* var_21
/* var : Iterator[nullable Object] */;
391 short int var22
/* : Bool */;
392 val
* var23
/* : nullable Object */;
393 val
* var_e24
/* var e: nullable Object */;
394 val
* var25
/* : HashSet[nullable Object] */;
395 val
* var27
/* : HashSet[nullable Object] */;
397 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[nullable Object]> */
398 var2
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable Object]> */
399 if (unlikely(var2
== NULL
)) {
400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
401 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
409 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[nullable Object]>*/
412 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[nullable Object]> */
413 var5
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
414 if (unlikely(var5
== NULL
)) {
415 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
416 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
425 var6
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
430 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[nullable Object]>*/
434 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[nullable Object]>*/
438 var10
= nit___nit__POSetConflictGraph___is_border(self
, var_e
);
446 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[nullable Object]> */
447 var14
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable Object]> */
448 if (unlikely(var14
== NULL
)) {
449 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
450 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
458 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var12
, var_e
); /* Direct call hash_collection#HashSet#add on <var12:HashSet[nullable Object]>*/
460 BREAK_label
: (void)0;
462 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[nullable Object]>*/
468 BREAK_label15
: (void)0;
470 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[nullable Object]>*/
473 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[nullable Object]> */
474 var18
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable Object]> */
475 if (unlikely(var18
== NULL
)) {
476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
477 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
486 var20
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_19
);
491 var22
= ((short int(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_21
); /* is_ok on <var_21:Iterator[nullable Object]>*/
495 var23
= ((val
*(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_21
); /* item on <var_21:Iterator[nullable Object]>*/
499 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[nullable Object]> */
500 var27
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
501 if (unlikely(var27
== NULL
)) {
502 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
503 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
511 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__remove(var25
, var_e24
); /* Direct call hash_collection#HashSet#remove on <var25:HashSet[nullable Object]>*/
514 ((void(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_21
); /* next on <var_21:Iterator[nullable Object]>*/
520 BREAK_label28
: (void)0;
522 ((void(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_21
); /* finish on <var_21:Iterator[nullable Object]>*/
526 /* method coloring#POSetConflictGraph#is_border for (self: POSetConflictGraph[nullable Object], nullable Object): Bool */
527 short int nit___nit__POSetConflictGraph___is_border(val
* self
, val
* p0
) {
528 short int var
/* : Bool */;
529 short int var1
/* : Bool */;
532 const struct type
* type_struct
;
533 short int is_nullable
;
534 const char* var_class_name
;
535 val
* var_e
/* var e: nullable Object */;
536 val
* var2
/* : POSet[nullable Object] */;
537 val
* var4
/* : POSet[nullable Object] */;
538 val
* var5
/* : POSetElement[nullable Object] */;
539 val
* var6
/* : Collection[nullable Object] */;
540 val
* var_
/* var : Collection[nullable Object] */;
541 val
* var7
/* : Iterator[nullable Object] */;
542 val
* var_8
/* var : Iterator[nullable Object] */;
543 short int var9
/* : Bool */;
544 val
* var10
/* : nullable Object */;
545 val
* var_child
/* var child: nullable Object */;
546 val
* var11
/* : HashSet[nullable Object] */;
547 val
* var13
/* : HashSet[nullable Object] */;
548 short int var14
/* : Bool */;
549 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
550 /* <p0:nullable Object> isa E */
551 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph___35dE
];
552 cltype
= type_struct
->color
;
553 idtype
= type_struct
->id
;
554 is_nullable
= type_struct
->is_nullable
;
558 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
561 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
564 if (unlikely(!var1
)) {
565 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
566 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
567 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 83);
572 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[nullable Object]> */
573 var4
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
574 if (unlikely(var4
== NULL
)) {
575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
576 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
584 var5
= poset___poset__POSet____91d_93d(var2
, var_e
);
587 var6
= poset___poset__POSetElement___direct_smallers(var5
);
591 var7
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[nullable Object]>*/
596 var9
= ((short int(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_8
); /* is_ok on <var_8:Iterator[nullable Object]>*/
600 var10
= ((val
*(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_8
); /* item on <var_8:Iterator[nullable Object]>*/
604 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[nullable Object]> */
605 var13
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
606 if (unlikely(var13
== NULL
)) {
607 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
608 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
616 var14
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var11
, var_child
);
624 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_8
); /* next on <var_8:Iterator[nullable Object]>*/
630 BREAK_label
: (void)0;
632 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_8
); /* finish on <var_8:Iterator[nullable Object]>*/
639 /* method coloring#POSetConflictGraph#extract_crown for (self: POSetConflictGraph[nullable Object]) */
640 void nit___nit__POSetConflictGraph___extract_crown(val
* self
) {
641 val
* var
/* : HashSet[nullable Object] */;
642 val
* var2
/* : HashSet[nullable Object] */;
643 val
* var3
/* : POSet[nullable Object] */;
644 val
* var5
/* : POSet[nullable Object] */;
645 val
* var_
/* var : POSet[nullable Object] */;
646 val
* var6
/* : Iterator[nullable Object] */;
647 val
* var_7
/* var : Iterator[nullable Object] */;
648 short int var8
/* : Bool */;
649 val
* var9
/* : nullable Object */;
650 val
* var_e
/* var e: nullable Object */;
651 short int var10
/* : Bool */;
652 val
* var11
/* : HashSet[nullable Object] */;
653 val
* var13
/* : HashSet[nullable Object] */;
654 short int var14
/* : Bool */;
655 short int var15
/* : Bool */;
656 short int var_16
/* var : Bool */;
657 val
* var17
/* : HashSet[nullable Object] */;
658 val
* var19
/* : HashSet[nullable Object] */;
659 short int var20
/* : Bool */;
660 short int var21
/* : Bool */;
661 val
* var22
/* : HashSet[nullable Object] */;
662 val
* var24
/* : HashSet[nullable Object] */;
664 { /* Inline coloring#POSetConflictGraph#crown (self) on <self:POSetConflictGraph[nullable Object]> */
665 var2
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[nullable Object]> */
666 if (unlikely(var2
== NULL
)) {
667 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
668 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 34);
676 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[nullable Object]>*/
679 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[nullable Object]> */
680 var5
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
681 if (unlikely(var5
== NULL
)) {
682 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
683 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
692 var6
= poset___poset__POSet___standard__abstract_collection__Collection__iterator(var_
);
697 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[nullable Object]>*/
701 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[nullable Object]>*/
705 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[nullable Object]> */
706 var13
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
707 if (unlikely(var13
== NULL
)) {
708 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
709 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
717 var14
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var11
, var_e
);
723 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[nullable Object]> */
724 var19
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable Object]> */
725 if (unlikely(var19
== NULL
)) {
726 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
727 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
735 var20
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var17
, var_e
);
744 { /* Inline coloring#POSetConflictGraph#crown (self) on <self:POSetConflictGraph[nullable Object]> */
745 var24
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[nullable Object]> */
746 if (unlikely(var24
== NULL
)) {
747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
748 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 34);
756 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var22
, var_e
); /* Direct call hash_collection#HashSet#add on <var22:HashSet[nullable Object]>*/
761 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[nullable Object]>*/
767 BREAK_label
: (void)0;
769 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[nullable Object]>*/
773 /* method coloring#POSetConflictGraph#compute_conflicts for (self: POSetConflictGraph[nullable Object]) */
774 void nit___nit__POSetConflictGraph___compute_conflicts(val
* self
) {
775 val
* var
/* : HashMap[nullable Object, Set[nullable Object]] */;
776 val
* var2
/* : HashMap[nullable Object, Set[nullable Object]] */;
777 val
* var3
/* : HashSet[nullable Object] */;
778 val
* var5
/* : HashSet[nullable Object] */;
779 val
* var_
/* var : HashSet[nullable Object] */;
780 val
* var6
/* : Iterator[nullable Object] */;
781 val
* var_7
/* var : Iterator[nullable Object] */;
782 short int var8
/* : Bool */;
783 val
* var9
/* : nullable Object */;
784 val
* var_e
/* var e: nullable Object */;
785 val
* var10
/* : POSet[nullable Object] */;
786 val
* var12
/* : POSet[nullable Object] */;
787 val
* var13
/* : POSetElement[nullable Object] */;
788 val
* var14
/* : Collection[nullable Object] */;
790 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
791 var2
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
792 if (unlikely(var2
== NULL
)) {
793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
794 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
802 standard___standard__HashMap___standard__abstract_collection__Map__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[nullable Object, Set[nullable Object]]>*/
805 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[nullable Object]> */
806 var5
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable Object]> */
807 if (unlikely(var5
== NULL
)) {
808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
809 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
818 var6
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
823 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[nullable Object]>*/
827 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[nullable Object]>*/
831 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[nullable Object]> */
832 var12
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
833 if (unlikely(var12
== NULL
)) {
834 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
835 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
843 var13
= poset___poset__POSet____91d_93d(var10
, var_e
);
846 var14
= poset___poset__POSetElement___greaters(var13
);
849 nit___nit__POSetConflictGraph___add_conflicts(self
, var14
); /* Direct call coloring#POSetConflictGraph#add_conflicts on <self:POSetConflictGraph[nullable Object]>*/
852 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[nullable Object]>*/
858 BREAK_label
: (void)0;
860 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[nullable Object]>*/
864 /* method coloring#POSetConflictGraph#add_conflict for (self: POSetConflictGraph[nullable Object], nullable Object, nullable Object) */
865 void nit___nit__POSetConflictGraph___add_conflict(val
* self
, val
* p0
, val
* p1
) {
866 short int var
/* : Bool */;
869 const struct type
* type_struct
;
870 short int is_nullable
;
871 const char* var_class_name
;
872 short int var1
/* : Bool */;
875 const struct type
* type_struct4
;
876 short int is_nullable5
;
877 const char* var_class_name6
;
878 val
* var_e
/* var e: nullable Object */;
879 val
* var_o
/* var o: nullable Object */;
880 val
* var7
/* : HashMap[nullable Object, Set[nullable Object]] */;
881 val
* var9
/* : HashMap[nullable Object, Set[nullable Object]] */;
882 short int var10
/* : Bool */;
883 short int var11
/* : Bool */;
884 val
* var12
/* : HashMap[nullable Object, Set[nullable Object]] */;
885 val
* var14
/* : HashMap[nullable Object, Set[nullable Object]] */;
886 val
* var15
/* : HashSet[nullable Object] */;
887 val
* var16
/* : HashMap[nullable Object, Set[nullable Object]] */;
888 val
* var18
/* : HashMap[nullable Object, Set[nullable Object]] */;
889 short int var19
/* : Bool */;
890 short int var20
/* : Bool */;
891 val
* var21
/* : HashMap[nullable Object, Set[nullable Object]] */;
892 val
* var23
/* : HashMap[nullable Object, Set[nullable Object]] */;
893 val
* var24
/* : HashSet[nullable Object] */;
894 val
* var25
/* : HashMap[nullable Object, Set[nullable Object]] */;
895 val
* var27
/* : HashMap[nullable Object, Set[nullable Object]] */;
896 val
* var28
/* : nullable Object */;
897 val
* var29
/* : HashMap[nullable Object, Set[nullable Object]] */;
898 val
* var31
/* : HashMap[nullable Object, Set[nullable Object]] */;
899 val
* var32
/* : nullable Object */;
900 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
901 /* <p0:nullable Object> isa E */
902 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph___35dE
];
903 cltype
= type_struct
->color
;
904 idtype
= type_struct
->id
;
905 is_nullable
= type_struct
->is_nullable
;
909 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
912 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
915 if (unlikely(!var
)) {
916 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
917 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
918 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 105);
921 /* Covariant cast for argument 1 (o) <p1:nullable Object> isa E */
922 /* <p1:nullable Object> isa E */
923 type_struct4
= self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph___35dE
];
924 cltype2
= type_struct4
->color
;
925 idtype3
= type_struct4
->id
;
926 is_nullable5
= type_struct4
->is_nullable
;
930 if(cltype2
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
933 var1
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype2
] == idtype3
;
936 if (unlikely(!var1
)) {
937 var_class_name6
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
938 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name6
);
939 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 105);
945 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
946 var9
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
947 if (unlikely(var9
== NULL
)) {
948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
949 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
957 var10
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var7
, var_e
);
962 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
963 var14
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
964 if (unlikely(var14
== NULL
)) {
965 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
966 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
973 var15
= NEW_standard__HashSet(self
->type
->resolution_table
->types
[COLOR_standard__HashSet__nit__POSetConflictGraph___35dE
]);
975 standard___standard__HashSet___standard__kernel__Object__init(var15
); /* Direct call hash_collection#HashSet#init on <var15:HashSet[nullable Object]>*/
978 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var12
, var_e
, var15
); /* Direct call hash_collection#HashMap#[]= on <var12:HashMap[nullable Object, Set[nullable Object]]>*/
983 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
984 var18
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
985 if (unlikely(var18
== NULL
)) {
986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
987 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
995 var19
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var16
, var_o
);
1000 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
1001 var23
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
1002 if (unlikely(var23
== NULL
)) {
1003 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1004 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
1008 RET_LABEL22
:(void)0;
1011 var24
= NEW_standard__HashSet(self
->type
->resolution_table
->types
[COLOR_standard__HashSet__nit__POSetConflictGraph___35dE
]);
1013 standard___standard__HashSet___standard__kernel__Object__init(var24
); /* Direct call hash_collection#HashSet#init on <var24:HashSet[nullable Object]>*/
1016 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var21
, var_o
, var24
); /* Direct call hash_collection#HashMap#[]= on <var21:HashMap[nullable Object, Set[nullable Object]]>*/
1021 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
1022 var27
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
1023 if (unlikely(var27
== NULL
)) {
1024 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1025 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
1029 RET_LABEL26
:(void)0;
1033 var28
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var25
, var_e
);
1036 ((void(*)(val
* self
, val
* p0
))((((long)var28
&3)?class_info
[((long)var28
&3)]:var28
->class)->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var28
, var_o
); /* add on <var28:nullable Object(Set[nullable Object])>*/
1039 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
1040 var31
= self
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
1041 if (unlikely(var31
== NULL
)) {
1042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1043 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
1047 RET_LABEL30
:(void)0;
1051 var32
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var29
, var_o
);
1054 ((void(*)(val
* self
, val
* p0
))((((long)var32
&3)?class_info
[((long)var32
&3)]:var32
->class)->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var32
, var_e
); /* add on <var32:nullable Object(Set[nullable Object])>*/
1058 /* method coloring#POSetConflictGraph#add_conflicts for (self: POSetConflictGraph[nullable Object], Collection[nullable Object]) */
1059 void nit___nit__POSetConflictGraph___add_conflicts(val
* self
, val
* p0
) {
1060 short int var
/* : Bool */;
1063 const struct type
* type_struct
;
1064 const char* var_class_name
;
1065 val
* var_es
/* var es: Collection[nullable Object] */;
1066 val
* var_
/* var : Collection[nullable Object] */;
1067 val
* var1
/* : Iterator[nullable Object] */;
1068 val
* var_2
/* var : Iterator[nullable Object] */;
1069 short int var3
/* : Bool */;
1070 val
* var4
/* : nullable Object */;
1071 val
* var_e1
/* var e1: nullable Object */;
1072 val
* var_5
/* var : Collection[nullable Object] */;
1073 val
* var6
/* : Iterator[nullable Object] */;
1074 val
* var_7
/* var : Iterator[nullable Object] */;
1075 short int var8
/* : Bool */;
1076 val
* var9
/* : nullable Object */;
1077 val
* var_e2
/* var e2: nullable Object */;
1078 /* Covariant cast for argument 0 (es) <p0:Collection[nullable Object]> isa Collection[E] */
1079 /* <p0:Collection[nullable Object]> isa Collection[E] */
1080 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Collection__nit__POSetConflictGraph___35dE
];
1081 cltype
= type_struct
->color
;
1082 idtype
= type_struct
->id
;
1083 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
1086 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
1088 if (unlikely(!var
)) {
1089 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
1090 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name
);
1091 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 112);
1097 var1
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[nullable Object]>*/
1102 var3
= ((short int(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_2
); /* is_ok on <var_2:Iterator[nullable Object]>*/
1106 var4
= ((val
*(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_2
); /* item on <var_2:Iterator[nullable Object]>*/
1111 var6
= ((val
*(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_5
); /* iterator on <var_5:Collection[nullable Object]>*/
1116 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[nullable Object]>*/
1120 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[nullable Object]>*/
1124 nit___nit__POSetConflictGraph___add_conflict(self
, var_e1
, var_e2
); /* Direct call coloring#POSetConflictGraph#add_conflict on <self:POSetConflictGraph[nullable Object]>*/
1127 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[nullable Object]>*/
1133 BREAK_label
: (void)0;
1135 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[nullable Object]>*/
1138 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_2
); /* next on <var_2:Iterator[nullable Object]>*/
1144 BREAK_label10
: (void)0;
1146 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_2
); /* finish on <var_2:Iterator[nullable Object]>*/
1150 /* method coloring#POSet#to_conflict_graph for (self: POSet[nullable Object]): POSetConflictGraph[nullable Object] */
1151 val
* nit__coloring___poset__POSet___to_conflict_graph(val
* self
) {
1152 val
* var
/* : POSetConflictGraph[nullable Object] */;
1153 val
* var1
/* : POSetConflictGraph[nullable Object] */;
1154 var1
= NEW_nit__POSetConflictGraph(self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph__poset__POSet___35dE
]);
1156 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_nit__coloring__POSetConflictGraph__poset_61d
]))(var1
, self
); /* poset= on <var1:POSetConflictGraph[nullable Object]>*/
1159 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_standard__kernel__Object__init
]))(var1
); /* init on <var1:POSetConflictGraph[nullable Object]>*/
1166 /* method coloring#POSetColorer#is_colored for (self: POSetColorer[Object]): Bool */
1167 short int nit___nit__POSetColorer___is_colored(val
* self
) {
1168 short int var
/* : Bool */;
1169 short int var1
/* : Bool */;
1170 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1175 /* method coloring#POSetColorer#is_colored= for (self: POSetColorer[Object], Bool) */
1176 void nit___nit__POSetColorer___is_colored_61d(val
* self
, short int p0
) {
1177 self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
= p0
; /* _is_colored on <self:POSetColorer[Object]> */
1180 /* method coloring#POSetColorer#ids for (self: POSetColorer[Object]): Map[Object, Int] */
1181 val
* nit___nit__POSetColorer___ids(val
* self
) {
1182 val
* var
/* : Map[Object, Int] */;
1183 short int var1
/* : Bool */;
1184 short int var3
/* : Bool */;
1185 val
* var4
/* : HashMap[Object, Int] */;
1186 val
* var6
/* : HashMap[Object, Int] */;
1188 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1189 var3
= self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1194 if (unlikely(!var1
)) {
1195 PRINT_ERROR("Runtime error: %s", "Assert failed");
1196 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 176);
1200 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1201 var6
= self
->attrs
[COLOR_nit__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1202 if (unlikely(var6
== NULL
)) {
1203 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1204 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 179);
1216 /* method coloring#POSetColorer#ids_cache for (self: POSetColorer[Object]): HashMap[Object, Int] */
1217 val
* nit___nit__POSetColorer___ids_cache(val
* self
) {
1218 val
* var
/* : HashMap[Object, Int] */;
1219 val
* var1
/* : HashMap[Object, Int] */;
1220 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1221 if (unlikely(var1
== NULL
)) {
1222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1223 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 179);
1230 /* method coloring#POSetColorer#colors for (self: POSetColorer[Object]): Map[Object, Int] */
1231 val
* nit___nit__POSetColorer___colors(val
* self
) {
1232 val
* var
/* : Map[Object, Int] */;
1233 short int var1
/* : Bool */;
1234 short int var3
/* : Bool */;
1235 val
* var4
/* : HashMap[Object, Int] */;
1236 val
* var6
/* : HashMap[Object, Int] */;
1238 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1239 var3
= self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1244 if (unlikely(!var1
)) {
1245 PRINT_ERROR("Runtime error: %s", "Assert failed");
1246 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 184);
1250 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
1251 var6
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1252 if (unlikely(var6
== NULL
)) {
1253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1254 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 187);
1266 /* method coloring#POSetColorer#colors_cache for (self: POSetColorer[Object]): HashMap[Object, Int] */
1267 val
* nit___nit__POSetColorer___colors_cache(val
* self
) {
1268 val
* var
/* : HashMap[Object, Int] */;
1269 val
* var1
/* : HashMap[Object, Int] */;
1270 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1271 if (unlikely(var1
== NULL
)) {
1272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1273 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 187);
1280 /* method coloring#POSetColorer#poset_cache for (self: POSetColorer[Object]): POSet[Object] */
1281 val
* nit___nit__POSetColorer___poset_cache(val
* self
) {
1282 val
* var
/* : POSet[Object] */;
1283 val
* var1
/* : POSet[Object] */;
1284 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1285 if (unlikely(var1
== NULL
)) {
1286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1287 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1294 /* method coloring#POSetColorer#poset_cache= for (self: POSetColorer[Object], POSet[Object]) */
1295 void nit___nit__POSetColorer___poset_cache_61d(val
* self
, val
* p0
) {
1296 short int var
/* : Bool */;
1299 const struct type
* type_struct
;
1300 const char* var_class_name
;
1301 /* Covariant cast for argument 0 (poset_cache) <p0:POSet[Object]> isa POSet[E] */
1302 /* <p0:POSet[Object]> isa POSet[E] */
1303 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nit__POSetColorer___35dE
];
1304 cltype
= type_struct
->color
;
1305 idtype
= type_struct
->id
;
1306 if(cltype
>= p0
->type
->table_size
) {
1309 var
= p0
->type
->type_table
[cltype
] == idtype
;
1311 if (unlikely(!var
)) {
1312 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1313 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
1314 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1317 self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
= p0
; /* _poset_cache on <self:POSetColorer[Object]> */
1320 /* method coloring#POSetColorer#conflicts for (self: POSetColorer[Object]): Map[Object, Set[Object]] */
1321 val
* nit___nit__POSetColorer___conflicts(val
* self
) {
1322 val
* var
/* : Map[Object, Set[Object]] */;
1323 short int var1
/* : Bool */;
1324 short int var3
/* : Bool */;
1325 val
* var4
/* : Map[Object, Set[Object]] */;
1326 val
* var6
/* : Map[Object, Set[Object]] */;
1328 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1329 var3
= self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1334 if (unlikely(!var1
)) {
1335 PRINT_ERROR("Runtime error: %s", "Assert failed");
1336 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 198);
1340 { /* Inline coloring#POSetColorer#conflicts_cache (self) on <self:POSetColorer[Object]> */
1341 var6
= self
->attrs
[COLOR_nit__coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1342 if (unlikely(var6
== NULL
)) {
1343 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1344 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 201);
1356 /* method coloring#POSetColorer#conflicts_cache for (self: POSetColorer[Object]): Map[Object, Set[Object]] */
1357 val
* nit___nit__POSetColorer___conflicts_cache(val
* self
) {
1358 val
* var
/* : Map[Object, Set[Object]] */;
1359 val
* var1
/* : Map[Object, Set[Object]] */;
1360 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1361 if (unlikely(var1
== NULL
)) {
1362 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1363 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 201);
1370 /* method coloring#POSetColorer#conflicts_cache= for (self: POSetColorer[Object], Map[Object, Set[Object]]) */
1371 void nit___nit__POSetColorer___conflicts_cache_61d(val
* self
, val
* p0
) {
1372 short int var
/* : Bool */;
1375 const struct type
* type_struct
;
1376 const char* var_class_name
;
1377 /* Covariant cast for argument 0 (conflicts_cache) <p0:Map[Object, Set[Object]]> isa Map[E, Set[E]] */
1378 /* <p0:Map[Object, Set[Object]]> isa Map[E, Set[E]] */
1379 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetColorer___35dE__standard__Set__nit__POSetColorer___35dE
];
1380 cltype
= type_struct
->color
;
1381 idtype
= type_struct
->id
;
1382 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
1385 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
1387 if (unlikely(!var
)) {
1388 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
1389 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name
);
1390 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 201);
1393 self
->attrs
[COLOR_nit__coloring__POSetColorer___conflicts_cache
].val
= p0
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1396 /* method coloring#POSetColorer#graph for (self: POSetColorer[Object]): POSetConflictGraph[Object] */
1397 val
* nit___nit__POSetColorer___graph(val
* self
) {
1398 val
* var
/* : POSetConflictGraph[Object] */;
1399 val
* var1
/* : POSetConflictGraph[Object] */;
1400 var1
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1401 if (unlikely(var1
== NULL
)) {
1402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1403 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 203);
1410 /* method coloring#POSetColorer#graph= for (self: POSetColorer[Object], POSetConflictGraph[Object]) */
1411 void nit___nit__POSetColorer___graph_61d(val
* self
, val
* p0
) {
1412 short int var
/* : Bool */;
1415 const struct type
* type_struct
;
1416 const char* var_class_name
;
1417 /* Covariant cast for argument 0 (graph) <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1418 /* <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1419 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph__nit__POSetColorer___35dE
];
1420 cltype
= type_struct
->color
;
1421 idtype
= type_struct
->id
;
1422 if(cltype
>= p0
->type
->table_size
) {
1425 var
= p0
->type
->type_table
[cltype
] == idtype
;
1427 if (unlikely(!var
)) {
1428 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1429 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name
);
1430 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 203);
1433 self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
= p0
; /* _graph on <self:POSetColorer[Object]> */
1436 /* method coloring#POSetColorer#colorize for (self: POSetColorer[Object], POSet[Object]) */
1437 void nit___nit__POSetColorer___colorize(val
* self
, val
* p0
) {
1438 short int var
/* : Bool */;
1441 const struct type
* type_struct
;
1442 const char* var_class_name
;
1443 val
* var_poset
/* var poset: POSet[Object] */;
1444 short int var2
/* : Bool */;
1447 const struct type
* type_struct5
;
1448 const char* var_class_name6
;
1449 val
* var7
/* : POSetConflictGraph[Object] */;
1450 short int var9
/* : Bool */;
1453 const struct type
* type_struct12
;
1454 const char* var_class_name13
;
1455 val
* var14
/* : POSetConflictGraph[Object] */;
1456 val
* var16
/* : POSetConflictGraph[Object] */;
1457 val
* var17
/* : HashMap[nullable Object, Set[nullable Object]] */;
1458 val
* var19
/* : HashMap[nullable Object, Set[nullable Object]] */;
1459 short int var21
/* : Bool */;
1462 const struct type
* type_struct24
;
1463 const char* var_class_name25
;
1464 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[E] */
1465 /* <p0:POSet[Object]> isa POSet[E] */
1466 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nit__POSetColorer___35dE
];
1467 cltype
= type_struct
->color
;
1468 idtype
= type_struct
->id
;
1469 if(cltype
>= p0
->type
->table_size
) {
1472 var
= p0
->type
->type_table
[cltype
] == idtype
;
1474 if (unlikely(!var
)) {
1475 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1476 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
1477 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 205);
1482 { /* Inline coloring#POSetColorer#poset_cache= (self,var_poset) on <self:POSetColorer[Object]> */
1483 /* Covariant cast for argument 0 (poset_cache) <var_poset:POSet[Object]> isa POSet[E] */
1484 /* <var_poset:POSet[Object]> isa POSet[E] */
1485 type_struct5
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nit__POSetColorer___35dE
];
1486 cltype3
= type_struct5
->color
;
1487 idtype4
= type_struct5
->id
;
1488 if(cltype3
>= var_poset
->type
->table_size
) {
1491 var2
= var_poset
->type
->type_table
[cltype3
] == idtype4
;
1493 if (unlikely(!var2
)) {
1494 var_class_name6
= var_poset
== NULL ?
"null" : var_poset
->type
->name
;
1495 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name6
);
1496 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1499 self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
= var_poset
; /* _poset_cache on <self:POSetColorer[Object]> */
1503 var7
= NEW_nit__POSetConflictGraph(self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph__nit__POSetColorer___35dE
]);
1505 ((void(*)(val
* self
, val
* p0
))(var7
->class->vft
[COLOR_nit__coloring__POSetConflictGraph__poset_61d
]))(var7
, var_poset
); /* poset= on <var7:POSetConflictGraph[Object]>*/
1508 ((void(*)(val
* self
))(var7
->class->vft
[COLOR_standard__kernel__Object__init
]))(var7
); /* init on <var7:POSetConflictGraph[Object]>*/
1511 { /* Inline coloring#POSetColorer#graph= (self,var7) on <self:POSetColorer[Object]> */
1512 /* Covariant cast for argument 0 (graph) <var7:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1513 /* <var7:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1514 type_struct12
= self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph__nit__POSetColorer___35dE
];
1515 cltype10
= type_struct12
->color
;
1516 idtype11
= type_struct12
->id
;
1517 if(cltype10
>= var7
->type
->table_size
) {
1520 var9
= var7
->type
->type_table
[cltype10
] == idtype11
;
1522 if (unlikely(!var9
)) {
1523 var_class_name13
= var7
== NULL ?
"null" : var7
->type
->name
;
1524 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name13
);
1525 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 203);
1528 self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
= var7
; /* _graph on <self:POSetColorer[Object]> */
1533 nit___nit__POSetColorer___allocate_ids(self
); /* Direct call coloring#POSetColorer#allocate_ids on <self:POSetColorer[Object]>*/
1536 nit___nit__POSetColorer___compute_colors(self
); /* Direct call coloring#POSetColorer#compute_colors on <self:POSetColorer[Object]>*/
1539 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1540 var16
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1541 if (unlikely(var16
== NULL
)) {
1542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1543 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 203);
1547 RET_LABEL15
:(void)0;
1551 { /* Inline coloring#POSetConflictGraph#conflicts (var14) on <var14:POSetConflictGraph[Object]> */
1552 var19
= var14
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var14:POSetConflictGraph[Object]> */
1553 if (unlikely(var19
== NULL
)) {
1554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1555 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
1559 RET_LABEL18
:(void)0;
1563 { /* Inline coloring#POSetColorer#conflicts_cache= (self,var17) on <self:POSetColorer[Object]> */
1564 /* Covariant cast for argument 0 (conflicts_cache) <var17:HashMap[nullable Object, Set[nullable Object]](HashMap[Object, Set[Object]])> isa Map[E, Set[E]] */
1565 /* <var17:HashMap[nullable Object, Set[nullable Object]](HashMap[Object, Set[Object]])> isa Map[E, Set[E]] */
1566 type_struct24
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetColorer___35dE__standard__Set__nit__POSetColorer___35dE
];
1567 cltype22
= type_struct24
->color
;
1568 idtype23
= type_struct24
->id
;
1569 if(cltype22
>= var17
->type
->table_size
) {
1572 var21
= var17
->type
->type_table
[cltype22
] == idtype23
;
1574 if (unlikely(!var21
)) {
1575 var_class_name25
= var17
== NULL ?
"null" : var17
->type
->name
;
1576 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name25
);
1577 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 201);
1580 self
->attrs
[COLOR_nit__coloring__POSetColorer___conflicts_cache
].val
= var17
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1581 RET_LABEL20
:(void)0;
1585 { /* Inline coloring#POSetColorer#is_colored= (self,1) on <self:POSetColorer[Object]> */
1586 self
->attrs
[COLOR_nit__coloring__POSetColorer___is_colored
].s
= 1; /* _is_colored on <self:POSetColorer[Object]> */
1587 RET_LABEL26
:(void)0;
1592 /* method coloring#POSetColorer#allocate_ids for (self: POSetColorer[Object]) */
1593 void nit___nit__POSetColorer___allocate_ids(val
* self
) {
1594 val
* var
/* : HashMap[Object, Int] */;
1595 val
* var2
/* : HashMap[Object, Int] */;
1596 val
* var3
/* : HashSet[Object] */;
1597 val
* var4
/* : POSet[Object] */;
1598 val
* var6
/* : POSet[Object] */;
1599 val
* var7
/* : Array[nullable Object] */;
1600 val
* var_elements
/* var elements: HashSet[Object] */;
1601 val
* var8
/* : POSet[Object] */;
1602 val
* var10
/* : POSet[Object] */;
1603 val
* var11
/* : Array[nullable Object] */;
1604 val
* var_
/* var : Array[Object] */;
1605 val
* var12
/* : ArrayIterator[nullable Object] */;
1606 val
* var_13
/* var : ArrayIterator[Object] */;
1607 short int var14
/* : Bool */;
1608 val
* var15
/* : nullable Object */;
1609 val
* var_e
/* var e: Object */;
1610 val
* var16
/* : HashMap[Object, Int] */;
1611 val
* var18
/* : HashMap[Object, Int] */;
1612 val
* var19
/* : HashMap[Object, Int] */;
1613 val
* var21
/* : HashMap[Object, Int] */;
1614 long var22
/* : Int */;
1615 val
* var23
/* : nullable Object */;
1617 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1618 var2
= self
->attrs
[COLOR_nit__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1619 if (unlikely(var2
== NULL
)) {
1620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1621 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 179);
1629 standard___standard__HashMap___standard__abstract_collection__Map__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Int]>*/
1631 var3
= NEW_standard__HashSet(self
->type
->resolution_table
->types
[COLOR_standard__HashSet__nit__POSetColorer___35dE
]);
1633 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
1634 var6
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1635 if (unlikely(var6
== NULL
)) {
1636 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1637 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1645 var7
= standard__array___Collection___to_a(var4
);
1648 standard___standard__HashSet___from(var3
, var7
); /* Direct call hash_collection#HashSet#from on <var3:HashSet[Object]>*/
1650 var_elements
= var3
;
1652 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
1653 var10
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1654 if (unlikely(var10
== NULL
)) {
1655 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1656 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1664 var11
= poset___poset__POSet___linearize(var8
, var_elements
);
1668 var12
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1673 var14
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_13
);
1677 var15
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_13
);
1681 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1682 var18
= self
->attrs
[COLOR_nit__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1683 if (unlikely(var18
== NULL
)) {
1684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1685 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 179);
1689 RET_LABEL17
:(void)0;
1693 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1694 var21
= self
->attrs
[COLOR_nit__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1695 if (unlikely(var21
== NULL
)) {
1696 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1697 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 179);
1701 RET_LABEL20
:(void)0;
1705 var22
= standard___standard__HashMap___standard__abstract_collection__MapRead__length(var19
);
1708 var23
= (val
*)(var22
<<2|1);
1709 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var16
, var_e
, var23
); /* Direct call hash_collection#HashMap#[]= on <var16:HashMap[Object, Int]>*/
1712 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_13
); /* Direct call array#ArrayIterator#next on <var_13:ArrayIterator[Object]>*/
1718 BREAK_label
: (void)0;
1720 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_13
); /* Direct call array#ArrayIterator#finish on <var_13:ArrayIterator[Object]>*/
1724 /* method coloring#POSetColorer#compute_colors for (self: POSetColorer[Object]) */
1725 void nit___nit__POSetColorer___compute_colors(val
* self
) {
1726 val
* var
/* : HashMap[Object, Int] */;
1727 val
* var2
/* : HashMap[Object, Int] */;
1728 val
* var3
/* : POSetConflictGraph[Object] */;
1729 val
* var5
/* : POSetConflictGraph[Object] */;
1730 val
* var6
/* : HashSet[nullable Object] */;
1731 val
* var8
/* : HashSet[nullable Object] */;
1732 val
* var9
/* : POSetConflictGraph[Object] */;
1733 val
* var11
/* : POSetConflictGraph[Object] */;
1734 val
* var12
/* : HashSet[nullable Object] */;
1735 val
* var14
/* : HashSet[nullable Object] */;
1737 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
1738 var2
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1739 if (unlikely(var2
== NULL
)) {
1740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1741 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 187);
1749 standard___standard__HashMap___standard__abstract_collection__Map__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Int]>*/
1752 nit___nit__POSetColorer___colorize_core(self
); /* Direct call coloring#POSetColorer#colorize_core on <self:POSetColorer[Object]>*/
1755 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1756 var5
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1757 if (unlikely(var5
== NULL
)) {
1758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1759 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 203);
1767 { /* Inline coloring#POSetConflictGraph#border (var3) on <var3:POSetConflictGraph[Object]> */
1768 var8
= var3
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <var3:POSetConflictGraph[Object]> */
1769 if (unlikely(var8
== NULL
)) {
1770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
1771 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
1779 nit___nit__POSetColorer___colorize_set(self
, var6
); /* Direct call coloring#POSetColorer#colorize_set on <self:POSetColorer[Object]>*/
1782 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1783 var11
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1784 if (unlikely(var11
== NULL
)) {
1785 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1786 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 203);
1790 RET_LABEL10
:(void)0;
1794 { /* Inline coloring#POSetConflictGraph#crown (var9) on <var9:POSetConflictGraph[Object]> */
1795 var14
= var9
->attrs
[COLOR_nit__coloring__POSetConflictGraph___crown
].val
; /* _crown on <var9:POSetConflictGraph[Object]> */
1796 if (unlikely(var14
== NULL
)) {
1797 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
1798 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 34);
1802 RET_LABEL13
:(void)0;
1806 nit___nit__POSetColorer___colorize_set(self
, var12
); /* Direct call coloring#POSetColorer#colorize_set on <self:POSetColorer[Object]>*/
1810 /* method coloring#POSetColorer#colorize_core for (self: POSetColorer[Object]) */
1811 void nit___nit__POSetColorer___colorize_core(val
* self
) {
1812 val
* var
/* : POSet[Object] */;
1813 val
* var2
/* : POSet[Object] */;
1814 val
* var3
/* : POSetConflictGraph[Object] */;
1815 val
* var5
/* : POSetConflictGraph[Object] */;
1816 val
* var6
/* : HashSet[nullable Object] */;
1817 val
* var8
/* : HashSet[nullable Object] */;
1818 val
* var9
/* : Array[nullable Object] */;
1819 val
* var_
/* var : Array[Object] */;
1820 val
* var10
/* : ArrayIterator[nullable Object] */;
1821 val
* var_11
/* var : ArrayIterator[Object] */;
1822 short int var12
/* : Bool */;
1823 val
* var13
/* : nullable Object */;
1824 val
* var_e
/* var e: Object */;
1825 long var14
/* : Int */;
1826 long var_color
/* var color: Int */;
1827 val
* var15
/* : POSetConflictGraph[Object] */;
1828 val
* var17
/* : POSetConflictGraph[Object] */;
1829 val
* var18
/* : HashMap[nullable Object, Set[nullable Object]] */;
1830 val
* var20
/* : HashMap[nullable Object, Set[nullable Object]] */;
1831 val
* var21
/* : nullable Object */;
1832 val
* var_conflicts
/* var conflicts: Set[Object] */;
1833 short int var22
/* : Bool */;
1834 short int var23
/* : Bool */;
1835 long var24
/* : Int */;
1836 short int var26
/* : Bool */;
1839 const char* var_class_name
;
1840 long var27
/* : Int */;
1841 val
* var28
/* : HashMap[Object, Int] */;
1842 val
* var30
/* : HashMap[Object, Int] */;
1843 val
* var31
/* : nullable Object */;
1845 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
1846 var2
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1847 if (unlikely(var2
== NULL
)) {
1848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1849 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
1857 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1858 var5
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1859 if (unlikely(var5
== NULL
)) {
1860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1861 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 203);
1869 { /* Inline coloring#POSetConflictGraph#core (var3) on <var3:POSetConflictGraph[Object]> */
1870 var8
= var3
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <var3:POSetConflictGraph[Object]> */
1871 if (unlikely(var8
== NULL
)) {
1872 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
1873 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
1881 var9
= poset___poset__POSet___linearize(var
, var6
);
1885 var10
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1890 var12
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_11
);
1894 var13
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_11
);
1898 var14
= nit___nit__POSetColorer___min_color(self
, var_e
);
1902 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1903 var17
= self
->attrs
[COLOR_nit__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1904 if (unlikely(var17
== NULL
)) {
1905 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1906 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 203);
1910 RET_LABEL16
:(void)0;
1914 { /* Inline coloring#POSetConflictGraph#conflicts (var15) on <var15:POSetConflictGraph[Object]> */
1915 var20
= var15
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var15:POSetConflictGraph[Object]> */
1916 if (unlikely(var20
== NULL
)) {
1917 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1918 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
1922 RET_LABEL19
:(void)0;
1926 var21
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var18
, var_e
);
1928 var_conflicts
= var21
;
1931 var22
= nit___nit__POSetColorer___is_color_free(self
, var_color
, var_conflicts
);
1936 { /* Inline kernel#Int#+ (var_color,1l) on <var_color:Int> */
1937 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1938 /* <1l:Int> isa OTHER */
1939 var26
= 1; /* easy <1l:Int> isa OTHER*/
1940 if (unlikely(!var26
)) {
1941 var_class_name
= type_standard__Int
.name
;
1942 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1943 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
1946 var27
= var_color
+ 1l;
1949 RET_LABEL25
:(void)0;
1957 BREAK_label
: (void)0;
1959 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
1960 var30
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1961 if (unlikely(var30
== NULL
)) {
1962 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1963 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 187);
1967 RET_LABEL29
:(void)0;
1971 var31
= (val
*)(var_color
<<2|1);
1972 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var28
, var_e
, var31
); /* Direct call hash_collection#HashMap#[]= on <var28:HashMap[Object, Int]>*/
1975 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[Object]>*/
1981 BREAK_label32
: (void)0;
1983 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_11
); /* Direct call array#ArrayIterator#finish on <var_11:ArrayIterator[Object]>*/
1987 /* method coloring#POSetColorer#colorize_set for (self: POSetColorer[Object], Set[Object]) */
1988 void nit___nit__POSetColorer___colorize_set(val
* self
, val
* p0
) {
1989 short int var
/* : Bool */;
1992 const struct type
* type_struct
;
1993 const char* var_class_name
;
1994 val
* var_set
/* var set: Set[Object] */;
1995 val
* var1
/* : POSet[Object] */;
1996 val
* var3
/* : POSet[Object] */;
1997 val
* var4
/* : Array[nullable Object] */;
1998 val
* var_
/* var : Array[Object] */;
1999 val
* var5
/* : ArrayIterator[nullable Object] */;
2000 val
* var_6
/* var : ArrayIterator[Object] */;
2001 short int var7
/* : Bool */;
2002 val
* var8
/* : nullable Object */;
2003 val
* var_e
/* var e: Object */;
2004 val
* var9
/* : HashMap[Object, Int] */;
2005 val
* var11
/* : HashMap[Object, Int] */;
2006 long var12
/* : Int */;
2007 val
* var13
/* : nullable Object */;
2008 /* Covariant cast for argument 0 (set) <p0:Set[Object]> isa Set[E] */
2009 /* <p0:Set[Object]> isa Set[E] */
2010 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Set__nit__POSetColorer___35dE
];
2011 cltype
= type_struct
->color
;
2012 idtype
= type_struct
->id
;
2013 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
2016 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
2018 if (unlikely(!var
)) {
2019 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
2020 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[E]", var_class_name
);
2021 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 245);
2026 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
2027 var3
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2028 if (unlikely(var3
== NULL
)) {
2029 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2030 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
2038 var4
= poset___poset__POSet___linearize(var1
, var_set
);
2042 var5
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
2047 var7
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_6
);
2051 var8
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_6
);
2055 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2056 var11
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2057 if (unlikely(var11
== NULL
)) {
2058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2059 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 187);
2063 RET_LABEL10
:(void)0;
2067 var12
= nit___nit__POSetColorer___min_color(self
, var_e
);
2070 var13
= (val
*)(var12
<<2|1);
2071 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var9
, var_e
, var13
); /* Direct call hash_collection#HashMap#[]= on <var9:HashMap[Object, Int]>*/
2074 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_6
); /* Direct call array#ArrayIterator#next on <var_6:ArrayIterator[Object]>*/
2080 BREAK_label
: (void)0;
2082 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_6
); /* Direct call array#ArrayIterator#finish on <var_6:ArrayIterator[Object]>*/
2086 /* method coloring#POSetColorer#min_color for (self: POSetColorer[Object], Object): Int */
2087 long nit___nit__POSetColorer___min_color(val
* self
, val
* p0
) {
2088 long var
/* : Int */;
2089 short int var1
/* : Bool */;
2092 const struct type
* type_struct
;
2093 const char* var_class_name
;
2094 val
* var_e
/* var e: Object */;
2095 long var2
/* : Int */;
2096 long var4
/* : Int */;
2097 long var_max_color
/* var max_color: Int */;
2098 val
* var5
/* : POSet[Object] */;
2099 val
* var7
/* : POSet[Object] */;
2100 val
* var8
/* : POSetElement[nullable Object] */;
2101 val
* var9
/* : Collection[nullable Object] */;
2102 val
* var_
/* var : Collection[Object] */;
2103 val
* var10
/* : Iterator[nullable Object] */;
2104 val
* var_11
/* var : Iterator[Object] */;
2105 short int var12
/* : Bool */;
2106 val
* var13
/* : nullable Object */;
2107 val
* var_p
/* var p: Object */;
2108 val
* var14
/* : HashMap[Object, Int] */;
2109 val
* var16
/* : HashMap[Object, Int] */;
2110 short int var17
/* : Bool */;
2111 short int var18
/* : Bool */;
2112 val
* var19
/* : HashMap[Object, Int] */;
2113 val
* var21
/* : HashMap[Object, Int] */;
2114 val
* var22
/* : nullable Object */;
2115 long var23
/* : Int */;
2116 long var_color
/* var color: Int */;
2117 short int var24
/* : Bool */;
2118 short int var26
/* : Bool */;
2121 const char* var_class_name29
;
2122 short int var30
/* : Bool */;
2123 long var32
/* : Int */;
2124 short int var34
/* : Bool */;
2127 const char* var_class_name37
;
2128 long var38
/* : Int */;
2129 /* Covariant cast for argument 0 (e) <p0:Object> isa E */
2130 /* <p0:Object> isa E */
2131 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetColorer___35dE
];
2132 cltype
= type_struct
->color
;
2133 idtype
= type_struct
->id
;
2134 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
2137 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
2139 if (unlikely(!var1
)) {
2140 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
2141 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
2142 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 250);
2147 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
2154 var_max_color
= var2
;
2156 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
2157 var7
= self
->attrs
[COLOR_nit__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2158 if (unlikely(var7
== NULL
)) {
2159 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2160 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 194);
2168 var8
= poset___poset__POSet____91d_93d(var5
, var_e
);
2171 var9
= poset___poset__POSetElement___direct_greaters(var8
);
2175 var10
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
2180 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:Iterator[Object]>*/
2184 var13
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:Iterator[Object]>*/
2188 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2189 var16
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2190 if (unlikely(var16
== NULL
)) {
2191 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2192 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 187);
2196 RET_LABEL15
:(void)0;
2200 var17
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var14
, var_p
);
2208 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2209 var21
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2210 if (unlikely(var21
== NULL
)) {
2211 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2212 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 187);
2216 RET_LABEL20
:(void)0;
2220 var22
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var19
, var_p
);
2222 var23
= (long)(var22
)>>2;
2225 { /* Inline kernel#Int#> (var_color,var_max_color) on <var_color:Int> */
2226 /* Covariant cast for argument 0 (i) <var_max_color:Int> isa OTHER */
2227 /* <var_max_color:Int> isa OTHER */
2228 var26
= 1; /* easy <var_max_color:Int> isa OTHER*/
2229 if (unlikely(!var26
)) {
2230 var_class_name29
= type_standard__Int
.name
;
2231 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29
);
2232 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
2235 var30
= var_color
> var_max_color
;
2238 RET_LABEL25
:(void)0;
2242 var_max_color
= var_color
;
2245 BREAK_label
: (void)0;
2247 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:Iterator[Object]>*/
2253 BREAK_label31
: (void)0;
2255 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:Iterator[Object]>*/
2258 { /* Inline kernel#Int#+ (var_max_color,1l) on <var_max_color:Int> */
2259 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2260 /* <1l:Int> isa OTHER */
2261 var34
= 1; /* easy <1l:Int> isa OTHER*/
2262 if (unlikely(!var34
)) {
2263 var_class_name37
= type_standard__Int
.name
;
2264 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37
);
2265 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
2268 var38
= var_max_color
+ 1l;
2271 RET_LABEL33
:(void)0;
2279 /* method coloring#POSetColorer#is_color_free for (self: POSetColorer[Object], Int, Collection[Object]): Bool */
2280 short int nit___nit__POSetColorer___is_color_free(val
* self
, long p0
, val
* p1
) {
2281 short int var
/* : Bool */;
2282 short int var1
/* : Bool */;
2285 const struct type
* type_struct
;
2286 const char* var_class_name
;
2287 long var_color
/* var color: Int */;
2288 val
* var_set
/* var set: Collection[Object] */;
2289 val
* var_
/* var : Collection[Object] */;
2290 val
* var2
/* : Iterator[nullable Object] */;
2291 val
* var_3
/* var : Iterator[Object] */;
2292 short int var4
/* : Bool */;
2293 val
* var5
/* : nullable Object */;
2294 val
* var_e
/* var e: Object */;
2295 short int var6
/* : Bool */;
2296 val
* var7
/* : HashMap[Object, Int] */;
2297 val
* var9
/* : HashMap[Object, Int] */;
2298 short int var10
/* : Bool */;
2299 short int var_11
/* var : Bool */;
2300 val
* var12
/* : HashMap[Object, Int] */;
2301 val
* var14
/* : HashMap[Object, Int] */;
2302 val
* var15
/* : nullable Object */;
2303 short int var16
/* : Bool */;
2304 short int var18
/* : Bool */;
2305 long var19
/* : Int */;
2306 /* Covariant cast for argument 1 (set) <p1:Collection[Object]> isa Collection[E] */
2307 /* <p1:Collection[Object]> isa Collection[E] */
2308 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Collection__nit__POSetColorer___35dE
];
2309 cltype
= type_struct
->color
;
2310 idtype
= type_struct
->id
;
2311 if(cltype
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
2314 var1
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype
] == idtype
;
2316 if (unlikely(!var1
)) {
2317 var_class_name
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
2318 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name
);
2319 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 261);
2326 var2
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
2331 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_3
); /* is_ok on <var_3:Iterator[Object]>*/
2335 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_3
); /* item on <var_3:Iterator[Object]>*/
2339 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2340 var9
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2341 if (unlikely(var9
== NULL
)) {
2342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2343 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 187);
2351 var10
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var7
, var_e
);
2356 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2357 var14
= self
->attrs
[COLOR_nit__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2358 if (unlikely(var14
== NULL
)) {
2359 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2360 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 187);
2364 RET_LABEL13
:(void)0;
2368 var15
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var12
, var_e
);
2371 { /* Inline kernel#Int#== (var15,var_color) on <var15:nullable Object(Int)> */
2372 var19
= (long)(var15
)>>2;
2373 var18
= (var15
!= NULL
) && (var19
== var_color
);
2376 RET_LABEL17
:(void)0;
2389 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_3
); /* next on <var_3:Iterator[Object]>*/
2395 BREAK_label
: (void)0;
2397 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_3
); /* finish on <var_3:Iterator[Object]>*/
2404 /* method coloring#POSetGroupColorer#graph for (self: POSetGroupColorer[Object, Object]): POSetConflictGraph[Object] */
2405 val
* nit___nit__POSetGroupColorer___graph(val
* self
) {
2406 val
* var
/* : POSetConflictGraph[Object] */;
2407 val
* var1
/* : POSetConflictGraph[Object] */;
2408 var1
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
2409 if (unlikely(var1
== NULL
)) {
2410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2411 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 282);
2418 /* method coloring#POSetGroupColorer#graph= for (self: POSetGroupColorer[Object, Object], POSetConflictGraph[Object]) */
2419 void nit___nit__POSetGroupColorer___graph_61d(val
* self
, val
* p0
) {
2420 short int var
/* : Bool */;
2423 const struct type
* type_struct
;
2424 const char* var_class_name
;
2425 /* Covariant cast for argument 0 (graph) <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[H] */
2426 /* <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[H] */
2427 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetConflictGraph__nit__POSetGroupColorer___35dH
];
2428 cltype
= type_struct
->color
;
2429 idtype
= type_struct
->id
;
2430 if(cltype
>= p0
->type
->table_size
) {
2433 var
= p0
->type
->type_table
[cltype
] == idtype
;
2435 if (unlikely(!var
)) {
2436 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2437 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[H]", var_class_name
);
2438 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 282);
2441 self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___graph
].val
= p0
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
2444 /* method coloring#POSetGroupColorer#buckets for (self: POSetGroupColorer[Object, Object]): Map[Object, Collection[Object]] */
2445 val
* nit___nit__POSetGroupColorer___buckets(val
* self
) {
2446 val
* var
/* : Map[Object, Collection[Object]] */;
2447 val
* var1
/* : Map[Object, Collection[Object]] */;
2448 var1
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___buckets
].val
; /* _buckets on <self:POSetGroupColorer[Object, Object]> */
2449 if (unlikely(var1
== NULL
)) {
2450 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _buckets");
2451 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 288);
2458 /* method coloring#POSetGroupColorer#buckets= for (self: POSetGroupColorer[Object, Object], Map[Object, Collection[Object]]) */
2459 void nit___nit__POSetGroupColorer___buckets_61d(val
* self
, val
* p0
) {
2460 short int var
/* : Bool */;
2463 const struct type
* type_struct
;
2464 const char* var_class_name
;
2465 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Collection[Object]]> isa Map[H, Collection[E]] */
2466 /* <p0:Map[Object, Collection[Object]]> isa Map[H, Collection[E]] */
2467 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetGroupColorer___35dH__standard__Collection__nit__POSetGroupColorer___35dE
];
2468 cltype
= type_struct
->color
;
2469 idtype
= type_struct
->id
;
2470 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
2473 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
2475 if (unlikely(!var
)) {
2476 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
2477 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Collection[E]]", var_class_name
);
2478 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 288);
2481 self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___buckets
].val
= p0
; /* _buckets on <self:POSetGroupColorer[Object, Object]> */
2484 /* method coloring#POSetGroupColorer#poset for (self: POSetGroupColorer[Object, Object]): POSet[Object] */
2485 val
* nit___nit__POSetGroupColorer___poset(val
* self
) {
2486 val
* var
/* : POSet[Object] */;
2487 val
* var1
/* : POSetConflictGraph[Object] */;
2488 val
* var3
/* : POSetConflictGraph[Object] */;
2489 val
* var4
/* : POSet[nullable Object] */;
2490 val
* var6
/* : POSet[nullable Object] */;
2492 { /* Inline coloring#POSetGroupColorer#graph (self) on <self:POSetGroupColorer[Object, Object]> */
2493 var3
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
2494 if (unlikely(var3
== NULL
)) {
2495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2496 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 282);
2504 { /* Inline coloring#POSetConflictGraph#poset (var1) on <var1:POSetConflictGraph[Object]> */
2505 var6
= var1
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <var1:POSetConflictGraph[Object]> */
2506 if (unlikely(var6
== NULL
)) {
2507 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
2508 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
2520 /* method coloring#POSetGroupColorer#colors for (self: POSetGroupColorer[Object, Object]): Map[Object, Int] */
2521 val
* nit___nit__POSetGroupColorer___colors(val
* self
) {
2522 val
* var
/* : Map[Object, Int] */;
2523 short int var1
/* : Bool */;
2524 val
* var2
/* : Map[Object, Int] */;
2525 val
* var3
/* : Map[Object, Int] */;
2526 val
* var5
/* : POSetConflictGraph[Object] */;
2527 val
* var7
/* : POSetConflictGraph[Object] */;
2528 val
* var8
/* : POSet[nullable Object] */;
2529 val
* var10
/* : POSet[nullable Object] */;
2530 val
* var_
/* var : POSet[Object] */;
2531 val
* var11
/* : Iterator[nullable Object] */;
2532 val
* var_12
/* var : Iterator[Object] */;
2533 short int var13
/* : Bool */;
2534 val
* var14
/* : nullable Object */;
2535 val
* var_h
/* var h: Object */;
2536 val
* var15
/* : HashMap[Object, HashSet[Int]] */;
2537 val
* var17
/* : HashMap[Object, HashSet[Int]] */;
2538 val
* var18
/* : HashSet[Int] */;
2539 val
* var19
/* : HashMap[Object, Int] */;
2540 val
* var21
/* : HashMap[Object, Int] */;
2541 var1
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___colors
].val
!= NULL
; /* _colors on <self:POSetGroupColorer[Object, Object]> */
2543 var2
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___colors
].val
; /* _colors on <self:POSetGroupColorer[Object, Object]> */
2544 if (unlikely(var2
== NULL
)) {
2545 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2546 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 300);
2552 { /* Inline coloring#POSetGroupColorer#graph (self) on <self:POSetGroupColorer[Object, Object]> */
2553 var7
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
2554 if (unlikely(var7
== NULL
)) {
2555 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2556 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 282);
2564 { /* Inline coloring#POSetConflictGraph#poset (var5) on <var5:POSetConflictGraph[Object]> */
2565 var10
= var5
->attrs
[COLOR_nit__coloring__POSetConflictGraph___poset
].val
; /* _poset on <var5:POSetConflictGraph[Object]> */
2566 if (unlikely(var10
== NULL
)) {
2567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
2568 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 48);
2577 var11
= poset___poset__POSet___standard__abstract_collection__Collection__iterator(var_
);
2582 var13
= ((short int(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_12
); /* is_ok on <var_12:Iterator[Object]>*/
2586 var14
= ((val
*(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_12
); /* item on <var_12:Iterator[Object]>*/
2590 { /* Inline coloring#POSetGroupColorer#used_colors (self) on <self:POSetGroupColorer[Object, Object]> */
2591 var17
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___used_colors
].val
; /* _used_colors on <self:POSetGroupColorer[Object, Object]> */
2592 if (unlikely(var17
== NULL
)) {
2593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _used_colors");
2594 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 314);
2598 RET_LABEL16
:(void)0;
2601 var18
= NEW_standard__HashSet(&type_standard__HashSet__standard__Int
);
2603 standard___standard__HashSet___standard__kernel__Object__init(var18
); /* Direct call hash_collection#HashSet#init on <var18:HashSet[Int]>*/
2606 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var15
, var_h
, var18
); /* Direct call hash_collection#HashMap#[]= on <var15:HashMap[Object, HashSet[Int]]>*/
2609 ((void(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_12
); /* next on <var_12:Iterator[Object]>*/
2615 BREAK_label
: (void)0;
2617 ((void(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_12
); /* finish on <var_12:Iterator[Object]>*/
2620 nit___nit__POSetGroupColorer___compute_colors(self
); /* Direct call coloring#POSetGroupColorer#compute_colors on <self:POSetGroupColorer[Object, Object]>*/
2623 { /* Inline coloring#POSetGroupColorer#colors_cache (self) on <self:POSetGroupColorer[Object, Object]> */
2624 var21
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___colors_cache
].val
; /* _colors_cache on <self:POSetGroupColorer[Object, Object]> */
2625 if (unlikely(var21
== NULL
)) {
2626 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2627 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 311);
2631 RET_LABEL20
:(void)0;
2638 self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___colors
].val
= var3
; /* _colors on <self:POSetGroupColorer[Object, Object]> */
2645 /* method coloring#POSetGroupColorer#colors_cache for (self: POSetGroupColorer[Object, Object]): HashMap[Object, Int] */
2646 val
* nit___nit__POSetGroupColorer___colors_cache(val
* self
) {
2647 val
* var
/* : HashMap[Object, Int] */;
2648 val
* var1
/* : HashMap[Object, Int] */;
2649 var1
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___colors_cache
].val
; /* _colors_cache on <self:POSetGroupColorer[Object, Object]> */
2650 if (unlikely(var1
== NULL
)) {
2651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2652 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 311);
2659 /* method coloring#POSetGroupColorer#used_colors for (self: POSetGroupColorer[Object, Object]): HashMap[Object, HashSet[Int]] */
2660 val
* nit___nit__POSetGroupColorer___used_colors(val
* self
) {
2661 val
* var
/* : HashMap[Object, HashSet[Int]] */;
2662 val
* var1
/* : HashMap[Object, HashSet[Int]] */;
2663 var1
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___used_colors
].val
; /* _used_colors on <self:POSetGroupColorer[Object, Object]> */
2664 if (unlikely(var1
== NULL
)) {
2665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _used_colors");
2666 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 314);
2673 /* method coloring#POSetGroupColorer#build_layout for (self: POSetGroupColorer[Object, Object], Object): Array[nullable Object] */
2674 val
* nit___nit__POSetGroupColorer___build_layout(val
* self
, val
* p0
) {
2675 val
* var
/* : Array[nullable Object] */;
2676 short int var1
/* : Bool */;
2679 const struct type
* type_struct
;
2680 const char* var_class_name
;
2681 val
* var_h
/* var h: Object */;
2682 val
* var2
/* : Array[nullable Object] */;
2683 val
* var_table
/* var table: Array[nullable Object] */;
2684 val
* var3
/* : POSet[Object] */;
2685 val
* var4
/* : POSetElement[nullable Object] */;
2686 val
* var5
/* : Collection[nullable Object] */;
2687 val
* var_
/* var : Collection[Object] */;
2688 val
* var6
/* : Iterator[nullable Object] */;
2689 val
* var_7
/* var : Iterator[Object] */;
2690 short int var8
/* : Bool */;
2691 val
* var9
/* : nullable Object */;
2692 val
* var_s
/* var s: Object */;
2693 val
* var10
/* : Map[Object, Collection[Object]] */;
2694 val
* var12
/* : Map[Object, Collection[Object]] */;
2695 val
* var13
/* : nullable Object */;
2696 val
* var_bucket
/* var bucket: nullable Collection[Object] */;
2697 short int var14
/* : Bool */;
2698 short int var15
/* : Bool */;
2699 val
* var_16
/* var : Collection[Object] */;
2700 val
* var17
/* : Iterator[nullable Object] */;
2701 val
* var_18
/* var : Iterator[Object] */;
2702 short int var19
/* : Bool */;
2703 val
* var20
/* : nullable Object */;
2704 val
* var_e
/* var e: Object */;
2705 val
* var21
/* : Map[Object, Int] */;
2706 val
* var22
/* : nullable Object */;
2707 long var23
/* : Int */;
2708 long var_color
/* var color: Int */;
2709 long var24
/* : Int */;
2710 long var26
/* : Int */;
2711 short int var27
/* : Bool */;
2712 short int var29
/* : Bool */;
2715 const char* var_class_name32
;
2716 short int var33
/* : Bool */;
2717 long var34
/* : Int */;
2718 long var36
/* : Int */;
2719 long var_i
/* var i: Int */;
2720 long var_37
/* var : Int */;
2721 short int var38
/* : Bool */;
2722 short int var40
/* : Bool */;
2725 const char* var_class_name43
;
2726 short int var44
/* : Bool */;
2727 long var45
/* : Int */;
2728 val
* var47
/* : nullable Object */;
2729 short int var48
/* : Bool */;
2730 short int var49
/* : Bool */;
2731 val
* var50
/* : Sys */;
2732 val
* var51
/* : NativeArray[String] */;
2733 static val
* varonce
;
2734 static val
* varonce52
;
2735 val
* var53
/* : String */;
2736 char* var54
/* : NativeString */;
2737 val
* var55
/* : FlatString */;
2738 static val
* varonce56
;
2739 val
* var57
/* : String */;
2740 char* var58
/* : NativeString */;
2741 val
* var59
/* : FlatString */;
2742 static val
* varonce60
;
2743 val
* var61
/* : String */;
2744 char* var62
/* : NativeString */;
2745 val
* var63
/* : FlatString */;
2746 static val
* varonce64
;
2747 val
* var65
/* : String */;
2748 char* var66
/* : NativeString */;
2749 val
* var67
/* : FlatString */;
2750 val
* var68
/* : String */;
2751 val
* var69
/* : String */;
2752 val
* var70
/* : Object */;
2753 val
* var71
/* : nullable Object */;
2754 static val
* varonce72
;
2755 val
* var73
/* : String */;
2756 char* var74
/* : NativeString */;
2757 val
* var75
/* : FlatString */;
2758 val
* var76
/* : String */;
2759 val
* var77
/* : String */;
2760 val
* var78
/* : String */;
2761 /* Covariant cast for argument 0 (h) <p0:Object> isa H */
2762 /* <p0:Object> isa H */
2763 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetGroupColorer___35dH
];
2764 cltype
= type_struct
->color
;
2765 idtype
= type_struct
->id
;
2766 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
2769 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
2771 if (unlikely(!var1
)) {
2772 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
2773 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
2774 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 317);
2778 var2
= NEW_standard__Array(self
->type
->resolution_table
->types
[COLOR_standard__Array__nullable__nit__POSetGroupColorer___35dE
]);
2780 standard___standard__Array___standard__kernel__Object__init(var2
); /* Direct call array#Array#init on <var2:Array[nullable Object]>*/
2784 var3
= nit___nit__POSetGroupColorer___poset(self
);
2787 var4
= poset___poset__POSet____91d_93d(var3
, var_h
);
2790 var5
= poset___poset__POSetElement___greaters(var4
);
2794 var6
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
2799 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[Object]>*/
2803 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[Object]>*/
2807 { /* Inline coloring#POSetGroupColorer#buckets (self) on <self:POSetGroupColorer[Object, Object]> */
2808 var12
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___buckets
].val
; /* _buckets on <self:POSetGroupColorer[Object, Object]> */
2809 if (unlikely(var12
== NULL
)) {
2810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _buckets");
2811 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 288);
2815 RET_LABEL11
:(void)0;
2819 var13
= ((val
*(*)(val
* self
, val
* p0
))((((long)var10
&3)?class_info
[((long)var10
&3)]:var10
->class)->vft
[COLOR_standard__abstract_collection__MapRead__get_or_null
]))(var10
, var_s
); /* get_or_null on <var10:Map[Object, Collection[Object]]>*/
2822 if (var_bucket
== NULL
) {
2823 var14
= 1; /* is null */
2825 var14
= 0; /* arg is null but recv is not */
2828 var15
= ((short int(*)(val
* self
, val
* p0
))((((long)var_bucket
&3)?class_info
[((long)var_bucket
&3)]:var_bucket
->class)->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_bucket
, ((val
*)NULL
)); /* == on <var_bucket:nullable Collection[Object]>*/
2835 var_16
= var_bucket
;
2837 var17
= ((val
*(*)(val
* self
))((((long)var_16
&3)?class_info
[((long)var_16
&3)]:var_16
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_16
); /* iterator on <var_16:Collection[Object]>*/
2842 var19
= ((short int(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_18
); /* is_ok on <var_18:Iterator[Object]>*/
2846 var20
= ((val
*(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_18
); /* item on <var_18:Iterator[Object]>*/
2850 var21
= nit___nit__POSetGroupColorer___colors(self
);
2853 var22
= ((val
*(*)(val
* self
, val
* p0
))((((long)var21
&3)?class_info
[((long)var21
&3)]:var21
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var21
, var_e
); /* [] on <var21:Map[Object, Int]>*/
2855 var23
= (long)(var22
)>>2;
2858 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable Object]> */
2859 var26
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable Object]> */
2861 RET_LABEL25
:(void)0;
2865 { /* Inline kernel#Int#<= (var24,var_color) on <var24:Int> */
2866 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
2867 /* <var_color:Int> isa OTHER */
2868 var29
= 1; /* easy <var_color:Int> isa OTHER*/
2869 if (unlikely(!var29
)) {
2870 var_class_name32
= type_standard__Int
.name
;
2871 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32
);
2872 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 533);
2875 var33
= var24
<= var_color
;
2878 RET_LABEL28
:(void)0;
2883 { /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable Object]> */
2884 var36
= var_table
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable Object]> */
2886 RET_LABEL35
:(void)0;
2893 { /* Inline kernel#Int#< (var_i,var_37) on <var_i:Int> */
2894 /* Covariant cast for argument 0 (i) <var_37:Int> isa OTHER */
2895 /* <var_37:Int> isa OTHER */
2896 var40
= 1; /* easy <var_37:Int> isa OTHER*/
2897 if (unlikely(!var40
)) {
2898 var_class_name43
= type_standard__Int
.name
;
2899 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43
);
2900 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
2903 var44
= var_i
< var_37
;
2906 RET_LABEL39
:(void)0;
2911 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i
, ((val
*)NULL
)); /* Direct call array#Array#[]= on <var_table:Array[nullable Object]>*/
2914 var45
= standard___standard__Int___Discrete__successor(var_i
, 1l);
2921 BREAK_label46
: (void)0;
2924 var47
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_table
, var_color
);
2926 if (var47
== NULL
) {
2927 var48
= 1; /* is null */
2929 var48
= 0; /* arg is null but recv is not */
2932 var49
= ((short int(*)(val
* self
, val
* p0
))((((long)var47
&3)?class_info
[((long)var47
&3)]:var47
->class)->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var47
, ((val
*)NULL
)); /* == on <var47:nullable Object>*/
2935 if (unlikely(!var48
)) {
2937 if (unlikely(varonce
==NULL
)) {
2938 var51
= NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String
);
2939 if (likely(varonce52
!=NULL
)) {
2943 var55
= standard___standard__NativeString___to_s_with_length(var54
, 3l);
2947 ((struct instance_standard__NativeArray
*)var51
)->values
[0]=var53
;
2948 if (likely(varonce56
!=NULL
)) {
2952 var59
= standard___standard__NativeString___to_s_with_length(var58
, 6l);
2956 ((struct instance_standard__NativeArray
*)var51
)->values
[2]=var57
;
2957 if (likely(varonce60
!=NULL
)) {
2961 var63
= standard___standard__NativeString___to_s_with_length(var62
, 2l);
2965 ((struct instance_standard__NativeArray
*)var51
)->values
[4]=var61
;
2966 if (likely(varonce64
!=NULL
)) {
2970 var67
= standard___standard__NativeString___to_s_with_length(var66
, 4l);
2974 ((struct instance_standard__NativeArray
*)var51
)->values
[6]=var65
;
2980 var68
= ((val
*(*)(val
* self
))((((long)var_h
&3)?class_info
[((long)var_h
&3)]:var_h
->class)->vft
[COLOR_standard__string__Object__to_s
]))(var_h
); /* to_s on <var_h:Object>*/
2982 ((struct instance_standard__NativeArray
*)var51
)->values
[1]=var68
;
2983 var69
= standard__string___Int___Object__to_s(var_color
);
2984 ((struct instance_standard__NativeArray
*)var51
)->values
[3]=var69
;
2986 var71
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_table
, var_color
);
2991 if (likely(varonce72
!=NULL
)) {
2995 var75
= standard___standard__NativeString___to_s_with_length(var74
, 0l);
3002 var76
= ((val
*(*)(val
* self
))((((long)var70
&3)?class_info
[((long)var70
&3)]:var70
->class)->vft
[COLOR_standard__string__Object__to_s
]))(var70
); /* to_s on <var70:Object>*/
3004 ((struct instance_standard__NativeArray
*)var51
)->values
[5]=var76
;
3006 var77
= ((val
*(*)(val
* self
))((((long)var_e
&3)?class_info
[((long)var_e
&3)]:var_e
->class)->vft
[COLOR_standard__string__Object__to_s
]))(var_e
); /* to_s on <var_e:Object>*/
3008 ((struct instance_standard__NativeArray
*)var51
)->values
[7]=var77
;
3010 var78
= ((val
*(*)(val
* self
))(var51
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var51
); /* native_to_s on <var51:NativeArray[String]>*/
3014 standard__file___Sys___print(var50
, var78
); /* Direct call file#Sys#print on <var50:Sys>*/
3016 PRINT_ERROR("Runtime error: %s", "Assert failed");
3017 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 333);
3022 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color
, var_e
); /* Direct call array#Array#[]= on <var_table:Array[nullable Object]>*/
3025 ((void(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_18
); /* next on <var_18:Iterator[Object]>*/
3031 BREAK_label79
: (void)0;
3033 ((void(*)(val
* self
))((((long)var_18
&3)?class_info
[((long)var_18
&3)]:var_18
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_18
); /* finish on <var_18:Iterator[Object]>*/
3035 BREAK_label
: (void)0;
3037 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[Object]>*/
3043 BREAK_label80
: (void)0;
3045 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[Object]>*/
3052 /* method coloring#POSetGroupColorer#compute_colors for (self: POSetGroupColorer[Object, Object]) */
3053 void nit___nit__POSetGroupColorer___compute_colors(val
* self
) {
3054 val
* var
/* : HashMap[Object, Int] */;
3055 val
* var2
/* : HashMap[Object, Int] */;
3056 val
* var3
/* : POSetConflictGraph[Object] */;
3057 val
* var5
/* : POSetConflictGraph[Object] */;
3058 val
* var6
/* : HashSet[nullable Object] */;
3059 val
* var8
/* : HashSet[nullable Object] */;
3060 val
* var9
/* : POSetConflictGraph[Object] */;
3061 val
* var11
/* : POSetConflictGraph[Object] */;
3062 val
* var12
/* : HashSet[nullable Object] */;
3063 val
* var14
/* : HashSet[nullable Object] */;
3065 { /* Inline coloring#POSetGroupColorer#colors_cache (self) on <self:POSetGroupColorer[Object, Object]> */
3066 var2
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___colors_cache
].val
; /* _colors_cache on <self:POSetGroupColorer[Object, Object]> */
3067 if (unlikely(var2
== NULL
)) {
3068 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
3069 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 311);
3077 standard___standard__HashMap___standard__abstract_collection__Map__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Int]>*/
3080 nit___nit__POSetGroupColorer___colorize_core(self
); /* Direct call coloring#POSetGroupColorer#colorize_core on <self:POSetGroupColorer[Object, Object]>*/
3083 { /* Inline coloring#POSetGroupColorer#graph (self) on <self:POSetGroupColorer[Object, Object]> */
3084 var5
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3085 if (unlikely(var5
== NULL
)) {
3086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3087 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 282);
3095 { /* Inline coloring#POSetConflictGraph#border (var3) on <var3:POSetConflictGraph[Object]> */
3096 var8
= var3
->attrs
[COLOR_nit__coloring__POSetConflictGraph___border
].val
; /* _border on <var3:POSetConflictGraph[Object]> */
3097 if (unlikely(var8
== NULL
)) {
3098 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
3099 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 28);
3107 nit___nit__POSetGroupColorer___colorize_set(self
, var6
); /* Direct call coloring#POSetGroupColorer#colorize_set on <self:POSetGroupColorer[Object, Object]>*/
3110 { /* Inline coloring#POSetGroupColorer#graph (self) on <self:POSetGroupColorer[Object, Object]> */
3111 var11
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3112 if (unlikely(var11
== NULL
)) {
3113 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3114 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 282);
3118 RET_LABEL10
:(void)0;
3122 { /* Inline coloring#POSetConflictGraph#crown (var9) on <var9:POSetConflictGraph[Object]> */
3123 var14
= var9
->attrs
[COLOR_nit__coloring__POSetConflictGraph___crown
].val
; /* _crown on <var9:POSetConflictGraph[Object]> */
3124 if (unlikely(var14
== NULL
)) {
3125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
3126 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 34);
3130 RET_LABEL13
:(void)0;
3134 nit___nit__POSetGroupColorer___colorize_set(self
, var12
); /* Direct call coloring#POSetGroupColorer#colorize_set on <self:POSetGroupColorer[Object, Object]>*/
3138 /* method coloring#POSetGroupColorer#colorize_core for (self: POSetGroupColorer[Object, Object]) */
3139 void nit___nit__POSetGroupColorer___colorize_core(val
* self
) {
3140 val
* var
/* : POSetConflictGraph[Object] */;
3141 val
* var2
/* : POSetConflictGraph[Object] */;
3142 val
* var3
/* : Array[nullable Object] */;
3143 val
* var5
/* : Array[nullable Object] */;
3144 val
* var_
/* var : Array[Object] */;
3145 val
* var6
/* : ArrayIterator[nullable Object] */;
3146 val
* var_7
/* var : ArrayIterator[Object] */;
3147 short int var8
/* : Bool */;
3148 val
* var9
/* : nullable Object */;
3149 val
* var_h
/* var h: Object */;
3150 val
* var10
/* : POSetConflictGraph[Object] */;
3151 val
* var12
/* : POSetConflictGraph[Object] */;
3152 val
* var13
/* : HashSet[nullable Object] */;
3153 val
* var15
/* : HashSet[nullable Object] */;
3154 short int var16
/* : Bool */;
3155 short int var17
/* : Bool */;
3156 long var18
/* : Int */;
3157 long var_color
/* var color: Int */;
3158 long var_mincolor
/* var mincolor: Int */;
3159 val
* var19
/* : Map[Object, Collection[Object]] */;
3160 val
* var21
/* : Map[Object, Collection[Object]] */;
3161 val
* var22
/* : nullable Object */;
3162 val
* var_bucket
/* var bucket: nullable Collection[Object] */;
3163 short int var23
/* : Bool */;
3164 short int var24
/* : Bool */;
3165 val
* var25
/* : POSetConflictGraph[Object] */;
3166 val
* var27
/* : POSetConflictGraph[Object] */;
3167 val
* var28
/* : HashMap[nullable Object, Set[nullable Object]] */;
3168 val
* var30
/* : HashMap[nullable Object, Set[nullable Object]] */;
3169 val
* var31
/* : nullable Object */;
3170 val
* var_conflicts
/* var conflicts: Set[Object] */;
3171 val
* var32
/* : POSet[Object] */;
3172 val
* var33
/* : POSetElement[nullable Object] */;
3173 val
* var34
/* : Collection[nullable Object] */;
3174 val
* var_parents
/* var parents: Collection[Object] */;
3175 val
* var_35
/* var : Collection[Object] */;
3176 val
* var36
/* : Iterator[nullable Object] */;
3177 val
* var_37
/* var : Iterator[Object] */;
3178 short int var38
/* : Bool */;
3179 val
* var39
/* : nullable Object */;
3180 val
* var_e
/* var e: Object */;
3181 long var40
/* : Int */;
3182 long var41
/* : Int */;
3183 val
* var42
/* : HashMap[Object, Int] */;
3184 val
* var44
/* : HashMap[Object, Int] */;
3185 val
* var45
/* : nullable Object */;
3186 val
* var46
/* : HashMap[Object, HashSet[Int]] */;
3187 val
* var48
/* : HashMap[Object, HashSet[Int]] */;
3188 val
* var49
/* : nullable Object */;
3189 val
* var50
/* : nullable Object */;
3190 short int var51
/* : Bool */;
3191 short int var53
/* : Bool */;
3192 long var54
/* : Int */;
3193 short int var56
/* : Bool */;
3196 const char* var_class_name
;
3197 long var57
/* : Int */;
3198 long var58
/* : Int */;
3199 short int var60
/* : Bool */;
3202 const char* var_class_name63
;
3203 long var64
/* : Int */;
3204 val
* var66
/* : HashMap[Object, Int] */;
3205 val
* var68
/* : HashMap[Object, Int] */;
3206 val
* var69
/* : nullable Object */;
3208 { /* Inline coloring#POSetGroupColorer#graph (self) on <self:POSetGroupColorer[Object, Object]> */
3209 var2
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3210 if (unlikely(var2
== NULL
)) {
3211 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3212 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 282);
3220 { /* Inline coloring#POSetConflictGraph#order (var) on <var:POSetConflictGraph[Object]> */
3221 var5
= var
->attrs
[COLOR_nit__coloring__POSetConflictGraph___order
].val
; /* _order on <var:POSetConflictGraph[Object]> */
3222 if (unlikely(var5
== NULL
)) {
3223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _order");
3224 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 51);
3233 var6
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
3238 var8
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_7
);
3242 var9
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_7
);
3246 { /* Inline coloring#POSetGroupColorer#graph (self) on <self:POSetGroupColorer[Object, Object]> */
3247 var12
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3248 if (unlikely(var12
== NULL
)) {
3249 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3250 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 282);
3254 RET_LABEL11
:(void)0;
3258 { /* Inline coloring#POSetConflictGraph#core (var10) on <var10:POSetConflictGraph[Object]> */
3259 var15
= var10
->attrs
[COLOR_nit__coloring__POSetConflictGraph___core
].val
; /* _core on <var10:POSetConflictGraph[Object]> */
3260 if (unlikely(var15
== NULL
)) {
3261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
3262 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 22);
3266 RET_LABEL14
:(void)0;
3270 var16
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var13
, var_h
);
3278 var18
= nit___nit__POSetGroupColorer___inherit_color(self
, var_h
);
3281 var_mincolor
= var_color
;
3283 { /* Inline coloring#POSetGroupColorer#buckets (self) on <self:POSetGroupColorer[Object, Object]> */
3284 var21
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___buckets
].val
; /* _buckets on <self:POSetGroupColorer[Object, Object]> */
3285 if (unlikely(var21
== NULL
)) {
3286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _buckets");
3287 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 288);
3291 RET_LABEL20
:(void)0;
3295 var22
= ((val
*(*)(val
* self
, val
* p0
))((((long)var19
&3)?class_info
[((long)var19
&3)]:var19
->class)->vft
[COLOR_standard__abstract_collection__MapRead__get_or_null
]))(var19
, var_h
); /* get_or_null on <var19:Map[Object, Collection[Object]]>*/
3298 if (var_bucket
== NULL
) {
3299 var23
= 1; /* is null */
3301 var23
= 0; /* arg is null but recv is not */
3304 var24
= ((short int(*)(val
* self
, val
* p0
))((((long)var_bucket
&3)?class_info
[((long)var_bucket
&3)]:var_bucket
->class)->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_bucket
, ((val
*)NULL
)); /* == on <var_bucket:nullable Collection[Object]>*/
3312 { /* Inline coloring#POSetGroupColorer#graph (self) on <self:POSetGroupColorer[Object, Object]> */
3313 var27
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3314 if (unlikely(var27
== NULL
)) {
3315 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3316 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 282);
3320 RET_LABEL26
:(void)0;
3324 { /* Inline coloring#POSetConflictGraph#conflicts (var25) on <var25:POSetConflictGraph[Object]> */
3325 var30
= var25
->attrs
[COLOR_nit__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var25:POSetConflictGraph[Object]> */
3326 if (unlikely(var30
== NULL
)) {
3327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3328 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 40);
3332 RET_LABEL29
:(void)0;
3336 var31
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var28
, var_h
);
3338 var_conflicts
= var31
;
3340 var32
= nit___nit__POSetGroupColorer___poset(self
);
3343 var33
= poset___poset__POSet____91d_93d(var32
, var_h
);
3346 var34
= poset___poset__POSetElement___greaters(var33
);
3348 var_parents
= var34
;
3349 var_35
= var_bucket
;
3351 var36
= ((val
*(*)(val
* self
))((((long)var_35
&3)?class_info
[((long)var_35
&3)]:var_35
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_35
); /* iterator on <var_35:Collection[Object]>*/
3356 var38
= ((short int(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_37
); /* is_ok on <var_37:Iterator[Object]>*/
3360 var39
= ((val
*(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_37
); /* item on <var_37:Iterator[Object]>*/
3364 var40
= nit___nit__POSetGroupColorer___next_free_color(self
, var_color
, var_parents
);
3368 var41
= nit___nit__POSetGroupColorer___next_free_color(self
, var_color
, var_conflicts
);
3372 { /* Inline coloring#POSetGroupColorer#colors_cache (self) on <self:POSetGroupColorer[Object, Object]> */
3373 var44
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___colors_cache
].val
; /* _colors_cache on <self:POSetGroupColorer[Object, Object]> */
3374 if (unlikely(var44
== NULL
)) {
3375 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
3376 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 311);
3380 RET_LABEL43
:(void)0;
3384 var45
= (val
*)(var_color
<<2|1);
3385 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var42
, var_e
, var45
); /* Direct call hash_collection#HashMap#[]= on <var42:HashMap[Object, Int]>*/
3388 { /* Inline coloring#POSetGroupColorer#used_colors (self) on <self:POSetGroupColorer[Object, Object]> */
3389 var48
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___used_colors
].val
; /* _used_colors on <self:POSetGroupColorer[Object, Object]> */
3390 if (unlikely(var48
== NULL
)) {
3391 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _used_colors");
3392 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 314);
3396 RET_LABEL47
:(void)0;
3400 var49
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var46
, var_h
);
3403 var50
= (val
*)(var_color
<<2|1);
3404 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var49
, var50
); /* Direct call hash_collection#HashSet#add on <var49:nullable Object(HashSet[Int])>*/
3407 { /* Inline kernel#Int#== (var_mincolor,var_color) on <var_mincolor:Int> */
3408 var53
= var_mincolor
== var_color
;
3411 RET_LABEL52
:(void)0;
3416 { /* Inline kernel#Int#+ (var_mincolor,1l) on <var_mincolor:Int> */
3417 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3418 /* <1l:Int> isa OTHER */
3419 var56
= 1; /* easy <1l:Int> isa OTHER*/
3420 if (unlikely(!var56
)) {
3421 var_class_name
= type_standard__Int
.name
;
3422 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3423 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
3426 var57
= var_mincolor
+ 1l;
3429 RET_LABEL55
:(void)0;
3432 var_mincolor
= var54
;
3436 { /* Inline kernel#Int#+ (var_color,1l) on <var_color:Int> */
3437 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3438 /* <1l:Int> isa OTHER */
3439 var60
= 1; /* easy <1l:Int> isa OTHER*/
3440 if (unlikely(!var60
)) {
3441 var_class_name63
= type_standard__Int
.name
;
3442 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name63
);
3443 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
3446 var64
= var_color
+ 1l;
3449 RET_LABEL59
:(void)0;
3454 ((void(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_37
); /* next on <var_37:Iterator[Object]>*/
3460 BREAK_label65
: (void)0;
3462 ((void(*)(val
* self
))((((long)var_37
&3)?class_info
[((long)var_37
&3)]:var_37
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_37
); /* finish on <var_37:Iterator[Object]>*/
3465 { /* Inline coloring#POSetGroupColorer#min_colors (self) on <self:POSetGroupColorer[Object, Object]> */
3466 var68
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___min_colors
].val
; /* _min_colors on <self:POSetGroupColorer[Object, Object]> */
3467 if (unlikely(var68
== NULL
)) {
3468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _min_colors");
3469 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 409);
3473 RET_LABEL67
:(void)0;
3477 var69
= (val
*)(var_mincolor
<<2|1);
3478 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var66
, var_h
, var69
); /* Direct call hash_collection#HashMap#[]= on <var66:HashMap[Object, Int]>*/
3480 BREAK_label
: (void)0;
3482 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_7
); /* Direct call array#ArrayIterator#next on <var_7:ArrayIterator[Object]>*/
3488 BREAK_label70
: (void)0;
3490 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_7
); /* Direct call array#ArrayIterator#finish on <var_7:ArrayIterator[Object]>*/
3494 /* method coloring#POSetGroupColorer#colorize_set for (self: POSetGroupColorer[Object, Object], Set[Object]) */
3495 void nit___nit__POSetGroupColorer___colorize_set(val
* self
, val
* p0
) {
3496 short int var
/* : Bool */;
3499 const struct type
* type_struct
;
3500 const char* var_class_name
;
3501 val
* var_set
/* var set: Set[Object] */;
3502 val
* var1
/* : POSetConflictGraph[Object] */;
3503 val
* var3
/* : POSetConflictGraph[Object] */;
3504 val
* var4
/* : Array[nullable Object] */;
3505 val
* var6
/* : Array[nullable Object] */;
3506 val
* var_
/* var : Array[Object] */;
3507 val
* var7
/* : ArrayIterator[nullable Object] */;
3508 val
* var_8
/* var : ArrayIterator[Object] */;
3509 short int var9
/* : Bool */;
3510 val
* var10
/* : nullable Object */;
3511 val
* var_h
/* var h: Object */;
3512 short int var11
/* : Bool */;
3513 short int var12
/* : Bool */;
3514 long var13
/* : Int */;
3515 long var_color
/* var color: Int */;
3516 long var_mincolor
/* var mincolor: Int */;
3517 val
* var14
/* : Map[Object, Collection[Object]] */;
3518 val
* var16
/* : Map[Object, Collection[Object]] */;
3519 val
* var17
/* : nullable Object */;
3520 val
* var_bucket
/* var bucket: nullable Collection[Object] */;
3521 short int var18
/* : Bool */;
3522 short int var19
/* : Bool */;
3523 val
* var20
/* : POSet[Object] */;
3524 val
* var21
/* : POSetElement[nullable Object] */;
3525 val
* var22
/* : Collection[nullable Object] */;
3526 val
* var_parents
/* var parents: Collection[Object] */;
3527 val
* var_23
/* var : Collection[Object] */;
3528 val
* var24
/* : Iterator[nullable Object] */;
3529 val
* var_25
/* var : Iterator[Object] */;
3530 short int var26
/* : Bool */;
3531 val
* var27
/* : nullable Object */;
3532 val
* var_e
/* var e: Object */;
3533 long var28
/* : Int */;
3534 val
* var29
/* : HashMap[Object, Int] */;
3535 val
* var31
/* : HashMap[Object, Int] */;
3536 val
* var32
/* : nullable Object */;
3537 val
* var33
/* : HashMap[Object, HashSet[Int]] */;
3538 val
* var35
/* : HashMap[Object, HashSet[Int]] */;
3539 val
* var36
/* : nullable Object */;
3540 val
* var37
/* : nullable Object */;
3541 short int var38
/* : Bool */;
3542 short int var40
/* : Bool */;
3543 long var41
/* : Int */;
3544 short int var43
/* : Bool */;
3547 const char* var_class_name46
;
3548 long var47
/* : Int */;
3549 long var48
/* : Int */;
3550 short int var50
/* : Bool */;
3553 const char* var_class_name53
;
3554 long var54
/* : Int */;
3555 val
* var56
/* : HashMap[Object, Int] */;
3556 val
* var58
/* : HashMap[Object, Int] */;
3557 val
* var59
/* : nullable Object */;
3558 /* Covariant cast for argument 0 (set) <p0:Set[Object]> isa Set[H] */
3559 /* <p0:Set[Object]> isa Set[H] */
3560 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Set__nit__POSetGroupColorer___35dH
];
3561 cltype
= type_struct
->color
;
3562 idtype
= type_struct
->id
;
3563 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
3566 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
3568 if (unlikely(!var
)) {
3569 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
3570 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[H]", var_class_name
);
3571 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 375);
3576 { /* Inline coloring#POSetGroupColorer#graph (self) on <self:POSetGroupColorer[Object, Object]> */
3577 var3
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3578 if (unlikely(var3
== NULL
)) {
3579 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3580 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 282);
3588 { /* Inline coloring#POSetConflictGraph#order (var1) on <var1:POSetConflictGraph[Object]> */
3589 var6
= var1
->attrs
[COLOR_nit__coloring__POSetConflictGraph___order
].val
; /* _order on <var1:POSetConflictGraph[Object]> */
3590 if (unlikely(var6
== NULL
)) {
3591 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _order");
3592 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 51);
3601 var7
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
3606 var9
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_8
);
3610 var10
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_8
);
3614 var11
= ((short int(*)(val
* self
, val
* p0
))((((long)var_set
&3)?class_info
[((long)var_set
&3)]:var_set
->class)->vft
[COLOR_standard__abstract_collection__Collection__has
]))(var_set
, var_h
); /* has on <var_set:Set[Object]>*/
3622 var13
= nit___nit__POSetGroupColorer___inherit_color(self
, var_h
);
3625 var_mincolor
= var_color
;
3627 { /* Inline coloring#POSetGroupColorer#buckets (self) on <self:POSetGroupColorer[Object, Object]> */
3628 var16
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___buckets
].val
; /* _buckets on <self:POSetGroupColorer[Object, Object]> */
3629 if (unlikely(var16
== NULL
)) {
3630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _buckets");
3631 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 288);
3635 RET_LABEL15
:(void)0;
3639 var17
= ((val
*(*)(val
* self
, val
* p0
))((((long)var14
&3)?class_info
[((long)var14
&3)]:var14
->class)->vft
[COLOR_standard__abstract_collection__MapRead__get_or_null
]))(var14
, var_h
); /* get_or_null on <var14:Map[Object, Collection[Object]]>*/
3642 if (var_bucket
== NULL
) {
3643 var18
= 1; /* is null */
3645 var18
= 0; /* arg is null but recv is not */
3648 var19
= ((short int(*)(val
* self
, val
* p0
))((((long)var_bucket
&3)?class_info
[((long)var_bucket
&3)]:var_bucket
->class)->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_bucket
, ((val
*)NULL
)); /* == on <var_bucket:nullable Collection[Object]>*/
3656 var20
= nit___nit__POSetGroupColorer___poset(self
);
3659 var21
= poset___poset__POSet____91d_93d(var20
, var_h
);
3662 var22
= poset___poset__POSetElement___greaters(var21
);
3664 var_parents
= var22
;
3665 var_23
= var_bucket
;
3667 var24
= ((val
*(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_23
); /* iterator on <var_23:Collection[Object]>*/
3672 var26
= ((short int(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_25
); /* is_ok on <var_25:Iterator[Object]>*/
3676 var27
= ((val
*(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_25
); /* item on <var_25:Iterator[Object]>*/
3680 var28
= nit___nit__POSetGroupColorer___next_free_color(self
, var_color
, var_parents
);
3684 { /* Inline coloring#POSetGroupColorer#colors_cache (self) on <self:POSetGroupColorer[Object, Object]> */
3685 var31
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___colors_cache
].val
; /* _colors_cache on <self:POSetGroupColorer[Object, Object]> */
3686 if (unlikely(var31
== NULL
)) {
3687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
3688 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 311);
3692 RET_LABEL30
:(void)0;
3696 var32
= (val
*)(var_color
<<2|1);
3697 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var29
, var_e
, var32
); /* Direct call hash_collection#HashMap#[]= on <var29:HashMap[Object, Int]>*/
3700 { /* Inline coloring#POSetGroupColorer#used_colors (self) on <self:POSetGroupColorer[Object, Object]> */
3701 var35
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___used_colors
].val
; /* _used_colors on <self:POSetGroupColorer[Object, Object]> */
3702 if (unlikely(var35
== NULL
)) {
3703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _used_colors");
3704 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 314);
3708 RET_LABEL34
:(void)0;
3712 var36
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var33
, var_h
);
3715 var37
= (val
*)(var_color
<<2|1);
3716 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var36
, var37
); /* Direct call hash_collection#HashSet#add on <var36:nullable Object(HashSet[Int])>*/
3719 { /* Inline kernel#Int#== (var_mincolor,var_color) on <var_mincolor:Int> */
3720 var40
= var_mincolor
== var_color
;
3723 RET_LABEL39
:(void)0;
3728 { /* Inline kernel#Int#+ (var_mincolor,1l) on <var_mincolor:Int> */
3729 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3730 /* <1l:Int> isa OTHER */
3731 var43
= 1; /* easy <1l:Int> isa OTHER*/
3732 if (unlikely(!var43
)) {
3733 var_class_name46
= type_standard__Int
.name
;
3734 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46
);
3735 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
3738 var47
= var_mincolor
+ 1l;
3741 RET_LABEL42
:(void)0;
3744 var_mincolor
= var41
;
3748 { /* Inline kernel#Int#+ (var_color,1l) on <var_color:Int> */
3749 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3750 /* <1l:Int> isa OTHER */
3751 var50
= 1; /* easy <1l:Int> isa OTHER*/
3752 if (unlikely(!var50
)) {
3753 var_class_name53
= type_standard__Int
.name
;
3754 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53
);
3755 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
3758 var54
= var_color
+ 1l;
3761 RET_LABEL49
:(void)0;
3766 ((void(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_25
); /* next on <var_25:Iterator[Object]>*/
3772 BREAK_label55
: (void)0;
3774 ((void(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_25
); /* finish on <var_25:Iterator[Object]>*/
3777 { /* Inline coloring#POSetGroupColorer#min_colors (self) on <self:POSetGroupColorer[Object, Object]> */
3778 var58
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___min_colors
].val
; /* _min_colors on <self:POSetGroupColorer[Object, Object]> */
3779 if (unlikely(var58
== NULL
)) {
3780 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _min_colors");
3781 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 409);
3785 RET_LABEL57
:(void)0;
3789 var59
= (val
*)(var_mincolor
<<2|1);
3790 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var56
, var_h
, var59
); /* Direct call hash_collection#HashMap#[]= on <var56:HashMap[Object, Int]>*/
3792 BREAK_label
: (void)0;
3794 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_8
); /* Direct call array#ArrayIterator#next on <var_8:ArrayIterator[Object]>*/
3800 BREAK_label60
: (void)0;
3802 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_8
); /* Direct call array#ArrayIterator#finish on <var_8:ArrayIterator[Object]>*/
3806 /* method coloring#POSetGroupColorer#inherit_color for (self: POSetGroupColorer[Object, Object], Object): Int */
3807 long nit___nit__POSetGroupColorer___inherit_color(val
* self
, val
* p0
) {
3808 long var
/* : Int */;
3809 short int var1
/* : Bool */;
3812 const struct type
* type_struct
;
3813 const char* var_class_name
;
3814 val
* var_h
/* var h: Object */;
3815 long var_res
/* var res: Int */;
3816 val
* var2
/* : POSet[Object] */;
3817 val
* var3
/* : POSetElement[nullable Object] */;
3818 val
* var4
/* : Collection[nullable Object] */;
3819 val
* var_
/* var : Collection[Object] */;
3820 val
* var5
/* : Iterator[nullable Object] */;
3821 val
* var_6
/* var : Iterator[Object] */;
3822 short int var7
/* : Bool */;
3823 val
* var8
/* : nullable Object */;
3824 val
* var_p
/* var p: Object */;
3825 val
* var9
/* : HashMap[Object, Int] */;
3826 val
* var11
/* : HashMap[Object, Int] */;
3827 val
* var12
/* : nullable Object */;
3828 long var13
/* : Int */;
3829 long var_m
/* var m: Int */;
3830 short int var14
/* : Bool */;
3831 short int var16
/* : Bool */;
3834 const char* var_class_name19
;
3835 short int var20
/* : Bool */;
3836 val
* var21
/* : HashMap[Object, Int] */;
3837 val
* var23
/* : HashMap[Object, Int] */;
3838 val
* var24
/* : nullable Object */;
3839 /* Covariant cast for argument 0 (h) <p0:Object> isa H */
3840 /* <p0:Object> isa H */
3841 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetGroupColorer___35dH
];
3842 cltype
= type_struct
->color
;
3843 idtype
= type_struct
->id
;
3844 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
3847 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
3849 if (unlikely(!var1
)) {
3850 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
3851 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
3852 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 397);
3858 var2
= nit___nit__POSetGroupColorer___poset(self
);
3861 var3
= poset___poset__POSet____91d_93d(var2
, var_h
);
3864 var4
= poset___poset__POSetElement___direct_greaters(var3
);
3868 var5
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
3873 var7
= ((short int(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_6
); /* is_ok on <var_6:Iterator[Object]>*/
3877 var8
= ((val
*(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_6
); /* item on <var_6:Iterator[Object]>*/
3881 { /* Inline coloring#POSetGroupColorer#min_colors (self) on <self:POSetGroupColorer[Object, Object]> */
3882 var11
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___min_colors
].val
; /* _min_colors on <self:POSetGroupColorer[Object, Object]> */
3883 if (unlikely(var11
== NULL
)) {
3884 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _min_colors");
3885 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 409);
3889 RET_LABEL10
:(void)0;
3893 var12
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var9
, var_p
);
3895 var13
= (long)(var12
)>>2;
3898 { /* Inline kernel#Int#> (var_m,var_res) on <var_m:Int> */
3899 /* Covariant cast for argument 0 (i) <var_res:Int> isa OTHER */
3900 /* <var_res:Int> isa OTHER */
3901 var16
= 1; /* easy <var_res:Int> isa OTHER*/
3902 if (unlikely(!var16
)) {
3903 var_class_name19
= type_standard__Int
.name
;
3904 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19
);
3905 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
3908 var20
= var_m
> var_res
;
3911 RET_LABEL15
:(void)0;
3919 ((void(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_6
); /* next on <var_6:Iterator[Object]>*/
3925 BREAK_label
: (void)0;
3927 ((void(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_6
); /* finish on <var_6:Iterator[Object]>*/
3930 { /* Inline coloring#POSetGroupColorer#min_colors (self) on <self:POSetGroupColorer[Object, Object]> */
3931 var23
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___min_colors
].val
; /* _min_colors on <self:POSetGroupColorer[Object, Object]> */
3932 if (unlikely(var23
== NULL
)) {
3933 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _min_colors");
3934 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 409);
3938 RET_LABEL22
:(void)0;
3942 var24
= (val
*)(var_res
<<2|1);
3943 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var21
, var_h
, var24
); /* Direct call hash_collection#HashMap#[]= on <var21:HashMap[Object, Int]>*/
3950 /* method coloring#POSetGroupColorer#min_colors for (self: POSetGroupColorer[Object, Object]): HashMap[Object, Int] */
3951 val
* nit___nit__POSetGroupColorer___min_colors(val
* self
) {
3952 val
* var
/* : HashMap[Object, Int] */;
3953 val
* var1
/* : HashMap[Object, Int] */;
3954 var1
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___min_colors
].val
; /* _min_colors on <self:POSetGroupColorer[Object, Object]> */
3955 if (unlikely(var1
== NULL
)) {
3956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _min_colors");
3957 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 409);
3964 /* method coloring#POSetGroupColorer#next_free_color for (self: POSetGroupColorer[Object, Object], Int, Collection[Object]): Int */
3965 long nit___nit__POSetGroupColorer___next_free_color(val
* self
, long p0
, val
* p1
) {
3966 long var
/* : Int */;
3967 short int var1
/* : Bool */;
3970 const struct type
* type_struct
;
3971 const char* var_class_name
;
3972 long var_color
/* var color: Int */;
3973 val
* var_set
/* var set: Collection[Object] */;
3974 val
* var_
/* var : Collection[Object] */;
3975 val
* var2
/* : Iterator[nullable Object] */;
3976 val
* var_3
/* var : Iterator[Object] */;
3977 short int var4
/* : Bool */;
3978 val
* var5
/* : nullable Object */;
3979 val
* var_h
/* var h: Object */;
3980 val
* var6
/* : HashMap[Object, HashSet[Int]] */;
3981 val
* var8
/* : HashMap[Object, HashSet[Int]] */;
3982 val
* var9
/* : nullable Object */;
3983 short int var10
/* : Bool */;
3984 val
* var11
/* : nullable Object */;
3985 long var12
/* : Int */;
3986 short int var14
/* : Bool */;
3989 const char* var_class_name17
;
3990 long var18
/* : Int */;
3991 /* Covariant cast for argument 1 (set) <p1:Collection[Object]> isa Collection[H] */
3992 /* <p1:Collection[Object]> isa Collection[H] */
3993 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Collection__nit__POSetGroupColorer___35dH
];
3994 cltype
= type_struct
->color
;
3995 idtype
= type_struct
->id
;
3996 if(cltype
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
3999 var1
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype
] == idtype
;
4001 if (unlikely(!var1
)) {
4002 var_class_name
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
4003 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[H]", var_class_name
);
4004 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 416);
4012 var2
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
4017 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_3
); /* is_ok on <var_3:Iterator[Object]>*/
4021 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_3
); /* item on <var_3:Iterator[Object]>*/
4025 { /* Inline coloring#POSetGroupColorer#used_colors (self) on <self:POSetGroupColorer[Object, Object]> */
4026 var8
= self
->attrs
[COLOR_nit__coloring__POSetGroupColorer___used_colors
].val
; /* _used_colors on <self:POSetGroupColorer[Object, Object]> */
4027 if (unlikely(var8
== NULL
)) {
4028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _used_colors");
4029 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 314);
4037 var9
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var6
, var_h
);
4040 var11
= (val
*)(var_color
<<2|1);
4041 var10
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var9
, var11
);
4045 { /* Inline kernel#Int#+ (var_color,1l) on <var_color:Int> */
4046 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4047 /* <1l:Int> isa OTHER */
4048 var14
= 1; /* easy <1l:Int> isa OTHER*/
4049 if (unlikely(!var14
)) {
4050 var_class_name17
= type_standard__Int
.name
;
4051 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17
);
4052 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
4055 var18
= var_color
+ 1l;
4058 RET_LABEL13
:(void)0;
4066 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_3
); /* next on <var_3:Iterator[Object]>*/
4072 BREAK_label
: (void)0;
4074 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_3
); /* finish on <var_3:Iterator[Object]>*/
4085 /* method coloring#POSetGroupColorer#init for (self: POSetGroupColorer[Object, Object]) */
4086 void nit___nit__POSetGroupColorer___standard__kernel__Object__init(val
* self
) {
4088 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__POSetGroupColorer___standard__kernel__Object__init
]))(self
); /* init on <self:POSetGroupColorer[Object, Object]>*/
4092 /* method coloring#BucketsColorer#colors for (self: BucketsColorer[Object, Object]): HashMap[Object, Int] */
4093 val
* nit___nit__BucketsColorer___colors(val
* self
) {
4094 val
* var
/* : HashMap[Object, Int] */;
4095 val
* var1
/* : HashMap[Object, Int] */;
4096 var1
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4097 if (unlikely(var1
== NULL
)) {
4098 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4099 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 453);
4106 /* method coloring#BucketsColorer#conflicts for (self: BucketsColorer[Object, Object]): HashMap[Object, Set[Object]] */
4107 val
* nit___nit__BucketsColorer___conflicts(val
* self
) {
4108 val
* var
/* : HashMap[Object, Set[Object]] */;
4109 val
* var1
/* : HashMap[Object, Set[Object]] */;
4110 var1
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4111 if (unlikely(var1
== NULL
)) {
4112 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4113 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 454);
4120 /* method coloring#BucketsColorer#colorize for (self: BucketsColorer[Object, Object], Map[Object, Set[Object]]): Map[Object, Int] */
4121 val
* nit___nit__BucketsColorer___colorize(val
* self
, val
* p0
) {
4122 val
* var
/* : Map[Object, Int] */;
4123 short int var1
/* : Bool */;
4126 const struct type
* type_struct
;
4127 const char* var_class_name
;
4128 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
4129 long var_min_color
/* var min_color: Int */;
4130 val
* var_
/* var : Map[Object, Set[Object]] */;
4131 val
* var2
/* : MapIterator[nullable Object, nullable Object] */;
4132 val
* var_3
/* var : MapIterator[Object, Set[Object]] */;
4133 short int var4
/* : Bool */;
4134 val
* var5
/* : nullable Object */;
4135 val
* var_holder
/* var holder: Object */;
4136 val
* var6
/* : nullable Object */;
4137 val
* var_hbuckets
/* var hbuckets: Set[Object] */;
4138 val
* var_7
/* var : Set[Object] */;
4139 val
* var8
/* : Iterator[nullable Object] */;
4140 val
* var_9
/* var : Iterator[Object] */;
4141 short int var10
/* : Bool */;
4142 val
* var11
/* : nullable Object */;
4143 val
* var_bucket
/* var bucket: Object */;
4144 val
* var12
/* : HashMap[Object, Int] */;
4145 val
* var14
/* : HashMap[Object, Int] */;
4146 short int var15
/* : Bool */;
4147 long var_color
/* var color: Int */;
4148 short int var16
/* : Bool */;
4149 short int var17
/* : Bool */;
4150 long var18
/* : Int */;
4151 short int var20
/* : Bool */;
4154 const char* var_class_name23
;
4155 long var24
/* : Int */;
4156 val
* var26
/* : HashMap[Object, Int] */;
4157 val
* var28
/* : HashMap[Object, Int] */;
4158 val
* var29
/* : nullable Object */;
4159 val
* var33
/* : HashMap[Object, Int] */;
4160 val
* var35
/* : HashMap[Object, Int] */;
4161 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4162 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4163 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__BucketsColorer___35dH__standard__Set__nit__BucketsColorer___35dE
];
4164 cltype
= type_struct
->color
;
4165 idtype
= type_struct
->id
;
4166 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
4169 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
4171 if (unlikely(!var1
)) {
4172 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
4173 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
4174 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 456);
4179 nit___nit__BucketsColorer___compute_conflicts(self
, var_buckets
); /* Direct call coloring#BucketsColorer#compute_conflicts on <self:BucketsColorer[Object, Object]>*/
4184 var2
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_
); /* iterator on <var_:Map[Object, Set[Object]]>*/
4189 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_3
); /* is_ok on <var_3:MapIterator[Object, Set[Object]]>*/
4193 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_3
); /* key on <var_3:MapIterator[Object, Set[Object]]>*/
4197 var6
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_3
); /* item on <var_3:MapIterator[Object, Set[Object]]>*/
4199 var_hbuckets
= var6
;
4200 var_7
= var_hbuckets
;
4202 var8
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_7
); /* iterator on <var_7:Set[Object]>*/
4207 var10
= ((short int(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_9
); /* is_ok on <var_9:Iterator[Object]>*/
4211 var11
= ((val
*(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_9
); /* item on <var_9:Iterator[Object]>*/
4215 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
4216 var14
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4217 if (unlikely(var14
== NULL
)) {
4218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4219 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 453);
4223 RET_LABEL13
:(void)0;
4227 var15
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var12
, var_bucket
);
4233 var_color
= var_min_color
;
4236 var16
= nit___nit__BucketsColorer___is_color_free(self
, var_bucket
, var_color
);
4241 { /* Inline kernel#Int#+ (var_color,1l) on <var_color:Int> */
4242 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4243 /* <1l:Int> isa OTHER */
4244 var20
= 1; /* easy <1l:Int> isa OTHER*/
4245 if (unlikely(!var20
)) {
4246 var_class_name23
= type_standard__Int
.name
;
4247 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name23
);
4248 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
4251 var24
= var_color
+ 1l;
4254 RET_LABEL19
:(void)0;
4262 BREAK_label25
: (void)0;
4264 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
4265 var28
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4266 if (unlikely(var28
== NULL
)) {
4267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4268 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 453);
4272 RET_LABEL27
:(void)0;
4276 var29
= (val
*)(var_color
<<2|1);
4277 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var26
, var_bucket
, var29
); /* Direct call hash_collection#HashMap#[]= on <var26:HashMap[Object, Int]>*/
4279 var_color
= var_min_color
;
4280 BREAK_label
: (void)0;
4282 ((void(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_9
); /* next on <var_9:Iterator[Object]>*/
4288 BREAK_label30
: (void)0;
4290 ((void(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_9
); /* finish on <var_9:Iterator[Object]>*/
4293 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_3
); /* next on <var_3:MapIterator[Object, Set[Object]]>*/
4299 BREAK_label31
: (void)0;
4301 { /* Inline abstract_collection#MapIterator#finish (var_3) on <var_3:MapIterator[Object, Set[Object]]> */
4302 RET_LABEL32
:(void)0;
4306 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
4307 var35
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4308 if (unlikely(var35
== NULL
)) {
4309 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4310 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 453);
4314 RET_LABEL34
:(void)0;
4322 /* method coloring#BucketsColorer#is_color_free for (self: BucketsColorer[Object, Object], Object, Int): Bool */
4323 short int nit___nit__BucketsColorer___is_color_free(val
* self
, val
* p0
, long p1
) {
4324 short int var
/* : Bool */;
4325 short int var1
/* : Bool */;
4328 const struct type
* type_struct
;
4329 const char* var_class_name
;
4330 val
* var_bucket
/* var bucket: Object */;
4331 long var_color
/* var color: Int */;
4332 val
* var2
/* : HashMap[Object, Set[Object]] */;
4333 val
* var4
/* : HashMap[Object, Set[Object]] */;
4334 short int var5
/* : Bool */;
4335 val
* var6
/* : HashMap[Object, Set[Object]] */;
4336 val
* var8
/* : HashMap[Object, Set[Object]] */;
4337 val
* var9
/* : nullable Object */;
4338 val
* var_
/* var : Set[Object] */;
4339 val
* var10
/* : Iterator[nullable Object] */;
4340 val
* var_11
/* var : Iterator[Object] */;
4341 short int var12
/* : Bool */;
4342 val
* var13
/* : nullable Object */;
4343 val
* var_other
/* var other: Object */;
4344 short int var14
/* : Bool */;
4345 val
* var15
/* : HashMap[Object, Int] */;
4346 val
* var17
/* : HashMap[Object, Int] */;
4347 short int var18
/* : Bool */;
4348 short int var_19
/* var : Bool */;
4349 val
* var20
/* : HashMap[Object, Int] */;
4350 val
* var22
/* : HashMap[Object, Int] */;
4351 val
* var23
/* : nullable Object */;
4352 short int var24
/* : Bool */;
4353 short int var26
/* : Bool */;
4354 long var27
/* : Int */;
4355 /* Covariant cast for argument 0 (bucket) <p0:Object> isa E */
4356 /* <p0:Object> isa E */
4357 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__BucketsColorer___35dE
];
4358 cltype
= type_struct
->color
;
4359 idtype
= type_struct
->id
;
4360 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
4363 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
4365 if (unlikely(!var1
)) {
4366 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
4367 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
4368 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 474);
4374 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
4375 var4
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4376 if (unlikely(var4
== NULL
)) {
4377 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4378 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 454);
4386 var5
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var2
, var_bucket
);
4390 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
4391 var8
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4392 if (unlikely(var8
== NULL
)) {
4393 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4394 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 454);
4402 var9
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var6
, var_bucket
);
4406 var10
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[Object]>*/
4411 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:Iterator[Object]>*/
4415 var13
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:Iterator[Object]>*/
4419 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
4420 var17
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4421 if (unlikely(var17
== NULL
)) {
4422 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4423 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 453);
4427 RET_LABEL16
:(void)0;
4431 var18
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var15
, var_other
);
4436 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
4437 var22
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4438 if (unlikely(var22
== NULL
)) {
4439 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4440 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 453);
4444 RET_LABEL21
:(void)0;
4448 var23
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var20
, var_other
);
4451 { /* Inline kernel#Int#== (var23,var_color) on <var23:nullable Object(Int)> */
4452 var27
= (long)(var23
)>>2;
4453 var26
= (var23
!= NULL
) && (var27
== var_color
);
4456 RET_LABEL25
:(void)0;
4469 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:Iterator[Object]>*/
4475 BREAK_label
: (void)0;
4477 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:Iterator[Object]>*/
4486 /* method coloring#BucketsColorer#compute_conflicts for (self: BucketsColorer[Object, Object], Map[Object, Set[Object]]) */
4487 void nit___nit__BucketsColorer___compute_conflicts(val
* self
, val
* p0
) {
4488 short int var
/* : Bool */;
4491 const struct type
* type_struct
;
4492 const char* var_class_name
;
4493 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
4494 val
* var1
/* : HashMap[Object, Set[Object]] */;
4495 val
* var3
/* : HashMap[Object, Set[Object]] */;
4496 val
* var_
/* var : Map[Object, Set[Object]] */;
4497 val
* var4
/* : MapIterator[nullable Object, nullable Object] */;
4498 val
* var_5
/* var : MapIterator[Object, Set[Object]] */;
4499 short int var6
/* : Bool */;
4500 val
* var7
/* : nullable Object */;
4501 val
* var_holder
/* var holder: Object */;
4502 val
* var8
/* : nullable Object */;
4503 val
* var_hbuckets
/* var hbuckets: Set[Object] */;
4504 val
* var_9
/* var : Set[Object] */;
4505 val
* var10
/* : Iterator[nullable Object] */;
4506 val
* var_11
/* var : Iterator[Object] */;
4507 short int var12
/* : Bool */;
4508 val
* var13
/* : nullable Object */;
4509 val
* var_bucket
/* var bucket: Object */;
4510 val
* var14
/* : HashMap[Object, Set[Object]] */;
4511 val
* var16
/* : HashMap[Object, Set[Object]] */;
4512 short int var17
/* : Bool */;
4513 short int var18
/* : Bool */;
4514 val
* var19
/* : HashMap[Object, Set[Object]] */;
4515 val
* var21
/* : HashMap[Object, Set[Object]] */;
4516 val
* var22
/* : HashSet[Object] */;
4517 val
* var_23
/* var : Set[Object] */;
4518 val
* var24
/* : Iterator[nullable Object] */;
4519 val
* var_25
/* var : Iterator[Object] */;
4520 short int var26
/* : Bool */;
4521 val
* var27
/* : nullable Object */;
4522 val
* var_obucket
/* var obucket: Object */;
4523 short int var28
/* : Bool */;
4524 val
* var29
/* : HashMap[Object, Set[Object]] */;
4525 val
* var31
/* : HashMap[Object, Set[Object]] */;
4526 short int var32
/* : Bool */;
4527 short int var33
/* : Bool */;
4528 val
* var34
/* : HashMap[Object, Set[Object]] */;
4529 val
* var36
/* : HashMap[Object, Set[Object]] */;
4530 val
* var37
/* : HashSet[Object] */;
4531 val
* var38
/* : HashMap[Object, Set[Object]] */;
4532 val
* var40
/* : HashMap[Object, Set[Object]] */;
4533 val
* var41
/* : nullable Object */;
4534 val
* var42
/* : HashMap[Object, Set[Object]] */;
4535 val
* var44
/* : HashMap[Object, Set[Object]] */;
4536 val
* var45
/* : nullable Object */;
4537 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4538 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4539 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__BucketsColorer___35dH__standard__Set__nit__BucketsColorer___35dE
];
4540 cltype
= type_struct
->color
;
4541 idtype
= type_struct
->id
;
4542 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
4545 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
4547 if (unlikely(!var
)) {
4548 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
4549 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
4550 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 483);
4555 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
4556 var3
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4557 if (unlikely(var3
== NULL
)) {
4558 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4559 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 454);
4567 standard___standard__HashMap___standard__abstract_collection__Map__clear(var1
); /* Direct call hash_collection#HashMap#clear on <var1:HashMap[Object, Set[Object]]>*/
4571 var4
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__MapRead__iterator
]))(var_
); /* iterator on <var_:Map[Object, Set[Object]]>*/
4576 var6
= ((short int(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__is_ok
]))(var_5
); /* is_ok on <var_5:MapIterator[Object, Set[Object]]>*/
4580 var7
= ((val
*(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__key
]))(var_5
); /* key on <var_5:MapIterator[Object, Set[Object]]>*/
4584 var8
= ((val
*(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__item
]))(var_5
); /* item on <var_5:MapIterator[Object, Set[Object]]>*/
4586 var_hbuckets
= var8
;
4587 var_9
= var_hbuckets
;
4589 var10
= ((val
*(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_9
); /* iterator on <var_9:Set[Object]>*/
4594 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:Iterator[Object]>*/
4598 var13
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:Iterator[Object]>*/
4602 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
4603 var16
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4604 if (unlikely(var16
== NULL
)) {
4605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4606 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 454);
4610 RET_LABEL15
:(void)0;
4614 var17
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var14
, var_bucket
);
4619 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
4620 var21
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4621 if (unlikely(var21
== NULL
)) {
4622 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4623 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 454);
4627 RET_LABEL20
:(void)0;
4630 var22
= NEW_standard__HashSet(self
->type
->resolution_table
->types
[COLOR_standard__HashSet__nit__BucketsColorer___35dE
]);
4632 standard___standard__HashSet___standard__kernel__Object__init(var22
); /* Direct call hash_collection#HashSet#init on <var22:HashSet[Object]>*/
4635 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]]>*/
4639 var_23
= var_hbuckets
;
4641 var24
= ((val
*(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_23
); /* iterator on <var_23:Set[Object]>*/
4646 var26
= ((short int(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_25
); /* is_ok on <var_25:Iterator[Object]>*/
4650 var27
= ((val
*(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_25
); /* item on <var_25:Iterator[Object]>*/
4652 var_obucket
= var27
;
4654 var28
= ((short int(*)(val
* self
, val
* p0
))((((long)var_obucket
&3)?class_info
[((long)var_obucket
&3)]:var_obucket
->class)->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_obucket
, var_bucket
); /* == on <var_obucket:Object>*/
4661 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
4662 var31
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4663 if (unlikely(var31
== NULL
)) {
4664 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4665 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 454);
4669 RET_LABEL30
:(void)0;
4673 var32
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var29
, var_obucket
);
4678 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
4679 var36
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4680 if (unlikely(var36
== NULL
)) {
4681 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4682 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 454);
4686 RET_LABEL35
:(void)0;
4689 var37
= NEW_standard__HashSet(self
->type
->resolution_table
->types
[COLOR_standard__HashSet__nit__BucketsColorer___35dE
]);
4691 standard___standard__HashSet___standard__kernel__Object__init(var37
); /* Direct call hash_collection#HashSet#init on <var37:HashSet[Object]>*/
4694 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]]>*/
4699 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
4700 var40
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4701 if (unlikely(var40
== NULL
)) {
4702 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4703 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 454);
4707 RET_LABEL39
:(void)0;
4711 var41
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var38
, var_bucket
);
4714 ((void(*)(val
* self
, val
* p0
))((((long)var41
&3)?class_info
[((long)var41
&3)]:var41
->class)->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var41
, var_obucket
); /* add on <var41:nullable Object(Set[Object])>*/
4717 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
4718 var44
= self
->attrs
[COLOR_nit__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4719 if (unlikely(var44
== NULL
)) {
4720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4721 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 454);
4725 RET_LABEL43
:(void)0;
4729 var45
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var42
, var_obucket
);
4732 ((void(*)(val
* self
, val
* p0
))((((long)var45
&3)?class_info
[((long)var45
&3)]:var45
->class)->vft
[COLOR_standard__abstract_collection__SimpleCollection__add
]))(var45
, var_bucket
); /* add on <var45:nullable Object(Set[Object])>*/
4734 BREAK_label
: (void)0;
4736 ((void(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_25
); /* next on <var_25:Iterator[Object]>*/
4742 BREAK_label46
: (void)0;
4744 ((void(*)(val
* self
))((((long)var_25
&3)?class_info
[((long)var_25
&3)]:var_25
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_25
); /* finish on <var_25:Iterator[Object]>*/
4747 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:Iterator[Object]>*/
4753 BREAK_label47
: (void)0;
4755 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:Iterator[Object]>*/
4758 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_standard__abstract_collection__MapIterator__next
]))(var_5
); /* next on <var_5:MapIterator[Object, Set[Object]]>*/
4764 BREAK_label48
: (void)0;
4766 { /* Inline abstract_collection#MapIterator#finish (var_5) on <var_5:MapIterator[Object, Set[Object]]> */
4767 RET_LABEL49
:(void)0;
4772 /* method coloring#POSetBucketsColorer#colors for (self: POSetBucketsColorer[Object, Object]): HashMap[Object, Int] */
4773 val
* nit___nit__POSetBucketsColorer___colors(val
* self
) {
4774 val
* var
/* : HashMap[Object, Int] */;
4775 val
* var1
/* : HashMap[Object, Int] */;
4776 var1
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4777 if (unlikely(var1
== NULL
)) {
4778 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4779 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 504);
4786 /* method coloring#POSetBucketsColorer#poset for (self: POSetBucketsColorer[Object, Object]): POSet[Object] */
4787 val
* nit___nit__POSetBucketsColorer___poset(val
* self
) {
4788 val
* var
/* : POSet[Object] */;
4789 val
* var1
/* : POSet[Object] */;
4790 var1
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
4791 if (unlikely(var1
== NULL
)) {
4792 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
4793 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 505);
4800 /* method coloring#POSetBucketsColorer#poset= for (self: POSetBucketsColorer[Object, Object], POSet[Object]) */
4801 void nit___nit__POSetBucketsColorer___poset_61d(val
* self
, val
* p0
) {
4802 short int var
/* : Bool */;
4805 const struct type
* type_struct
;
4806 const char* var_class_name
;
4807 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[H] */
4808 /* <p0:POSet[Object]> isa POSet[H] */
4809 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nit__POSetBucketsColorer___35dH
];
4810 cltype
= type_struct
->color
;
4811 idtype
= type_struct
->id
;
4812 if(cltype
>= p0
->type
->table_size
) {
4815 var
= p0
->type
->type_table
[cltype
] == idtype
;
4817 if (unlikely(!var
)) {
4818 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
4819 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[H]", var_class_name
);
4820 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 505);
4823 self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___poset
].val
= p0
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
4826 /* method coloring#POSetBucketsColorer#conflicts for (self: POSetBucketsColorer[Object, Object]): Map[Object, Set[Object]] */
4827 val
* nit___nit__POSetBucketsColorer___conflicts(val
* self
) {
4828 val
* var
/* : Map[Object, Set[Object]] */;
4829 val
* var1
/* : Map[Object, Set[Object]] */;
4830 var1
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
4831 if (unlikely(var1
== NULL
)) {
4832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4833 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 506);
4840 /* method coloring#POSetBucketsColorer#conflicts= for (self: POSetBucketsColorer[Object, Object], Map[Object, Set[Object]]) */
4841 void nit___nit__POSetBucketsColorer___conflicts_61d(val
* self
, val
* p0
) {
4842 short int var
/* : Bool */;
4845 const struct type
* type_struct
;
4846 const char* var_class_name
;
4847 /* Covariant cast for argument 0 (conflicts) <p0:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
4848 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
4849 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetBucketsColorer___35dH__standard__Set__nit__POSetBucketsColorer___35dH
];
4850 cltype
= type_struct
->color
;
4851 idtype
= type_struct
->id
;
4852 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
4855 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
4857 if (unlikely(!var
)) {
4858 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
4859 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[H]]", var_class_name
);
4860 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 506);
4863 self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___conflicts
].val
= p0
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
4866 /* method coloring#POSetBucketsColorer#colorize for (self: POSetBucketsColorer[Object, Object], Map[Object, Set[Object]]): Map[Object, Int] */
4867 val
* nit___nit__POSetBucketsColorer___colorize(val
* self
, val
* p0
) {
4868 val
* var
/* : Map[Object, Int] */;
4869 short int var1
/* : Bool */;
4872 const struct type
* type_struct
;
4873 const char* var_class_name
;
4874 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
4875 val
* var2
/* : HashMap[Object, Int] */;
4876 val
* var4
/* : HashMap[Object, Int] */;
4877 val
* var5
/* : POSet[Object] */;
4878 val
* var7
/* : POSet[Object] */;
4879 val
* var8
/* : Collection[nullable Object] */;
4880 val
* var9
/* : Array[nullable Object] */;
4881 val
* var_
/* var : Array[Object] */;
4882 val
* var10
/* : ArrayIterator[nullable Object] */;
4883 val
* var_11
/* var : ArrayIterator[Object] */;
4884 short int var12
/* : Bool */;
4885 val
* var13
/* : nullable Object */;
4886 val
* var_h
/* var h: Object */;
4887 val
* var14
/* : POSet[Object] */;
4888 val
* var16
/* : POSet[Object] */;
4889 val
* var17
/* : POSetElement[nullable Object] */;
4890 val
* var18
/* : Collection[nullable Object] */;
4891 long var19
/* : Int */;
4892 long var_color
/* var color: Int */;
4893 val
* var20
/* : nullable Object */;
4894 val
* var_21
/* var : Set[Object] */;
4895 val
* var22
/* : Iterator[nullable Object] */;
4896 val
* var_23
/* var : Iterator[Object] */;
4897 short int var24
/* : Bool */;
4898 val
* var25
/* : nullable Object */;
4899 val
* var_bucket
/* var bucket: Object */;
4900 val
* var26
/* : HashMap[Object, Int] */;
4901 val
* var28
/* : HashMap[Object, Int] */;
4902 short int var29
/* : Bool */;
4903 short int var30
/* : Bool */;
4904 short int var31
/* : Bool */;
4905 long var32
/* : Int */;
4906 short int var34
/* : Bool */;
4909 const char* var_class_name37
;
4910 long var38
/* : Int */;
4911 val
* var40
/* : HashMap[Object, Int] */;
4912 val
* var42
/* : HashMap[Object, Int] */;
4913 val
* var43
/* : nullable Object */;
4914 long var44
/* : Int */;
4915 short int var46
/* : Bool */;
4918 const char* var_class_name49
;
4919 long var50
/* : Int */;
4920 val
* var53
/* : HashMap[Object, Int] */;
4921 val
* var55
/* : HashMap[Object, Int] */;
4922 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4923 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4924 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetBucketsColorer___35dH__standard__Set__nit__POSetBucketsColorer___35dE
];
4925 cltype
= type_struct
->color
;
4926 idtype
= type_struct
->id
;
4927 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
4930 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
4932 if (unlikely(!var1
)) {
4933 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
4934 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
4935 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 508);
4940 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4941 var4
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4942 if (unlikely(var4
== NULL
)) {
4943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4944 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 504);
4952 standard___standard__HashMap___standard__abstract_collection__Map__clear(var2
); /* Direct call hash_collection#HashMap#clear on <var2:HashMap[Object, Int]>*/
4955 { /* Inline coloring#POSetBucketsColorer#poset (self) on <self:POSetBucketsColorer[Object, Object]> */
4956 var7
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
4957 if (unlikely(var7
== NULL
)) {
4958 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
4959 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 505);
4967 var8
= ((val
*(*)(val
* self
))((((long)var_buckets
&3)?class_info
[((long)var_buckets
&3)]:var_buckets
->class)->vft
[COLOR_standard__abstract_collection__MapRead__keys
]))(var_buckets
); /* keys on <var_buckets:Map[Object, Set[Object]]>*/
4970 var9
= poset___poset__POSet___linearize(var5
, var8
);
4974 var10
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
4979 var12
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_11
);
4983 var13
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_11
);
4987 { /* Inline coloring#POSetBucketsColorer#poset (self) on <self:POSetBucketsColorer[Object, Object]> */
4988 var16
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
4989 if (unlikely(var16
== NULL
)) {
4990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
4991 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 505);
4995 RET_LABEL15
:(void)0;
4999 var17
= poset___poset__POSet____91d_93d(var14
, var_h
);
5002 var18
= poset___poset__POSetElement___direct_greaters(var17
);
5005 var19
= nit___nit__POSetBucketsColorer___min_color(self
, var18
, var_buckets
);
5009 var20
= ((val
*(*)(val
* self
, val
* p0
))((((long)var_buckets
&3)?class_info
[((long)var_buckets
&3)]:var_buckets
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_h
); /* [] on <var_buckets:Map[Object, Set[Object]]>*/
5013 var22
= ((val
*(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_21
); /* iterator on <var_21:Set[Object]>*/
5018 var24
= ((short int(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_23
); /* is_ok on <var_23:Iterator[Object]>*/
5022 var25
= ((val
*(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_23
); /* item on <var_23:Iterator[Object]>*/
5026 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5027 var28
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5028 if (unlikely(var28
== NULL
)) {
5029 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5030 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 504);
5034 RET_LABEL27
:(void)0;
5038 var29
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var26
, var_bucket
);
5046 var30
= nit___nit__POSetBucketsColorer___is_color_free(self
, var_color
, var_h
, var_buckets
);
5051 { /* Inline kernel#Int#+ (var_color,1l) on <var_color:Int> */
5052 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5053 /* <1l:Int> isa OTHER */
5054 var34
= 1; /* easy <1l:Int> isa OTHER*/
5055 if (unlikely(!var34
)) {
5056 var_class_name37
= type_standard__Int
.name
;
5057 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37
);
5058 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
5061 var38
= var_color
+ 1l;
5064 RET_LABEL33
:(void)0;
5072 BREAK_label39
: (void)0;
5074 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5075 var42
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5076 if (unlikely(var42
== NULL
)) {
5077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5078 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 504);
5082 RET_LABEL41
:(void)0;
5086 var43
= (val
*)(var_color
<<2|1);
5087 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var40
, var_bucket
, var43
); /* Direct call hash_collection#HashMap#[]= on <var40:HashMap[Object, Int]>*/
5090 { /* Inline kernel#Int#+ (var_color,1l) on <var_color:Int> */
5091 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5092 /* <1l:Int> isa OTHER */
5093 var46
= 1; /* easy <1l:Int> isa OTHER*/
5094 if (unlikely(!var46
)) {
5095 var_class_name49
= type_standard__Int
.name
;
5096 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49
);
5097 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
5100 var50
= var_color
+ 1l;
5103 RET_LABEL45
:(void)0;
5107 BREAK_label
: (void)0;
5109 ((void(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_23
); /* next on <var_23:Iterator[Object]>*/
5115 BREAK_label51
: (void)0;
5117 ((void(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_23
); /* finish on <var_23:Iterator[Object]>*/
5120 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[Object]>*/
5126 BREAK_label52
: (void)0;
5128 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_11
); /* Direct call array#ArrayIterator#finish on <var_11:ArrayIterator[Object]>*/
5131 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5132 var55
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5133 if (unlikely(var55
== NULL
)) {
5134 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5135 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 504);
5139 RET_LABEL54
:(void)0;
5147 /* method coloring#POSetBucketsColorer#min_color for (self: POSetBucketsColorer[Object, Object], Collection[Object], Map[Object, Set[Object]]): Int */
5148 long nit___nit__POSetBucketsColorer___min_color(val
* self
, val
* p0
, val
* p1
) {
5149 long var
/* : Int */;
5150 short int var1
/* : Bool */;
5153 const struct type
* type_struct
;
5154 const char* var_class_name
;
5155 short int var2
/* : Bool */;
5158 const struct type
* type_struct5
;
5159 const char* var_class_name6
;
5160 val
* var_others
/* var others: Collection[Object] */;
5161 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
5162 long var7
/* : Int */;
5163 long var9
/* : Int */;
5164 long var_min
/* var min: Int */;
5165 val
* var_
/* var : Collection[Object] */;
5166 val
* var10
/* : Iterator[nullable Object] */;
5167 val
* var_11
/* var : Iterator[Object] */;
5168 short int var12
/* : Bool */;
5169 val
* var13
/* : nullable Object */;
5170 val
* var_holder
/* var holder: Object */;
5171 long var14
/* : Int */;
5172 long var_color
/* var color: Int */;
5173 short int var15
/* : Bool */;
5174 short int var17
/* : Bool */;
5177 const char* var_class_name20
;
5178 short int var21
/* : Bool */;
5179 long var22
/* : Int */;
5180 short int var24
/* : Bool */;
5183 const char* var_class_name27
;
5184 long var28
/* : Int */;
5185 /* Covariant cast for argument 0 (others) <p0:Collection[Object]> isa Collection[H] */
5186 /* <p0:Collection[Object]> isa Collection[H] */
5187 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__Collection__nit__POSetBucketsColorer___35dH
];
5188 cltype
= type_struct
->color
;
5189 idtype
= type_struct
->id
;
5190 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
5193 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
5195 if (unlikely(!var1
)) {
5196 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
5197 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[H]", var_class_name
);
5198 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 523);
5201 /* Covariant cast for argument 1 (buckets) <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5202 /* <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5203 type_struct5
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetBucketsColorer___35dH__standard__Set__nit__POSetBucketsColorer___35dE
];
5204 cltype3
= type_struct5
->color
;
5205 idtype4
= type_struct5
->id
;
5206 if(cltype3
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
5209 var2
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype3
] == idtype4
;
5211 if (unlikely(!var2
)) {
5212 var_class_name6
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
5213 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
5214 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 523);
5220 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
5230 var10
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
5235 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:Iterator[Object]>*/
5239 var13
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:Iterator[Object]>*/
5243 var14
= nit___nit__POSetBucketsColorer___max_color(self
, var_holder
, var_buckets
);
5247 { /* Inline kernel#Int#> (var_color,var_min) on <var_color:Int> */
5248 /* Covariant cast for argument 0 (i) <var_min:Int> isa OTHER */
5249 /* <var_min:Int> isa OTHER */
5250 var17
= 1; /* easy <var_min:Int> isa OTHER*/
5251 if (unlikely(!var17
)) {
5252 var_class_name20
= type_standard__Int
.name
;
5253 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20
);
5254 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
5257 var21
= var_color
> var_min
;
5260 RET_LABEL16
:(void)0;
5264 var_min
= var_color
;
5268 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:Iterator[Object]>*/
5274 BREAK_label
: (void)0;
5276 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:Iterator[Object]>*/
5279 { /* Inline kernel#Int#+ (var_min,1l) on <var_min:Int> */
5280 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5281 /* <1l:Int> isa OTHER */
5282 var24
= 1; /* easy <1l:Int> isa OTHER*/
5283 if (unlikely(!var24
)) {
5284 var_class_name27
= type_standard__Int
.name
;
5285 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27
);
5286 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
5289 var28
= var_min
+ 1l;
5292 RET_LABEL23
:(void)0;
5300 /* method coloring#POSetBucketsColorer#max_color for (self: POSetBucketsColorer[Object, Object], Object, Map[Object, Set[Object]]): Int */
5301 long nit___nit__POSetBucketsColorer___max_color(val
* self
, val
* p0
, val
* p1
) {
5302 long var
/* : Int */;
5303 short int var1
/* : Bool */;
5306 const struct type
* type_struct
;
5307 const char* var_class_name
;
5308 short int var2
/* : Bool */;
5311 const struct type
* type_struct5
;
5312 const char* var_class_name6
;
5313 val
* var_holder
/* var holder: Object */;
5314 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
5315 long var7
/* : Int */;
5316 long var9
/* : Int */;
5317 long var_max
/* var max: Int */;
5318 val
* var10
/* : nullable Object */;
5319 val
* var_
/* var : Set[Object] */;
5320 val
* var11
/* : Iterator[nullable Object] */;
5321 val
* var_12
/* var : Iterator[Object] */;
5322 short int var13
/* : Bool */;
5323 val
* var14
/* : nullable Object */;
5324 val
* var_bucket
/* var bucket: Object */;
5325 val
* var15
/* : HashMap[Object, Int] */;
5326 val
* var17
/* : HashMap[Object, Int] */;
5327 short int var18
/* : Bool */;
5328 short int var19
/* : Bool */;
5329 val
* var20
/* : HashMap[Object, Int] */;
5330 val
* var22
/* : HashMap[Object, Int] */;
5331 val
* var23
/* : nullable Object */;
5332 long var24
/* : Int */;
5333 long var_color
/* var color: Int */;
5334 short int var25
/* : Bool */;
5335 short int var27
/* : Bool */;
5338 const char* var_class_name30
;
5339 short int var31
/* : Bool */;
5340 /* Covariant cast for argument 0 (holder) <p0:Object> isa H */
5341 /* <p0:Object> isa H */
5342 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetBucketsColorer___35dH
];
5343 cltype
= type_struct
->color
;
5344 idtype
= type_struct
->id
;
5345 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
5348 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
5350 if (unlikely(!var1
)) {
5351 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
5352 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
5353 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 533);
5356 /* Covariant cast for argument 1 (buckets) <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5357 /* <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5358 type_struct5
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetBucketsColorer___35dH__standard__Set__nit__POSetBucketsColorer___35dE
];
5359 cltype3
= type_struct5
->color
;
5360 idtype4
= type_struct5
->id
;
5361 if(cltype3
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
5364 var2
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype3
] == idtype4
;
5366 if (unlikely(!var2
)) {
5367 var_class_name6
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
5368 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
5369 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 533);
5375 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
5384 var10
= ((val
*(*)(val
* self
, val
* p0
))((((long)var_buckets
&3)?class_info
[((long)var_buckets
&3)]:var_buckets
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_holder
); /* [] on <var_buckets:Map[Object, Set[Object]]>*/
5388 var11
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[Object]>*/
5393 var13
= ((short int(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_12
); /* is_ok on <var_12:Iterator[Object]>*/
5397 var14
= ((val
*(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_12
); /* item on <var_12:Iterator[Object]>*/
5401 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5402 var17
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5403 if (unlikely(var17
== NULL
)) {
5404 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5405 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 504);
5409 RET_LABEL16
:(void)0;
5413 var18
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var15
, var_bucket
);
5421 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5422 var22
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5423 if (unlikely(var22
== NULL
)) {
5424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5425 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 504);
5429 RET_LABEL21
:(void)0;
5433 var23
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var20
, var_bucket
);
5435 var24
= (long)(var23
)>>2;
5438 { /* Inline kernel#Int#> (var_color,var_max) on <var_color:Int> */
5439 /* Covariant cast for argument 0 (i) <var_max:Int> isa OTHER */
5440 /* <var_max:Int> isa OTHER */
5441 var27
= 1; /* easy <var_max:Int> isa OTHER*/
5442 if (unlikely(!var27
)) {
5443 var_class_name30
= type_standard__Int
.name
;
5444 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30
);
5445 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
5448 var31
= var_color
> var_max
;
5451 RET_LABEL26
:(void)0;
5455 var_max
= var_color
;
5458 BREAK_label
: (void)0;
5460 ((void(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_12
); /* next on <var_12:Iterator[Object]>*/
5466 BREAK_label32
: (void)0;
5468 ((void(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_12
); /* finish on <var_12:Iterator[Object]>*/
5475 /* method coloring#POSetBucketsColorer#is_color_free for (self: POSetBucketsColorer[Object, Object], Int, Object, Map[Object, Set[Object]]): Bool */
5476 short int nit___nit__POSetBucketsColorer___is_color_free(val
* self
, long p0
, val
* p1
, val
* p2
) {
5477 short int var
/* : Bool */;
5478 short int var1
/* : Bool */;
5481 const struct type
* type_struct
;
5482 const char* var_class_name
;
5483 short int var2
/* : Bool */;
5486 const struct type
* type_struct5
;
5487 const char* var_class_name6
;
5488 long var_color
/* var color: Int */;
5489 val
* var_holder
/* var holder: Object */;
5490 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
5491 val
* var7
/* : Map[Object, Set[Object]] */;
5492 val
* var9
/* : Map[Object, Set[Object]] */;
5493 short int var10
/* : Bool */;
5494 short int var11
/* : Bool */;
5495 val
* var12
/* : Map[Object, Set[Object]] */;
5496 val
* var14
/* : Map[Object, Set[Object]] */;
5497 val
* var15
/* : nullable Object */;
5498 val
* var_
/* var : Set[Object] */;
5499 val
* var16
/* : Iterator[nullable Object] */;
5500 val
* var_17
/* var : Iterator[Object] */;
5501 short int var18
/* : Bool */;
5502 val
* var19
/* : nullable Object */;
5503 val
* var_conflict
/* var conflict: Object */;
5504 val
* var20
/* : nullable Object */;
5505 val
* var_21
/* var : Set[Object] */;
5506 val
* var22
/* : Iterator[nullable Object] */;
5507 val
* var_23
/* var : Iterator[Object] */;
5508 short int var24
/* : Bool */;
5509 val
* var25
/* : nullable Object */;
5510 val
* var_bucket
/* var bucket: Object */;
5511 val
* var26
/* : HashMap[Object, Int] */;
5512 val
* var28
/* : HashMap[Object, Int] */;
5513 short int var29
/* : Bool */;
5514 short int var30
/* : Bool */;
5515 val
* var31
/* : HashMap[Object, Int] */;
5516 val
* var33
/* : HashMap[Object, Int] */;
5517 val
* var34
/* : nullable Object */;
5518 short int var35
/* : Bool */;
5519 short int var37
/* : Bool */;
5520 long var38
/* : Int */;
5521 /* Covariant cast for argument 1 (holder) <p1:Object> isa H */
5522 /* <p1:Object> isa H */
5523 type_struct
= self
->type
->resolution_table
->types
[COLOR_nit__POSetBucketsColorer___35dH
];
5524 cltype
= type_struct
->color
;
5525 idtype
= type_struct
->id
;
5526 if(cltype
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
5529 var1
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype
] == idtype
;
5531 if (unlikely(!var1
)) {
5532 var_class_name
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
5533 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
5534 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 544);
5537 /* Covariant cast for argument 2 (buckets) <p2:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5538 /* <p2:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5539 type_struct5
= self
->type
->resolution_table
->types
[COLOR_standard__Map__nit__POSetBucketsColorer___35dH__standard__Set__nit__POSetBucketsColorer___35dE
];
5540 cltype3
= type_struct5
->color
;
5541 idtype4
= type_struct5
->id
;
5542 if(cltype3
>= (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->table_size
) {
5545 var2
= (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->type_table
[cltype3
] == idtype4
;
5547 if (unlikely(!var2
)) {
5548 var_class_name6
= p2
== NULL ?
"null" : (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->name
;
5549 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
5550 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 544);
5557 { /* Inline coloring#POSetBucketsColorer#conflicts (self) on <self:POSetBucketsColorer[Object, Object]> */
5558 var9
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
5559 if (unlikely(var9
== NULL
)) {
5560 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
5561 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 506);
5569 var10
= ((short int(*)(val
* self
, val
* p0
))((((long)var7
&3)?class_info
[((long)var7
&3)]:var7
->class)->vft
[COLOR_standard__abstract_collection__MapRead__has_key
]))(var7
, var_holder
); /* has_key on <var7:Map[Object, Set[Object]]>*/
5578 { /* Inline coloring#POSetBucketsColorer#conflicts (self) on <self:POSetBucketsColorer[Object, Object]> */
5579 var14
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
5580 if (unlikely(var14
== NULL
)) {
5581 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
5582 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 506);
5586 RET_LABEL13
:(void)0;
5590 var15
= ((val
*(*)(val
* self
, val
* p0
))((((long)var12
&3)?class_info
[((long)var12
&3)]:var12
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var12
, var_holder
); /* [] on <var12:Map[Object, Set[Object]]>*/
5594 var16
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[Object]>*/
5599 var18
= ((short int(*)(val
* self
))((((long)var_17
&3)?class_info
[((long)var_17
&3)]:var_17
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_17
); /* is_ok on <var_17:Iterator[Object]>*/
5603 var19
= ((val
*(*)(val
* self
))((((long)var_17
&3)?class_info
[((long)var_17
&3)]:var_17
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_17
); /* item on <var_17:Iterator[Object]>*/
5605 var_conflict
= var19
;
5607 var20
= ((val
*(*)(val
* self
, val
* p0
))((((long)var_buckets
&3)?class_info
[((long)var_buckets
&3)]:var_buckets
->class)->vft
[COLOR_standard__abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_conflict
); /* [] on <var_buckets:Map[Object, Set[Object]]>*/
5611 var22
= ((val
*(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_21
); /* iterator on <var_21:Set[Object]>*/
5616 var24
= ((short int(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_23
); /* is_ok on <var_23:Iterator[Object]>*/
5620 var25
= ((val
*(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_23
); /* item on <var_23:Iterator[Object]>*/
5624 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5625 var28
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5626 if (unlikely(var28
== NULL
)) {
5627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5628 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 504);
5632 RET_LABEL27
:(void)0;
5636 var29
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var26
, var_bucket
);
5644 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5645 var33
= self
->attrs
[COLOR_nit__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5646 if (unlikely(var33
== NULL
)) {
5647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5648 PRINT_ERROR(" (%s:%d)\n", FILE_nit__coloring
, 504);
5652 RET_LABEL32
:(void)0;
5656 var34
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var31
, var_bucket
);
5659 { /* Inline kernel#Int#== (var34,var_color) on <var34:nullable Object(Int)> */
5660 var38
= (long)(var34
)>>2;
5661 var37
= (var34
!= NULL
) && (var38
== var_color
);
5664 RET_LABEL36
:(void)0;
5672 BREAK_label
: (void)0;
5674 ((void(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_23
); /* next on <var_23:Iterator[Object]>*/
5680 BREAK_label39
: (void)0;
5682 ((void(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_23
); /* finish on <var_23:Iterator[Object]>*/
5685 ((void(*)(val
* self
))((((long)var_17
&3)?class_info
[((long)var_17
&3)]:var_17
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_17
); /* next on <var_17:Iterator[Object]>*/
5691 BREAK_label40
: (void)0;
5693 ((void(*)(val
* self
))((((long)var_17
&3)?class_info
[((long)var_17
&3)]:var_17
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_17
); /* finish on <var_17:Iterator[Object]>*/
5700 /* method coloring#POSetBucketsColorer#init for (self: POSetBucketsColorer[Object, Object]) */
5701 void nit___nit__POSetBucketsColorer___standard__kernel__Object__init(val
* self
) {
5703 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__POSetBucketsColorer___standard__kernel__Object__init
]))(self
); /* init on <self:POSetBucketsColorer[Object, Object]>*/