1 #include "nitc__coloring.sep.0.h"
2 /* method coloring$POSetConflictGraph$core for (self: POSetConflictGraph[nullable Object]): HashSet[nullable Object] */
3 val
* nitc___nitc__POSetConflictGraph___core(val
* self
) {
4 val
* var
/* : HashSet[nullable Object] */;
5 val
* var1
/* : HashSet[nullable Object] */;
6 var1
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
7 if (unlikely(var1
== NULL
)) {
8 if(catchStack
.cursor
>= 0){
9 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
11 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
12 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 22);
19 /* method coloring$POSetConflictGraph$border for (self: POSetConflictGraph[nullable Object]): HashSet[nullable Object] */
20 val
* nitc___nitc__POSetConflictGraph___border(val
* self
) {
21 val
* var
/* : HashSet[nullable Object] */;
22 val
* var1
/* : HashSet[nullable Object] */;
23 var1
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable Object]> */
24 if (unlikely(var1
== NULL
)) {
25 if(catchStack
.cursor
>= 0){
26 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
28 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
29 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 28);
36 /* method coloring$POSetConflictGraph$crown for (self: POSetConflictGraph[nullable Object]): HashSet[nullable Object] */
37 val
* nitc___nitc__POSetConflictGraph___crown(val
* self
) {
38 val
* var
/* : HashSet[nullable Object] */;
39 val
* var1
/* : HashSet[nullable Object] */;
40 var1
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[nullable Object]> */
41 if (unlikely(var1
== NULL
)) {
42 if(catchStack
.cursor
>= 0){
43 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
45 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
46 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 34);
53 /* method coloring$POSetConflictGraph$conflicts for (self: POSetConflictGraph[nullable Object]): HashMap[nullable Object, Set[nullable Object]] */
54 val
* nitc___nitc__POSetConflictGraph___conflicts(val
* self
) {
55 val
* var
/* : HashMap[nullable Object, Set[nullable Object]] */;
56 val
* var1
/* : HashMap[nullable Object, Set[nullable Object]] */;
57 var1
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
58 if (unlikely(var1
== NULL
)) {
59 if(catchStack
.cursor
>= 0){
60 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
62 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
63 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 40);
70 /* method coloring$POSetConflictGraph$poset for (self: POSetConflictGraph[nullable Object]): POSet[nullable Object] */
71 val
* nitc___nitc__POSetConflictGraph___poset(val
* self
) {
72 val
* var
/* : POSet[nullable Object] */;
73 val
* var1
/* : POSet[nullable Object] */;
74 var1
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
75 if (unlikely(var1
== NULL
)) {
76 if(catchStack
.cursor
>= 0){
77 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
79 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
80 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
87 /* method coloring$POSetConflictGraph$poset= for (self: POSetConflictGraph[nullable Object], POSet[nullable Object]) */
88 void nitc___nitc__POSetConflictGraph___poset_61d(val
* self
, val
* p0
) {
89 short int var
/* : Bool */;
92 const struct type
* type_struct
;
93 const char* var_class_name
;
94 /* Covariant cast for argument 0 (poset) <p0:POSet[nullable Object]> isa POSet[E] */
95 /* <p0:POSet[nullable Object]> isa POSet[E] */
96 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nitc__POSetConflictGraph___35dE
];
97 cltype
= type_struct
->color
;
98 idtype
= type_struct
->id
;
99 if(cltype
>= p0
->type
->table_size
) {
102 var
= p0
->type
->type_table
[cltype
] == idtype
;
104 if (unlikely(!var
)) {
105 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
106 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
107 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
110 self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
= p0
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
113 /* method coloring$POSetConflictGraph$order for (self: POSetConflictGraph[nullable Object]): Array[nullable Object] */
114 val
* nitc___nitc__POSetConflictGraph___order(val
* self
) {
115 val
* var
/* : Array[nullable Object] */;
116 val
* var1
/* : Array[nullable Object] */;
117 var1
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___order
].val
; /* _order on <self:POSetConflictGraph[nullable Object]> */
118 if (unlikely(var1
== NULL
)) {
119 if(catchStack
.cursor
>= 0){
120 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _order");
123 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 51);
130 /* method coloring$POSetConflictGraph$order= for (self: POSetConflictGraph[nullable Object], Array[nullable Object]) */
131 void nitc___nitc__POSetConflictGraph___order_61d(val
* self
, val
* p0
) {
132 short int var
/* : Bool */;
135 const struct type
* type_struct
;
136 const char* var_class_name
;
137 /* Covariant cast for argument 0 (order) <p0:Array[nullable Object]> isa Array[E] */
138 /* <p0:Array[nullable Object]> isa Array[E] */
139 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Array__nitc__POSetConflictGraph___35dE
];
140 cltype
= type_struct
->color
;
141 idtype
= type_struct
->id
;
142 if(cltype
>= p0
->type
->table_size
) {
145 var
= p0
->type
->type_table
[cltype
] == idtype
;
147 if (unlikely(!var
)) {
148 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
149 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[E]", var_class_name
);
150 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 51);
153 self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___order
].val
= p0
; /* _order on <self:POSetConflictGraph[nullable Object]> */
156 /* method coloring$POSetConflictGraph$init for (self: POSetConflictGraph[nullable Object]) */
157 void nitc___nitc__POSetConflictGraph___core__kernel__Object__init(val
* self
) {
158 val
* var
/* : POSet[nullable Object] */;
159 val
* var2
/* : POSet[nullable Object] */;
160 val
* var3
/* : POSet[nullable Object] */;
161 val
* var5
/* : POSet[nullable Object] */;
162 val
* var6
/* : Array[nullable Object] */;
163 short int var8
/* : Bool */;
166 const struct type
* type_struct
;
167 const char* var_class_name
;
169 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc___nitc__POSetConflictGraph___core__kernel__Object__init
]))(self
); /* init on <self:POSetConflictGraph[nullable Object]>*/
172 nitc___nitc__POSetConflictGraph___extract_core(self
); /* Direct call coloring$POSetConflictGraph$extract_core on <self:POSetConflictGraph[nullable Object]>*/
175 nitc___nitc__POSetConflictGraph___extract_border(self
); /* Direct call coloring$POSetConflictGraph$extract_border on <self:POSetConflictGraph[nullable Object]>*/
178 nitc___nitc__POSetConflictGraph___extract_crown(self
); /* Direct call coloring$POSetConflictGraph$extract_crown on <self:POSetConflictGraph[nullable Object]>*/
181 nitc___nitc__POSetConflictGraph___compute_conflicts(self
); /* Direct call coloring$POSetConflictGraph$compute_conflicts on <self:POSetConflictGraph[nullable Object]>*/
184 { /* Inline coloring$POSetConflictGraph$poset (self) on <self:POSetConflictGraph[nullable Object]> */
185 var2
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
186 if (unlikely(var2
== NULL
)) {
187 if(catchStack
.cursor
>= 0){
188 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
191 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
199 { /* Inline coloring$POSetConflictGraph$poset (self) on <self:POSetConflictGraph[nullable Object]> */
200 var5
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
201 if (unlikely(var5
== NULL
)) {
202 if(catchStack
.cursor
>= 0){
203 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
206 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
214 var6
= poset___poset__POSet___linearize(var
, var3
);
217 { /* Inline coloring$POSetConflictGraph$order= (self,var6) on <self:POSetConflictGraph[nullable Object]> */
218 /* Covariant cast for argument 0 (order) <var6:Array[nullable Object]> isa Array[E] */
219 /* <var6:Array[nullable Object]> isa Array[E] */
220 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Array__nitc__POSetConflictGraph___35dE
];
221 cltype
= type_struct
->color
;
222 idtype
= type_struct
->id
;
223 if(cltype
>= var6
->type
->table_size
) {
226 var8
= var6
->type
->type_table
[cltype
] == idtype
;
228 if (unlikely(!var8
)) {
229 var_class_name
= var6
== NULL ?
"null" : var6
->type
->name
;
230 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[E]", var_class_name
);
231 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 51);
234 self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___order
].val
= var6
; /* _order on <self:POSetConflictGraph[nullable Object]> */
240 /* method coloring$POSetConflictGraph$extract_core for (self: POSetConflictGraph[nullable Object]) */
241 void nitc___nitc__POSetConflictGraph___extract_core(val
* self
) {
242 val
* var
/* : HashSet[nullable Object] */;
243 val
* var2
/* : HashSet[nullable Object] */;
244 val
* var3
/* : POSet[nullable Object] */;
245 val
* var5
/* : POSet[nullable Object] */;
246 val
* var_
/* var : POSet[nullable Object] */;
247 val
* var6
/* : Iterator[nullable Object] */;
248 val
* var_7
/* var : Iterator[nullable Object] */;
249 short int var8
/* : Bool */;
250 val
* var9
/* : nullable Object */;
251 val
* var_e
/* var e: nullable Object */;
252 val
* var10
/* : POSet[nullable Object] */;
253 val
* var12
/* : POSet[nullable Object] */;
254 val
* var13
/* : POSetElement[nullable Object] */;
255 val
* var14
/* : Collection[nullable Object] */;
256 long var15
/* : Int */;
257 short int var16
/* : Bool */;
258 short int var18
/* : Bool */;
261 const char* var_class_name
;
262 short int var19
/* : Bool */;
263 val
* var20
/* : HashSet[nullable Object] */;
264 val
* var22
/* : HashSet[nullable Object] */;
265 val
* var23
/* : POSet[nullable Object] */;
266 val
* var25
/* : POSet[nullable Object] */;
267 val
* var26
/* : POSetElement[nullable Object] */;
268 val
* var27
/* : Collection[nullable Object] */;
270 { /* Inline coloring$POSetConflictGraph$core (self) on <self:POSetConflictGraph[nullable Object]> */
271 var2
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
272 if (unlikely(var2
== NULL
)) {
273 if(catchStack
.cursor
>= 0){
274 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
277 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 22);
285 core___core__HashSet___core__abstract_collection__RemovableCollection__clear(var
); /* Direct call hash_collection$HashSet$clear on <var:HashSet[nullable Object]>*/
288 { /* Inline coloring$POSetConflictGraph$poset (self) on <self:POSetConflictGraph[nullable Object]> */
289 var5
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
290 if (unlikely(var5
== NULL
)) {
291 if(catchStack
.cursor
>= 0){
292 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
295 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
304 var6
= poset___poset__POSet___core__abstract_collection__Collection__iterator(var_
);
309 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[nullable Object]>*/
316 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[nullable Object]>*/
320 { /* Inline coloring$POSetConflictGraph$poset (self) on <self:POSetConflictGraph[nullable Object]> */
321 var12
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
322 if (unlikely(var12
== NULL
)) {
323 if(catchStack
.cursor
>= 0){
324 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
326 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
327 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
335 var13
= poset___poset__POSet____91d_93d(var10
, var_e
);
338 var14
= poset___poset__POSetElement___direct_greaters(var13
);
341 var15
= ((long(*)(val
* self
))((((long)var14
&3)?class_info
[((long)var14
&3)]:var14
->class)->vft
[COLOR_core__abstract_collection__Collection__length
]))(var14
); /* length on <var14:Collection[nullable Object]>*/
344 { /* Inline kernel$Int$> (var15,1l) on <var15:Int> */
345 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
346 /* <1l:Int> isa OTHER */
347 var18
= 1; /* easy <1l:Int> isa OTHER*/
348 if (unlikely(!var18
)) {
349 var_class_name
= type_core__Int
.name
;
350 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
351 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
362 { /* Inline coloring$POSetConflictGraph$core (self) on <self:POSetConflictGraph[nullable Object]> */
363 var22
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
364 if (unlikely(var22
== NULL
)) {
365 if(catchStack
.cursor
>= 0){
366 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
369 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 22);
377 { /* Inline coloring$POSetConflictGraph$poset (self) on <self:POSetConflictGraph[nullable Object]> */
378 var25
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
379 if (unlikely(var25
== NULL
)) {
380 if(catchStack
.cursor
>= 0){
381 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
384 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
392 var26
= poset___poset__POSet____91d_93d(var23
, var_e
);
395 var27
= poset___poset__POSetElement___greaters(var26
);
398 core___core__SimpleCollection___add_all(var20
, var27
); /* Direct call abstract_collection$SimpleCollection$add_all on <var20:HashSet[nullable Object]>*/
403 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[nullable Object]>*/
406 BREAK_label
: (void)0;
408 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[nullable Object]>*/
412 /* method coloring$POSetConflictGraph$extract_border for (self: POSetConflictGraph[nullable Object]) */
413 void nitc___nitc__POSetConflictGraph___extract_border(val
* self
) {
414 val
* var
/* : HashSet[nullable Object] */;
415 val
* var2
/* : HashSet[nullable Object] */;
416 val
* var3
/* : HashSet[nullable Object] */;
417 val
* var5
/* : HashSet[nullable Object] */;
418 val
* var_
/* var : HashSet[nullable Object] */;
419 val
* var6
/* : Iterator[nullable Object] */;
420 val
* var_7
/* var : Iterator[nullable Object] */;
421 short int var8
/* : Bool */;
422 val
* var9
/* : nullable Object */;
423 val
* var_e
/* var e: nullable Object */;
424 short int var10
/* : Bool */;
425 short int var11
/* : Bool */;
426 val
* var13
/* : HashSet[nullable Object] */;
427 val
* var15
/* : HashSet[nullable Object] */;
428 val
* var16
/* : HashSet[nullable Object] */;
429 val
* var18
/* : HashSet[nullable Object] */;
430 val
* var_19
/* var : HashSet[nullable Object] */;
431 val
* var20
/* : Iterator[nullable Object] */;
432 val
* var_21
/* var : Iterator[nullable Object] */;
433 short int var22
/* : Bool */;
434 val
* var24
/* : nullable Object */;
435 val
* var_e25
/* var e: nullable Object */;
436 val
* var26
/* : HashSet[nullable Object] */;
437 val
* var28
/* : HashSet[nullable Object] */;
439 { /* Inline coloring$POSetConflictGraph$border (self) on <self:POSetConflictGraph[nullable Object]> */
440 var2
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable Object]> */
441 if (unlikely(var2
== NULL
)) {
442 if(catchStack
.cursor
>= 0){
443 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
445 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
446 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 28);
454 core___core__HashSet___core__abstract_collection__RemovableCollection__clear(var
); /* Direct call hash_collection$HashSet$clear on <var:HashSet[nullable Object]>*/
457 { /* Inline coloring$POSetConflictGraph$core (self) on <self:POSetConflictGraph[nullable Object]> */
458 var5
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
459 if (unlikely(var5
== NULL
)) {
460 if(catchStack
.cursor
>= 0){
461 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
464 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 22);
473 var6
= core___core__HashSet___core__abstract_collection__Collection__iterator(var_
);
478 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[nullable Object]>*/
485 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[nullable Object]>*/
489 var10
= nitc___nitc__POSetConflictGraph___is_border(self
, var_e
);
497 { /* Inline coloring$POSetConflictGraph$border (self) on <self:POSetConflictGraph[nullable Object]> */
498 var15
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable Object]> */
499 if (unlikely(var15
== NULL
)) {
500 if(catchStack
.cursor
>= 0){
501 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
504 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 28);
512 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var13
, var_e
); /* Direct call hash_collection$HashSet$add on <var13:HashSet[nullable Object]>*/
514 BREAK_label12
: (void)0;
516 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[nullable Object]>*/
519 BREAK_label
: (void)0;
521 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[nullable Object]>*/
524 { /* Inline coloring$POSetConflictGraph$border (self) on <self:POSetConflictGraph[nullable Object]> */
525 var18
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable Object]> */
526 if (unlikely(var18
== NULL
)) {
527 if(catchStack
.cursor
>= 0){
528 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
531 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 28);
540 var20
= core___core__HashSet___core__abstract_collection__Collection__iterator(var_19
);
545 var22
= ((short int(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_21
); /* is_ok on <var_21:Iterator[nullable Object]>*/
552 var24
= ((val
*(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_21
); /* item on <var_21:Iterator[nullable Object]>*/
556 { /* Inline coloring$POSetConflictGraph$core (self) on <self:POSetConflictGraph[nullable Object]> */
557 var28
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
558 if (unlikely(var28
== NULL
)) {
559 if(catchStack
.cursor
>= 0){
560 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
563 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 22);
571 core___core__HashSet___core__abstract_collection__RemovableCollection__remove(var26
, var_e25
); /* Direct call hash_collection$HashSet$remove on <var26:HashSet[nullable Object]>*/
574 ((void(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_21
); /* next on <var_21:Iterator[nullable Object]>*/
577 BREAK_label23
: (void)0;
579 ((void(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_21
); /* finish on <var_21:Iterator[nullable Object]>*/
583 /* method coloring$POSetConflictGraph$is_border for (self: POSetConflictGraph[nullable Object], nullable Object): Bool */
584 short int nitc___nitc__POSetConflictGraph___is_border(val
* self
, val
* p0
) {
585 short int var
/* : Bool */;
586 short int var1
/* : Bool */;
589 const struct type
* type_struct
;
590 short int is_nullable
;
591 const char* var_class_name
;
592 val
* var_e
/* var e: nullable Object */;
593 val
* var2
/* : POSet[nullable Object] */;
594 val
* var4
/* : POSet[nullable Object] */;
595 val
* var5
/* : POSetElement[nullable Object] */;
596 val
* var6
/* : Collection[nullable Object] */;
597 val
* var_
/* var : Collection[nullable Object] */;
598 val
* var7
/* : Iterator[nullable Object] */;
599 val
* var_8
/* var : Iterator[nullable Object] */;
600 short int var9
/* : Bool */;
601 val
* var10
/* : nullable Object */;
602 val
* var_child
/* var child: nullable Object */;
603 val
* var11
/* : HashSet[nullable Object] */;
604 val
* var13
/* : HashSet[nullable Object] */;
605 short int var14
/* : Bool */;
606 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
607 /* <p0:nullable Object> isa E */
608 type_struct
= self
->type
->resolution_table
->types
[COLOR_nitc__POSetConflictGraph___35dE
];
609 cltype
= type_struct
->color
;
610 idtype
= type_struct
->id
;
611 is_nullable
= type_struct
->is_nullable
;
615 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
618 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
621 if (unlikely(!var1
)) {
622 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
623 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
624 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 83);
629 { /* Inline coloring$POSetConflictGraph$poset (self) on <self:POSetConflictGraph[nullable Object]> */
630 var4
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
631 if (unlikely(var4
== NULL
)) {
632 if(catchStack
.cursor
>= 0){
633 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
636 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
644 var5
= poset___poset__POSet____91d_93d(var2
, var_e
);
647 var6
= poset___poset__POSetElement___direct_smallers(var5
);
651 var7
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[nullable Object]>*/
656 var9
= ((short int(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_8
); /* is_ok on <var_8:Iterator[nullable Object]>*/
663 var10
= ((val
*(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_8
); /* item on <var_8:Iterator[nullable Object]>*/
667 { /* Inline coloring$POSetConflictGraph$core (self) on <self:POSetConflictGraph[nullable Object]> */
668 var13
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
669 if (unlikely(var13
== NULL
)) {
670 if(catchStack
.cursor
>= 0){
671 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
674 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 22);
682 var14
= core___core__HashSet___core__abstract_collection__Collection__has(var11
, var_child
);
690 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_8
); /* next on <var_8:Iterator[nullable Object]>*/
693 BREAK_label
: (void)0;
695 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_8
); /* finish on <var_8:Iterator[nullable Object]>*/
702 /* method coloring$POSetConflictGraph$extract_crown for (self: POSetConflictGraph[nullable Object]) */
703 void nitc___nitc__POSetConflictGraph___extract_crown(val
* self
) {
704 val
* var
/* : HashSet[nullable Object] */;
705 val
* var2
/* : HashSet[nullable Object] */;
706 val
* var3
/* : POSet[nullable Object] */;
707 val
* var5
/* : POSet[nullable Object] */;
708 val
* var_
/* var : POSet[nullable Object] */;
709 val
* var6
/* : Iterator[nullable Object] */;
710 val
* var_7
/* var : Iterator[nullable Object] */;
711 short int var8
/* : Bool */;
712 val
* var9
/* : nullable Object */;
713 val
* var_e
/* var e: nullable Object */;
714 short int var10
/* : Bool */;
715 val
* var11
/* : HashSet[nullable Object] */;
716 val
* var13
/* : HashSet[nullable Object] */;
717 short int var14
/* : Bool */;
718 short int var15
/* : Bool */;
719 short int var_16
/* var : Bool */;
720 val
* var17
/* : HashSet[nullable Object] */;
721 val
* var19
/* : HashSet[nullable Object] */;
722 short int var20
/* : Bool */;
723 short int var21
/* : Bool */;
724 val
* var22
/* : HashSet[nullable Object] */;
725 val
* var24
/* : HashSet[nullable Object] */;
727 { /* Inline coloring$POSetConflictGraph$crown (self) on <self:POSetConflictGraph[nullable Object]> */
728 var2
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[nullable Object]> */
729 if (unlikely(var2
== NULL
)) {
730 if(catchStack
.cursor
>= 0){
731 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
733 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
734 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 34);
742 core___core__HashSet___core__abstract_collection__RemovableCollection__clear(var
); /* Direct call hash_collection$HashSet$clear on <var:HashSet[nullable Object]>*/
745 { /* Inline coloring$POSetConflictGraph$poset (self) on <self:POSetConflictGraph[nullable Object]> */
746 var5
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
747 if (unlikely(var5
== NULL
)) {
748 if(catchStack
.cursor
>= 0){
749 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
752 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
761 var6
= poset___poset__POSet___core__abstract_collection__Collection__iterator(var_
);
766 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[nullable Object]>*/
773 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[nullable Object]>*/
777 { /* Inline coloring$POSetConflictGraph$core (self) on <self:POSetConflictGraph[nullable Object]> */
778 var13
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[nullable Object]> */
779 if (unlikely(var13
== NULL
)) {
780 if(catchStack
.cursor
>= 0){
781 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
783 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
784 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 22);
792 var14
= core___core__HashSet___core__abstract_collection__Collection__has(var11
, var_e
);
798 { /* Inline coloring$POSetConflictGraph$border (self) on <self:POSetConflictGraph[nullable Object]> */
799 var19
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable Object]> */
800 if (unlikely(var19
== NULL
)) {
801 if(catchStack
.cursor
>= 0){
802 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
804 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
805 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 28);
813 var20
= core___core__HashSet___core__abstract_collection__Collection__has(var17
, var_e
);
822 { /* Inline coloring$POSetConflictGraph$crown (self) on <self:POSetConflictGraph[nullable Object]> */
823 var24
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[nullable Object]> */
824 if (unlikely(var24
== NULL
)) {
825 if(catchStack
.cursor
>= 0){
826 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
828 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
829 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 34);
837 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var22
, var_e
); /* Direct call hash_collection$HashSet$add on <var22:HashSet[nullable Object]>*/
842 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[nullable Object]>*/
845 BREAK_label
: (void)0;
847 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[nullable Object]>*/
851 /* method coloring$POSetConflictGraph$compute_conflicts for (self: POSetConflictGraph[nullable Object]) */
852 void nitc___nitc__POSetConflictGraph___compute_conflicts(val
* self
) {
853 val
* var
/* : HashMap[nullable Object, Set[nullable Object]] */;
854 val
* var2
/* : HashMap[nullable Object, Set[nullable Object]] */;
855 val
* var3
/* : HashSet[nullable Object] */;
856 val
* var5
/* : HashSet[nullable Object] */;
857 val
* var_
/* var : HashSet[nullable Object] */;
858 val
* var6
/* : Iterator[nullable Object] */;
859 val
* var_7
/* var : Iterator[nullable Object] */;
860 short int var8
/* : Bool */;
861 val
* var9
/* : nullable Object */;
862 val
* var_e
/* var e: nullable Object */;
863 val
* var10
/* : POSet[nullable Object] */;
864 val
* var12
/* : POSet[nullable Object] */;
865 val
* var13
/* : POSetElement[nullable Object] */;
866 val
* var14
/* : Collection[nullable Object] */;
868 { /* Inline coloring$POSetConflictGraph$conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
869 var2
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
870 if (unlikely(var2
== NULL
)) {
871 if(catchStack
.cursor
>= 0){
872 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
875 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 40);
883 core___core__HashMap___core__abstract_collection__Map__clear(var
); /* Direct call hash_collection$HashMap$clear on <var:HashMap[nullable Object, Set[nullable Object]]>*/
886 { /* Inline coloring$POSetConflictGraph$border (self) on <self:POSetConflictGraph[nullable Object]> */
887 var5
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[nullable Object]> */
888 if (unlikely(var5
== NULL
)) {
889 if(catchStack
.cursor
>= 0){
890 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
892 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
893 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 28);
902 var6
= core___core__HashSet___core__abstract_collection__Collection__iterator(var_
);
907 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[nullable Object]>*/
914 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[nullable Object]>*/
918 { /* Inline coloring$POSetConflictGraph$poset (self) on <self:POSetConflictGraph[nullable Object]> */
919 var12
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[nullable Object]> */
920 if (unlikely(var12
== NULL
)) {
921 if(catchStack
.cursor
>= 0){
922 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
925 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
933 var13
= poset___poset__POSet____91d_93d(var10
, var_e
);
936 var14
= poset___poset__POSetElement___greaters(var13
);
939 nitc___nitc__POSetConflictGraph___add_conflicts(self
, var14
); /* Direct call coloring$POSetConflictGraph$add_conflicts on <self:POSetConflictGraph[nullable Object]>*/
942 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[nullable Object]>*/
945 BREAK_label
: (void)0;
947 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[nullable Object]>*/
951 /* method coloring$POSetConflictGraph$add_conflict for (self: POSetConflictGraph[nullable Object], nullable Object, nullable Object) */
952 void nitc___nitc__POSetConflictGraph___add_conflict(val
* self
, val
* p0
, val
* p1
) {
953 short int var
/* : Bool */;
956 const struct type
* type_struct
;
957 short int is_nullable
;
958 const char* var_class_name
;
959 short int var1
/* : Bool */;
962 const struct type
* type_struct4
;
963 short int is_nullable5
;
964 const char* var_class_name6
;
965 val
* var_e
/* var e: nullable Object */;
966 val
* var_o
/* var o: nullable Object */;
967 val
* var7
/* : HashMap[nullable Object, Set[nullable Object]] */;
968 val
* var9
/* : HashMap[nullable Object, Set[nullable Object]] */;
969 short int var10
/* : Bool */;
970 short int var11
/* : Bool */;
971 val
* var12
/* : HashMap[nullable Object, Set[nullable Object]] */;
972 val
* var14
/* : HashMap[nullable Object, Set[nullable Object]] */;
973 val
* var15
/* : HashSet[nullable Object] */;
974 val
* var16
/* : HashMap[nullable Object, Set[nullable Object]] */;
975 val
* var18
/* : HashMap[nullable Object, Set[nullable Object]] */;
976 short int var19
/* : Bool */;
977 short int var20
/* : Bool */;
978 val
* var21
/* : HashMap[nullable Object, Set[nullable Object]] */;
979 val
* var23
/* : HashMap[nullable Object, Set[nullable Object]] */;
980 val
* var24
/* : HashSet[nullable Object] */;
981 val
* var25
/* : HashMap[nullable Object, Set[nullable Object]] */;
982 val
* var27
/* : HashMap[nullable Object, Set[nullable Object]] */;
983 val
* var28
/* : nullable Object */;
984 val
* var29
/* : HashMap[nullable Object, Set[nullable Object]] */;
985 val
* var31
/* : HashMap[nullable Object, Set[nullable Object]] */;
986 val
* var32
/* : nullable Object */;
987 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
988 /* <p0:nullable Object> isa E */
989 type_struct
= self
->type
->resolution_table
->types
[COLOR_nitc__POSetConflictGraph___35dE
];
990 cltype
= type_struct
->color
;
991 idtype
= type_struct
->id
;
992 is_nullable
= type_struct
->is_nullable
;
996 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
999 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
1002 if (unlikely(!var
)) {
1003 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
1004 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
1005 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 105);
1008 /* Covariant cast for argument 1 (o) <p1:nullable Object> isa E */
1009 /* <p1:nullable Object> isa E */
1010 type_struct4
= self
->type
->resolution_table
->types
[COLOR_nitc__POSetConflictGraph___35dE
];
1011 cltype2
= type_struct4
->color
;
1012 idtype3
= type_struct4
->id
;
1013 is_nullable5
= type_struct4
->is_nullable
;
1015 var1
= is_nullable5
;
1017 if(cltype2
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
1020 var1
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype2
] == idtype3
;
1023 if (unlikely(!var1
)) {
1024 var_class_name6
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
1025 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name6
);
1026 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 105);
1032 { /* Inline coloring$POSetConflictGraph$conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
1033 var9
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
1034 if (unlikely(var9
== NULL
)) {
1035 if(catchStack
.cursor
>= 0){
1036 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1039 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 40);
1047 var10
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var7
, var_e
);
1052 { /* Inline coloring$POSetConflictGraph$conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
1053 var14
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
1054 if (unlikely(var14
== NULL
)) {
1055 if(catchStack
.cursor
>= 0){
1056 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1059 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 40);
1063 RET_LABEL13
:(void)0;
1066 var15
= NEW_core__HashSet(self
->type
->resolution_table
->types
[COLOR_core__HashSet__nitc__POSetConflictGraph___35dE
]);
1068 core___core__HashSet___core__kernel__Object__init(var15
); /* Direct call hash_collection$HashSet$init on <var15:HashSet[nullable Object]>*/
1071 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var12
, var_e
, var15
); /* Direct call hash_collection$HashMap$[]= on <var12:HashMap[nullable Object, Set[nullable Object]]>*/
1076 { /* Inline coloring$POSetConflictGraph$conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
1077 var18
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
1078 if (unlikely(var18
== NULL
)) {
1079 if(catchStack
.cursor
>= 0){
1080 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1082 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1083 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 40);
1087 RET_LABEL17
:(void)0;
1091 var19
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var16
, var_o
);
1096 { /* Inline coloring$POSetConflictGraph$conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
1097 var23
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
1098 if (unlikely(var23
== NULL
)) {
1099 if(catchStack
.cursor
>= 0){
1100 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1103 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 40);
1107 RET_LABEL22
:(void)0;
1110 var24
= NEW_core__HashSet(self
->type
->resolution_table
->types
[COLOR_core__HashSet__nitc__POSetConflictGraph___35dE
]);
1112 core___core__HashSet___core__kernel__Object__init(var24
); /* Direct call hash_collection$HashSet$init on <var24:HashSet[nullable Object]>*/
1115 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var21
, var_o
, var24
); /* Direct call hash_collection$HashMap$[]= on <var21:HashMap[nullable Object, Set[nullable Object]]>*/
1120 { /* Inline coloring$POSetConflictGraph$conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
1121 var27
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
1122 if (unlikely(var27
== NULL
)) {
1123 if(catchStack
.cursor
>= 0){
1124 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1126 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1127 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 40);
1131 RET_LABEL26
:(void)0;
1135 var28
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var25
, var_e
);
1138 ((void(*)(val
* self
, val
* p0
))((((long)var28
&3)?class_info
[((long)var28
&3)]:var28
->class)->vft
[COLOR_core__abstract_collection__SimpleCollection__add
]))(var28
, var_o
); /* add on <var28:nullable Object(Set[nullable Object])>*/
1141 { /* Inline coloring$POSetConflictGraph$conflicts (self) on <self:POSetConflictGraph[nullable Object]> */
1142 var31
= self
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[nullable Object]> */
1143 if (unlikely(var31
== NULL
)) {
1144 if(catchStack
.cursor
>= 0){
1145 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1147 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1148 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 40);
1152 RET_LABEL30
:(void)0;
1156 var32
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var29
, var_o
);
1159 ((void(*)(val
* self
, val
* p0
))((((long)var32
&3)?class_info
[((long)var32
&3)]:var32
->class)->vft
[COLOR_core__abstract_collection__SimpleCollection__add
]))(var32
, var_e
); /* add on <var32:nullable Object(Set[nullable Object])>*/
1163 /* method coloring$POSetConflictGraph$add_conflicts for (self: POSetConflictGraph[nullable Object], Collection[nullable Object]) */
1164 void nitc___nitc__POSetConflictGraph___add_conflicts(val
* self
, val
* p0
) {
1165 short int var
/* : Bool */;
1168 const struct type
* type_struct
;
1169 const char* var_class_name
;
1170 val
* var_es
/* var es: Collection[nullable Object] */;
1171 val
* var_
/* var : Collection[nullable Object] */;
1172 val
* var1
/* : Iterator[nullable Object] */;
1173 val
* var_2
/* var : Iterator[nullable Object] */;
1174 short int var3
/* : Bool */;
1175 val
* var4
/* : nullable Object */;
1176 val
* var_e1
/* var e1: nullable Object */;
1177 val
* var_5
/* var : Collection[nullable Object] */;
1178 val
* var6
/* : Iterator[nullable Object] */;
1179 val
* var_7
/* var : Iterator[nullable Object] */;
1180 short int var8
/* : Bool */;
1181 val
* var10
/* : nullable Object */;
1182 val
* var_e2
/* var e2: nullable Object */;
1183 /* Covariant cast for argument 0 (es) <p0:Collection[nullable Object]> isa Collection[E] */
1184 /* <p0:Collection[nullable Object]> isa Collection[E] */
1185 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Collection__nitc__POSetConflictGraph___35dE
];
1186 cltype
= type_struct
->color
;
1187 idtype
= type_struct
->id
;
1188 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
1191 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
1193 if (unlikely(!var
)) {
1194 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
1195 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name
);
1196 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 112);
1202 var1
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[nullable Object]>*/
1207 var3
= ((short int(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_2
); /* is_ok on <var_2:Iterator[nullable Object]>*/
1214 var4
= ((val
*(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_2
); /* item on <var_2:Iterator[nullable Object]>*/
1219 var6
= ((val
*(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_5
); /* iterator on <var_5:Collection[nullable Object]>*/
1224 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[nullable Object]>*/
1231 var10
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[nullable Object]>*/
1235 nitc___nitc__POSetConflictGraph___add_conflict(self
, var_e1
, var_e2
); /* Direct call coloring$POSetConflictGraph$add_conflict on <self:POSetConflictGraph[nullable Object]>*/
1238 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[nullable Object]>*/
1241 BREAK_label9
: (void)0;
1243 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[nullable Object]>*/
1246 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_2
); /* next on <var_2:Iterator[nullable Object]>*/
1249 BREAK_label
: (void)0;
1251 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_2
); /* finish on <var_2:Iterator[nullable Object]>*/
1255 /* method coloring$POSet$to_conflict_graph for (self: POSet[nullable Object]): POSetConflictGraph[nullable Object] */
1256 val
* nitc__coloring___poset__POSet___to_conflict_graph(val
* self
) {
1257 val
* var
/* : POSetConflictGraph[nullable Object] */;
1258 val
* var1
/* : POSetConflictGraph[nullable Object] */;
1259 var1
= NEW_nitc__POSetConflictGraph(self
->type
->resolution_table
->types
[COLOR_nitc__POSetConflictGraph__poset__POSet___35dE
]);
1261 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_nitc__coloring__POSetConflictGraph__poset_61d
]))(var1
, self
); /* poset= on <var1:POSetConflictGraph[nullable Object]>*/
1264 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_core__kernel__Object__init
]))(var1
); /* init on <var1:POSetConflictGraph[nullable Object]>*/
1271 /* method coloring$POSetColorer$is_colored for (self: POSetColorer[Object]): Bool */
1272 short int nitc___nitc__POSetColorer___is_colored(val
* self
) {
1273 short int var
/* : Bool */;
1274 short int var1
/* : Bool */;
1275 var1
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1280 /* method coloring$POSetColorer$is_colored= for (self: POSetColorer[Object], Bool) */
1281 void nitc___nitc__POSetColorer___is_colored_61d(val
* self
, short int p0
) {
1282 self
->attrs
[COLOR_nitc__coloring__POSetColorer___is_colored
].s
= p0
; /* _is_colored on <self:POSetColorer[Object]> */
1285 /* method coloring$POSetColorer$ids for (self: POSetColorer[Object]): Map[Object, Int] */
1286 val
* nitc___nitc__POSetColorer___ids(val
* self
) {
1287 val
* var
/* : Map[Object, Int] */;
1288 short int var1
/* : Bool */;
1289 short int var3
/* : Bool */;
1290 val
* var4
/* : HashMap[Object, Int] */;
1291 val
* var6
/* : HashMap[Object, Int] */;
1293 { /* Inline coloring$POSetColorer$is_colored (self) on <self:POSetColorer[Object]> */
1294 var3
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1299 if (unlikely(!var1
)) {
1300 if(catchStack
.cursor
>= 0){
1301 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1303 PRINT_ERROR("Runtime error: %s", "Assert failed");
1304 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 176);
1308 { /* Inline coloring$POSetColorer$ids_cache (self) on <self:POSetColorer[Object]> */
1309 var6
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1310 if (unlikely(var6
== NULL
)) {
1311 if(catchStack
.cursor
>= 0){
1312 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1314 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1315 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 179);
1327 /* method coloring$POSetColorer$ids_cache for (self: POSetColorer[Object]): HashMap[Object, Int] */
1328 val
* nitc___nitc__POSetColorer___ids_cache(val
* self
) {
1329 val
* var
/* : HashMap[Object, Int] */;
1330 val
* var1
/* : HashMap[Object, Int] */;
1331 var1
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1332 if (unlikely(var1
== NULL
)) {
1333 if(catchStack
.cursor
>= 0){
1334 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1336 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1337 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 179);
1344 /* method coloring$POSetColorer$colors for (self: POSetColorer[Object]): Map[Object, Int] */
1345 val
* nitc___nitc__POSetColorer___colors(val
* self
) {
1346 val
* var
/* : Map[Object, Int] */;
1347 short int var1
/* : Bool */;
1348 short int var3
/* : Bool */;
1349 val
* var4
/* : HashMap[Object, Int] */;
1350 val
* var6
/* : HashMap[Object, Int] */;
1352 { /* Inline coloring$POSetColorer$is_colored (self) on <self:POSetColorer[Object]> */
1353 var3
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1358 if (unlikely(!var1
)) {
1359 if(catchStack
.cursor
>= 0){
1360 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1362 PRINT_ERROR("Runtime error: %s", "Assert failed");
1363 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 184);
1367 { /* Inline coloring$POSetColorer$colors_cache (self) on <self:POSetColorer[Object]> */
1368 var6
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1369 if (unlikely(var6
== NULL
)) {
1370 if(catchStack
.cursor
>= 0){
1371 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1373 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1374 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 187);
1386 /* method coloring$POSetColorer$colors_cache for (self: POSetColorer[Object]): HashMap[Object, Int] */
1387 val
* nitc___nitc__POSetColorer___colors_cache(val
* self
) {
1388 val
* var
/* : HashMap[Object, Int] */;
1389 val
* var1
/* : HashMap[Object, Int] */;
1390 var1
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1391 if (unlikely(var1
== NULL
)) {
1392 if(catchStack
.cursor
>= 0){
1393 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 187);
1403 /* method coloring$POSetColorer$poset_cache for (self: POSetColorer[Object]): POSet[Object] */
1404 val
* nitc___nitc__POSetColorer___poset_cache(val
* self
) {
1405 val
* var
/* : POSet[Object] */;
1406 val
* var1
/* : POSet[Object] */;
1407 var1
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1408 if (unlikely(var1
== NULL
)) {
1409 if(catchStack
.cursor
>= 0){
1410 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1413 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 194);
1420 /* method coloring$POSetColorer$poset_cache= for (self: POSetColorer[Object], POSet[Object]) */
1421 void nitc___nitc__POSetColorer___poset_cache_61d(val
* self
, val
* p0
) {
1422 short int var
/* : Bool */;
1425 const struct type
* type_struct
;
1426 const char* var_class_name
;
1427 /* Covariant cast for argument 0 (poset_cache) <p0:POSet[Object]> isa POSet[E] */
1428 /* <p0:POSet[Object]> isa POSet[E] */
1429 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nitc__POSetColorer___35dE
];
1430 cltype
= type_struct
->color
;
1431 idtype
= type_struct
->id
;
1432 if(cltype
>= p0
->type
->table_size
) {
1435 var
= p0
->type
->type_table
[cltype
] == idtype
;
1437 if (unlikely(!var
)) {
1438 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1439 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
1440 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 194);
1443 self
->attrs
[COLOR_nitc__coloring__POSetColorer___poset_cache
].val
= p0
; /* _poset_cache on <self:POSetColorer[Object]> */
1446 /* method coloring$POSetColorer$conflicts for (self: POSetColorer[Object]): Map[Object, Set[Object]] */
1447 val
* nitc___nitc__POSetColorer___conflicts(val
* self
) {
1448 val
* var
/* : Map[Object, Set[Object]] */;
1449 short int var1
/* : Bool */;
1450 short int var3
/* : Bool */;
1451 val
* var4
/* : Map[Object, Set[Object]] */;
1452 val
* var6
/* : Map[Object, Set[Object]] */;
1454 { /* Inline coloring$POSetColorer$is_colored (self) on <self:POSetColorer[Object]> */
1455 var3
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1460 if (unlikely(!var1
)) {
1461 if(catchStack
.cursor
>= 0){
1462 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1464 PRINT_ERROR("Runtime error: %s", "Assert failed");
1465 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 198);
1469 { /* Inline coloring$POSetColorer$conflicts_cache (self) on <self:POSetColorer[Object]> */
1470 var6
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1471 if (unlikely(var6
== NULL
)) {
1472 if(catchStack
.cursor
>= 0){
1473 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1475 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1476 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 201);
1488 /* method coloring$POSetColorer$conflicts_cache for (self: POSetColorer[Object]): Map[Object, Set[Object]] */
1489 val
* nitc___nitc__POSetColorer___conflicts_cache(val
* self
) {
1490 val
* var
/* : Map[Object, Set[Object]] */;
1491 val
* var1
/* : Map[Object, Set[Object]] */;
1492 var1
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1493 if (unlikely(var1
== NULL
)) {
1494 if(catchStack
.cursor
>= 0){
1495 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1498 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 201);
1505 /* method coloring$POSetColorer$conflicts_cache= for (self: POSetColorer[Object], Map[Object, Set[Object]]) */
1506 void nitc___nitc__POSetColorer___conflicts_cache_61d(val
* self
, val
* p0
) {
1507 short int var
/* : Bool */;
1510 const struct type
* type_struct
;
1511 const char* var_class_name
;
1512 /* Covariant cast for argument 0 (conflicts_cache) <p0:Map[Object, Set[Object]]> isa Map[E, Set[E]] */
1513 /* <p0:Map[Object, Set[Object]]> isa Map[E, Set[E]] */
1514 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Map__nitc__POSetColorer___35dE__core__Set__nitc__POSetColorer___35dE
];
1515 cltype
= type_struct
->color
;
1516 idtype
= type_struct
->id
;
1517 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
1520 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
1522 if (unlikely(!var
)) {
1523 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
1524 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name
);
1525 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 201);
1528 self
->attrs
[COLOR_nitc__coloring__POSetColorer___conflicts_cache
].val
= p0
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1531 /* method coloring$POSetColorer$graph for (self: POSetColorer[Object]): POSetConflictGraph[Object] */
1532 val
* nitc___nitc__POSetColorer___graph(val
* self
) {
1533 val
* var
/* : POSetConflictGraph[Object] */;
1534 val
* var1
/* : POSetConflictGraph[Object] */;
1535 var1
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1536 if (unlikely(var1
== NULL
)) {
1537 if(catchStack
.cursor
>= 0){
1538 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1540 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1541 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 203);
1548 /* method coloring$POSetColorer$graph= for (self: POSetColorer[Object], POSetConflictGraph[Object]) */
1549 void nitc___nitc__POSetColorer___graph_61d(val
* self
, val
* p0
) {
1550 short int var
/* : Bool */;
1553 const struct type
* type_struct
;
1554 const char* var_class_name
;
1555 /* Covariant cast for argument 0 (graph) <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1556 /* <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1557 type_struct
= self
->type
->resolution_table
->types
[COLOR_nitc__POSetConflictGraph__nitc__POSetColorer___35dE
];
1558 cltype
= type_struct
->color
;
1559 idtype
= type_struct
->id
;
1560 if(cltype
>= p0
->type
->table_size
) {
1563 var
= p0
->type
->type_table
[cltype
] == idtype
;
1565 if (unlikely(!var
)) {
1566 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1567 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name
);
1568 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 203);
1571 self
->attrs
[COLOR_nitc__coloring__POSetColorer___graph
].val
= p0
; /* _graph on <self:POSetColorer[Object]> */
1574 /* method coloring$POSetColorer$colorize for (self: POSetColorer[Object], POSet[Object]) */
1575 void nitc___nitc__POSetColorer___colorize(val
* self
, val
* p0
) {
1576 short int var
/* : Bool */;
1579 const struct type
* type_struct
;
1580 const char* var_class_name
;
1581 val
* var_poset
/* var poset: POSet[Object] */;
1582 short int var2
/* : Bool */;
1585 const struct type
* type_struct5
;
1586 const char* var_class_name6
;
1587 val
* var7
/* : POSetConflictGraph[Object] */;
1588 short int var9
/* : Bool */;
1591 const struct type
* type_struct12
;
1592 const char* var_class_name13
;
1593 val
* var14
/* : POSetConflictGraph[Object] */;
1594 val
* var16
/* : POSetConflictGraph[Object] */;
1595 val
* var17
/* : HashMap[nullable Object, Set[nullable Object]] */;
1596 val
* var19
/* : HashMap[nullable Object, Set[nullable Object]] */;
1597 short int var21
/* : Bool */;
1600 const struct type
* type_struct24
;
1601 const char* var_class_name25
;
1602 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[E] */
1603 /* <p0:POSet[Object]> isa POSet[E] */
1604 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nitc__POSetColorer___35dE
];
1605 cltype
= type_struct
->color
;
1606 idtype
= type_struct
->id
;
1607 if(cltype
>= p0
->type
->table_size
) {
1610 var
= p0
->type
->type_table
[cltype
] == idtype
;
1612 if (unlikely(!var
)) {
1613 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1614 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
1615 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 205);
1620 { /* Inline coloring$POSetColorer$poset_cache= (self,var_poset) on <self:POSetColorer[Object]> */
1621 /* Covariant cast for argument 0 (poset_cache) <var_poset:POSet[Object]> isa POSet[E] */
1622 /* <var_poset:POSet[Object]> isa POSet[E] */
1623 type_struct5
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nitc__POSetColorer___35dE
];
1624 cltype3
= type_struct5
->color
;
1625 idtype4
= type_struct5
->id
;
1626 if(cltype3
>= var_poset
->type
->table_size
) {
1629 var2
= var_poset
->type
->type_table
[cltype3
] == idtype4
;
1631 if (unlikely(!var2
)) {
1632 var_class_name6
= var_poset
== NULL ?
"null" : var_poset
->type
->name
;
1633 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name6
);
1634 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 194);
1637 self
->attrs
[COLOR_nitc__coloring__POSetColorer___poset_cache
].val
= var_poset
; /* _poset_cache on <self:POSetColorer[Object]> */
1641 var7
= NEW_nitc__POSetConflictGraph(self
->type
->resolution_table
->types
[COLOR_nitc__POSetConflictGraph__nitc__POSetColorer___35dE
]);
1643 ((void(*)(val
* self
, val
* p0
))(var7
->class->vft
[COLOR_nitc__coloring__POSetConflictGraph__poset_61d
]))(var7
, var_poset
); /* poset= on <var7:POSetConflictGraph[Object]>*/
1646 ((void(*)(val
* self
))(var7
->class->vft
[COLOR_core__kernel__Object__init
]))(var7
); /* init on <var7:POSetConflictGraph[Object]>*/
1649 { /* Inline coloring$POSetColorer$graph= (self,var7) on <self:POSetColorer[Object]> */
1650 /* Covariant cast for argument 0 (graph) <var7:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1651 /* <var7:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1652 type_struct12
= self
->type
->resolution_table
->types
[COLOR_nitc__POSetConflictGraph__nitc__POSetColorer___35dE
];
1653 cltype10
= type_struct12
->color
;
1654 idtype11
= type_struct12
->id
;
1655 if(cltype10
>= var7
->type
->table_size
) {
1658 var9
= var7
->type
->type_table
[cltype10
] == idtype11
;
1660 if (unlikely(!var9
)) {
1661 var_class_name13
= var7
== NULL ?
"null" : var7
->type
->name
;
1662 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name13
);
1663 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 203);
1666 self
->attrs
[COLOR_nitc__coloring__POSetColorer___graph
].val
= var7
; /* _graph on <self:POSetColorer[Object]> */
1671 nitc___nitc__POSetColorer___allocate_ids(self
); /* Direct call coloring$POSetColorer$allocate_ids on <self:POSetColorer[Object]>*/
1674 nitc___nitc__POSetColorer___compute_colors(self
); /* Direct call coloring$POSetColorer$compute_colors on <self:POSetColorer[Object]>*/
1677 { /* Inline coloring$POSetColorer$graph (self) on <self:POSetColorer[Object]> */
1678 var16
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1679 if (unlikely(var16
== NULL
)) {
1680 if(catchStack
.cursor
>= 0){
1681 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1684 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 203);
1688 RET_LABEL15
:(void)0;
1692 { /* Inline coloring$POSetConflictGraph$conflicts (var14) on <var14:POSetConflictGraph[Object]> */
1693 var19
= var14
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var14:POSetConflictGraph[Object]> */
1694 if (unlikely(var19
== NULL
)) {
1695 if(catchStack
.cursor
>= 0){
1696 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1698 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1699 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 40);
1703 RET_LABEL18
:(void)0;
1707 { /* Inline coloring$POSetColorer$conflicts_cache= (self,var17) on <self:POSetColorer[Object]> */
1708 /* Covariant cast for argument 0 (conflicts_cache) <var17:HashMap[nullable Object, Set[nullable Object]](HashMap[Object, Set[Object]])> isa Map[E, Set[E]] */
1709 /* <var17:HashMap[nullable Object, Set[nullable Object]](HashMap[Object, Set[Object]])> isa Map[E, Set[E]] */
1710 type_struct24
= self
->type
->resolution_table
->types
[COLOR_core__Map__nitc__POSetColorer___35dE__core__Set__nitc__POSetColorer___35dE
];
1711 cltype22
= type_struct24
->color
;
1712 idtype23
= type_struct24
->id
;
1713 if(cltype22
>= var17
->type
->table_size
) {
1716 var21
= var17
->type
->type_table
[cltype22
] == idtype23
;
1718 if (unlikely(!var21
)) {
1719 var_class_name25
= var17
== NULL ?
"null" : var17
->type
->name
;
1720 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name25
);
1721 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 201);
1724 self
->attrs
[COLOR_nitc__coloring__POSetColorer___conflicts_cache
].val
= var17
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1725 RET_LABEL20
:(void)0;
1729 { /* Inline coloring$POSetColorer$is_colored= (self,1) on <self:POSetColorer[Object]> */
1730 self
->attrs
[COLOR_nitc__coloring__POSetColorer___is_colored
].s
= 1; /* _is_colored on <self:POSetColorer[Object]> */
1731 RET_LABEL26
:(void)0;
1736 /* method coloring$POSetColorer$allocate_ids for (self: POSetColorer[Object]) */
1737 void nitc___nitc__POSetColorer___allocate_ids(val
* self
) {
1738 val
* var
/* : HashMap[Object, Int] */;
1739 val
* var2
/* : HashMap[Object, Int] */;
1740 val
* var3
/* : HashSet[Object] */;
1741 val
* var4
/* : POSet[Object] */;
1742 val
* var6
/* : POSet[Object] */;
1743 val
* var7
/* : Array[nullable Object] */;
1744 val
* var_elements
/* var elements: HashSet[Object] */;
1745 val
* var8
/* : POSet[Object] */;
1746 val
* var10
/* : POSet[Object] */;
1747 val
* var11
/* : Array[nullable Object] */;
1748 val
* var_
/* var : Array[Object] */;
1749 val
* var12
/* : IndexedIterator[nullable Object] */;
1750 val
* var_13
/* var : IndexedIterator[Object] */;
1751 short int var14
/* : Bool */;
1752 val
* var15
/* : nullable Object */;
1753 val
* var_e
/* var e: Object */;
1754 val
* var16
/* : HashMap[Object, Int] */;
1755 val
* var18
/* : HashMap[Object, Int] */;
1756 val
* var19
/* : HashMap[Object, Int] */;
1757 val
* var21
/* : HashMap[Object, Int] */;
1758 long var22
/* : Int */;
1759 val
* var23
/* : nullable Object */;
1761 { /* Inline coloring$POSetColorer$ids_cache (self) on <self:POSetColorer[Object]> */
1762 var2
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1763 if (unlikely(var2
== NULL
)) {
1764 if(catchStack
.cursor
>= 0){
1765 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1768 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 179);
1776 core___core__HashMap___core__abstract_collection__Map__clear(var
); /* Direct call hash_collection$HashMap$clear on <var:HashMap[Object, Int]>*/
1778 var3
= NEW_core__HashSet(self
->type
->resolution_table
->types
[COLOR_core__HashSet__nitc__POSetColorer___35dE
]);
1780 { /* Inline coloring$POSetColorer$poset_cache (self) on <self:POSetColorer[Object]> */
1781 var6
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1782 if (unlikely(var6
== NULL
)) {
1783 if(catchStack
.cursor
>= 0){
1784 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1786 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1787 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 194);
1795 var7
= core__array___Collection___to_a(var4
);
1798 core___core__HashSet___from(var3
, var7
); /* Direct call hash_collection$HashSet$from on <var3:HashSet[Object]>*/
1800 var_elements
= var3
;
1802 { /* Inline coloring$POSetColorer$poset_cache (self) on <self:POSetColorer[Object]> */
1803 var10
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1804 if (unlikely(var10
== NULL
)) {
1805 if(catchStack
.cursor
>= 0){
1806 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1809 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 194);
1817 var11
= poset___poset__POSet___linearize(var8
, var_elements
);
1821 var12
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
1826 var14
= ((short int(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_13
); /* is_ok on <var_13:IndexedIterator[Object]>*/
1833 var15
= ((val
*(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_13
); /* item on <var_13:IndexedIterator[Object]>*/
1837 { /* Inline coloring$POSetColorer$ids_cache (self) on <self:POSetColorer[Object]> */
1838 var18
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1839 if (unlikely(var18
== NULL
)) {
1840 if(catchStack
.cursor
>= 0){
1841 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1844 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 179);
1848 RET_LABEL17
:(void)0;
1852 { /* Inline coloring$POSetColorer$ids_cache (self) on <self:POSetColorer[Object]> */
1853 var21
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1854 if (unlikely(var21
== NULL
)) {
1855 if(catchStack
.cursor
>= 0){
1856 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1858 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1859 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 179);
1863 RET_LABEL20
:(void)0;
1867 var22
= core___core__HashMap___core__abstract_collection__MapRead__length(var19
);
1870 var23
= (val
*)(var22
<<2|1);
1871 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var16
, var_e
, var23
); /* Direct call hash_collection$HashMap$[]= on <var16:HashMap[Object, Int]>*/
1874 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_13
); /* next on <var_13:IndexedIterator[Object]>*/
1877 BREAK_label
: (void)0;
1879 ((void(*)(val
* self
))((((long)var_13
&3)?class_info
[((long)var_13
&3)]:var_13
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_13
); /* finish on <var_13:IndexedIterator[Object]>*/
1883 /* method coloring$POSetColorer$compute_colors for (self: POSetColorer[Object]) */
1884 void nitc___nitc__POSetColorer___compute_colors(val
* self
) {
1885 val
* var
/* : HashMap[Object, Int] */;
1886 val
* var2
/* : HashMap[Object, Int] */;
1887 val
* var3
/* : POSetConflictGraph[Object] */;
1888 val
* var5
/* : POSetConflictGraph[Object] */;
1889 val
* var6
/* : HashSet[nullable Object] */;
1890 val
* var8
/* : HashSet[nullable Object] */;
1891 val
* var9
/* : POSetConflictGraph[Object] */;
1892 val
* var11
/* : POSetConflictGraph[Object] */;
1893 val
* var12
/* : HashSet[nullable Object] */;
1894 val
* var14
/* : HashSet[nullable Object] */;
1896 { /* Inline coloring$POSetColorer$colors_cache (self) on <self:POSetColorer[Object]> */
1897 var2
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1898 if (unlikely(var2
== NULL
)) {
1899 if(catchStack
.cursor
>= 0){
1900 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1902 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1903 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 187);
1911 core___core__HashMap___core__abstract_collection__Map__clear(var
); /* Direct call hash_collection$HashMap$clear on <var:HashMap[Object, Int]>*/
1914 nitc___nitc__POSetColorer___colorize_core(self
); /* Direct call coloring$POSetColorer$colorize_core on <self:POSetColorer[Object]>*/
1917 { /* Inline coloring$POSetColorer$graph (self) on <self:POSetColorer[Object]> */
1918 var5
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1919 if (unlikely(var5
== NULL
)) {
1920 if(catchStack
.cursor
>= 0){
1921 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1923 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1924 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 203);
1932 { /* Inline coloring$POSetConflictGraph$border (var3) on <var3:POSetConflictGraph[Object]> */
1933 var8
= var3
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___border
].val
; /* _border on <var3:POSetConflictGraph[Object]> */
1934 if (unlikely(var8
== NULL
)) {
1935 if(catchStack
.cursor
>= 0){
1936 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1938 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
1939 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 28);
1947 nitc___nitc__POSetColorer___colorize_set(self
, var6
); /* Direct call coloring$POSetColorer$colorize_set on <self:POSetColorer[Object]>*/
1950 { /* Inline coloring$POSetColorer$graph (self) on <self:POSetColorer[Object]> */
1951 var11
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1952 if (unlikely(var11
== NULL
)) {
1953 if(catchStack
.cursor
>= 0){
1954 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1957 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 203);
1961 RET_LABEL10
:(void)0;
1965 { /* Inline coloring$POSetConflictGraph$crown (var9) on <var9:POSetConflictGraph[Object]> */
1966 var14
= var9
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___crown
].val
; /* _crown on <var9:POSetConflictGraph[Object]> */
1967 if (unlikely(var14
== NULL
)) {
1968 if(catchStack
.cursor
>= 0){
1969 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1971 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
1972 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 34);
1976 RET_LABEL13
:(void)0;
1980 nitc___nitc__POSetColorer___colorize_set(self
, var12
); /* Direct call coloring$POSetColorer$colorize_set on <self:POSetColorer[Object]>*/
1984 /* method coloring$POSetColorer$colorize_core for (self: POSetColorer[Object]) */
1985 void nitc___nitc__POSetColorer___colorize_core(val
* self
) {
1986 val
* var
/* : POSet[Object] */;
1987 val
* var2
/* : POSet[Object] */;
1988 val
* var3
/* : POSetConflictGraph[Object] */;
1989 val
* var5
/* : POSetConflictGraph[Object] */;
1990 val
* var6
/* : HashSet[nullable Object] */;
1991 val
* var8
/* : HashSet[nullable Object] */;
1992 val
* var9
/* : Array[nullable Object] */;
1993 val
* var_
/* var : Array[Object] */;
1994 val
* var10
/* : IndexedIterator[nullable Object] */;
1995 val
* var_11
/* var : IndexedIterator[Object] */;
1996 short int var12
/* : Bool */;
1997 val
* var13
/* : nullable Object */;
1998 val
* var_e
/* var e: Object */;
1999 long var14
/* : Int */;
2000 long var_color
/* var color: Int */;
2001 val
* var15
/* : POSetConflictGraph[Object] */;
2002 val
* var17
/* : POSetConflictGraph[Object] */;
2003 val
* var18
/* : HashMap[nullable Object, Set[nullable Object]] */;
2004 val
* var20
/* : HashMap[nullable Object, Set[nullable Object]] */;
2005 val
* var21
/* : nullable Object */;
2006 val
* var_conflicts
/* var conflicts: Set[Object] */;
2007 short int var22
/* : Bool */;
2008 short int var23
/* : Bool */;
2009 long var24
/* : Int */;
2010 short int var26
/* : Bool */;
2013 const char* var_class_name
;
2014 long var27
/* : Int */;
2015 val
* var29
/* : HashMap[Object, Int] */;
2016 val
* var31
/* : HashMap[Object, Int] */;
2017 val
* var32
/* : nullable Object */;
2019 { /* Inline coloring$POSetColorer$poset_cache (self) on <self:POSetColorer[Object]> */
2020 var2
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2021 if (unlikely(var2
== NULL
)) {
2022 if(catchStack
.cursor
>= 0){
2023 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2025 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2026 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 194);
2034 { /* Inline coloring$POSetColorer$graph (self) on <self:POSetColorer[Object]> */
2035 var5
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
2036 if (unlikely(var5
== NULL
)) {
2037 if(catchStack
.cursor
>= 0){
2038 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2040 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2041 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 203);
2049 { /* Inline coloring$POSetConflictGraph$core (var3) on <var3:POSetConflictGraph[Object]> */
2050 var8
= var3
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___core
].val
; /* _core on <var3:POSetConflictGraph[Object]> */
2051 if (unlikely(var8
== NULL
)) {
2052 if(catchStack
.cursor
>= 0){
2053 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2055 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
2056 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 22);
2064 var9
= poset___poset__POSet___linearize(var
, var6
);
2068 var10
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
2073 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:IndexedIterator[Object]>*/
2080 var13
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:IndexedIterator[Object]>*/
2084 var14
= nitc___nitc__POSetColorer___min_color(self
, var_e
);
2088 { /* Inline coloring$POSetColorer$graph (self) on <self:POSetColorer[Object]> */
2089 var17
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
2090 if (unlikely(var17
== NULL
)) {
2091 if(catchStack
.cursor
>= 0){
2092 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2094 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2095 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 203);
2099 RET_LABEL16
:(void)0;
2103 { /* Inline coloring$POSetConflictGraph$conflicts (var15) on <var15:POSetConflictGraph[Object]> */
2104 var20
= var15
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var15:POSetConflictGraph[Object]> */
2105 if (unlikely(var20
== NULL
)) {
2106 if(catchStack
.cursor
>= 0){
2107 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2109 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2110 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 40);
2114 RET_LABEL19
:(void)0;
2118 var21
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var18
, var_e
);
2120 var_conflicts
= var21
;
2123 var22
= nitc___nitc__POSetColorer___is_color_free(self
, var_color
, var_conflicts
);
2128 { /* Inline kernel$Int$+ (var_color,1l) on <var_color:Int> */
2129 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2130 /* <1l:Int> isa OTHER */
2131 var26
= 1; /* easy <1l:Int> isa OTHER*/
2132 if (unlikely(!var26
)) {
2133 var_class_name
= type_core__Int
.name
;
2134 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2135 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
2138 var27
= var_color
+ 1l;
2141 RET_LABEL25
:(void)0;
2149 BREAK_label28
: (void)0;
2151 { /* Inline coloring$POSetColorer$colors_cache (self) on <self:POSetColorer[Object]> */
2152 var31
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2153 if (unlikely(var31
== NULL
)) {
2154 if(catchStack
.cursor
>= 0){
2155 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2157 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2158 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 187);
2162 RET_LABEL30
:(void)0;
2166 var32
= (val
*)(var_color
<<2|1);
2167 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var29
, var_e
, var32
); /* Direct call hash_collection$HashMap$[]= on <var29:HashMap[Object, Int]>*/
2170 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:IndexedIterator[Object]>*/
2173 BREAK_label
: (void)0;
2175 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:IndexedIterator[Object]>*/
2179 /* method coloring$POSetColorer$colorize_set for (self: POSetColorer[Object], Set[Object]) */
2180 void nitc___nitc__POSetColorer___colorize_set(val
* self
, val
* p0
) {
2181 short int var
/* : Bool */;
2184 const struct type
* type_struct
;
2185 const char* var_class_name
;
2186 val
* var_set
/* var set: Set[Object] */;
2187 val
* var1
/* : POSet[Object] */;
2188 val
* var3
/* : POSet[Object] */;
2189 val
* var4
/* : Array[nullable Object] */;
2190 val
* var_
/* var : Array[Object] */;
2191 val
* var5
/* : IndexedIterator[nullable Object] */;
2192 val
* var_6
/* var : IndexedIterator[Object] */;
2193 short int var7
/* : Bool */;
2194 val
* var8
/* : nullable Object */;
2195 val
* var_e
/* var e: Object */;
2196 val
* var9
/* : HashMap[Object, Int] */;
2197 val
* var11
/* : HashMap[Object, Int] */;
2198 long var12
/* : Int */;
2199 val
* var13
/* : nullable Object */;
2200 /* Covariant cast for argument 0 (set) <p0:Set[Object]> isa Set[E] */
2201 /* <p0:Set[Object]> isa Set[E] */
2202 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Set__nitc__POSetColorer___35dE
];
2203 cltype
= type_struct
->color
;
2204 idtype
= type_struct
->id
;
2205 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
2208 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
2210 if (unlikely(!var
)) {
2211 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
2212 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[E]", var_class_name
);
2213 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 245);
2218 { /* Inline coloring$POSetColorer$poset_cache (self) on <self:POSetColorer[Object]> */
2219 var3
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2220 if (unlikely(var3
== NULL
)) {
2221 if(catchStack
.cursor
>= 0){
2222 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2224 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2225 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 194);
2233 var4
= poset___poset__POSet___linearize(var1
, var_set
);
2237 var5
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
2242 var7
= ((short int(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_6
); /* is_ok on <var_6:IndexedIterator[Object]>*/
2249 var8
= ((val
*(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_6
); /* item on <var_6:IndexedIterator[Object]>*/
2253 { /* Inline coloring$POSetColorer$colors_cache (self) on <self:POSetColorer[Object]> */
2254 var11
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2255 if (unlikely(var11
== NULL
)) {
2256 if(catchStack
.cursor
>= 0){
2257 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2260 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 187);
2264 RET_LABEL10
:(void)0;
2268 var12
= nitc___nitc__POSetColorer___min_color(self
, var_e
);
2271 var13
= (val
*)(var12
<<2|1);
2272 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var9
, var_e
, var13
); /* Direct call hash_collection$HashMap$[]= on <var9:HashMap[Object, Int]>*/
2275 ((void(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_6
); /* next on <var_6:IndexedIterator[Object]>*/
2278 BREAK_label
: (void)0;
2280 ((void(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_6
); /* finish on <var_6:IndexedIterator[Object]>*/
2284 /* method coloring$POSetColorer$min_color for (self: POSetColorer[Object], Object): Int */
2285 long nitc___nitc__POSetColorer___min_color(val
* self
, val
* p0
) {
2286 long var
/* : Int */;
2287 short int var1
/* : Bool */;
2290 const struct type
* type_struct
;
2291 const char* var_class_name
;
2292 val
* var_e
/* var e: Object */;
2293 long var2
/* : Int */;
2294 long var4
/* : Int */;
2295 long var_max_color
/* var max_color: Int */;
2296 val
* var5
/* : POSet[Object] */;
2297 val
* var7
/* : POSet[Object] */;
2298 val
* var8
/* : POSetElement[nullable Object] */;
2299 val
* var9
/* : Collection[nullable Object] */;
2300 val
* var_
/* var : Collection[Object] */;
2301 val
* var10
/* : Iterator[nullable Object] */;
2302 val
* var_11
/* var : Iterator[Object] */;
2303 short int var12
/* : Bool */;
2304 val
* var13
/* : nullable Object */;
2305 val
* var_p
/* var p: Object */;
2306 val
* var14
/* : HashMap[Object, Int] */;
2307 val
* var16
/* : HashMap[Object, Int] */;
2308 short int var17
/* : Bool */;
2309 short int var18
/* : Bool */;
2310 val
* var20
/* : HashMap[Object, Int] */;
2311 val
* var22
/* : HashMap[Object, Int] */;
2312 val
* var23
/* : nullable Object */;
2313 long var24
/* : Int */;
2314 long var_color
/* var color: Int */;
2315 short int var25
/* : Bool */;
2316 short int var27
/* : Bool */;
2319 const char* var_class_name30
;
2320 short int var31
/* : Bool */;
2321 long var32
/* : Int */;
2322 short int var34
/* : Bool */;
2325 const char* var_class_name37
;
2326 long var38
/* : Int */;
2327 /* Covariant cast for argument 0 (e) <p0:Object> isa E */
2328 /* <p0:Object> isa E */
2329 type_struct
= self
->type
->resolution_table
->types
[COLOR_nitc__POSetColorer___35dE
];
2330 cltype
= type_struct
->color
;
2331 idtype
= type_struct
->id
;
2332 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
2335 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
2337 if (unlikely(!var1
)) {
2338 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
2339 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
2340 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 250);
2345 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
2352 var_max_color
= var2
;
2354 { /* Inline coloring$POSetColorer$poset_cache (self) on <self:POSetColorer[Object]> */
2355 var7
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2356 if (unlikely(var7
== NULL
)) {
2357 if(catchStack
.cursor
>= 0){
2358 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2360 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2361 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 194);
2369 var8
= poset___poset__POSet____91d_93d(var5
, var_e
);
2372 var9
= poset___poset__POSetElement___direct_greaters(var8
);
2376 var10
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
2381 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:Iterator[Object]>*/
2388 var13
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:Iterator[Object]>*/
2392 { /* Inline coloring$POSetColorer$colors_cache (self) on <self:POSetColorer[Object]> */
2393 var16
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2394 if (unlikely(var16
== NULL
)) {
2395 if(catchStack
.cursor
>= 0){
2396 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2399 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 187);
2403 RET_LABEL15
:(void)0;
2407 var17
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var14
, var_p
);
2415 { /* Inline coloring$POSetColorer$colors_cache (self) on <self:POSetColorer[Object]> */
2416 var22
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2417 if (unlikely(var22
== NULL
)) {
2418 if(catchStack
.cursor
>= 0){
2419 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2422 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 187);
2426 RET_LABEL21
:(void)0;
2430 var23
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var20
, var_p
);
2432 var24
= (long)(var23
)>>2;
2435 { /* Inline kernel$Int$> (var_color,var_max_color) on <var_color:Int> */
2436 /* Covariant cast for argument 0 (i) <var_max_color:Int> isa OTHER */
2437 /* <var_max_color:Int> isa OTHER */
2438 var27
= 1; /* easy <var_max_color:Int> isa OTHER*/
2439 if (unlikely(!var27
)) {
2440 var_class_name30
= type_core__Int
.name
;
2441 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30
);
2442 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
2445 var31
= var_color
> var_max_color
;
2448 RET_LABEL26
:(void)0;
2452 var_max_color
= var_color
;
2455 BREAK_label19
: (void)0;
2457 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:Iterator[Object]>*/
2460 BREAK_label
: (void)0;
2462 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:Iterator[Object]>*/
2465 { /* Inline kernel$Int$+ (var_max_color,1l) on <var_max_color:Int> */
2466 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2467 /* <1l:Int> isa OTHER */
2468 var34
= 1; /* easy <1l:Int> isa OTHER*/
2469 if (unlikely(!var34
)) {
2470 var_class_name37
= type_core__Int
.name
;
2471 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37
);
2472 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
2475 var38
= var_max_color
+ 1l;
2478 RET_LABEL33
:(void)0;
2486 /* method coloring$POSetColorer$is_color_free for (self: POSetColorer[Object], Int, Collection[Object]): Bool */
2487 short int nitc___nitc__POSetColorer___is_color_free(val
* self
, long p0
, val
* p1
) {
2488 short int var
/* : Bool */;
2489 short int var1
/* : Bool */;
2492 const struct type
* type_struct
;
2493 const char* var_class_name
;
2494 long var_color
/* var color: Int */;
2495 val
* var_set
/* var set: Collection[Object] */;
2496 val
* var_
/* var : Collection[Object] */;
2497 val
* var2
/* : Iterator[nullable Object] */;
2498 val
* var_3
/* var : Iterator[Object] */;
2499 short int var4
/* : Bool */;
2500 val
* var5
/* : nullable Object */;
2501 val
* var_e
/* var e: Object */;
2502 short int var6
/* : Bool */;
2503 val
* var7
/* : HashMap[Object, Int] */;
2504 val
* var9
/* : HashMap[Object, Int] */;
2505 short int var10
/* : Bool */;
2506 short int var_11
/* var : Bool */;
2507 val
* var12
/* : HashMap[Object, Int] */;
2508 val
* var14
/* : HashMap[Object, Int] */;
2509 val
* var15
/* : nullable Object */;
2510 short int var16
/* : Bool */;
2511 short int var18
/* : Bool */;
2512 long var19
/* : Int */;
2513 /* Covariant cast for argument 1 (set) <p1:Collection[Object]> isa Collection[E] */
2514 /* <p1:Collection[Object]> isa Collection[E] */
2515 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Collection__nitc__POSetColorer___35dE
];
2516 cltype
= type_struct
->color
;
2517 idtype
= type_struct
->id
;
2518 if(cltype
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
2521 var1
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype
] == idtype
;
2523 if (unlikely(!var1
)) {
2524 var_class_name
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
2525 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name
);
2526 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 261);
2533 var2
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
2538 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_3
); /* is_ok on <var_3:Iterator[Object]>*/
2545 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_3
); /* item on <var_3:Iterator[Object]>*/
2549 { /* Inline coloring$POSetColorer$colors_cache (self) on <self:POSetColorer[Object]> */
2550 var9
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2551 if (unlikely(var9
== NULL
)) {
2552 if(catchStack
.cursor
>= 0){
2553 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2555 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2556 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 187);
2564 var10
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var7
, var_e
);
2569 { /* Inline coloring$POSetColorer$colors_cache (self) on <self:POSetColorer[Object]> */
2570 var14
= self
->attrs
[COLOR_nitc__coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2571 if (unlikely(var14
== NULL
)) {
2572 if(catchStack
.cursor
>= 0){
2573 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2576 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 187);
2580 RET_LABEL13
:(void)0;
2584 var15
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var12
, var_e
);
2587 { /* Inline kernel$Int$== (var15,var_color) on <var15:nullable Object(Int)> */
2588 var19
= (long)(var15
)>>2;
2589 var18
= var19
== var_color
;
2592 RET_LABEL17
:(void)0;
2605 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_3
); /* next on <var_3:Iterator[Object]>*/
2608 BREAK_label
: (void)0;
2610 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_3
); /* finish on <var_3:Iterator[Object]>*/
2617 /* method coloring$POSetGroupColorer$graph for (self: POSetGroupColorer[Object, Object]): POSetConflictGraph[Object] */
2618 val
* nitc___nitc__POSetGroupColorer___graph(val
* self
) {
2619 val
* var
/* : POSetConflictGraph[Object] */;
2620 val
* var1
/* : POSetConflictGraph[Object] */;
2621 var1
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
2622 if (unlikely(var1
== NULL
)) {
2623 if(catchStack
.cursor
>= 0){
2624 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2626 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2627 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 282);
2634 /* method coloring$POSetGroupColorer$graph= for (self: POSetGroupColorer[Object, Object], POSetConflictGraph[Object]) */
2635 void nitc___nitc__POSetGroupColorer___graph_61d(val
* self
, val
* p0
) {
2636 short int var
/* : Bool */;
2639 const struct type
* type_struct
;
2640 const char* var_class_name
;
2641 /* Covariant cast for argument 0 (graph) <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[H] */
2642 /* <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[H] */
2643 type_struct
= self
->type
->resolution_table
->types
[COLOR_nitc__POSetConflictGraph__nitc__POSetGroupColorer___35dH
];
2644 cltype
= type_struct
->color
;
2645 idtype
= type_struct
->id
;
2646 if(cltype
>= p0
->type
->table_size
) {
2649 var
= p0
->type
->type_table
[cltype
] == idtype
;
2651 if (unlikely(!var
)) {
2652 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2653 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[H]", var_class_name
);
2654 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 282);
2657 self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___graph
].val
= p0
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
2660 /* method coloring$POSetGroupColorer$buckets for (self: POSetGroupColorer[Object, Object]): Map[Object, Collection[Object]] */
2661 val
* nitc___nitc__POSetGroupColorer___buckets(val
* self
) {
2662 val
* var
/* : Map[Object, Collection[Object]] */;
2663 val
* var1
/* : Map[Object, Collection[Object]] */;
2664 var1
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___buckets
].val
; /* _buckets on <self:POSetGroupColorer[Object, Object]> */
2665 if (unlikely(var1
== NULL
)) {
2666 if(catchStack
.cursor
>= 0){
2667 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _buckets");
2670 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 288);
2677 /* method coloring$POSetGroupColorer$buckets= for (self: POSetGroupColorer[Object, Object], Map[Object, Collection[Object]]) */
2678 void nitc___nitc__POSetGroupColorer___buckets_61d(val
* self
, val
* p0
) {
2679 short int var
/* : Bool */;
2682 const struct type
* type_struct
;
2683 const char* var_class_name
;
2684 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Collection[Object]]> isa Map[H, Collection[E]] */
2685 /* <p0:Map[Object, Collection[Object]]> isa Map[H, Collection[E]] */
2686 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Map__nitc__POSetGroupColorer___35dH__core__Collection__nitc__POSetGroupColorer___35dE
];
2687 cltype
= type_struct
->color
;
2688 idtype
= type_struct
->id
;
2689 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
2692 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
2694 if (unlikely(!var
)) {
2695 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
2696 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Collection[E]]", var_class_name
);
2697 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 288);
2700 self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___buckets
].val
= p0
; /* _buckets on <self:POSetGroupColorer[Object, Object]> */
2703 /* method coloring$POSetGroupColorer$poset for (self: POSetGroupColorer[Object, Object]): POSet[Object] */
2704 val
* nitc___nitc__POSetGroupColorer___poset(val
* self
) {
2705 val
* var
/* : POSet[Object] */;
2706 val
* var1
/* : POSetConflictGraph[Object] */;
2707 val
* var3
/* : POSetConflictGraph[Object] */;
2708 val
* var4
/* : POSet[nullable Object] */;
2709 val
* var6
/* : POSet[nullable Object] */;
2711 { /* Inline coloring$POSetGroupColorer$graph (self) on <self:POSetGroupColorer[Object, Object]> */
2712 var3
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
2713 if (unlikely(var3
== NULL
)) {
2714 if(catchStack
.cursor
>= 0){
2715 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2718 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 282);
2726 { /* Inline coloring$POSetConflictGraph$poset (var1) on <var1:POSetConflictGraph[Object]> */
2727 var6
= var1
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
; /* _poset on <var1:POSetConflictGraph[Object]> */
2728 if (unlikely(var6
== NULL
)) {
2729 if(catchStack
.cursor
>= 0){
2730 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2732 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
2733 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
2745 /* method coloring$POSetGroupColorer$colors for (self: POSetGroupColorer[Object, Object]): Map[Object, Int] */
2746 val
* nitc___nitc__POSetGroupColorer___colors(val
* self
) {
2747 val
* var
/* : Map[Object, Int] */;
2748 short int var1
/* : Bool */;
2749 val
* var2
/* : Map[Object, Int] */;
2750 val
* var3
/* : Map[Object, Int] */;
2751 val
* var5
/* : POSetConflictGraph[Object] */;
2752 val
* var7
/* : POSetConflictGraph[Object] */;
2753 val
* var8
/* : POSet[nullable Object] */;
2754 val
* var10
/* : POSet[nullable Object] */;
2755 val
* var_
/* var : POSet[Object] */;
2756 val
* var11
/* : Iterator[nullable Object] */;
2757 val
* var_12
/* var : Iterator[Object] */;
2758 short int var13
/* : Bool */;
2759 val
* var14
/* : nullable Object */;
2760 val
* var_h
/* var h: Object */;
2761 val
* var15
/* : HashMap[Object, HashSet[Int]] */;
2762 val
* var17
/* : HashMap[Object, HashSet[Int]] */;
2763 val
* var18
/* : HashSet[Int] */;
2764 val
* var19
/* : HashMap[Object, Int] */;
2765 val
* var21
/* : HashMap[Object, Int] */;
2766 var1
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___colors
].val
!= NULL
; /* _colors on <self:POSetGroupColorer[Object, Object]> */
2768 var2
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___colors
].val
; /* _colors on <self:POSetGroupColorer[Object, Object]> */
2769 if (unlikely(var2
== NULL
)) {
2770 if(catchStack
.cursor
>= 0){
2771 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2773 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2774 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 300);
2780 { /* Inline coloring$POSetGroupColorer$graph (self) on <self:POSetGroupColorer[Object, Object]> */
2781 var7
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
2782 if (unlikely(var7
== NULL
)) {
2783 if(catchStack
.cursor
>= 0){
2784 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2786 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2787 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 282);
2795 { /* Inline coloring$POSetConflictGraph$poset (var5) on <var5:POSetConflictGraph[Object]> */
2796 var10
= var5
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___poset
].val
; /* _poset on <var5:POSetConflictGraph[Object]> */
2797 if (unlikely(var10
== NULL
)) {
2798 if(catchStack
.cursor
>= 0){
2799 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2801 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
2802 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 48);
2811 var11
= poset___poset__POSet___core__abstract_collection__Collection__iterator(var_
);
2816 var13
= ((short int(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_12
); /* is_ok on <var_12:Iterator[Object]>*/
2823 var14
= ((val
*(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_12
); /* item on <var_12:Iterator[Object]>*/
2827 { /* Inline coloring$POSetGroupColorer$used_colors (self) on <self:POSetGroupColorer[Object, Object]> */
2828 var17
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___used_colors
].val
; /* _used_colors on <self:POSetGroupColorer[Object, Object]> */
2829 if (unlikely(var17
== NULL
)) {
2830 if(catchStack
.cursor
>= 0){
2831 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _used_colors");
2834 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 314);
2838 RET_LABEL16
:(void)0;
2841 var18
= NEW_core__HashSet(&type_core__HashSet__core__Int
);
2843 core___core__HashSet___core__kernel__Object__init(var18
); /* Direct call hash_collection$HashSet$init on <var18:HashSet[Int]>*/
2846 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var15
, var_h
, var18
); /* Direct call hash_collection$HashMap$[]= on <var15:HashMap[Object, HashSet[Int]]>*/
2849 ((void(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_12
); /* next on <var_12:Iterator[Object]>*/
2852 BREAK_label
: (void)0;
2854 ((void(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_12
); /* finish on <var_12:Iterator[Object]>*/
2857 nitc___nitc__POSetGroupColorer___compute_colors(self
); /* Direct call coloring$POSetGroupColorer$compute_colors on <self:POSetGroupColorer[Object, Object]>*/
2860 { /* Inline coloring$POSetGroupColorer$colors_cache (self) on <self:POSetGroupColorer[Object, Object]> */
2861 var21
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___colors_cache
].val
; /* _colors_cache on <self:POSetGroupColorer[Object, Object]> */
2862 if (unlikely(var21
== NULL
)) {
2863 if(catchStack
.cursor
>= 0){
2864 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2867 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 311);
2871 RET_LABEL20
:(void)0;
2878 self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___colors
].val
= var3
; /* _colors on <self:POSetGroupColorer[Object, Object]> */
2885 /* method coloring$POSetGroupColorer$colors_cache for (self: POSetGroupColorer[Object, Object]): HashMap[Object, Int] */
2886 val
* nitc___nitc__POSetGroupColorer___colors_cache(val
* self
) {
2887 val
* var
/* : HashMap[Object, Int] */;
2888 val
* var1
/* : HashMap[Object, Int] */;
2889 var1
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___colors_cache
].val
; /* _colors_cache on <self:POSetGroupColorer[Object, Object]> */
2890 if (unlikely(var1
== NULL
)) {
2891 if(catchStack
.cursor
>= 0){
2892 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2895 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 311);
2902 /* method coloring$POSetGroupColorer$used_colors for (self: POSetGroupColorer[Object, Object]): HashMap[Object, HashSet[Int]] */
2903 val
* nitc___nitc__POSetGroupColorer___used_colors(val
* self
) {
2904 val
* var
/* : HashMap[Object, HashSet[Int]] */;
2905 val
* var1
/* : HashMap[Object, HashSet[Int]] */;
2906 var1
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___used_colors
].val
; /* _used_colors on <self:POSetGroupColorer[Object, Object]> */
2907 if (unlikely(var1
== NULL
)) {
2908 if(catchStack
.cursor
>= 0){
2909 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _used_colors");
2912 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 314);
2919 /* method coloring$POSetGroupColorer$build_layout for (self: POSetGroupColorer[Object, Object], Object): Array[nullable Object] */
2920 val
* nitc___nitc__POSetGroupColorer___build_layout(val
* self
, val
* p0
) {
2921 val
* var
/* : Array[nullable Object] */;
2922 short int var1
/* : Bool */;
2925 const struct type
* type_struct
;
2926 const char* var_class_name
;
2927 val
* var_h
/* var h: Object */;
2928 val
* var2
/* : Array[nullable Object] */;
2929 val
* var_table
/* var table: Array[nullable Object] */;
2930 val
* var3
/* : POSet[Object] */;
2931 val
* var4
/* : POSetElement[nullable Object] */;
2932 val
* var5
/* : Collection[nullable Object] */;
2933 val
* var_
/* var : Collection[Object] */;
2934 val
* var6
/* : Iterator[nullable Object] */;
2935 val
* var_7
/* var : Iterator[Object] */;
2936 short int var8
/* : Bool */;
2937 val
* var9
/* : nullable Object */;
2938 val
* var_s
/* var s: Object */;
2939 val
* var10
/* : Map[Object, Collection[Object]] */;
2940 val
* var12
/* : Map[Object, Collection[Object]] */;
2941 val
* var13
/* : nullable Object */;
2942 val
* var_bucket
/* var bucket: nullable Collection[Object] */;
2943 short int var14
/* : Bool */;
2944 short int var15
/* : Bool */;
2945 val
* var_17
/* var : Collection[Object] */;
2946 val
* var18
/* : Iterator[nullable Object] */;
2947 val
* var_19
/* var : Iterator[Object] */;
2948 short int var20
/* : Bool */;
2949 val
* var22
/* : nullable Object */;
2950 val
* var_e
/* var e: Object */;
2951 val
* var23
/* : Map[Object, Int] */;
2952 val
* var24
/* : nullable Object */;
2953 long var25
/* : Int */;
2954 long var_color
/* var color: Int */;
2955 long var26
/* : Int */;
2956 long var28
/* : Int */;
2957 short int var29
/* : Bool */;
2958 short int var31
/* : Bool */;
2961 const char* var_class_name34
;
2962 short int var35
/* : Bool */;
2963 long var36
/* : Int */;
2964 long var38
/* : Int */;
2965 long var_i
/* var i: Int */;
2966 long var_39
/* var : Int */;
2967 short int var40
/* : Bool */;
2968 short int var42
/* : Bool */;
2971 const char* var_class_name45
;
2972 short int var46
/* : Bool */;
2973 long var48
/* : Int */;
2974 val
* var49
/* : nullable Object */;
2975 short int var50
/* : Bool */;
2976 short int var51
/* : Bool */;
2977 val
* var52
/* : Sys */;
2978 val
* var53
/* : NativeArray[String] */;
2979 static val
* varonce
;
2980 static val
* varonce54
;
2981 val
* var55
/* : String */;
2982 char* var56
/* : CString */;
2983 val
* var57
/* : String */;
2984 val
* var58
/* : nullable Int */;
2985 val
* var59
/* : nullable Int */;
2986 val
* var60
/* : nullable Bool */;
2987 val
* var61
/* : nullable Bool */;
2988 static val
* varonce62
;
2989 val
* var63
/* : String */;
2990 char* var64
/* : CString */;
2991 val
* var65
/* : String */;
2992 val
* var66
/* : nullable Int */;
2993 val
* var67
/* : nullable Int */;
2994 val
* var68
/* : nullable Bool */;
2995 val
* var69
/* : nullable Bool */;
2996 static val
* varonce70
;
2997 val
* var71
/* : String */;
2998 char* var72
/* : CString */;
2999 val
* var73
/* : String */;
3000 val
* var74
/* : nullable Int */;
3001 val
* var75
/* : nullable Int */;
3002 val
* var76
/* : nullable Bool */;
3003 val
* var77
/* : nullable Bool */;
3004 static val
* varonce78
;
3005 val
* var79
/* : String */;
3006 char* var80
/* : CString */;
3007 val
* var81
/* : String */;
3008 val
* var82
/* : nullable Int */;
3009 val
* var83
/* : nullable Int */;
3010 val
* var84
/* : nullable Bool */;
3011 val
* var85
/* : nullable Bool */;
3012 val
* var86
/* : String */;
3013 val
* var87
/* : String */;
3014 val
* var88
/* : Object */;
3015 val
* var89
/* : nullable Object */;
3016 static val
* varonce90
;
3017 val
* var91
/* : String */;
3018 char* var92
/* : CString */;
3019 val
* var93
/* : String */;
3020 val
* var94
/* : nullable Int */;
3021 val
* var95
/* : nullable Int */;
3022 val
* var96
/* : nullable Bool */;
3023 val
* var97
/* : nullable Bool */;
3024 val
* var98
/* : String */;
3025 val
* var99
/* : String */;
3026 val
* var100
/* : String */;
3027 /* Covariant cast for argument 0 (h) <p0:Object> isa H */
3028 /* <p0:Object> isa H */
3029 type_struct
= self
->type
->resolution_table
->types
[COLOR_nitc__POSetGroupColorer___35dH
];
3030 cltype
= type_struct
->color
;
3031 idtype
= type_struct
->id
;
3032 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
3035 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
3037 if (unlikely(!var1
)) {
3038 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
3039 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
3040 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 317);
3044 var2
= NEW_core__Array(self
->type
->resolution_table
->types
[COLOR_core__Array__nullable__nitc__POSetGroupColorer___35dE
]);
3046 core___core__Array___core__kernel__Object__init(var2
); /* Direct call array$Array$init on <var2:Array[nullable Object]>*/
3050 var3
= nitc___nitc__POSetGroupColorer___poset(self
);
3053 var4
= poset___poset__POSet____91d_93d(var3
, var_h
);
3056 var5
= poset___poset__POSetElement___greaters(var4
);
3060 var6
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
3065 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[Object]>*/
3072 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[Object]>*/
3076 { /* Inline coloring$POSetGroupColorer$buckets (self) on <self:POSetGroupColorer[Object, Object]> */
3077 var12
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___buckets
].val
; /* _buckets on <self:POSetGroupColorer[Object, Object]> */
3078 if (unlikely(var12
== NULL
)) {
3079 if(catchStack
.cursor
>= 0){
3080 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3082 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _buckets");
3083 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 288);
3087 RET_LABEL11
:(void)0;
3091 var13
= ((val
*(*)(val
* self
, val
* p0
))((((long)var10
&3)?class_info
[((long)var10
&3)]:var10
->class)->vft
[COLOR_core__abstract_collection__MapRead__get_or_null
]))(var10
, var_s
); /* get_or_null on <var10:Map[Object, Collection[Object]]>*/
3094 if (var_bucket
== NULL
) {
3095 var14
= 1; /* is null */
3097 var14
= 0; /* arg is null but recv is not */
3100 var15
= ((short int(*)(val
* self
, val
* p0
))((((long)var_bucket
&3)?class_info
[((long)var_bucket
&3)]:var_bucket
->class)->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_bucket
, ((val
*)NULL
)); /* == on <var_bucket:nullable Collection[Object]>*/
3107 var_17
= var_bucket
;
3109 var18
= ((val
*(*)(val
* self
))((((long)var_17
&3)?class_info
[((long)var_17
&3)]:var_17
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_17
); /* iterator on <var_17:Collection[Object]>*/
3114 var20
= ((short int(*)(val
* self
))((((long)var_19
&3)?class_info
[((long)var_19
&3)]:var_19
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_19
); /* is_ok on <var_19:Iterator[Object]>*/
3121 var22
= ((val
*(*)(val
* self
))((((long)var_19
&3)?class_info
[((long)var_19
&3)]:var_19
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_19
); /* item on <var_19:Iterator[Object]>*/
3125 var23
= nitc___nitc__POSetGroupColorer___colors(self
);
3128 var24
= ((val
*(*)(val
* self
, val
* p0
))((((long)var23
&3)?class_info
[((long)var23
&3)]:var23
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var23
, var_e
); /* [] on <var23:Map[Object, Int]>*/
3130 var25
= (long)(var24
)>>2;
3133 { /* Inline array$AbstractArrayRead$length (var_table) on <var_table:Array[nullable Object]> */
3134 var28
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable Object]> */
3136 RET_LABEL27
:(void)0;
3140 { /* Inline kernel$Int$<= (var26,var_color) on <var26:Int> */
3141 /* Covariant cast for argument 0 (i) <var_color:Int> isa OTHER */
3142 /* <var_color:Int> isa OTHER */
3143 var31
= 1; /* easy <var_color:Int> isa OTHER*/
3144 if (unlikely(!var31
)) {
3145 var_class_name34
= type_core__Int
.name
;
3146 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34
);
3147 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 724);
3150 var35
= var26
<= var_color
;
3153 RET_LABEL30
:(void)0;
3158 { /* Inline array$AbstractArrayRead$length (var_table) on <var_table:Array[nullable Object]> */
3159 var38
= var_table
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_table:Array[nullable Object]> */
3161 RET_LABEL37
:(void)0;
3168 { /* Inline kernel$Int$< (var_i,var_39) on <var_i:Int> */
3169 /* Covariant cast for argument 0 (i) <var_39:Int> isa OTHER */
3170 /* <var_39:Int> isa OTHER */
3171 var42
= 1; /* easy <var_39:Int> isa OTHER*/
3172 if (unlikely(!var42
)) {
3173 var_class_name45
= type_core__Int
.name
;
3174 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45
);
3175 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 725);
3178 var46
= var_i
< var_39
;
3181 RET_LABEL41
:(void)0;
3189 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table
, var_i
, ((val
*)NULL
)); /* Direct call array$Array$[]= on <var_table:Array[nullable Object]>*/
3192 var48
= core___core__Int___Discrete__successor(var_i
, 1l);
3196 BREAK_label47
: (void)0;
3199 var49
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_table
, var_color
);
3201 if (var49
== NULL
) {
3202 var50
= 1; /* is null */
3204 var50
= 0; /* arg is null but recv is not */
3207 var51
= ((short int(*)(val
* self
, val
* p0
))((((long)var49
&3)?class_info
[((long)var49
&3)]:var49
->class)->vft
[COLOR_core__kernel__Object___61d_61d
]))(var49
, ((val
*)NULL
)); /* == on <var49:nullable Object>*/
3210 if (unlikely(!var50
)) {
3212 if (unlikely(varonce
==NULL
)) {
3213 var53
= NEW_core__NativeArray((int)8l, &type_core__NativeArray__core__String
);
3214 if (likely(varonce54
!=NULL
)) {
3218 var58
= (val
*)(3l<<2|1);
3219 var59
= (val
*)(3l<<2|1);
3220 var60
= (val
*)((long)(0)<<2|3);
3221 var61
= (val
*)((long)(0)<<2|3);
3222 var57
= core__flat___CString___to_s_unsafe(var56
, var58
, var59
, var60
, var61
);
3226 ((struct instance_core__NativeArray
*)var53
)->values
[0]=var55
;
3227 if (likely(varonce62
!=NULL
)) {
3231 var66
= (val
*)(6l<<2|1);
3232 var67
= (val
*)(6l<<2|1);
3233 var68
= (val
*)((long)(0)<<2|3);
3234 var69
= (val
*)((long)(0)<<2|3);
3235 var65
= core__flat___CString___to_s_unsafe(var64
, var66
, var67
, var68
, var69
);
3239 ((struct instance_core__NativeArray
*)var53
)->values
[2]=var63
;
3240 if (likely(varonce70
!=NULL
)) {
3244 var74
= (val
*)(2l<<2|1);
3245 var75
= (val
*)(2l<<2|1);
3246 var76
= (val
*)((long)(0)<<2|3);
3247 var77
= (val
*)((long)(0)<<2|3);
3248 var73
= core__flat___CString___to_s_unsafe(var72
, var74
, var75
, var76
, var77
);
3252 ((struct instance_core__NativeArray
*)var53
)->values
[4]=var71
;
3253 if (likely(varonce78
!=NULL
)) {
3257 var82
= (val
*)(4l<<2|1);
3258 var83
= (val
*)(4l<<2|1);
3259 var84
= (val
*)((long)(0)<<2|3);
3260 var85
= (val
*)((long)(0)<<2|3);
3261 var81
= core__flat___CString___to_s_unsafe(var80
, var82
, var83
, var84
, var85
);
3265 ((struct instance_core__NativeArray
*)var53
)->values
[6]=var79
;
3271 var86
= ((val
*(*)(val
* self
))((((long)var_h
&3)?class_info
[((long)var_h
&3)]:var_h
->class)->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_h
); /* to_s on <var_h:Object>*/
3273 ((struct instance_core__NativeArray
*)var53
)->values
[1]=var86
;
3274 var87
= core__flat___Int___core__abstract_text__Object__to_s(var_color
);
3275 ((struct instance_core__NativeArray
*)var53
)->values
[3]=var87
;
3277 var89
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_table
, var_color
);
3282 if (likely(varonce90
!=NULL
)) {
3286 var94
= (val
*)(0l<<2|1);
3287 var95
= (val
*)(0l<<2|1);
3288 var96
= (val
*)((long)(0)<<2|3);
3289 var97
= (val
*)((long)(0)<<2|3);
3290 var93
= core__flat___CString___to_s_unsafe(var92
, var94
, var95
, var96
, var97
);
3297 var98
= ((val
*(*)(val
* self
))((((long)var88
&3)?class_info
[((long)var88
&3)]:var88
->class)->vft
[COLOR_core__abstract_text__Object__to_s
]))(var88
); /* to_s on <var88:Object>*/
3299 ((struct instance_core__NativeArray
*)var53
)->values
[5]=var98
;
3301 var99
= ((val
*(*)(val
* self
))((((long)var_e
&3)?class_info
[((long)var_e
&3)]:var_e
->class)->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_e
); /* to_s on <var_e:Object>*/
3303 ((struct instance_core__NativeArray
*)var53
)->values
[7]=var99
;
3305 var100
= ((val
*(*)(val
* self
))(var53
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var53
); /* native_to_s on <var53:NativeArray[String]>*/
3309 core__file___Sys___print(var52
, var100
); /* Direct call file$Sys$print on <var52:Sys>*/
3311 if(catchStack
.cursor
>= 0){
3312 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3314 PRINT_ERROR("Runtime error: %s", "Assert failed");
3315 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 333);
3320 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_table
, var_color
, var_e
); /* Direct call array$Array$[]= on <var_table:Array[nullable Object]>*/
3323 ((void(*)(val
* self
))((((long)var_19
&3)?class_info
[((long)var_19
&3)]:var_19
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_19
); /* next on <var_19:Iterator[Object]>*/
3326 BREAK_label21
: (void)0;
3328 ((void(*)(val
* self
))((((long)var_19
&3)?class_info
[((long)var_19
&3)]:var_19
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_19
); /* finish on <var_19:Iterator[Object]>*/
3330 BREAK_label16
: (void)0;
3332 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[Object]>*/
3335 BREAK_label
: (void)0;
3337 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[Object]>*/
3344 /* method coloring$POSetGroupColorer$compute_colors for (self: POSetGroupColorer[Object, Object]) */
3345 void nitc___nitc__POSetGroupColorer___compute_colors(val
* self
) {
3346 val
* var
/* : HashMap[Object, Int] */;
3347 val
* var2
/* : HashMap[Object, Int] */;
3348 val
* var3
/* : POSetConflictGraph[Object] */;
3349 val
* var5
/* : POSetConflictGraph[Object] */;
3350 val
* var6
/* : HashSet[nullable Object] */;
3351 val
* var8
/* : HashSet[nullable Object] */;
3352 val
* var9
/* : POSetConflictGraph[Object] */;
3353 val
* var11
/* : POSetConflictGraph[Object] */;
3354 val
* var12
/* : HashSet[nullable Object] */;
3355 val
* var14
/* : HashSet[nullable Object] */;
3357 { /* Inline coloring$POSetGroupColorer$colors_cache (self) on <self:POSetGroupColorer[Object, Object]> */
3358 var2
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___colors_cache
].val
; /* _colors_cache on <self:POSetGroupColorer[Object, Object]> */
3359 if (unlikely(var2
== NULL
)) {
3360 if(catchStack
.cursor
>= 0){
3361 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
3364 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 311);
3372 core___core__HashMap___core__abstract_collection__Map__clear(var
); /* Direct call hash_collection$HashMap$clear on <var:HashMap[Object, Int]>*/
3375 nitc___nitc__POSetGroupColorer___colorize_core(self
); /* Direct call coloring$POSetGroupColorer$colorize_core on <self:POSetGroupColorer[Object, Object]>*/
3378 { /* Inline coloring$POSetGroupColorer$graph (self) on <self:POSetGroupColorer[Object, Object]> */
3379 var5
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3380 if (unlikely(var5
== NULL
)) {
3381 if(catchStack
.cursor
>= 0){
3382 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3385 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 282);
3393 { /* Inline coloring$POSetConflictGraph$border (var3) on <var3:POSetConflictGraph[Object]> */
3394 var8
= var3
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___border
].val
; /* _border on <var3:POSetConflictGraph[Object]> */
3395 if (unlikely(var8
== NULL
)) {
3396 if(catchStack
.cursor
>= 0){
3397 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
3400 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 28);
3408 nitc___nitc__POSetGroupColorer___colorize_set(self
, var6
); /* Direct call coloring$POSetGroupColorer$colorize_set on <self:POSetGroupColorer[Object, Object]>*/
3411 { /* Inline coloring$POSetGroupColorer$graph (self) on <self:POSetGroupColorer[Object, Object]> */
3412 var11
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3413 if (unlikely(var11
== NULL
)) {
3414 if(catchStack
.cursor
>= 0){
3415 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3417 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3418 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 282);
3422 RET_LABEL10
:(void)0;
3426 { /* Inline coloring$POSetConflictGraph$crown (var9) on <var9:POSetConflictGraph[Object]> */
3427 var14
= var9
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___crown
].val
; /* _crown on <var9:POSetConflictGraph[Object]> */
3428 if (unlikely(var14
== NULL
)) {
3429 if(catchStack
.cursor
>= 0){
3430 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3432 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
3433 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 34);
3437 RET_LABEL13
:(void)0;
3441 nitc___nitc__POSetGroupColorer___colorize_set(self
, var12
); /* Direct call coloring$POSetGroupColorer$colorize_set on <self:POSetGroupColorer[Object, Object]>*/
3445 /* method coloring$POSetGroupColorer$colorize_core for (self: POSetGroupColorer[Object, Object]) */
3446 void nitc___nitc__POSetGroupColorer___colorize_core(val
* self
) {
3447 val
* var
/* : POSetConflictGraph[Object] */;
3448 val
* var2
/* : POSetConflictGraph[Object] */;
3449 val
* var3
/* : Array[nullable Object] */;
3450 val
* var5
/* : Array[nullable Object] */;
3451 val
* var_
/* var : Array[Object] */;
3452 val
* var6
/* : IndexedIterator[nullable Object] */;
3453 val
* var_7
/* var : IndexedIterator[Object] */;
3454 short int var8
/* : Bool */;
3455 val
* var9
/* : nullable Object */;
3456 val
* var_h
/* var h: Object */;
3457 val
* var10
/* : POSetConflictGraph[Object] */;
3458 val
* var12
/* : POSetConflictGraph[Object] */;
3459 val
* var13
/* : HashSet[nullable Object] */;
3460 val
* var15
/* : HashSet[nullable Object] */;
3461 short int var16
/* : Bool */;
3462 short int var17
/* : Bool */;
3463 long var19
/* : Int */;
3464 long var_color
/* var color: Int */;
3465 long var_mincolor
/* var mincolor: Int */;
3466 val
* var20
/* : Map[Object, Collection[Object]] */;
3467 val
* var22
/* : Map[Object, Collection[Object]] */;
3468 val
* var23
/* : nullable Object */;
3469 val
* var_bucket
/* var bucket: nullable Collection[Object] */;
3470 short int var24
/* : Bool */;
3471 short int var25
/* : Bool */;
3472 val
* var26
/* : POSetConflictGraph[Object] */;
3473 val
* var28
/* : POSetConflictGraph[Object] */;
3474 val
* var29
/* : HashMap[nullable Object, Set[nullable Object]] */;
3475 val
* var31
/* : HashMap[nullable Object, Set[nullable Object]] */;
3476 val
* var32
/* : nullable Object */;
3477 val
* var_conflicts
/* var conflicts: Set[Object] */;
3478 val
* var33
/* : POSet[Object] */;
3479 val
* var34
/* : POSetElement[nullable Object] */;
3480 val
* var35
/* : Collection[nullable Object] */;
3481 val
* var_parents
/* var parents: Collection[Object] */;
3482 val
* var_36
/* var : Collection[Object] */;
3483 val
* var37
/* : Iterator[nullable Object] */;
3484 val
* var_38
/* var : Iterator[Object] */;
3485 short int var39
/* : Bool */;
3486 val
* var41
/* : nullable Object */;
3487 val
* var_e
/* var e: Object */;
3488 long var42
/* : Int */;
3489 long var43
/* : Int */;
3490 val
* var44
/* : HashMap[Object, Int] */;
3491 val
* var46
/* : HashMap[Object, Int] */;
3492 val
* var47
/* : nullable Object */;
3493 val
* var48
/* : HashMap[Object, HashSet[Int]] */;
3494 val
* var50
/* : HashMap[Object, HashSet[Int]] */;
3495 val
* var51
/* : nullable Object */;
3496 val
* var52
/* : nullable Object */;
3497 short int var53
/* : Bool */;
3498 short int var55
/* : Bool */;
3499 long var56
/* : Int */;
3500 short int var58
/* : Bool */;
3503 const char* var_class_name
;
3504 long var59
/* : Int */;
3505 long var60
/* : Int */;
3506 short int var62
/* : Bool */;
3509 const char* var_class_name65
;
3510 long var66
/* : Int */;
3511 val
* var67
/* : HashMap[Object, Int] */;
3512 val
* var69
/* : HashMap[Object, Int] */;
3513 val
* var70
/* : nullable Object */;
3515 { /* Inline coloring$POSetGroupColorer$graph (self) on <self:POSetGroupColorer[Object, Object]> */
3516 var2
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3517 if (unlikely(var2
== NULL
)) {
3518 if(catchStack
.cursor
>= 0){
3519 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3522 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 282);
3530 { /* Inline coloring$POSetConflictGraph$order (var) on <var:POSetConflictGraph[Object]> */
3531 var5
= var
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___order
].val
; /* _order on <var:POSetConflictGraph[Object]> */
3532 if (unlikely(var5
== NULL
)) {
3533 if(catchStack
.cursor
>= 0){
3534 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _order");
3537 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 51);
3546 var6
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
3551 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:IndexedIterator[Object]>*/
3558 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:IndexedIterator[Object]>*/
3562 { /* Inline coloring$POSetGroupColorer$graph (self) on <self:POSetGroupColorer[Object, Object]> */
3563 var12
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3564 if (unlikely(var12
== NULL
)) {
3565 if(catchStack
.cursor
>= 0){
3566 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3568 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3569 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 282);
3573 RET_LABEL11
:(void)0;
3577 { /* Inline coloring$POSetConflictGraph$core (var10) on <var10:POSetConflictGraph[Object]> */
3578 var15
= var10
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___core
].val
; /* _core on <var10:POSetConflictGraph[Object]> */
3579 if (unlikely(var15
== NULL
)) {
3580 if(catchStack
.cursor
>= 0){
3581 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3583 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
3584 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 22);
3588 RET_LABEL14
:(void)0;
3592 var16
= core___core__HashSet___core__abstract_collection__Collection__has(var13
, var_h
);
3600 var19
= nitc___nitc__POSetGroupColorer___inherit_color(self
, var_h
);
3603 var_mincolor
= var_color
;
3605 { /* Inline coloring$POSetGroupColorer$buckets (self) on <self:POSetGroupColorer[Object, Object]> */
3606 var22
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___buckets
].val
; /* _buckets on <self:POSetGroupColorer[Object, Object]> */
3607 if (unlikely(var22
== NULL
)) {
3608 if(catchStack
.cursor
>= 0){
3609 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3611 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _buckets");
3612 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 288);
3616 RET_LABEL21
:(void)0;
3620 var23
= ((val
*(*)(val
* self
, val
* p0
))((((long)var20
&3)?class_info
[((long)var20
&3)]:var20
->class)->vft
[COLOR_core__abstract_collection__MapRead__get_or_null
]))(var20
, var_h
); /* get_or_null on <var20:Map[Object, Collection[Object]]>*/
3623 if (var_bucket
== NULL
) {
3624 var24
= 1; /* is null */
3626 var24
= 0; /* arg is null but recv is not */
3629 var25
= ((short int(*)(val
* self
, val
* p0
))((((long)var_bucket
&3)?class_info
[((long)var_bucket
&3)]:var_bucket
->class)->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_bucket
, ((val
*)NULL
)); /* == on <var_bucket:nullable Collection[Object]>*/
3637 { /* Inline coloring$POSetGroupColorer$graph (self) on <self:POSetGroupColorer[Object, Object]> */
3638 var28
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3639 if (unlikely(var28
== NULL
)) {
3640 if(catchStack
.cursor
>= 0){
3641 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3643 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3644 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 282);
3648 RET_LABEL27
:(void)0;
3652 { /* Inline coloring$POSetConflictGraph$conflicts (var26) on <var26:POSetConflictGraph[Object]> */
3653 var31
= var26
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var26:POSetConflictGraph[Object]> */
3654 if (unlikely(var31
== NULL
)) {
3655 if(catchStack
.cursor
>= 0){
3656 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3658 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3659 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 40);
3663 RET_LABEL30
:(void)0;
3667 var32
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var29
, var_h
);
3669 var_conflicts
= var32
;
3671 var33
= nitc___nitc__POSetGroupColorer___poset(self
);
3674 var34
= poset___poset__POSet____91d_93d(var33
, var_h
);
3677 var35
= poset___poset__POSetElement___greaters(var34
);
3679 var_parents
= var35
;
3680 var_36
= var_bucket
;
3682 var37
= ((val
*(*)(val
* self
))((((long)var_36
&3)?class_info
[((long)var_36
&3)]:var_36
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_36
); /* iterator on <var_36:Collection[Object]>*/
3687 var39
= ((short int(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_38
); /* is_ok on <var_38:Iterator[Object]>*/
3694 var41
= ((val
*(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_38
); /* item on <var_38:Iterator[Object]>*/
3698 var42
= nitc___nitc__POSetGroupColorer___next_free_color(self
, var_color
, var_parents
);
3702 var43
= nitc___nitc__POSetGroupColorer___next_free_color(self
, var_color
, var_conflicts
);
3706 { /* Inline coloring$POSetGroupColorer$colors_cache (self) on <self:POSetGroupColorer[Object, Object]> */
3707 var46
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___colors_cache
].val
; /* _colors_cache on <self:POSetGroupColorer[Object, Object]> */
3708 if (unlikely(var46
== NULL
)) {
3709 if(catchStack
.cursor
>= 0){
3710 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
3713 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 311);
3717 RET_LABEL45
:(void)0;
3721 var47
= (val
*)(var_color
<<2|1);
3722 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var44
, var_e
, var47
); /* Direct call hash_collection$HashMap$[]= on <var44:HashMap[Object, Int]>*/
3725 { /* Inline coloring$POSetGroupColorer$used_colors (self) on <self:POSetGroupColorer[Object, Object]> */
3726 var50
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___used_colors
].val
; /* _used_colors on <self:POSetGroupColorer[Object, Object]> */
3727 if (unlikely(var50
== NULL
)) {
3728 if(catchStack
.cursor
>= 0){
3729 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3731 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _used_colors");
3732 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 314);
3736 RET_LABEL49
:(void)0;
3740 var51
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var48
, var_h
);
3743 var52
= (val
*)(var_color
<<2|1);
3744 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var51
, var52
); /* Direct call hash_collection$HashSet$add on <var51:nullable Object(HashSet[Int])>*/
3747 { /* Inline kernel$Int$== (var_mincolor,var_color) on <var_mincolor:Int> */
3748 var55
= var_mincolor
== var_color
;
3751 RET_LABEL54
:(void)0;
3756 { /* Inline kernel$Int$+ (var_mincolor,1l) on <var_mincolor:Int> */
3757 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3758 /* <1l:Int> isa OTHER */
3759 var58
= 1; /* easy <1l:Int> isa OTHER*/
3760 if (unlikely(!var58
)) {
3761 var_class_name
= type_core__Int
.name
;
3762 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3763 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
3766 var59
= var_mincolor
+ 1l;
3769 RET_LABEL57
:(void)0;
3772 var_mincolor
= var56
;
3776 { /* Inline kernel$Int$+ (var_color,1l) on <var_color:Int> */
3777 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3778 /* <1l:Int> isa OTHER */
3779 var62
= 1; /* easy <1l:Int> isa OTHER*/
3780 if (unlikely(!var62
)) {
3781 var_class_name65
= type_core__Int
.name
;
3782 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65
);
3783 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
3786 var66
= var_color
+ 1l;
3789 RET_LABEL61
:(void)0;
3794 ((void(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_38
); /* next on <var_38:Iterator[Object]>*/
3797 BREAK_label40
: (void)0;
3799 ((void(*)(val
* self
))((((long)var_38
&3)?class_info
[((long)var_38
&3)]:var_38
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_38
); /* finish on <var_38:Iterator[Object]>*/
3802 { /* Inline coloring$POSetGroupColorer$min_colors (self) on <self:POSetGroupColorer[Object, Object]> */
3803 var69
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___min_colors
].val
; /* _min_colors on <self:POSetGroupColorer[Object, Object]> */
3804 if (unlikely(var69
== NULL
)) {
3805 if(catchStack
.cursor
>= 0){
3806 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _min_colors");
3809 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 409);
3813 RET_LABEL68
:(void)0;
3817 var70
= (val
*)(var_mincolor
<<2|1);
3818 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var67
, var_h
, var70
); /* Direct call hash_collection$HashMap$[]= on <var67:HashMap[Object, Int]>*/
3820 BREAK_label18
: (void)0;
3822 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:IndexedIterator[Object]>*/
3825 BREAK_label
: (void)0;
3827 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:IndexedIterator[Object]>*/
3831 /* method coloring$POSetGroupColorer$colorize_set for (self: POSetGroupColorer[Object, Object], Set[Object]) */
3832 void nitc___nitc__POSetGroupColorer___colorize_set(val
* self
, val
* p0
) {
3833 short int var
/* : Bool */;
3836 const struct type
* type_struct
;
3837 const char* var_class_name
;
3838 val
* var_set
/* var set: Set[Object] */;
3839 val
* var1
/* : POSetConflictGraph[Object] */;
3840 val
* var3
/* : POSetConflictGraph[Object] */;
3841 val
* var4
/* : Array[nullable Object] */;
3842 val
* var6
/* : Array[nullable Object] */;
3843 val
* var_
/* var : Array[Object] */;
3844 val
* var7
/* : IndexedIterator[nullable Object] */;
3845 val
* var_8
/* var : IndexedIterator[Object] */;
3846 short int var9
/* : Bool */;
3847 val
* var10
/* : nullable Object */;
3848 val
* var_h
/* var h: Object */;
3849 short int var11
/* : Bool */;
3850 short int var12
/* : Bool */;
3851 long var14
/* : Int */;
3852 long var_color
/* var color: Int */;
3853 long var_mincolor
/* var mincolor: Int */;
3854 val
* var15
/* : Map[Object, Collection[Object]] */;
3855 val
* var17
/* : Map[Object, Collection[Object]] */;
3856 val
* var18
/* : nullable Object */;
3857 val
* var_bucket
/* var bucket: nullable Collection[Object] */;
3858 short int var19
/* : Bool */;
3859 short int var20
/* : Bool */;
3860 val
* var21
/* : POSet[Object] */;
3861 val
* var22
/* : POSetElement[nullable Object] */;
3862 val
* var23
/* : Collection[nullable Object] */;
3863 val
* var_parents
/* var parents: Collection[Object] */;
3864 val
* var_24
/* var : Collection[Object] */;
3865 val
* var25
/* : Iterator[nullable Object] */;
3866 val
* var_26
/* var : Iterator[Object] */;
3867 short int var27
/* : Bool */;
3868 val
* var29
/* : nullable Object */;
3869 val
* var_e
/* var e: Object */;
3870 long var30
/* : Int */;
3871 val
* var31
/* : HashMap[Object, Int] */;
3872 val
* var33
/* : HashMap[Object, Int] */;
3873 val
* var34
/* : nullable Object */;
3874 val
* var35
/* : HashMap[Object, HashSet[Int]] */;
3875 val
* var37
/* : HashMap[Object, HashSet[Int]] */;
3876 val
* var38
/* : nullable Object */;
3877 val
* var39
/* : nullable Object */;
3878 short int var40
/* : Bool */;
3879 short int var42
/* : Bool */;
3880 long var43
/* : Int */;
3881 short int var45
/* : Bool */;
3884 const char* var_class_name48
;
3885 long var49
/* : Int */;
3886 long var50
/* : Int */;
3887 short int var52
/* : Bool */;
3890 const char* var_class_name55
;
3891 long var56
/* : Int */;
3892 val
* var57
/* : HashMap[Object, Int] */;
3893 val
* var59
/* : HashMap[Object, Int] */;
3894 val
* var60
/* : nullable Object */;
3895 /* Covariant cast for argument 0 (set) <p0:Set[Object]> isa Set[H] */
3896 /* <p0:Set[Object]> isa Set[H] */
3897 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Set__nitc__POSetGroupColorer___35dH
];
3898 cltype
= type_struct
->color
;
3899 idtype
= type_struct
->id
;
3900 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
3903 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
3905 if (unlikely(!var
)) {
3906 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
3907 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[H]", var_class_name
);
3908 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 375);
3913 { /* Inline coloring$POSetGroupColorer$graph (self) on <self:POSetGroupColorer[Object, Object]> */
3914 var3
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___graph
].val
; /* _graph on <self:POSetGroupColorer[Object, Object]> */
3915 if (unlikely(var3
== NULL
)) {
3916 if(catchStack
.cursor
>= 0){
3917 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3919 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
3920 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 282);
3928 { /* Inline coloring$POSetConflictGraph$order (var1) on <var1:POSetConflictGraph[Object]> */
3929 var6
= var1
->attrs
[COLOR_nitc__coloring__POSetConflictGraph___order
].val
; /* _order on <var1:POSetConflictGraph[Object]> */
3930 if (unlikely(var6
== NULL
)) {
3931 if(catchStack
.cursor
>= 0){
3932 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _order");
3935 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 51);
3944 var7
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
3949 var9
= ((short int(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_8
); /* is_ok on <var_8:IndexedIterator[Object]>*/
3956 var10
= ((val
*(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_8
); /* item on <var_8:IndexedIterator[Object]>*/
3960 var11
= ((short int(*)(val
* self
, val
* p0
))((((long)var_set
&3)?class_info
[((long)var_set
&3)]:var_set
->class)->vft
[COLOR_core__abstract_collection__Collection__has
]))(var_set
, var_h
); /* has on <var_set:Set[Object]>*/
3968 var14
= nitc___nitc__POSetGroupColorer___inherit_color(self
, var_h
);
3971 var_mincolor
= var_color
;
3973 { /* Inline coloring$POSetGroupColorer$buckets (self) on <self:POSetGroupColorer[Object, Object]> */
3974 var17
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___buckets
].val
; /* _buckets on <self:POSetGroupColorer[Object, Object]> */
3975 if (unlikely(var17
== NULL
)) {
3976 if(catchStack
.cursor
>= 0){
3977 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
3979 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _buckets");
3980 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 288);
3984 RET_LABEL16
:(void)0;
3988 var18
= ((val
*(*)(val
* self
, val
* p0
))((((long)var15
&3)?class_info
[((long)var15
&3)]:var15
->class)->vft
[COLOR_core__abstract_collection__MapRead__get_or_null
]))(var15
, var_h
); /* get_or_null on <var15:Map[Object, Collection[Object]]>*/
3991 if (var_bucket
== NULL
) {
3992 var19
= 1; /* is null */
3994 var19
= 0; /* arg is null but recv is not */
3997 var20
= ((short int(*)(val
* self
, val
* p0
))((((long)var_bucket
&3)?class_info
[((long)var_bucket
&3)]:var_bucket
->class)->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_bucket
, ((val
*)NULL
)); /* == on <var_bucket:nullable Collection[Object]>*/
4005 var21
= nitc___nitc__POSetGroupColorer___poset(self
);
4008 var22
= poset___poset__POSet____91d_93d(var21
, var_h
);
4011 var23
= poset___poset__POSetElement___greaters(var22
);
4013 var_parents
= var23
;
4014 var_24
= var_bucket
;
4016 var25
= ((val
*(*)(val
* self
))((((long)var_24
&3)?class_info
[((long)var_24
&3)]:var_24
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_24
); /* iterator on <var_24:Collection[Object]>*/
4021 var27
= ((short int(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_26
); /* is_ok on <var_26:Iterator[Object]>*/
4028 var29
= ((val
*(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_26
); /* item on <var_26:Iterator[Object]>*/
4032 var30
= nitc___nitc__POSetGroupColorer___next_free_color(self
, var_color
, var_parents
);
4036 { /* Inline coloring$POSetGroupColorer$colors_cache (self) on <self:POSetGroupColorer[Object, Object]> */
4037 var33
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___colors_cache
].val
; /* _colors_cache on <self:POSetGroupColorer[Object, Object]> */
4038 if (unlikely(var33
== NULL
)) {
4039 if(catchStack
.cursor
>= 0){
4040 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
4043 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 311);
4047 RET_LABEL32
:(void)0;
4051 var34
= (val
*)(var_color
<<2|1);
4052 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var31
, var_e
, var34
); /* Direct call hash_collection$HashMap$[]= on <var31:HashMap[Object, Int]>*/
4055 { /* Inline coloring$POSetGroupColorer$used_colors (self) on <self:POSetGroupColorer[Object, Object]> */
4056 var37
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___used_colors
].val
; /* _used_colors on <self:POSetGroupColorer[Object, Object]> */
4057 if (unlikely(var37
== NULL
)) {
4058 if(catchStack
.cursor
>= 0){
4059 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _used_colors");
4062 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 314);
4066 RET_LABEL36
:(void)0;
4070 var38
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var35
, var_h
);
4073 var39
= (val
*)(var_color
<<2|1);
4074 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var38
, var39
); /* Direct call hash_collection$HashSet$add on <var38:nullable Object(HashSet[Int])>*/
4077 { /* Inline kernel$Int$== (var_mincolor,var_color) on <var_mincolor:Int> */
4078 var42
= var_mincolor
== var_color
;
4081 RET_LABEL41
:(void)0;
4086 { /* Inline kernel$Int$+ (var_mincolor,1l) on <var_mincolor:Int> */
4087 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4088 /* <1l:Int> isa OTHER */
4089 var45
= 1; /* easy <1l:Int> isa OTHER*/
4090 if (unlikely(!var45
)) {
4091 var_class_name48
= type_core__Int
.name
;
4092 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48
);
4093 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
4096 var49
= var_mincolor
+ 1l;
4099 RET_LABEL44
:(void)0;
4102 var_mincolor
= var43
;
4106 { /* Inline kernel$Int$+ (var_color,1l) on <var_color:Int> */
4107 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4108 /* <1l:Int> isa OTHER */
4109 var52
= 1; /* easy <1l:Int> isa OTHER*/
4110 if (unlikely(!var52
)) {
4111 var_class_name55
= type_core__Int
.name
;
4112 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55
);
4113 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
4116 var56
= var_color
+ 1l;
4119 RET_LABEL51
:(void)0;
4124 ((void(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_26
); /* next on <var_26:Iterator[Object]>*/
4127 BREAK_label28
: (void)0;
4129 ((void(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_26
); /* finish on <var_26:Iterator[Object]>*/
4132 { /* Inline coloring$POSetGroupColorer$min_colors (self) on <self:POSetGroupColorer[Object, Object]> */
4133 var59
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___min_colors
].val
; /* _min_colors on <self:POSetGroupColorer[Object, Object]> */
4134 if (unlikely(var59
== NULL
)) {
4135 if(catchStack
.cursor
>= 0){
4136 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _min_colors");
4139 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 409);
4143 RET_LABEL58
:(void)0;
4147 var60
= (val
*)(var_mincolor
<<2|1);
4148 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var57
, var_h
, var60
); /* Direct call hash_collection$HashMap$[]= on <var57:HashMap[Object, Int]>*/
4150 BREAK_label13
: (void)0;
4152 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_8
); /* next on <var_8:IndexedIterator[Object]>*/
4155 BREAK_label
: (void)0;
4157 ((void(*)(val
* self
))((((long)var_8
&3)?class_info
[((long)var_8
&3)]:var_8
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_8
); /* finish on <var_8:IndexedIterator[Object]>*/
4161 /* method coloring$POSetGroupColorer$inherit_color for (self: POSetGroupColorer[Object, Object], Object): Int */
4162 long nitc___nitc__POSetGroupColorer___inherit_color(val
* self
, val
* p0
) {
4163 long var
/* : Int */;
4164 short int var1
/* : Bool */;
4167 const struct type
* type_struct
;
4168 const char* var_class_name
;
4169 val
* var_h
/* var h: Object */;
4170 long var_res
/* var res: Int */;
4171 val
* var2
/* : POSet[Object] */;
4172 val
* var3
/* : POSetElement[nullable Object] */;
4173 val
* var4
/* : Collection[nullable Object] */;
4174 val
* var_
/* var : Collection[Object] */;
4175 val
* var5
/* : Iterator[nullable Object] */;
4176 val
* var_6
/* var : Iterator[Object] */;
4177 short int var7
/* : Bool */;
4178 val
* var8
/* : nullable Object */;
4179 val
* var_p
/* var p: Object */;
4180 val
* var9
/* : HashMap[Object, Int] */;
4181 val
* var11
/* : HashMap[Object, Int] */;
4182 val
* var12
/* : nullable Object */;
4183 long var13
/* : Int */;
4184 long var_m
/* var m: Int */;
4185 short int var14
/* : Bool */;
4186 short int var16
/* : Bool */;
4189 const char* var_class_name19
;
4190 short int var20
/* : Bool */;
4191 val
* var21
/* : HashMap[Object, Int] */;
4192 val
* var23
/* : HashMap[Object, Int] */;
4193 val
* var24
/* : nullable Object */;
4194 /* Covariant cast for argument 0 (h) <p0:Object> isa H */
4195 /* <p0:Object> isa H */
4196 type_struct
= self
->type
->resolution_table
->types
[COLOR_nitc__POSetGroupColorer___35dH
];
4197 cltype
= type_struct
->color
;
4198 idtype
= type_struct
->id
;
4199 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
4202 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
4204 if (unlikely(!var1
)) {
4205 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
4206 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
4207 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 397);
4213 var2
= nitc___nitc__POSetGroupColorer___poset(self
);
4216 var3
= poset___poset__POSet____91d_93d(var2
, var_h
);
4219 var4
= poset___poset__POSetElement___direct_greaters(var3
);
4223 var5
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
4228 var7
= ((short int(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_6
); /* is_ok on <var_6:Iterator[Object]>*/
4235 var8
= ((val
*(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_6
); /* item on <var_6:Iterator[Object]>*/
4239 { /* Inline coloring$POSetGroupColorer$min_colors (self) on <self:POSetGroupColorer[Object, Object]> */
4240 var11
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___min_colors
].val
; /* _min_colors on <self:POSetGroupColorer[Object, Object]> */
4241 if (unlikely(var11
== NULL
)) {
4242 if(catchStack
.cursor
>= 0){
4243 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4245 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _min_colors");
4246 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 409);
4250 RET_LABEL10
:(void)0;
4254 var12
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var9
, var_p
);
4256 var13
= (long)(var12
)>>2;
4259 { /* Inline kernel$Int$> (var_m,var_res) on <var_m:Int> */
4260 /* Covariant cast for argument 0 (i) <var_res:Int> isa OTHER */
4261 /* <var_res:Int> isa OTHER */
4262 var16
= 1; /* easy <var_res:Int> isa OTHER*/
4263 if (unlikely(!var16
)) {
4264 var_class_name19
= type_core__Int
.name
;
4265 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19
);
4266 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
4269 var20
= var_m
> var_res
;
4272 RET_LABEL15
:(void)0;
4280 ((void(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_6
); /* next on <var_6:Iterator[Object]>*/
4283 BREAK_label
: (void)0;
4285 ((void(*)(val
* self
))((((long)var_6
&3)?class_info
[((long)var_6
&3)]:var_6
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_6
); /* finish on <var_6:Iterator[Object]>*/
4288 { /* Inline coloring$POSetGroupColorer$min_colors (self) on <self:POSetGroupColorer[Object, Object]> */
4289 var23
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___min_colors
].val
; /* _min_colors on <self:POSetGroupColorer[Object, Object]> */
4290 if (unlikely(var23
== NULL
)) {
4291 if(catchStack
.cursor
>= 0){
4292 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _min_colors");
4295 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 409);
4299 RET_LABEL22
:(void)0;
4303 var24
= (val
*)(var_res
<<2|1);
4304 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var21
, var_h
, var24
); /* Direct call hash_collection$HashMap$[]= on <var21:HashMap[Object, Int]>*/
4311 /* method coloring$POSetGroupColorer$min_colors for (self: POSetGroupColorer[Object, Object]): HashMap[Object, Int] */
4312 val
* nitc___nitc__POSetGroupColorer___min_colors(val
* self
) {
4313 val
* var
/* : HashMap[Object, Int] */;
4314 val
* var1
/* : HashMap[Object, Int] */;
4315 var1
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___min_colors
].val
; /* _min_colors on <self:POSetGroupColorer[Object, Object]> */
4316 if (unlikely(var1
== NULL
)) {
4317 if(catchStack
.cursor
>= 0){
4318 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _min_colors");
4321 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 409);
4328 /* method coloring$POSetGroupColorer$next_free_color for (self: POSetGroupColorer[Object, Object], Int, Collection[Object]): Int */
4329 long nitc___nitc__POSetGroupColorer___next_free_color(val
* self
, long p0
, val
* p1
) {
4330 long var
/* : Int */;
4331 short int var1
/* : Bool */;
4334 const struct type
* type_struct
;
4335 const char* var_class_name
;
4336 long var_color
/* var color: Int */;
4337 val
* var_set
/* var set: Collection[Object] */;
4338 val
* var_
/* var : Collection[Object] */;
4339 val
* var2
/* : Iterator[nullable Object] */;
4340 val
* var_3
/* var : Iterator[Object] */;
4341 short int var4
/* : Bool */;
4342 val
* var5
/* : nullable Object */;
4343 val
* var_h
/* var h: Object */;
4344 val
* var6
/* : HashMap[Object, HashSet[Int]] */;
4345 val
* var8
/* : HashMap[Object, HashSet[Int]] */;
4346 val
* var9
/* : nullable Object */;
4347 short int var10
/* : Bool */;
4348 val
* var11
/* : nullable Object */;
4349 long var12
/* : Int */;
4350 short int var14
/* : Bool */;
4353 const char* var_class_name17
;
4354 long var18
/* : Int */;
4355 /* Covariant cast for argument 1 (set) <p1:Collection[Object]> isa Collection[H] */
4356 /* <p1:Collection[Object]> isa Collection[H] */
4357 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Collection__nitc__POSetGroupColorer___35dH
];
4358 cltype
= type_struct
->color
;
4359 idtype
= type_struct
->id
;
4360 if(cltype
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
4363 var1
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype
] == idtype
;
4365 if (unlikely(!var1
)) {
4366 var_class_name
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
4367 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[H]", var_class_name
);
4368 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 416);
4376 var2
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
4381 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_3
); /* is_ok on <var_3:Iterator[Object]>*/
4388 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_3
); /* item on <var_3:Iterator[Object]>*/
4392 { /* Inline coloring$POSetGroupColorer$used_colors (self) on <self:POSetGroupColorer[Object, Object]> */
4393 var8
= self
->attrs
[COLOR_nitc__coloring__POSetGroupColorer___used_colors
].val
; /* _used_colors on <self:POSetGroupColorer[Object, Object]> */
4394 if (unlikely(var8
== NULL
)) {
4395 if(catchStack
.cursor
>= 0){
4396 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _used_colors");
4399 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 314);
4407 var9
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var6
, var_h
);
4410 var11
= (val
*)(var_color
<<2|1);
4411 var10
= core___core__HashSet___core__abstract_collection__Collection__has(var9
, var11
);
4415 { /* Inline kernel$Int$+ (var_color,1l) on <var_color:Int> */
4416 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4417 /* <1l:Int> isa OTHER */
4418 var14
= 1; /* easy <1l:Int> isa OTHER*/
4419 if (unlikely(!var14
)) {
4420 var_class_name17
= type_core__Int
.name
;
4421 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17
);
4422 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
4425 var18
= var_color
+ 1l;
4428 RET_LABEL13
:(void)0;
4436 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_3
); /* next on <var_3:Iterator[Object]>*/
4439 BREAK_label
: (void)0;
4441 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_3
); /* finish on <var_3:Iterator[Object]>*/
4452 /* method coloring$POSetGroupColorer$init for (self: POSetGroupColorer[Object, Object]) */
4453 void nitc___nitc__POSetGroupColorer___core__kernel__Object__init(val
* self
) {
4455 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc___nitc__POSetGroupColorer___core__kernel__Object__init
]))(self
); /* init on <self:POSetGroupColorer[Object, Object]>*/
4459 /* method coloring$BucketsColorer$colors for (self: BucketsColorer[Object, Object]): HashMap[Object, Int] */
4460 val
* nitc___nitc__BucketsColorer___colors(val
* self
) {
4461 val
* var
/* : HashMap[Object, Int] */;
4462 val
* var1
/* : HashMap[Object, Int] */;
4463 var1
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4464 if (unlikely(var1
== NULL
)) {
4465 if(catchStack
.cursor
>= 0){
4466 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4469 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 458);
4476 /* method coloring$BucketsColorer$conflicts for (self: BucketsColorer[Object, Object]): HashMap[Object, Set[Object]] */
4477 val
* nitc___nitc__BucketsColorer___conflicts(val
* self
) {
4478 val
* var
/* : HashMap[Object, Set[Object]] */;
4479 val
* var1
/* : HashMap[Object, Set[Object]] */;
4480 var1
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4481 if (unlikely(var1
== NULL
)) {
4482 if(catchStack
.cursor
>= 0){
4483 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4486 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 459);
4493 /* method coloring$BucketsColorer$colorize for (self: BucketsColorer[Object, Object], Map[Object, Set[Object]]): Map[Object, Int] */
4494 val
* nitc___nitc__BucketsColorer___colorize(val
* self
, val
* p0
) {
4495 val
* var
/* : Map[Object, Int] */;
4496 short int var1
/* : Bool */;
4499 const struct type
* type_struct
;
4500 const char* var_class_name
;
4501 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
4502 long var_min_color
/* var min_color: Int */;
4503 val
* var_
/* var : Map[Object, Set[Object]] */;
4504 val
* var2
/* : MapIterator[nullable Object, nullable Object] */;
4505 val
* var_3
/* var : MapIterator[Object, Set[Object]] */;
4506 short int var4
/* : Bool */;
4507 val
* var5
/* : nullable Object */;
4508 val
* var_holder
/* var holder: Object */;
4509 val
* var6
/* : nullable Object */;
4510 val
* var_hbuckets
/* var hbuckets: Set[Object] */;
4511 val
* var_7
/* var : Set[Object] */;
4512 val
* var8
/* : Iterator[nullable Object] */;
4513 val
* var_9
/* var : Iterator[Object] */;
4514 short int var10
/* : Bool */;
4515 val
* var12
/* : nullable Object */;
4516 val
* var_bucket
/* var bucket: Object */;
4517 val
* var13
/* : HashMap[Object, Int] */;
4518 val
* var15
/* : HashMap[Object, Int] */;
4519 short int var16
/* : Bool */;
4520 long var_color
/* var color: Int */;
4521 short int var18
/* : Bool */;
4522 short int var19
/* : Bool */;
4523 long var20
/* : Int */;
4524 short int var22
/* : Bool */;
4527 const char* var_class_name25
;
4528 long var26
/* : Int */;
4529 val
* var28
/* : HashMap[Object, Int] */;
4530 val
* var30
/* : HashMap[Object, Int] */;
4531 val
* var31
/* : nullable Object */;
4532 val
* var33
/* : HashMap[Object, Int] */;
4533 val
* var35
/* : HashMap[Object, Int] */;
4534 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4535 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4536 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Map__nitc__BucketsColorer___35dH__core__Set__nitc__BucketsColorer___35dE
];
4537 cltype
= type_struct
->color
;
4538 idtype
= type_struct
->id
;
4539 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
4542 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
4544 if (unlikely(!var1
)) {
4545 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
4546 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
4547 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 461);
4552 nitc___nitc__BucketsColorer___compute_conflicts(self
, var_buckets
); /* Direct call coloring$BucketsColorer$compute_conflicts on <self:BucketsColorer[Object, Object]>*/
4557 var2
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__MapRead__iterator
]))(var_
); /* iterator on <var_:Map[Object, Set[Object]]>*/
4562 var4
= ((short int(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__MapIterator__is_ok
]))(var_3
); /* is_ok on <var_3:MapIterator[Object, Set[Object]]>*/
4569 var5
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__MapIterator__key
]))(var_3
); /* key on <var_3:MapIterator[Object, Set[Object]]>*/
4573 var6
= ((val
*(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__MapIterator__item
]))(var_3
); /* item on <var_3:MapIterator[Object, Set[Object]]>*/
4575 var_hbuckets
= var6
;
4576 var_7
= var_hbuckets
;
4578 var8
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_7
); /* iterator on <var_7:Set[Object]>*/
4583 var10
= ((short int(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_9
); /* is_ok on <var_9:Iterator[Object]>*/
4590 var12
= ((val
*(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_9
); /* item on <var_9:Iterator[Object]>*/
4594 { /* Inline coloring$BucketsColorer$colors (self) on <self:BucketsColorer[Object, Object]> */
4595 var15
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4596 if (unlikely(var15
== NULL
)) {
4597 if(catchStack
.cursor
>= 0){
4598 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4601 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 458);
4605 RET_LABEL14
:(void)0;
4609 var16
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var13
, var_bucket
);
4615 var_color
= var_min_color
;
4618 var18
= nitc___nitc__BucketsColorer___is_color_free(self
, var_bucket
, var_color
);
4623 { /* Inline kernel$Int$+ (var_color,1l) on <var_color:Int> */
4624 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4625 /* <1l:Int> isa OTHER */
4626 var22
= 1; /* easy <1l:Int> isa OTHER*/
4627 if (unlikely(!var22
)) {
4628 var_class_name25
= type_core__Int
.name
;
4629 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25
);
4630 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
4633 var26
= var_color
+ 1l;
4636 RET_LABEL21
:(void)0;
4644 BREAK_label27
: (void)0;
4646 { /* Inline coloring$BucketsColorer$colors (self) on <self:BucketsColorer[Object, Object]> */
4647 var30
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4648 if (unlikely(var30
== NULL
)) {
4649 if(catchStack
.cursor
>= 0){
4650 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4653 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 458);
4657 RET_LABEL29
:(void)0;
4661 var31
= (val
*)(var_color
<<2|1);
4662 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var28
, var_bucket
, var31
); /* Direct call hash_collection$HashMap$[]= on <var28:HashMap[Object, Int]>*/
4664 var_color
= var_min_color
;
4665 BREAK_label17
: (void)0;
4667 ((void(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_9
); /* next on <var_9:Iterator[Object]>*/
4670 BREAK_label11
: (void)0;
4672 ((void(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_9
); /* finish on <var_9:Iterator[Object]>*/
4675 ((void(*)(val
* self
))((((long)var_3
&3)?class_info
[((long)var_3
&3)]:var_3
->class)->vft
[COLOR_core__abstract_collection__MapIterator__next
]))(var_3
); /* next on <var_3:MapIterator[Object, Set[Object]]>*/
4678 BREAK_label
: (void)0;
4680 { /* Inline abstract_collection$MapIterator$finish (var_3) on <var_3:MapIterator[Object, Set[Object]]> */
4681 RET_LABEL32
:(void)0;
4685 { /* Inline coloring$BucketsColorer$colors (self) on <self:BucketsColorer[Object, Object]> */
4686 var35
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4687 if (unlikely(var35
== NULL
)) {
4688 if(catchStack
.cursor
>= 0){
4689 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4692 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 458);
4696 RET_LABEL34
:(void)0;
4704 /* method coloring$BucketsColorer$is_color_free for (self: BucketsColorer[Object, Object], Object, Int): Bool */
4705 short int nitc___nitc__BucketsColorer___is_color_free(val
* self
, val
* p0
, long p1
) {
4706 short int var
/* : Bool */;
4707 short int var1
/* : Bool */;
4710 const struct type
* type_struct
;
4711 const char* var_class_name
;
4712 val
* var_bucket
/* var bucket: Object */;
4713 long var_color
/* var color: Int */;
4714 val
* var2
/* : HashMap[Object, Set[Object]] */;
4715 val
* var4
/* : HashMap[Object, Set[Object]] */;
4716 short int var5
/* : Bool */;
4717 val
* var6
/* : HashMap[Object, Set[Object]] */;
4718 val
* var8
/* : HashMap[Object, Set[Object]] */;
4719 val
* var9
/* : nullable Object */;
4720 val
* var_
/* var : Set[Object] */;
4721 val
* var10
/* : Iterator[nullable Object] */;
4722 val
* var_11
/* var : Iterator[Object] */;
4723 short int var12
/* : Bool */;
4724 val
* var13
/* : nullable Object */;
4725 val
* var_other
/* var other: Object */;
4726 short int var14
/* : Bool */;
4727 val
* var15
/* : HashMap[Object, Int] */;
4728 val
* var17
/* : HashMap[Object, Int] */;
4729 short int var18
/* : Bool */;
4730 short int var_19
/* var : Bool */;
4731 val
* var20
/* : HashMap[Object, Int] */;
4732 val
* var22
/* : HashMap[Object, Int] */;
4733 val
* var23
/* : nullable Object */;
4734 short int var24
/* : Bool */;
4735 short int var26
/* : Bool */;
4736 long var27
/* : Int */;
4737 /* Covariant cast for argument 0 (bucket) <p0:Object> isa E */
4738 /* <p0:Object> isa E */
4739 type_struct
= self
->type
->resolution_table
->types
[COLOR_nitc__BucketsColorer___35dE
];
4740 cltype
= type_struct
->color
;
4741 idtype
= type_struct
->id
;
4742 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
4745 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
4747 if (unlikely(!var1
)) {
4748 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
4749 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
4750 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 479);
4756 { /* Inline coloring$BucketsColorer$conflicts (self) on <self:BucketsColorer[Object, Object]> */
4757 var4
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4758 if (unlikely(var4
== NULL
)) {
4759 if(catchStack
.cursor
>= 0){
4760 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4763 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 459);
4771 var5
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var2
, var_bucket
);
4775 { /* Inline coloring$BucketsColorer$conflicts (self) on <self:BucketsColorer[Object, Object]> */
4776 var8
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4777 if (unlikely(var8
== NULL
)) {
4778 if(catchStack
.cursor
>= 0){
4779 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 459);
4790 var9
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var6
, var_bucket
);
4794 var10
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[Object]>*/
4799 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:Iterator[Object]>*/
4806 var13
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:Iterator[Object]>*/
4810 { /* Inline coloring$BucketsColorer$colors (self) on <self:BucketsColorer[Object, Object]> */
4811 var17
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4812 if (unlikely(var17
== NULL
)) {
4813 if(catchStack
.cursor
>= 0){
4814 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4816 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4817 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 458);
4821 RET_LABEL16
:(void)0;
4825 var18
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var15
, var_other
);
4830 { /* Inline coloring$BucketsColorer$colors (self) on <self:BucketsColorer[Object, Object]> */
4831 var22
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
4832 if (unlikely(var22
== NULL
)) {
4833 if(catchStack
.cursor
>= 0){
4834 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4836 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4837 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 458);
4841 RET_LABEL21
:(void)0;
4845 var23
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var20
, var_other
);
4848 { /* Inline kernel$Int$== (var23,var_color) on <var23:nullable Object(Int)> */
4849 var27
= (long)(var23
)>>2;
4850 var26
= var27
== var_color
;
4853 RET_LABEL25
:(void)0;
4866 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:Iterator[Object]>*/
4869 BREAK_label
: (void)0;
4871 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:Iterator[Object]>*/
4880 /* method coloring$BucketsColorer$compute_conflicts for (self: BucketsColorer[Object, Object], Map[Object, Set[Object]]) */
4881 void nitc___nitc__BucketsColorer___compute_conflicts(val
* self
, val
* p0
) {
4882 short int var
/* : Bool */;
4885 const struct type
* type_struct
;
4886 const char* var_class_name
;
4887 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
4888 val
* var1
/* : HashMap[Object, Set[Object]] */;
4889 val
* var3
/* : HashMap[Object, Set[Object]] */;
4890 val
* var_
/* var : Map[Object, Set[Object]] */;
4891 val
* var4
/* : MapIterator[nullable Object, nullable Object] */;
4892 val
* var_5
/* var : MapIterator[Object, Set[Object]] */;
4893 short int var6
/* : Bool */;
4894 val
* var7
/* : nullable Object */;
4895 val
* var_holder
/* var holder: Object */;
4896 val
* var8
/* : nullable Object */;
4897 val
* var_hbuckets
/* var hbuckets: Set[Object] */;
4898 val
* var_9
/* var : Set[Object] */;
4899 val
* var10
/* : Iterator[nullable Object] */;
4900 val
* var_11
/* var : Iterator[Object] */;
4901 short int var12
/* : Bool */;
4902 val
* var14
/* : nullable Object */;
4903 val
* var_bucket
/* var bucket: Object */;
4904 val
* var15
/* : HashMap[Object, Set[Object]] */;
4905 val
* var17
/* : HashMap[Object, Set[Object]] */;
4906 short int var18
/* : Bool */;
4907 short int var19
/* : Bool */;
4908 val
* var20
/* : HashMap[Object, Set[Object]] */;
4909 val
* var22
/* : HashMap[Object, Set[Object]] */;
4910 val
* var23
/* : HashSet[Object] */;
4911 val
* var_24
/* var : Set[Object] */;
4912 val
* var25
/* : Iterator[nullable Object] */;
4913 val
* var_26
/* var : Iterator[Object] */;
4914 short int var27
/* : Bool */;
4915 val
* var29
/* : nullable Object */;
4916 val
* var_obucket
/* var obucket: Object */;
4917 short int var30
/* : Bool */;
4918 val
* var32
/* : HashMap[Object, Set[Object]] */;
4919 val
* var34
/* : HashMap[Object, Set[Object]] */;
4920 short int var35
/* : Bool */;
4921 short int var36
/* : Bool */;
4922 val
* var37
/* : HashMap[Object, Set[Object]] */;
4923 val
* var39
/* : HashMap[Object, Set[Object]] */;
4924 val
* var40
/* : HashSet[Object] */;
4925 val
* var41
/* : HashMap[Object, Set[Object]] */;
4926 val
* var43
/* : HashMap[Object, Set[Object]] */;
4927 val
* var44
/* : nullable Object */;
4928 val
* var45
/* : HashMap[Object, Set[Object]] */;
4929 val
* var47
/* : HashMap[Object, Set[Object]] */;
4930 val
* var48
/* : nullable Object */;
4931 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4932 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4933 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Map__nitc__BucketsColorer___35dH__core__Set__nitc__BucketsColorer___35dE
];
4934 cltype
= type_struct
->color
;
4935 idtype
= type_struct
->id
;
4936 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
4939 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
4941 if (unlikely(!var
)) {
4942 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
4943 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
4944 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 488);
4949 { /* Inline coloring$BucketsColorer$conflicts (self) on <self:BucketsColorer[Object, Object]> */
4950 var3
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
4951 if (unlikely(var3
== NULL
)) {
4952 if(catchStack
.cursor
>= 0){
4953 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
4955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4956 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 459);
4964 core___core__HashMap___core__abstract_collection__Map__clear(var1
); /* Direct call hash_collection$HashMap$clear on <var1:HashMap[Object, Set[Object]]>*/
4968 var4
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__MapRead__iterator
]))(var_
); /* iterator on <var_:Map[Object, Set[Object]]>*/
4973 var6
= ((short int(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__MapIterator__is_ok
]))(var_5
); /* is_ok on <var_5:MapIterator[Object, Set[Object]]>*/
4980 var7
= ((val
*(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__MapIterator__key
]))(var_5
); /* key on <var_5:MapIterator[Object, Set[Object]]>*/
4984 var8
= ((val
*(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__MapIterator__item
]))(var_5
); /* item on <var_5:MapIterator[Object, Set[Object]]>*/
4986 var_hbuckets
= var8
;
4987 var_9
= var_hbuckets
;
4989 var10
= ((val
*(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_9
); /* iterator on <var_9:Set[Object]>*/
4994 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:Iterator[Object]>*/
5001 var14
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:Iterator[Object]>*/
5005 { /* Inline coloring$BucketsColorer$conflicts (self) on <self:BucketsColorer[Object, Object]> */
5006 var17
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
5007 if (unlikely(var17
== NULL
)) {
5008 if(catchStack
.cursor
>= 0){
5009 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5011 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
5012 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 459);
5016 RET_LABEL16
:(void)0;
5020 var18
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var15
, var_bucket
);
5025 { /* Inline coloring$BucketsColorer$conflicts (self) on <self:BucketsColorer[Object, Object]> */
5026 var22
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
5027 if (unlikely(var22
== NULL
)) {
5028 if(catchStack
.cursor
>= 0){
5029 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5031 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
5032 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 459);
5036 RET_LABEL21
:(void)0;
5039 var23
= NEW_core__HashSet(self
->type
->resolution_table
->types
[COLOR_core__HashSet__nitc__BucketsColorer___35dE
]);
5041 core___core__HashSet___core__kernel__Object__init(var23
); /* Direct call hash_collection$HashSet$init on <var23:HashSet[Object]>*/
5044 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var20
, var_bucket
, var23
); /* Direct call hash_collection$HashMap$[]= on <var20:HashMap[Object, Set[Object]]>*/
5048 var_24
= var_hbuckets
;
5050 var25
= ((val
*(*)(val
* self
))((((long)var_24
&3)?class_info
[((long)var_24
&3)]:var_24
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_24
); /* iterator on <var_24:Set[Object]>*/
5055 var27
= ((short int(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_26
); /* is_ok on <var_26:Iterator[Object]>*/
5062 var29
= ((val
*(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_26
); /* item on <var_26:Iterator[Object]>*/
5064 var_obucket
= var29
;
5066 var30
= ((short int(*)(val
* self
, val
* p0
))((((long)var_obucket
&3)?class_info
[((long)var_obucket
&3)]:var_obucket
->class)->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_obucket
, var_bucket
); /* == on <var_obucket:Object>*/
5073 { /* Inline coloring$BucketsColorer$conflicts (self) on <self:BucketsColorer[Object, Object]> */
5074 var34
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
5075 if (unlikely(var34
== NULL
)) {
5076 if(catchStack
.cursor
>= 0){
5077 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5079 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
5080 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 459);
5084 RET_LABEL33
:(void)0;
5088 var35
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var32
, var_obucket
);
5093 { /* Inline coloring$BucketsColorer$conflicts (self) on <self:BucketsColorer[Object, Object]> */
5094 var39
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
5095 if (unlikely(var39
== NULL
)) {
5096 if(catchStack
.cursor
>= 0){
5097 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5099 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
5100 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 459);
5104 RET_LABEL38
:(void)0;
5107 var40
= NEW_core__HashSet(self
->type
->resolution_table
->types
[COLOR_core__HashSet__nitc__BucketsColorer___35dE
]);
5109 core___core__HashSet___core__kernel__Object__init(var40
); /* Direct call hash_collection$HashSet$init on <var40:HashSet[Object]>*/
5112 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var37
, var_obucket
, var40
); /* Direct call hash_collection$HashMap$[]= on <var37:HashMap[Object, Set[Object]]>*/
5117 { /* Inline coloring$BucketsColorer$conflicts (self) on <self:BucketsColorer[Object, Object]> */
5118 var43
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
5119 if (unlikely(var43
== NULL
)) {
5120 if(catchStack
.cursor
>= 0){
5121 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
5124 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 459);
5128 RET_LABEL42
:(void)0;
5132 var44
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var41
, var_bucket
);
5135 ((void(*)(val
* self
, val
* p0
))((((long)var44
&3)?class_info
[((long)var44
&3)]:var44
->class)->vft
[COLOR_core__abstract_collection__SimpleCollection__add
]))(var44
, var_obucket
); /* add on <var44:nullable Object(Set[Object])>*/
5138 { /* Inline coloring$BucketsColorer$conflicts (self) on <self:BucketsColorer[Object, Object]> */
5139 var47
= self
->attrs
[COLOR_nitc__coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
5140 if (unlikely(var47
== NULL
)) {
5141 if(catchStack
.cursor
>= 0){
5142 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5144 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
5145 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 459);
5149 RET_LABEL46
:(void)0;
5153 var48
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var45
, var_obucket
);
5156 ((void(*)(val
* self
, val
* p0
))((((long)var48
&3)?class_info
[((long)var48
&3)]:var48
->class)->vft
[COLOR_core__abstract_collection__SimpleCollection__add
]))(var48
, var_bucket
); /* add on <var48:nullable Object(Set[Object])>*/
5158 BREAK_label31
: (void)0;
5160 ((void(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_26
); /* next on <var_26:Iterator[Object]>*/
5163 BREAK_label28
: (void)0;
5165 ((void(*)(val
* self
))((((long)var_26
&3)?class_info
[((long)var_26
&3)]:var_26
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_26
); /* finish on <var_26:Iterator[Object]>*/
5168 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:Iterator[Object]>*/
5171 BREAK_label13
: (void)0;
5173 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:Iterator[Object]>*/
5176 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__MapIterator__next
]))(var_5
); /* next on <var_5:MapIterator[Object, Set[Object]]>*/
5179 BREAK_label
: (void)0;
5181 { /* Inline abstract_collection$MapIterator$finish (var_5) on <var_5:MapIterator[Object, Set[Object]]> */
5182 RET_LABEL49
:(void)0;
5187 /* method coloring$POSetBucketsColorer$colors for (self: POSetBucketsColorer[Object, Object]): HashMap[Object, Int] */
5188 val
* nitc___nitc__POSetBucketsColorer___colors(val
* self
) {
5189 val
* var
/* : HashMap[Object, Int] */;
5190 val
* var1
/* : HashMap[Object, Int] */;
5191 var1
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5192 if (unlikely(var1
== NULL
)) {
5193 if(catchStack
.cursor
>= 0){
5194 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5197 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 509);
5204 /* method coloring$POSetBucketsColorer$poset for (self: POSetBucketsColorer[Object, Object]): POSet[Object] */
5205 val
* nitc___nitc__POSetBucketsColorer___poset(val
* self
) {
5206 val
* var
/* : POSet[Object] */;
5207 val
* var1
/* : POSet[Object] */;
5208 var1
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
5209 if (unlikely(var1
== NULL
)) {
5210 if(catchStack
.cursor
>= 0){
5211 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5213 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
5214 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 510);
5221 /* method coloring$POSetBucketsColorer$poset= for (self: POSetBucketsColorer[Object, Object], POSet[Object]) */
5222 void nitc___nitc__POSetBucketsColorer___poset_61d(val
* self
, val
* p0
) {
5223 short int var
/* : Bool */;
5226 const struct type
* type_struct
;
5227 const char* var_class_name
;
5228 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[H] */
5229 /* <p0:POSet[Object]> isa POSet[H] */
5230 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSet__nitc__POSetBucketsColorer___35dH
];
5231 cltype
= type_struct
->color
;
5232 idtype
= type_struct
->id
;
5233 if(cltype
>= p0
->type
->table_size
) {
5236 var
= p0
->type
->type_table
[cltype
] == idtype
;
5238 if (unlikely(!var
)) {
5239 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
5240 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[H]", var_class_name
);
5241 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 510);
5244 self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___poset
].val
= p0
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
5247 /* method coloring$POSetBucketsColorer$conflicts for (self: POSetBucketsColorer[Object, Object]): Map[Object, Set[Object]] */
5248 val
* nitc___nitc__POSetBucketsColorer___conflicts(val
* self
) {
5249 val
* var
/* : Map[Object, Set[Object]] */;
5250 val
* var1
/* : Map[Object, Set[Object]] */;
5251 var1
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
5252 if (unlikely(var1
== NULL
)) {
5253 if(catchStack
.cursor
>= 0){
5254 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5256 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
5257 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 511);
5264 /* method coloring$POSetBucketsColorer$conflicts= for (self: POSetBucketsColorer[Object, Object], Map[Object, Set[Object]]) */
5265 void nitc___nitc__POSetBucketsColorer___conflicts_61d(val
* self
, val
* p0
) {
5266 short int var
/* : Bool */;
5269 const struct type
* type_struct
;
5270 const char* var_class_name
;
5271 /* Covariant cast for argument 0 (conflicts) <p0:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
5272 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
5273 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Map__nitc__POSetBucketsColorer___35dH__core__Set__nitc__POSetBucketsColorer___35dH
];
5274 cltype
= type_struct
->color
;
5275 idtype
= type_struct
->id
;
5276 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
5279 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
5281 if (unlikely(!var
)) {
5282 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
5283 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[H]]", var_class_name
);
5284 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 511);
5287 self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___conflicts
].val
= p0
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
5290 /* method coloring$POSetBucketsColorer$colorize for (self: POSetBucketsColorer[Object, Object], Map[Object, Set[Object]]): Map[Object, Int] */
5291 val
* nitc___nitc__POSetBucketsColorer___colorize(val
* self
, val
* p0
) {
5292 val
* var
/* : Map[Object, Int] */;
5293 short int var1
/* : Bool */;
5296 const struct type
* type_struct
;
5297 const char* var_class_name
;
5298 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
5299 val
* var2
/* : HashMap[Object, Int] */;
5300 val
* var4
/* : HashMap[Object, Int] */;
5301 val
* var5
/* : POSet[Object] */;
5302 val
* var7
/* : POSet[Object] */;
5303 val
* var8
/* : Collection[nullable Object] */;
5304 val
* var9
/* : Array[nullable Object] */;
5305 val
* var_
/* var : Array[Object] */;
5306 val
* var10
/* : IndexedIterator[nullable Object] */;
5307 val
* var_11
/* var : IndexedIterator[Object] */;
5308 short int var12
/* : Bool */;
5309 val
* var13
/* : nullable Object */;
5310 val
* var_h
/* var h: Object */;
5311 val
* var14
/* : POSet[Object] */;
5312 val
* var16
/* : POSet[Object] */;
5313 val
* var17
/* : POSetElement[nullable Object] */;
5314 val
* var18
/* : Collection[nullable Object] */;
5315 long var19
/* : Int */;
5316 long var_color
/* var color: Int */;
5317 val
* var20
/* : nullable Object */;
5318 val
* var_21
/* var : Set[Object] */;
5319 val
* var22
/* : Iterator[nullable Object] */;
5320 val
* var_23
/* var : Iterator[Object] */;
5321 short int var24
/* : Bool */;
5322 val
* var26
/* : nullable Object */;
5323 val
* var_bucket
/* var bucket: Object */;
5324 val
* var27
/* : HashMap[Object, Int] */;
5325 val
* var29
/* : HashMap[Object, Int] */;
5326 short int var30
/* : Bool */;
5327 short int var32
/* : Bool */;
5328 short int var33
/* : Bool */;
5329 long var34
/* : Int */;
5330 short int var36
/* : Bool */;
5333 const char* var_class_name39
;
5334 long var40
/* : Int */;
5335 val
* var42
/* : HashMap[Object, Int] */;
5336 val
* var44
/* : HashMap[Object, Int] */;
5337 val
* var45
/* : nullable Object */;
5338 long var46
/* : Int */;
5339 short int var48
/* : Bool */;
5342 const char* var_class_name51
;
5343 long var52
/* : Int */;
5344 val
* var53
/* : HashMap[Object, Int] */;
5345 val
* var55
/* : HashMap[Object, Int] */;
5346 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5347 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5348 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Map__nitc__POSetBucketsColorer___35dH__core__Set__nitc__POSetBucketsColorer___35dE
];
5349 cltype
= type_struct
->color
;
5350 idtype
= type_struct
->id
;
5351 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
5354 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
5356 if (unlikely(!var1
)) {
5357 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
5358 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
5359 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 513);
5364 { /* Inline coloring$POSetBucketsColorer$colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5365 var4
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5366 if (unlikely(var4
== NULL
)) {
5367 if(catchStack
.cursor
>= 0){
5368 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5370 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5371 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 509);
5379 core___core__HashMap___core__abstract_collection__Map__clear(var2
); /* Direct call hash_collection$HashMap$clear on <var2:HashMap[Object, Int]>*/
5382 { /* Inline coloring$POSetBucketsColorer$poset (self) on <self:POSetBucketsColorer[Object, Object]> */
5383 var7
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
5384 if (unlikely(var7
== NULL
)) {
5385 if(catchStack
.cursor
>= 0){
5386 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5388 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
5389 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 510);
5397 var8
= ((val
*(*)(val
* self
))((((long)var_buckets
&3)?class_info
[((long)var_buckets
&3)]:var_buckets
->class)->vft
[COLOR_core__abstract_collection__MapRead__keys
]))(var_buckets
); /* keys on <var_buckets:Map[Object, Set[Object]]>*/
5400 var9
= poset___poset__POSet___linearize(var5
, var8
);
5404 var10
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
5409 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:IndexedIterator[Object]>*/
5416 var13
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:IndexedIterator[Object]>*/
5420 { /* Inline coloring$POSetBucketsColorer$poset (self) on <self:POSetBucketsColorer[Object, Object]> */
5421 var16
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
5422 if (unlikely(var16
== NULL
)) {
5423 if(catchStack
.cursor
>= 0){
5424 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5426 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
5427 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 510);
5431 RET_LABEL15
:(void)0;
5435 var17
= poset___poset__POSet____91d_93d(var14
, var_h
);
5438 var18
= poset___poset__POSetElement___direct_greaters(var17
);
5441 var19
= nitc___nitc__POSetBucketsColorer___min_color(self
, var18
, var_buckets
);
5445 var20
= ((val
*(*)(val
* self
, val
* p0
))((((long)var_buckets
&3)?class_info
[((long)var_buckets
&3)]:var_buckets
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_h
); /* [] on <var_buckets:Map[Object, Set[Object]]>*/
5449 var22
= ((val
*(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_21
); /* iterator on <var_21:Set[Object]>*/
5454 var24
= ((short int(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_23
); /* is_ok on <var_23:Iterator[Object]>*/
5461 var26
= ((val
*(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_23
); /* item on <var_23:Iterator[Object]>*/
5465 { /* Inline coloring$POSetBucketsColorer$colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5466 var29
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5467 if (unlikely(var29
== NULL
)) {
5468 if(catchStack
.cursor
>= 0){
5469 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5471 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5472 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 509);
5476 RET_LABEL28
:(void)0;
5480 var30
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var27
, var_bucket
);
5488 var32
= nitc___nitc__POSetBucketsColorer___is_color_free(self
, var_color
, var_h
, var_buckets
);
5493 { /* Inline kernel$Int$+ (var_color,1l) on <var_color:Int> */
5494 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5495 /* <1l:Int> isa OTHER */
5496 var36
= 1; /* easy <1l:Int> isa OTHER*/
5497 if (unlikely(!var36
)) {
5498 var_class_name39
= type_core__Int
.name
;
5499 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39
);
5500 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
5503 var40
= var_color
+ 1l;
5506 RET_LABEL35
:(void)0;
5514 BREAK_label41
: (void)0;
5516 { /* Inline coloring$POSetBucketsColorer$colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5517 var44
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5518 if (unlikely(var44
== NULL
)) {
5519 if(catchStack
.cursor
>= 0){
5520 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5522 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5523 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 509);
5527 RET_LABEL43
:(void)0;
5531 var45
= (val
*)(var_color
<<2|1);
5532 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var42
, var_bucket
, var45
); /* Direct call hash_collection$HashMap$[]= on <var42:HashMap[Object, Int]>*/
5535 { /* Inline kernel$Int$+ (var_color,1l) on <var_color:Int> */
5536 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5537 /* <1l:Int> isa OTHER */
5538 var48
= 1; /* easy <1l:Int> isa OTHER*/
5539 if (unlikely(!var48
)) {
5540 var_class_name51
= type_core__Int
.name
;
5541 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51
);
5542 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
5545 var52
= var_color
+ 1l;
5548 RET_LABEL47
:(void)0;
5552 BREAK_label31
: (void)0;
5554 ((void(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_23
); /* next on <var_23:Iterator[Object]>*/
5557 BREAK_label25
: (void)0;
5559 ((void(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_23
); /* finish on <var_23:Iterator[Object]>*/
5562 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:IndexedIterator[Object]>*/
5565 BREAK_label
: (void)0;
5567 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:IndexedIterator[Object]>*/
5570 { /* Inline coloring$POSetBucketsColorer$colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5571 var55
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5572 if (unlikely(var55
== NULL
)) {
5573 if(catchStack
.cursor
>= 0){
5574 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5576 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5577 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 509);
5581 RET_LABEL54
:(void)0;
5589 /* method coloring$POSetBucketsColorer$min_color for (self: POSetBucketsColorer[Object, Object], Collection[Object], Map[Object, Set[Object]]): Int */
5590 long nitc___nitc__POSetBucketsColorer___min_color(val
* self
, val
* p0
, val
* p1
) {
5591 long var
/* : Int */;
5592 short int var1
/* : Bool */;
5595 const struct type
* type_struct
;
5596 const char* var_class_name
;
5597 short int var2
/* : Bool */;
5600 const struct type
* type_struct5
;
5601 const char* var_class_name6
;
5602 val
* var_others
/* var others: Collection[Object] */;
5603 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
5604 long var7
/* : Int */;
5605 long var9
/* : Int */;
5606 long var_min
/* var min: Int */;
5607 val
* var_
/* var : Collection[Object] */;
5608 val
* var10
/* : Iterator[nullable Object] */;
5609 val
* var_11
/* var : Iterator[Object] */;
5610 short int var12
/* : Bool */;
5611 val
* var13
/* : nullable Object */;
5612 val
* var_holder
/* var holder: Object */;
5613 long var14
/* : Int */;
5614 long var_color
/* var color: Int */;
5615 short int var15
/* : Bool */;
5616 short int var17
/* : Bool */;
5619 const char* var_class_name20
;
5620 short int var21
/* : Bool */;
5621 long var22
/* : Int */;
5622 short int var24
/* : Bool */;
5625 const char* var_class_name27
;
5626 long var28
/* : Int */;
5627 /* Covariant cast for argument 0 (others) <p0:Collection[Object]> isa Collection[H] */
5628 /* <p0:Collection[Object]> isa Collection[H] */
5629 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__Collection__nitc__POSetBucketsColorer___35dH
];
5630 cltype
= type_struct
->color
;
5631 idtype
= type_struct
->id
;
5632 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
5635 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
5637 if (unlikely(!var1
)) {
5638 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
5639 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[H]", var_class_name
);
5640 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 528);
5643 /* Covariant cast for argument 1 (buckets) <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5644 /* <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5645 type_struct5
= self
->type
->resolution_table
->types
[COLOR_core__Map__nitc__POSetBucketsColorer___35dH__core__Set__nitc__POSetBucketsColorer___35dE
];
5646 cltype3
= type_struct5
->color
;
5647 idtype4
= type_struct5
->id
;
5648 if(cltype3
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
5651 var2
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype3
] == idtype4
;
5653 if (unlikely(!var2
)) {
5654 var_class_name6
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
5655 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
5656 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 528);
5662 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
5672 var10
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Collection[Object]>*/
5677 var12
= ((short int(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_11
); /* is_ok on <var_11:Iterator[Object]>*/
5684 var13
= ((val
*(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_11
); /* item on <var_11:Iterator[Object]>*/
5688 var14
= nitc___nitc__POSetBucketsColorer___max_color(self
, var_holder
, var_buckets
);
5692 { /* Inline kernel$Int$> (var_color,var_min) on <var_color:Int> */
5693 /* Covariant cast for argument 0 (i) <var_min:Int> isa OTHER */
5694 /* <var_min:Int> isa OTHER */
5695 var17
= 1; /* easy <var_min:Int> isa OTHER*/
5696 if (unlikely(!var17
)) {
5697 var_class_name20
= type_core__Int
.name
;
5698 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20
);
5699 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
5702 var21
= var_color
> var_min
;
5705 RET_LABEL16
:(void)0;
5709 var_min
= var_color
;
5713 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_11
); /* next on <var_11:Iterator[Object]>*/
5716 BREAK_label
: (void)0;
5718 ((void(*)(val
* self
))((((long)var_11
&3)?class_info
[((long)var_11
&3)]:var_11
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_11
); /* finish on <var_11:Iterator[Object]>*/
5721 { /* Inline kernel$Int$+ (var_min,1l) on <var_min:Int> */
5722 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5723 /* <1l:Int> isa OTHER */
5724 var24
= 1; /* easy <1l:Int> isa OTHER*/
5725 if (unlikely(!var24
)) {
5726 var_class_name27
= type_core__Int
.name
;
5727 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27
);
5728 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
5731 var28
= var_min
+ 1l;
5734 RET_LABEL23
:(void)0;
5742 /* method coloring$POSetBucketsColorer$max_color for (self: POSetBucketsColorer[Object, Object], Object, Map[Object, Set[Object]]): Int */
5743 long nitc___nitc__POSetBucketsColorer___max_color(val
* self
, val
* p0
, val
* p1
) {
5744 long var
/* : Int */;
5745 short int var1
/* : Bool */;
5748 const struct type
* type_struct
;
5749 const char* var_class_name
;
5750 short int var2
/* : Bool */;
5753 const struct type
* type_struct5
;
5754 const char* var_class_name6
;
5755 val
* var_holder
/* var holder: Object */;
5756 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
5757 long var7
/* : Int */;
5758 long var9
/* : Int */;
5759 long var_max
/* var max: Int */;
5760 val
* var10
/* : nullable Object */;
5761 val
* var_
/* var : Set[Object] */;
5762 val
* var11
/* : Iterator[nullable Object] */;
5763 val
* var_12
/* var : Iterator[Object] */;
5764 short int var13
/* : Bool */;
5765 val
* var14
/* : nullable Object */;
5766 val
* var_bucket
/* var bucket: Object */;
5767 val
* var15
/* : HashMap[Object, Int] */;
5768 val
* var17
/* : HashMap[Object, Int] */;
5769 short int var18
/* : Bool */;
5770 short int var19
/* : Bool */;
5771 val
* var21
/* : HashMap[Object, Int] */;
5772 val
* var23
/* : HashMap[Object, Int] */;
5773 val
* var24
/* : nullable Object */;
5774 long var25
/* : Int */;
5775 long var_color
/* var color: Int */;
5776 short int var26
/* : Bool */;
5777 short int var28
/* : Bool */;
5780 const char* var_class_name31
;
5781 short int var32
/* : Bool */;
5782 /* Covariant cast for argument 0 (holder) <p0:Object> isa H */
5783 /* <p0:Object> isa H */
5784 type_struct
= self
->type
->resolution_table
->types
[COLOR_nitc__POSetBucketsColorer___35dH
];
5785 cltype
= type_struct
->color
;
5786 idtype
= type_struct
->id
;
5787 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
5790 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
5792 if (unlikely(!var1
)) {
5793 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
5794 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
5795 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 538);
5798 /* Covariant cast for argument 1 (buckets) <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5799 /* <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5800 type_struct5
= self
->type
->resolution_table
->types
[COLOR_core__Map__nitc__POSetBucketsColorer___35dH__core__Set__nitc__POSetBucketsColorer___35dE
];
5801 cltype3
= type_struct5
->color
;
5802 idtype4
= type_struct5
->id
;
5803 if(cltype3
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
5806 var2
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype3
] == idtype4
;
5808 if (unlikely(!var2
)) {
5809 var_class_name6
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
5810 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
5811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 538);
5817 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
5826 var10
= ((val
*(*)(val
* self
, val
* p0
))((((long)var_buckets
&3)?class_info
[((long)var_buckets
&3)]:var_buckets
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_holder
); /* [] on <var_buckets:Map[Object, Set[Object]]>*/
5830 var11
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[Object]>*/
5835 var13
= ((short int(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_12
); /* is_ok on <var_12:Iterator[Object]>*/
5842 var14
= ((val
*(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_12
); /* item on <var_12:Iterator[Object]>*/
5846 { /* Inline coloring$POSetBucketsColorer$colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5847 var17
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5848 if (unlikely(var17
== NULL
)) {
5849 if(catchStack
.cursor
>= 0){
5850 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5852 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5853 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 509);
5857 RET_LABEL16
:(void)0;
5861 var18
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var15
, var_bucket
);
5869 { /* Inline coloring$POSetBucketsColorer$colors (self) on <self:POSetBucketsColorer[Object, Object]> */
5870 var23
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
5871 if (unlikely(var23
== NULL
)) {
5872 if(catchStack
.cursor
>= 0){
5873 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
5875 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
5876 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 509);
5880 RET_LABEL22
:(void)0;
5884 var24
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var21
, var_bucket
);
5886 var25
= (long)(var24
)>>2;
5889 { /* Inline kernel$Int$> (var_color,var_max) on <var_color:Int> */
5890 /* Covariant cast for argument 0 (i) <var_max:Int> isa OTHER */
5891 /* <var_max:Int> isa OTHER */
5892 var28
= 1; /* easy <var_max:Int> isa OTHER*/
5893 if (unlikely(!var28
)) {
5894 var_class_name31
= type_core__Int
.name
;
5895 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31
);
5896 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
5899 var32
= var_color
> var_max
;
5902 RET_LABEL27
:(void)0;
5906 var_max
= var_color
;
5909 BREAK_label20
: (void)0;
5911 ((void(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_12
); /* next on <var_12:Iterator[Object]>*/
5914 BREAK_label
: (void)0;
5916 ((void(*)(val
* self
))((((long)var_12
&3)?class_info
[((long)var_12
&3)]:var_12
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_12
); /* finish on <var_12:Iterator[Object]>*/
5923 /* method coloring$POSetBucketsColorer$is_color_free for (self: POSetBucketsColorer[Object, Object], Int, Object, Map[Object, Set[Object]]): Bool */
5924 short int nitc___nitc__POSetBucketsColorer___is_color_free(val
* self
, long p0
, val
* p1
, val
* p2
) {
5925 short int var
/* : Bool */;
5926 short int var1
/* : Bool */;
5929 const struct type
* type_struct
;
5930 const char* var_class_name
;
5931 short int var2
/* : Bool */;
5934 const struct type
* type_struct5
;
5935 const char* var_class_name6
;
5936 long var_color
/* var color: Int */;
5937 val
* var_holder
/* var holder: Object */;
5938 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
5939 val
* var7
/* : Map[Object, Set[Object]] */;
5940 val
* var9
/* : Map[Object, Set[Object]] */;
5941 short int var10
/* : Bool */;
5942 short int var11
/* : Bool */;
5943 val
* var12
/* : Map[Object, Set[Object]] */;
5944 val
* var14
/* : Map[Object, Set[Object]] */;
5945 val
* var15
/* : nullable Object */;
5946 val
* var_
/* var : Set[Object] */;
5947 val
* var16
/* : Iterator[nullable Object] */;
5948 val
* var_17
/* var : Iterator[Object] */;
5949 short int var18
/* : Bool */;
5950 val
* var19
/* : nullable Object */;
5951 val
* var_conflict
/* var conflict: Object */;
5952 val
* var20
/* : nullable Object */;
5953 val
* var_21
/* var : Set[Object] */;
5954 val
* var22
/* : Iterator[nullable Object] */;
5955 val
* var_23
/* var : Iterator[Object] */;
5956 short int var24
/* : Bool */;
5957 val
* var26
/* : nullable Object */;
5958 val
* var_bucket
/* var bucket: Object */;
5959 val
* var27
/* : HashMap[Object, Int] */;
5960 val
* var29
/* : HashMap[Object, Int] */;
5961 short int var30
/* : Bool */;
5962 short int var31
/* : Bool */;
5963 val
* var33
/* : HashMap[Object, Int] */;
5964 val
* var35
/* : HashMap[Object, Int] */;
5965 val
* var36
/* : nullable Object */;
5966 short int var37
/* : Bool */;
5967 short int var39
/* : Bool */;
5968 long var40
/* : Int */;
5969 /* Covariant cast for argument 1 (holder) <p1:Object> isa H */
5970 /* <p1:Object> isa H */
5971 type_struct
= self
->type
->resolution_table
->types
[COLOR_nitc__POSetBucketsColorer___35dH
];
5972 cltype
= type_struct
->color
;
5973 idtype
= type_struct
->id
;
5974 if(cltype
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
5977 var1
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype
] == idtype
;
5979 if (unlikely(!var1
)) {
5980 var_class_name
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
5981 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
5982 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 549);
5985 /* Covariant cast for argument 2 (buckets) <p2:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5986 /* <p2:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
5987 type_struct5
= self
->type
->resolution_table
->types
[COLOR_core__Map__nitc__POSetBucketsColorer___35dH__core__Set__nitc__POSetBucketsColorer___35dE
];
5988 cltype3
= type_struct5
->color
;
5989 idtype4
= type_struct5
->id
;
5990 if(cltype3
>= (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->table_size
) {
5993 var2
= (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->type_table
[cltype3
] == idtype4
;
5995 if (unlikely(!var2
)) {
5996 var_class_name6
= p2
== NULL ?
"null" : (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->name
;
5997 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
5998 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 549);
6005 { /* Inline coloring$POSetBucketsColorer$conflicts (self) on <self:POSetBucketsColorer[Object, Object]> */
6006 var9
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
6007 if (unlikely(var9
== NULL
)) {
6008 if(catchStack
.cursor
>= 0){
6009 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
6011 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
6012 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 511);
6020 var10
= ((short int(*)(val
* self
, val
* p0
))((((long)var7
&3)?class_info
[((long)var7
&3)]:var7
->class)->vft
[COLOR_core__abstract_collection__MapRead__has_key
]))(var7
, var_holder
); /* has_key on <var7:Map[Object, Set[Object]]>*/
6029 { /* Inline coloring$POSetBucketsColorer$conflicts (self) on <self:POSetBucketsColorer[Object, Object]> */
6030 var14
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
6031 if (unlikely(var14
== NULL
)) {
6032 if(catchStack
.cursor
>= 0){
6033 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
6035 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
6036 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 511);
6040 RET_LABEL13
:(void)0;
6044 var15
= ((val
*(*)(val
* self
, val
* p0
))((((long)var12
&3)?class_info
[((long)var12
&3)]:var12
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var12
, var_holder
); /* [] on <var12:Map[Object, Set[Object]]>*/
6048 var16
= ((val
*(*)(val
* self
))((((long)var_
&3)?class_info
[((long)var_
&3)]:var_
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_
); /* iterator on <var_:Set[Object]>*/
6053 var18
= ((short int(*)(val
* self
))((((long)var_17
&3)?class_info
[((long)var_17
&3)]:var_17
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_17
); /* is_ok on <var_17:Iterator[Object]>*/
6060 var19
= ((val
*(*)(val
* self
))((((long)var_17
&3)?class_info
[((long)var_17
&3)]:var_17
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_17
); /* item on <var_17:Iterator[Object]>*/
6062 var_conflict
= var19
;
6064 var20
= ((val
*(*)(val
* self
, val
* p0
))((((long)var_buckets
&3)?class_info
[((long)var_buckets
&3)]:var_buckets
->class)->vft
[COLOR_core__abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_conflict
); /* [] on <var_buckets:Map[Object, Set[Object]]>*/
6068 var22
= ((val
*(*)(val
* self
))((((long)var_21
&3)?class_info
[((long)var_21
&3)]:var_21
->class)->vft
[COLOR_core__abstract_collection__Collection__iterator
]))(var_21
); /* iterator on <var_21:Set[Object]>*/
6073 var24
= ((short int(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_23
); /* is_ok on <var_23:Iterator[Object]>*/
6080 var26
= ((val
*(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_23
); /* item on <var_23:Iterator[Object]>*/
6084 { /* Inline coloring$POSetBucketsColorer$colors (self) on <self:POSetBucketsColorer[Object, Object]> */
6085 var29
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
6086 if (unlikely(var29
== NULL
)) {
6087 if(catchStack
.cursor
>= 0){
6088 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
6090 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
6091 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 509);
6095 RET_LABEL28
:(void)0;
6099 var30
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var27
, var_bucket
);
6107 { /* Inline coloring$POSetBucketsColorer$colors (self) on <self:POSetBucketsColorer[Object, Object]> */
6108 var35
= self
->attrs
[COLOR_nitc__coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
6109 if (unlikely(var35
== NULL
)) {
6110 if(catchStack
.cursor
>= 0){
6111 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
6113 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
6114 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__coloring
, 509);
6118 RET_LABEL34
:(void)0;
6122 var36
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var33
, var_bucket
);
6125 { /* Inline kernel$Int$== (var36,var_color) on <var36:nullable Object(Int)> */
6126 var40
= (long)(var36
)>>2;
6127 var39
= var40
== var_color
;
6130 RET_LABEL38
:(void)0;
6138 BREAK_label32
: (void)0;
6140 ((void(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_23
); /* next on <var_23:Iterator[Object]>*/
6143 BREAK_label25
: (void)0;
6145 ((void(*)(val
* self
))((((long)var_23
&3)?class_info
[((long)var_23
&3)]:var_23
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_23
); /* finish on <var_23:Iterator[Object]>*/
6148 ((void(*)(val
* self
))((((long)var_17
&3)?class_info
[((long)var_17
&3)]:var_17
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_17
); /* next on <var_17:Iterator[Object]>*/
6151 BREAK_label
: (void)0;
6153 ((void(*)(val
* self
))((((long)var_17
&3)?class_info
[((long)var_17
&3)]:var_17
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_17
); /* finish on <var_17:Iterator[Object]>*/
6160 /* method coloring$POSetBucketsColorer$init for (self: POSetBucketsColorer[Object, Object]) */
6161 void nitc___nitc__POSetBucketsColorer___core__kernel__Object__init(val
* self
) {
6163 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc___nitc__POSetBucketsColorer___core__kernel__Object__init
]))(self
); /* init on <self:POSetBucketsColorer[Object, Object]>*/