misc/vim: inform the user when no results are found
[nit.git] / c_src / poset.sep.1.c
1 #include "poset.sep.0.h"
2 /* method poset#POSet#iterator for (self: POSet[nullable Object]): Iterator[nullable Object] */
3 val* poset___poset__POSet___standard__abstract_collection__Collection__iterator(val* self) {
4 val* var /* : Iterator[nullable Object] */;
5 val* var1 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
6 val* var3 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
7 val* var4 /* : RemovableCollection[nullable Object] */;
8 val* var6 /* : RemovableCollection[nullable Object] */;
9 val* var7 /* : Iterator[nullable Object] */;
10 {
11 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
12 var3 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
13 if (unlikely(var3 == NULL)) {
14 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
15 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
16 show_backtrace(1);
17 }
18 var1 = var3;
19 RET_LABEL2:(void)0;
20 }
21 }
22 {
23 { /* Inline hash_collection#HashMap#keys (var1) on <var1:HashMap[nullable Object, POSetElement[nullable Object]]> */
24 var6 = var1->attrs[COLOR_standard__hash_collection__HashMap___keys].val; /* _keys on <var1:HashMap[nullable Object, POSetElement[nullable Object]]> */
25 if (unlikely(var6 == NULL)) {
26 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
27 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 275);
28 show_backtrace(1);
29 }
30 var4 = var6;
31 RET_LABEL5:(void)0;
32 }
33 }
34 {
35 var7 = ((val* (*)(val* self))(var4->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var4) /* iterator on <var4:RemovableCollection[nullable Object]>*/;
36 }
37 var = var7;
38 goto RET_LABEL;
39 RET_LABEL:;
40 return var;
41 }
42 /* method poset#POSet#elements for (self: POSet[nullable Object]): HashMap[nullable Object, POSetElement[nullable Object]] */
43 val* poset___poset__POSet___elements(val* self) {
44 val* var /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
45 val* var1 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
46 var1 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
47 if (unlikely(var1 == NULL)) {
48 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
49 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
50 show_backtrace(1);
51 }
52 var = var1;
53 RET_LABEL:;
54 return var;
55 }
56 /* method poset#POSet#has for (self: POSet[nullable Object], nullable Object): Bool */
57 short int poset___poset__POSet___standard__abstract_collection__Collection__has(val* self, val* p0) {
58 short int var /* : Bool */;
59 short int var1 /* : Bool */;
60 int cltype;
61 int idtype;
62 const struct type* type_struct;
63 short int is_nullable;
64 const char* var_class_name;
65 val* var_e /* var e: nullable Object */;
66 val* var2 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
67 val* var4 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
68 val* var5 /* : RemovableCollection[nullable Object] */;
69 val* var7 /* : RemovableCollection[nullable Object] */;
70 short int var8 /* : Bool */;
71 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
72 /* <p0:nullable Object> isa E */
73 type_struct = self->type->resolution_table->types[COLOR_poset__POSet___35dE];
74 cltype = type_struct->color;
75 idtype = type_struct->id;
76 is_nullable = type_struct->is_nullable;
77 if(p0 == NULL) {
78 var1 = is_nullable;
79 } else {
80 if(cltype >= p0->type->table_size) {
81 var1 = 0;
82 } else {
83 var1 = p0->type->type_table[cltype] == idtype;
84 }
85 }
86 if (unlikely(!var1)) {
87 var_class_name = p0 == NULL ? "null" : p0->type->name;
88 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
89 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 85);
90 show_backtrace(1);
91 }
92 var_e = p0;
93 {
94 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
95 var4 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
96 if (unlikely(var4 == NULL)) {
97 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
98 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
99 show_backtrace(1);
100 }
101 var2 = var4;
102 RET_LABEL3:(void)0;
103 }
104 }
105 {
106 { /* Inline hash_collection#HashMap#keys (var2) on <var2:HashMap[nullable Object, POSetElement[nullable Object]]> */
107 var7 = var2->attrs[COLOR_standard__hash_collection__HashMap___keys].val; /* _keys on <var2:HashMap[nullable Object, POSetElement[nullable Object]]> */
108 if (unlikely(var7 == NULL)) {
109 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
110 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 275);
111 show_backtrace(1);
112 }
113 var5 = var7;
114 RET_LABEL6:(void)0;
115 }
116 }
117 {
118 var8 = ((short int (*)(val* self, val* p0))(var5->class->vft[COLOR_standard__abstract_collection__Collection__has]))(var5, var_e) /* has on <var5:RemovableCollection[nullable Object]>*/;
119 }
120 var = var8;
121 goto RET_LABEL;
122 RET_LABEL:;
123 return var;
124 }
125 /* method poset#POSet#add_node for (self: POSet[nullable Object], nullable Object): POSetElement[nullable Object] */
126 val* poset___poset__POSet___add_node(val* self, val* p0) {
127 val* var /* : POSetElement[nullable Object] */;
128 short int var1 /* : Bool */;
129 int cltype;
130 int idtype;
131 const struct type* type_struct;
132 short int is_nullable;
133 const char* var_class_name;
134 val* var_e /* var e: nullable Object */;
135 val* var2 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
136 val* var4 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
137 val* var5 /* : RemovableCollection[nullable Object] */;
138 val* var7 /* : RemovableCollection[nullable Object] */;
139 short int var8 /* : Bool */;
140 val* var9 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
141 val* var11 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
142 val* var12 /* : nullable Object */;
143 val* var13 /* : POSetElement[nullable Object] */;
144 val* var14 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
145 val* var16 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
146 long var17 /* : Int */;
147 val* var_poe /* var poe: POSetElement[nullable Object] */;
148 val* var18 /* : HashSet[nullable Object] */;
149 val* var20 /* : HashSet[nullable Object] */;
150 val* var21 /* : HashSet[nullable Object] */;
151 val* var23 /* : HashSet[nullable Object] */;
152 val* var24 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
153 val* var26 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
154 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
155 /* <p0:nullable Object> isa E */
156 type_struct = self->type->resolution_table->types[COLOR_poset__POSet___35dE];
157 cltype = type_struct->color;
158 idtype = type_struct->id;
159 is_nullable = type_struct->is_nullable;
160 if(p0 == NULL) {
161 var1 = is_nullable;
162 } else {
163 if(cltype >= p0->type->table_size) {
164 var1 = 0;
165 } else {
166 var1 = p0->type->type_table[cltype] == idtype;
167 }
168 }
169 if (unlikely(!var1)) {
170 var_class_name = p0 == NULL ? "null" : p0->type->name;
171 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
172 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 87);
173 show_backtrace(1);
174 }
175 var_e = p0;
176 {
177 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
178 var4 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
179 if (unlikely(var4 == NULL)) {
180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
181 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
182 show_backtrace(1);
183 }
184 var2 = var4;
185 RET_LABEL3:(void)0;
186 }
187 }
188 {
189 { /* Inline hash_collection#HashMap#keys (var2) on <var2:HashMap[nullable Object, POSetElement[nullable Object]]> */
190 var7 = var2->attrs[COLOR_standard__hash_collection__HashMap___keys].val; /* _keys on <var2:HashMap[nullable Object, POSetElement[nullable Object]]> */
191 if (unlikely(var7 == NULL)) {
192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
193 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 275);
194 show_backtrace(1);
195 }
196 var5 = var7;
197 RET_LABEL6:(void)0;
198 }
199 }
200 {
201 var8 = ((short int (*)(val* self, val* p0))(var5->class->vft[COLOR_standard__abstract_collection__Collection__has]))(var5, var_e) /* has on <var5:RemovableCollection[nullable Object]>*/;
202 }
203 if (var8){
204 {
205 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
206 var11 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
207 if (unlikely(var11 == NULL)) {
208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
209 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
210 show_backtrace(1);
211 }
212 var9 = var11;
213 RET_LABEL10:(void)0;
214 }
215 }
216 {
217 var12 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var9, var_e);
218 }
219 var = var12;
220 goto RET_LABEL;
221 } else {
222 }
223 var13 = NEW_poset__POSetElement(self->type->resolution_table->types[COLOR_poset__POSetElement__poset__POSet___35dE]);
224 {
225 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
226 var16 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
227 if (unlikely(var16 == NULL)) {
228 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
229 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
230 show_backtrace(1);
231 }
232 var14 = var16;
233 RET_LABEL15:(void)0;
234 }
235 }
236 {
237 var17 = standard___standard__HashMap___standard__abstract_collection__MapRead__length(var14);
238 }
239 {
240 ((void (*)(val* self, val* p0))(var13->class->vft[COLOR_poset__POSetElement__poset_61d]))(var13, self) /* poset= on <var13:POSetElement[nullable Object]>*/;
241 }
242 {
243 ((void (*)(val* self, val* p0))(var13->class->vft[COLOR_poset__POSetElement__element_61d]))(var13, var_e) /* element= on <var13:POSetElement[nullable Object]>*/;
244 }
245 {
246 ((void (*)(val* self, long p0))(var13->class->vft[COLOR_poset__POSetElement__count_61d]))(var13, var17) /* count= on <var13:POSetElement[nullable Object]>*/;
247 }
248 {
249 ((void (*)(val* self))(var13->class->vft[COLOR_standard__kernel__Object__init]))(var13) /* init on <var13:POSetElement[nullable Object]>*/;
250 }
251 var_poe = var13;
252 {
253 { /* Inline poset#POSetElement#tos (var_poe) on <var_poe:POSetElement[nullable Object]> */
254 var20 = var_poe->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <var_poe:POSetElement[nullable Object]> */
255 if (unlikely(var20 == NULL)) {
256 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
257 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
258 show_backtrace(1);
259 }
260 var18 = var20;
261 RET_LABEL19:(void)0;
262 }
263 }
264 {
265 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var18, var_e); /* Direct call hash_collection#HashSet#add on <var18:HashSet[nullable Object]>*/
266 }
267 {
268 { /* Inline poset#POSetElement#froms (var_poe) on <var_poe:POSetElement[nullable Object]> */
269 var23 = var_poe->attrs[COLOR_poset__POSetElement___froms].val; /* _froms on <var_poe:POSetElement[nullable Object]> */
270 if (unlikely(var23 == NULL)) {
271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _froms");
272 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 390);
273 show_backtrace(1);
274 }
275 var21 = var23;
276 RET_LABEL22:(void)0;
277 }
278 }
279 {
280 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var21, var_e); /* Direct call hash_collection#HashSet#add on <var21:HashSet[nullable Object]>*/
281 }
282 {
283 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
284 var26 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
285 if (unlikely(var26 == NULL)) {
286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
287 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
288 show_backtrace(1);
289 }
290 var24 = var26;
291 RET_LABEL25:(void)0;
292 }
293 }
294 {
295 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var24, var_e, var_poe); /* Direct call hash_collection#HashMap#[]= on <var24:HashMap[nullable Object, POSetElement[nullable Object]]>*/
296 }
297 var = var_poe;
298 goto RET_LABEL;
299 RET_LABEL:;
300 return var;
301 }
302 /* method poset#POSet#[] for (self: POSet[nullable Object], nullable Object): POSetElement[nullable Object] */
303 val* poset___poset__POSet____91d_93d(val* self, val* p0) {
304 val* var /* : POSetElement[nullable Object] */;
305 short int var1 /* : Bool */;
306 int cltype;
307 int idtype;
308 const struct type* type_struct;
309 short int is_nullable;
310 const char* var_class_name;
311 val* var_e /* var e: nullable Object */;
312 val* var2 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
313 val* var4 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
314 val* var5 /* : RemovableCollection[nullable Object] */;
315 val* var7 /* : RemovableCollection[nullable Object] */;
316 short int var8 /* : Bool */;
317 val* var9 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
318 val* var11 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
319 val* var12 /* : nullable Object */;
320 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
321 /* <p0:nullable Object> isa E */
322 type_struct = self->type->resolution_table->types[COLOR_poset__POSet___35dE];
323 cltype = type_struct->color;
324 idtype = type_struct->id;
325 is_nullable = type_struct->is_nullable;
326 if(p0 == NULL) {
327 var1 = is_nullable;
328 } else {
329 if(cltype >= p0->type->table_size) {
330 var1 = 0;
331 } else {
332 var1 = p0->type->type_table[cltype] == idtype;
333 }
334 }
335 if (unlikely(!var1)) {
336 var_class_name = p0 == NULL ? "null" : p0->type->name;
337 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
338 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 101);
339 show_backtrace(1);
340 }
341 var_e = p0;
342 {
343 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
344 var4 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
345 if (unlikely(var4 == NULL)) {
346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
347 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
348 show_backtrace(1);
349 }
350 var2 = var4;
351 RET_LABEL3:(void)0;
352 }
353 }
354 {
355 { /* Inline hash_collection#HashMap#keys (var2) on <var2:HashMap[nullable Object, POSetElement[nullable Object]]> */
356 var7 = var2->attrs[COLOR_standard__hash_collection__HashMap___keys].val; /* _keys on <var2:HashMap[nullable Object, POSetElement[nullable Object]]> */
357 if (unlikely(var7 == NULL)) {
358 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
359 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 275);
360 show_backtrace(1);
361 }
362 var5 = var7;
363 RET_LABEL6:(void)0;
364 }
365 }
366 {
367 var8 = ((short int (*)(val* self, val* p0))(var5->class->vft[COLOR_standard__abstract_collection__Collection__has]))(var5, var_e) /* has on <var5:RemovableCollection[nullable Object]>*/;
368 }
369 if (unlikely(!var8)) {
370 PRINT_ERROR("Runtime error: %s", "Assert failed");
371 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 115);
372 show_backtrace(1);
373 }
374 {
375 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
376 var11 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
377 if (unlikely(var11 == NULL)) {
378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
379 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
380 show_backtrace(1);
381 }
382 var9 = var11;
383 RET_LABEL10:(void)0;
384 }
385 }
386 {
387 var12 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var9, var_e);
388 }
389 var = var12;
390 goto RET_LABEL;
391 RET_LABEL:;
392 return var;
393 }
394 /* method poset#POSet#add_edge for (self: POSet[nullable Object], nullable Object, nullable Object) */
395 void poset___poset__POSet___add_edge(val* self, val* p0, val* p1) {
396 short int var /* : Bool */;
397 int cltype;
398 int idtype;
399 const struct type* type_struct;
400 short int is_nullable;
401 const char* var_class_name;
402 short int var1 /* : Bool */;
403 int cltype2;
404 int idtype3;
405 const struct type* type_struct4;
406 short int is_nullable5;
407 const char* var_class_name6;
408 val* var_f /* var f: nullable Object */;
409 val* var_t /* var t: nullable Object */;
410 val* var7 /* : POSetElement[nullable Object] */;
411 val* var_fe /* var fe: POSetElement[nullable Object] */;
412 val* var8 /* : POSetElement[nullable Object] */;
413 val* var_te /* var te: POSetElement[nullable Object] */;
414 val* var9 /* : HashSet[nullable Object] */;
415 val* var11 /* : HashSet[nullable Object] */;
416 short int var12 /* : Bool */;
417 val* var13 /* : HashSet[nullable Object] */;
418 val* var15 /* : HashSet[nullable Object] */;
419 val* var_ /* var : HashSet[nullable Object] */;
420 val* var16 /* : Iterator[nullable Object] */;
421 val* var_17 /* var : Iterator[nullable Object] */;
422 short int var18 /* : Bool */;
423 val* var19 /* : nullable Object */;
424 val* var_ff /* var ff: nullable Object */;
425 val* var20 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
426 val* var22 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
427 val* var23 /* : nullable Object */;
428 val* var_ffe /* var ffe: POSetElement[nullable Object] */;
429 val* var24 /* : HashSet[nullable Object] */;
430 val* var26 /* : HashSet[nullable Object] */;
431 val* var_27 /* var : HashSet[nullable Object] */;
432 val* var28 /* : Iterator[nullable Object] */;
433 val* var_29 /* var : Iterator[nullable Object] */;
434 short int var30 /* : Bool */;
435 val* var31 /* : nullable Object */;
436 val* var_tt /* var tt: nullable Object */;
437 val* var32 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
438 val* var34 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
439 val* var35 /* : nullable Object */;
440 val* var_tte /* var tte: POSetElement[nullable Object] */;
441 val* var36 /* : HashSet[nullable Object] */;
442 val* var38 /* : HashSet[nullable Object] */;
443 val* var39 /* : HashSet[nullable Object] */;
444 val* var41 /* : HashSet[nullable Object] */;
445 val* var45 /* : HashSet[nullable Object] */;
446 val* var47 /* : HashSet[nullable Object] */;
447 short int var48 /* : Bool */;
448 val* var49 /* : HashSet[nullable Object] */;
449 val* var51 /* : HashSet[nullable Object] */;
450 val* var52 /* : Array[nullable Object] */;
451 val* var_53 /* var : Array[nullable Object] */;
452 val* var54 /* : ArrayIterator[nullable Object] */;
453 val* var_55 /* var : ArrayIterator[nullable Object] */;
454 short int var56 /* : Bool */;
455 val* var57 /* : nullable Object */;
456 val* var_x /* var x: nullable Object */;
457 val* var58 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
458 val* var60 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
459 val* var61 /* : nullable Object */;
460 val* var_xe /* var xe: POSetElement[nullable Object] */;
461 val* var62 /* : HashSet[nullable Object] */;
462 val* var64 /* : HashSet[nullable Object] */;
463 short int var65 /* : Bool */;
464 val* var66 /* : HashSet[nullable Object] */;
465 val* var68 /* : HashSet[nullable Object] */;
466 val* var69 /* : HashSet[nullable Object] */;
467 val* var71 /* : HashSet[nullable Object] */;
468 val* var74 /* : HashSet[nullable Object] */;
469 val* var76 /* : HashSet[nullable Object] */;
470 val* var77 /* : Array[nullable Object] */;
471 val* var_78 /* var : Array[nullable Object] */;
472 val* var79 /* : ArrayIterator[nullable Object] */;
473 val* var_80 /* var : ArrayIterator[nullable Object] */;
474 short int var81 /* : Bool */;
475 val* var82 /* : nullable Object */;
476 val* var_x83 /* var x: nullable Object */;
477 val* var84 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
478 val* var86 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
479 val* var87 /* : nullable Object */;
480 val* var_xe88 /* var xe: POSetElement[nullable Object] */;
481 val* var89 /* : HashSet[nullable Object] */;
482 val* var91 /* : HashSet[nullable Object] */;
483 short int var92 /* : Bool */;
484 val* var93 /* : HashSet[nullable Object] */;
485 val* var95 /* : HashSet[nullable Object] */;
486 val* var96 /* : HashSet[nullable Object] */;
487 val* var98 /* : HashSet[nullable Object] */;
488 val* var101 /* : HashSet[nullable Object] */;
489 val* var103 /* : HashSet[nullable Object] */;
490 val* var104 /* : HashSet[nullable Object] */;
491 val* var106 /* : HashSet[nullable Object] */;
492 /* Covariant cast for argument 0 (f) <p0:nullable Object> isa E */
493 /* <p0:nullable Object> isa E */
494 type_struct = self->type->resolution_table->types[COLOR_poset__POSet___35dE];
495 cltype = type_struct->color;
496 idtype = type_struct->id;
497 is_nullable = type_struct->is_nullable;
498 if(p0 == NULL) {
499 var = is_nullable;
500 } else {
501 if(cltype >= p0->type->table_size) {
502 var = 0;
503 } else {
504 var = p0->type->type_table[cltype] == idtype;
505 }
506 }
507 if (unlikely(!var)) {
508 var_class_name = p0 == NULL ? "null" : p0->type->name;
509 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
510 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 119);
511 show_backtrace(1);
512 }
513 /* Covariant cast for argument 1 (t) <p1:nullable Object> isa E */
514 /* <p1:nullable Object> isa E */
515 type_struct4 = self->type->resolution_table->types[COLOR_poset__POSet___35dE];
516 cltype2 = type_struct4->color;
517 idtype3 = type_struct4->id;
518 is_nullable5 = type_struct4->is_nullable;
519 if(p1 == NULL) {
520 var1 = is_nullable5;
521 } else {
522 if(cltype2 >= p1->type->table_size) {
523 var1 = 0;
524 } else {
525 var1 = p1->type->type_table[cltype2] == idtype3;
526 }
527 }
528 if (unlikely(!var1)) {
529 var_class_name6 = p1 == NULL ? "null" : p1->type->name;
530 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name6);
531 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 119);
532 show_backtrace(1);
533 }
534 var_f = p0;
535 var_t = p1;
536 {
537 var7 = poset___poset__POSet___add_node(self, var_f);
538 }
539 var_fe = var7;
540 {
541 var8 = poset___poset__POSet___add_node(self, var_t);
542 }
543 var_te = var8;
544 {
545 { /* Inline poset#POSetElement#tos (var_fe) on <var_fe:POSetElement[nullable Object]> */
546 var11 = var_fe->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <var_fe:POSetElement[nullable Object]> */
547 if (unlikely(var11 == NULL)) {
548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
549 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
550 show_backtrace(1);
551 }
552 var9 = var11;
553 RET_LABEL10:(void)0;
554 }
555 }
556 {
557 var12 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var9, var_t);
558 }
559 if (var12){
560 goto RET_LABEL;
561 } else {
562 }
563 {
564 { /* Inline poset#POSetElement#froms (var_fe) on <var_fe:POSetElement[nullable Object]> */
565 var15 = var_fe->attrs[COLOR_poset__POSetElement___froms].val; /* _froms on <var_fe:POSetElement[nullable Object]> */
566 if (unlikely(var15 == NULL)) {
567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _froms");
568 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 390);
569 show_backtrace(1);
570 }
571 var13 = var15;
572 RET_LABEL14:(void)0;
573 }
574 }
575 var_ = var13;
576 {
577 var16 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_);
578 }
579 var_17 = var16;
580 for(;;) {
581 {
582 var18 = ((short int (*)(val* self))(var_17->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_17) /* is_ok on <var_17:Iterator[nullable Object]>*/;
583 }
584 if (var18){
585 {
586 var19 = ((val* (*)(val* self))(var_17->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_17) /* item on <var_17:Iterator[nullable Object]>*/;
587 }
588 var_ff = var19;
589 {
590 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
591 var22 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
592 if (unlikely(var22 == NULL)) {
593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
594 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
595 show_backtrace(1);
596 }
597 var20 = var22;
598 RET_LABEL21:(void)0;
599 }
600 }
601 {
602 var23 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var20, var_ff);
603 }
604 var_ffe = var23;
605 {
606 { /* Inline poset#POSetElement#tos (var_te) on <var_te:POSetElement[nullable Object]> */
607 var26 = var_te->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <var_te:POSetElement[nullable Object]> */
608 if (unlikely(var26 == NULL)) {
609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
610 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
611 show_backtrace(1);
612 }
613 var24 = var26;
614 RET_LABEL25:(void)0;
615 }
616 }
617 var_27 = var24;
618 {
619 var28 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_27);
620 }
621 var_29 = var28;
622 for(;;) {
623 {
624 var30 = ((short int (*)(val* self))(var_29->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_29) /* is_ok on <var_29:Iterator[nullable Object]>*/;
625 }
626 if (var30){
627 {
628 var31 = ((val* (*)(val* self))(var_29->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_29) /* item on <var_29:Iterator[nullable Object]>*/;
629 }
630 var_tt = var31;
631 {
632 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
633 var34 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
634 if (unlikely(var34 == NULL)) {
635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
636 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
637 show_backtrace(1);
638 }
639 var32 = var34;
640 RET_LABEL33:(void)0;
641 }
642 }
643 {
644 var35 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var32, var_tt);
645 }
646 var_tte = var35;
647 {
648 { /* Inline poset#POSetElement#froms (var_tte) on <var_tte:POSetElement[nullable Object]> */
649 var38 = var_tte->attrs[COLOR_poset__POSetElement___froms].val; /* _froms on <var_tte:POSetElement[nullable Object]> */
650 if (unlikely(var38 == NULL)) {
651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _froms");
652 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 390);
653 show_backtrace(1);
654 }
655 var36 = var38;
656 RET_LABEL37:(void)0;
657 }
658 }
659 {
660 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var36, var_ff); /* Direct call hash_collection#HashSet#add on <var36:HashSet[nullable Object]>*/
661 }
662 {
663 { /* Inline poset#POSetElement#tos (var_ffe) on <var_ffe:POSetElement[nullable Object]> */
664 var41 = var_ffe->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <var_ffe:POSetElement[nullable Object]> */
665 if (unlikely(var41 == NULL)) {
666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
667 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
668 show_backtrace(1);
669 }
670 var39 = var41;
671 RET_LABEL40:(void)0;
672 }
673 }
674 {
675 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var39, var_tt); /* Direct call hash_collection#HashSet#add on <var39:HashSet[nullable Object]>*/
676 }
677 {
678 ((void (*)(val* self))(var_29->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_29) /* next on <var_29:Iterator[nullable Object]>*/;
679 }
680 } else {
681 goto BREAK_label;
682 }
683 }
684 BREAK_label: (void)0;
685 {
686 { /* Inline abstract_collection#Iterator#finish (var_29) on <var_29:Iterator[nullable Object]> */
687 RET_LABEL42:(void)0;
688 }
689 }
690 {
691 ((void (*)(val* self))(var_17->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_17) /* next on <var_17:Iterator[nullable Object]>*/;
692 }
693 } else {
694 goto BREAK_label43;
695 }
696 }
697 BREAK_label43: (void)0;
698 {
699 { /* Inline abstract_collection#Iterator#finish (var_17) on <var_17:Iterator[nullable Object]> */
700 RET_LABEL44:(void)0;
701 }
702 }
703 {
704 { /* Inline poset#POSetElement#tos (var_te) on <var_te:POSetElement[nullable Object]> */
705 var47 = var_te->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <var_te:POSetElement[nullable Object]> */
706 if (unlikely(var47 == NULL)) {
707 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
708 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
709 show_backtrace(1);
710 }
711 var45 = var47;
712 RET_LABEL46:(void)0;
713 }
714 }
715 {
716 var48 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var45, var_f);
717 }
718 if (var48){
719 goto RET_LABEL;
720 } else {
721 }
722 {
723 { /* Inline poset#POSetElement#dfroms (var_te) on <var_te:POSetElement[nullable Object]> */
724 var51 = var_te->attrs[COLOR_poset__POSetElement___dfroms].val; /* _dfroms on <var_te:POSetElement[nullable Object]> */
725 if (unlikely(var51 == NULL)) {
726 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dfroms");
727 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 392);
728 show_backtrace(1);
729 }
730 var49 = var51;
731 RET_LABEL50:(void)0;
732 }
733 }
734 {
735 var52 = standard__array___Collection___to_a(var49);
736 }
737 var_53 = var52;
738 {
739 var54 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_53);
740 }
741 var_55 = var54;
742 for(;;) {
743 {
744 var56 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_55);
745 }
746 if (var56){
747 {
748 var57 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_55);
749 }
750 var_x = var57;
751 {
752 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
753 var60 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
754 if (unlikely(var60 == NULL)) {
755 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
756 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
757 show_backtrace(1);
758 }
759 var58 = var60;
760 RET_LABEL59:(void)0;
761 }
762 }
763 {
764 var61 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var58, var_x);
765 }
766 var_xe = var61;
767 {
768 { /* Inline poset#POSetElement#tos (var_xe) on <var_xe:POSetElement[nullable Object]> */
769 var64 = var_xe->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <var_xe:POSetElement[nullable Object]> */
770 if (unlikely(var64 == NULL)) {
771 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
772 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
773 show_backtrace(1);
774 }
775 var62 = var64;
776 RET_LABEL63:(void)0;
777 }
778 }
779 {
780 var65 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var62, var_f);
781 }
782 if (var65){
783 {
784 { /* Inline poset#POSetElement#dfroms (var_te) on <var_te:POSetElement[nullable Object]> */
785 var68 = var_te->attrs[COLOR_poset__POSetElement___dfroms].val; /* _dfroms on <var_te:POSetElement[nullable Object]> */
786 if (unlikely(var68 == NULL)) {
787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dfroms");
788 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 392);
789 show_backtrace(1);
790 }
791 var66 = var68;
792 RET_LABEL67:(void)0;
793 }
794 }
795 {
796 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__remove(var66, var_x); /* Direct call hash_collection#HashSet#remove on <var66:HashSet[nullable Object]>*/
797 }
798 {
799 { /* Inline poset#POSetElement#dtos (var_xe) on <var_xe:POSetElement[nullable Object]> */
800 var71 = var_xe->attrs[COLOR_poset__POSetElement___dtos].val; /* _dtos on <var_xe:POSetElement[nullable Object]> */
801 if (unlikely(var71 == NULL)) {
802 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dtos");
803 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 391);
804 show_backtrace(1);
805 }
806 var69 = var71;
807 RET_LABEL70:(void)0;
808 }
809 }
810 {
811 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__remove(var69, var_t); /* Direct call hash_collection#HashSet#remove on <var69:HashSet[nullable Object]>*/
812 }
813 } else {
814 }
815 {
816 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_55); /* Direct call array#ArrayIterator#next on <var_55:ArrayIterator[nullable Object]>*/
817 }
818 } else {
819 goto BREAK_label72;
820 }
821 }
822 BREAK_label72: (void)0;
823 {
824 { /* Inline abstract_collection#Iterator#finish (var_55) on <var_55:ArrayIterator[nullable Object]> */
825 RET_LABEL73:(void)0;
826 }
827 }
828 {
829 { /* Inline poset#POSetElement#dtos (var_fe) on <var_fe:POSetElement[nullable Object]> */
830 var76 = var_fe->attrs[COLOR_poset__POSetElement___dtos].val; /* _dtos on <var_fe:POSetElement[nullable Object]> */
831 if (unlikely(var76 == NULL)) {
832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dtos");
833 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 391);
834 show_backtrace(1);
835 }
836 var74 = var76;
837 RET_LABEL75:(void)0;
838 }
839 }
840 {
841 var77 = standard__array___Collection___to_a(var74);
842 }
843 var_78 = var77;
844 {
845 var79 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_78);
846 }
847 var_80 = var79;
848 for(;;) {
849 {
850 var81 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_80);
851 }
852 if (var81){
853 {
854 var82 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_80);
855 }
856 var_x83 = var82;
857 {
858 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
859 var86 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
860 if (unlikely(var86 == NULL)) {
861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
862 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
863 show_backtrace(1);
864 }
865 var84 = var86;
866 RET_LABEL85:(void)0;
867 }
868 }
869 {
870 var87 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var84, var_x83);
871 }
872 var_xe88 = var87;
873 {
874 { /* Inline poset#POSetElement#froms (var_xe88) on <var_xe88:POSetElement[nullable Object]> */
875 var91 = var_xe88->attrs[COLOR_poset__POSetElement___froms].val; /* _froms on <var_xe88:POSetElement[nullable Object]> */
876 if (unlikely(var91 == NULL)) {
877 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _froms");
878 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 390);
879 show_backtrace(1);
880 }
881 var89 = var91;
882 RET_LABEL90:(void)0;
883 }
884 }
885 {
886 var92 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var89, var_t);
887 }
888 if (var92){
889 {
890 { /* Inline poset#POSetElement#dfroms (var_xe88) on <var_xe88:POSetElement[nullable Object]> */
891 var95 = var_xe88->attrs[COLOR_poset__POSetElement___dfroms].val; /* _dfroms on <var_xe88:POSetElement[nullable Object]> */
892 if (unlikely(var95 == NULL)) {
893 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dfroms");
894 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 392);
895 show_backtrace(1);
896 }
897 var93 = var95;
898 RET_LABEL94:(void)0;
899 }
900 }
901 {
902 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__remove(var93, var_f); /* Direct call hash_collection#HashSet#remove on <var93:HashSet[nullable Object]>*/
903 }
904 {
905 { /* Inline poset#POSetElement#dtos (var_fe) on <var_fe:POSetElement[nullable Object]> */
906 var98 = var_fe->attrs[COLOR_poset__POSetElement___dtos].val; /* _dtos on <var_fe:POSetElement[nullable Object]> */
907 if (unlikely(var98 == NULL)) {
908 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dtos");
909 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 391);
910 show_backtrace(1);
911 }
912 var96 = var98;
913 RET_LABEL97:(void)0;
914 }
915 }
916 {
917 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__remove(var96, var_x83); /* Direct call hash_collection#HashSet#remove on <var96:HashSet[nullable Object]>*/
918 }
919 } else {
920 }
921 {
922 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_80); /* Direct call array#ArrayIterator#next on <var_80:ArrayIterator[nullable Object]>*/
923 }
924 } else {
925 goto BREAK_label99;
926 }
927 }
928 BREAK_label99: (void)0;
929 {
930 { /* Inline abstract_collection#Iterator#finish (var_80) on <var_80:ArrayIterator[nullable Object]> */
931 RET_LABEL100:(void)0;
932 }
933 }
934 {
935 { /* Inline poset#POSetElement#dtos (var_fe) on <var_fe:POSetElement[nullable Object]> */
936 var103 = var_fe->attrs[COLOR_poset__POSetElement___dtos].val; /* _dtos on <var_fe:POSetElement[nullable Object]> */
937 if (unlikely(var103 == NULL)) {
938 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dtos");
939 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 391);
940 show_backtrace(1);
941 }
942 var101 = var103;
943 RET_LABEL102:(void)0;
944 }
945 }
946 {
947 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var101, var_t); /* Direct call hash_collection#HashSet#add on <var101:HashSet[nullable Object]>*/
948 }
949 {
950 { /* Inline poset#POSetElement#dfroms (var_te) on <var_te:POSetElement[nullable Object]> */
951 var106 = var_te->attrs[COLOR_poset__POSetElement___dfroms].val; /* _dfroms on <var_te:POSetElement[nullable Object]> */
952 if (unlikely(var106 == NULL)) {
953 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dfroms");
954 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 392);
955 show_backtrace(1);
956 }
957 var104 = var106;
958 RET_LABEL105:(void)0;
959 }
960 }
961 {
962 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var104, var_f); /* Direct call hash_collection#HashSet#add on <var104:HashSet[nullable Object]>*/
963 }
964 RET_LABEL:;
965 }
966 /* method poset#POSet#compare for (self: POSet[nullable Object], nullable Object, nullable Object): Int */
967 long poset___poset__POSet___standard__sorter__Comparator__compare(val* self, val* p0, val* p1) {
968 long var /* : Int */;
969 short int var1 /* : Bool */;
970 int cltype;
971 int idtype;
972 const struct type* type_struct;
973 short int is_nullable;
974 const char* var_class_name;
975 short int var2 /* : Bool */;
976 int cltype3;
977 int idtype4;
978 const struct type* type_struct5;
979 short int is_nullable6;
980 const char* var_class_name7;
981 val* var_a /* var a: nullable Object */;
982 val* var_b /* var b: nullable Object */;
983 val* var8 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
984 val* var10 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
985 val* var11 /* : nullable Object */;
986 val* var_ae /* var ae: POSetElement[nullable Object] */;
987 val* var12 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
988 val* var14 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
989 val* var15 /* : nullable Object */;
990 val* var_be /* var be: POSetElement[nullable Object] */;
991 val* var16 /* : HashSet[nullable Object] */;
992 val* var18 /* : HashSet[nullable Object] */;
993 long var19 /* : Int */;
994 val* var20 /* : HashSet[nullable Object] */;
995 val* var22 /* : HashSet[nullable Object] */;
996 long var23 /* : Int */;
997 long var24 /* : Int */;
998 long var_res /* var res: Int */;
999 long var25 /* : Int */;
1000 short int var26 /* : Bool */;
1001 short int var28 /* : Bool */;
1002 short int var29 /* : Bool */;
1003 val* var30 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
1004 val* var32 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
1005 val* var33 /* : nullable Object */;
1006 long var34 /* : Int */;
1007 long var36 /* : Int */;
1008 val* var37 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
1009 val* var39 /* : HashMap[nullable Object, POSetElement[nullable Object]] */;
1010 val* var40 /* : nullable Object */;
1011 long var41 /* : Int */;
1012 long var43 /* : Int */;
1013 long var44 /* : Int */;
1014 /* Covariant cast for argument 0 (a) <p0:nullable Object> isa E */
1015 /* <p0:nullable Object> isa E */
1016 type_struct = self->type->resolution_table->types[COLOR_poset__POSet___35dE];
1017 cltype = type_struct->color;
1018 idtype = type_struct->id;
1019 is_nullable = type_struct->is_nullable;
1020 if(p0 == NULL) {
1021 var1 = is_nullable;
1022 } else {
1023 if(cltype >= p0->type->table_size) {
1024 var1 = 0;
1025 } else {
1026 var1 = p0->type->type_table[cltype] == idtype;
1027 }
1028 }
1029 if (unlikely(!var1)) {
1030 var_class_name = p0 == NULL ? "null" : p0->type->name;
1031 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
1032 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 267);
1033 show_backtrace(1);
1034 }
1035 /* Covariant cast for argument 1 (b) <p1:nullable Object> isa E */
1036 /* <p1:nullable Object> isa E */
1037 type_struct5 = self->type->resolution_table->types[COLOR_poset__POSet___35dE];
1038 cltype3 = type_struct5->color;
1039 idtype4 = type_struct5->id;
1040 is_nullable6 = type_struct5->is_nullable;
1041 if(p1 == NULL) {
1042 var2 = is_nullable6;
1043 } else {
1044 if(cltype3 >= p1->type->table_size) {
1045 var2 = 0;
1046 } else {
1047 var2 = p1->type->type_table[cltype3] == idtype4;
1048 }
1049 }
1050 if (unlikely(!var2)) {
1051 var_class_name7 = p1 == NULL ? "null" : p1->type->name;
1052 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name7);
1053 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 267);
1054 show_backtrace(1);
1055 }
1056 var_a = p0;
1057 var_b = p1;
1058 {
1059 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
1060 var10 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
1061 if (unlikely(var10 == NULL)) {
1062 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
1063 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
1064 show_backtrace(1);
1065 }
1066 var8 = var10;
1067 RET_LABEL9:(void)0;
1068 }
1069 }
1070 {
1071 var11 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var8, var_a);
1072 }
1073 var_ae = var11;
1074 {
1075 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
1076 var14 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
1077 if (unlikely(var14 == NULL)) {
1078 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
1079 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
1080 show_backtrace(1);
1081 }
1082 var12 = var14;
1083 RET_LABEL13:(void)0;
1084 }
1085 }
1086 {
1087 var15 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var12, var_b);
1088 }
1089 var_be = var15;
1090 {
1091 { /* Inline poset#POSetElement#tos (var_ae) on <var_ae:POSetElement[nullable Object]> */
1092 var18 = var_ae->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <var_ae:POSetElement[nullable Object]> */
1093 if (unlikely(var18 == NULL)) {
1094 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
1095 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
1096 show_backtrace(1);
1097 }
1098 var16 = var18;
1099 RET_LABEL17:(void)0;
1100 }
1101 }
1102 {
1103 var19 = standard___standard__HashSet___standard__abstract_collection__Collection__length(var16);
1104 }
1105 {
1106 { /* Inline poset#POSetElement#tos (var_be) on <var_be:POSetElement[nullable Object]> */
1107 var22 = var_be->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <var_be:POSetElement[nullable Object]> */
1108 if (unlikely(var22 == NULL)) {
1109 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
1110 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
1111 show_backtrace(1);
1112 }
1113 var20 = var22;
1114 RET_LABEL21:(void)0;
1115 }
1116 }
1117 {
1118 var23 = standard___standard__HashSet___standard__abstract_collection__Collection__length(var20);
1119 }
1120 {
1121 var24 = standard___standard__Int___Comparable___60d_61d_62d(var19, var23);
1122 }
1123 var_res = var24;
1124 var25 = 0;
1125 {
1126 { /* Inline kernel#Int#!= (var_res,var25) on <var_res:Int> */
1127 var28 = var_res == var25;
1128 var29 = !var28;
1129 var26 = var29;
1130 goto RET_LABEL27;
1131 RET_LABEL27:(void)0;
1132 }
1133 }
1134 if (var26){
1135 var = var_res;
1136 goto RET_LABEL;
1137 } else {
1138 }
1139 {
1140 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
1141 var32 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
1142 if (unlikely(var32 == NULL)) {
1143 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
1144 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
1145 show_backtrace(1);
1146 }
1147 var30 = var32;
1148 RET_LABEL31:(void)0;
1149 }
1150 }
1151 {
1152 var33 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var30, var_a);
1153 }
1154 {
1155 { /* Inline poset#POSetElement#count (var33) on <var33:nullable Object(POSetElement[nullable Object])> */
1156 var36 = var33->attrs[COLOR_poset__POSetElement___count].l; /* _count on <var33:nullable Object(POSetElement[nullable Object])> */
1157 var34 = var36;
1158 RET_LABEL35:(void)0;
1159 }
1160 }
1161 {
1162 { /* Inline poset#POSet#elements (self) on <self:POSet[nullable Object]> */
1163 var39 = self->attrs[COLOR_poset__POSet___elements].val; /* _elements on <self:POSet[nullable Object]> */
1164 if (unlikely(var39 == NULL)) {
1165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _elements");
1166 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 82);
1167 show_backtrace(1);
1168 }
1169 var37 = var39;
1170 RET_LABEL38:(void)0;
1171 }
1172 }
1173 {
1174 var40 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var37, var_b);
1175 }
1176 {
1177 { /* Inline poset#POSetElement#count (var40) on <var40:nullable Object(POSetElement[nullable Object])> */
1178 var43 = var40->attrs[COLOR_poset__POSetElement___count].l; /* _count on <var40:nullable Object(POSetElement[nullable Object])> */
1179 var41 = var43;
1180 RET_LABEL42:(void)0;
1181 }
1182 }
1183 {
1184 var44 = standard___standard__Int___Comparable___60d_61d_62d(var34, var41);
1185 }
1186 var = var44;
1187 goto RET_LABEL;
1188 RET_LABEL:;
1189 return var;
1190 }
1191 /* method poset#POSet#linearize for (self: POSet[nullable Object], Collection[nullable Object]): Array[nullable Object] */
1192 val* poset___poset__POSet___linearize(val* self, val* p0) {
1193 val* var /* : Array[nullable Object] */;
1194 short int var1 /* : Bool */;
1195 int cltype;
1196 int idtype;
1197 const struct type* type_struct;
1198 const char* var_class_name;
1199 val* var_elements /* var elements: Collection[nullable Object] */;
1200 val* var2 /* : Array[nullable Object] */;
1201 val* var_lin /* var lin: Array[nullable Object] */;
1202 /* Covariant cast for argument 0 (elements) <p0:Collection[nullable Object]> isa Collection[E] */
1203 /* <p0:Collection[nullable Object]> isa Collection[E] */
1204 type_struct = self->type->resolution_table->types[COLOR_standard__Collection__poset__POSet___35dE];
1205 cltype = type_struct->color;
1206 idtype = type_struct->id;
1207 if(cltype >= p0->type->table_size) {
1208 var1 = 0;
1209 } else {
1210 var1 = p0->type->type_table[cltype] == idtype;
1211 }
1212 if (unlikely(!var1)) {
1213 var_class_name = p0 == NULL ? "null" : p0->type->name;
1214 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name);
1215 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 353);
1216 show_backtrace(1);
1217 }
1218 var_elements = p0;
1219 {
1220 var2 = standard__array___Collection___to_a(var_elements);
1221 }
1222 var_lin = var2;
1223 {
1224 standard___standard__Comparator___sort(self, var_lin); /* Direct call sorter#Comparator#sort on <self:POSet[nullable Object]>*/
1225 }
1226 var = var_lin;
1227 goto RET_LABEL;
1228 RET_LABEL:;
1229 return var;
1230 }
1231 /* method poset#POSetElement#poset for (self: POSetElement[nullable Object]): POSet[nullable Object] */
1232 val* poset___poset__POSetElement___poset(val* self) {
1233 val* var /* : POSet[nullable Object] */;
1234 val* var1 /* : POSet[nullable Object] */;
1235 var1 = self->attrs[COLOR_poset__POSetElement___poset].val; /* _poset on <self:POSetElement[nullable Object]> */
1236 if (unlikely(var1 == NULL)) {
1237 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
1238 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 383);
1239 show_backtrace(1);
1240 }
1241 var = var1;
1242 RET_LABEL:;
1243 return var;
1244 }
1245 /* method poset#POSetElement#poset= for (self: POSetElement[nullable Object], POSet[nullable Object]) */
1246 void poset___poset__POSetElement___poset_61d(val* self, val* p0) {
1247 short int var /* : Bool */;
1248 int cltype;
1249 int idtype;
1250 const struct type* type_struct;
1251 const char* var_class_name;
1252 /* Covariant cast for argument 0 (poset) <p0:POSet[nullable Object]> isa POSet[E] */
1253 /* <p0:POSet[nullable Object]> isa POSet[E] */
1254 type_struct = self->type->resolution_table->types[COLOR_poset__POSet__poset__POSetElement___35dE];
1255 cltype = type_struct->color;
1256 idtype = type_struct->id;
1257 if(cltype >= p0->type->table_size) {
1258 var = 0;
1259 } else {
1260 var = p0->type->type_table[cltype] == idtype;
1261 }
1262 if (unlikely(!var)) {
1263 var_class_name = p0 == NULL ? "null" : p0->type->name;
1264 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name);
1265 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 383);
1266 show_backtrace(1);
1267 }
1268 self->attrs[COLOR_poset__POSetElement___poset].val = p0; /* _poset on <self:POSetElement[nullable Object]> */
1269 RET_LABEL:;
1270 }
1271 /* method poset#POSetElement#element for (self: POSetElement[nullable Object]): nullable Object */
1272 val* poset___poset__POSetElement___element(val* self) {
1273 val* var /* : nullable Object */;
1274 val* var1 /* : nullable Object */;
1275 var1 = self->attrs[COLOR_poset__POSetElement___element].val; /* _element on <self:POSetElement[nullable Object]> */
1276 var = var1;
1277 RET_LABEL:;
1278 return var;
1279 }
1280 /* method poset#POSetElement#element= for (self: POSetElement[nullable Object], nullable Object) */
1281 void poset___poset__POSetElement___element_61d(val* self, val* p0) {
1282 short int var /* : Bool */;
1283 int cltype;
1284 int idtype;
1285 const struct type* type_struct;
1286 short int is_nullable;
1287 const char* var_class_name;
1288 /* Covariant cast for argument 0 (element) <p0:nullable Object> isa E */
1289 /* <p0:nullable Object> isa E */
1290 type_struct = self->type->resolution_table->types[COLOR_poset__POSetElement___35dE];
1291 cltype = type_struct->color;
1292 idtype = type_struct->id;
1293 is_nullable = type_struct->is_nullable;
1294 if(p0 == NULL) {
1295 var = is_nullable;
1296 } else {
1297 if(cltype >= p0->type->table_size) {
1298 var = 0;
1299 } else {
1300 var = p0->type->type_table[cltype] == idtype;
1301 }
1302 }
1303 if (unlikely(!var)) {
1304 var_class_name = p0 == NULL ? "null" : p0->type->name;
1305 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
1306 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 386);
1307 show_backtrace(1);
1308 }
1309 self->attrs[COLOR_poset__POSetElement___element].val = p0; /* _element on <self:POSetElement[nullable Object]> */
1310 RET_LABEL:;
1311 }
1312 /* method poset#POSetElement#tos for (self: POSetElement[nullable Object]): HashSet[nullable Object] */
1313 val* poset___poset__POSetElement___tos(val* self) {
1314 val* var /* : HashSet[nullable Object] */;
1315 val* var1 /* : HashSet[nullable Object] */;
1316 var1 = self->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <self:POSetElement[nullable Object]> */
1317 if (unlikely(var1 == NULL)) {
1318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
1319 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
1320 show_backtrace(1);
1321 }
1322 var = var1;
1323 RET_LABEL:;
1324 return var;
1325 }
1326 /* method poset#POSetElement#froms for (self: POSetElement[nullable Object]): HashSet[nullable Object] */
1327 val* poset___poset__POSetElement___froms(val* self) {
1328 val* var /* : HashSet[nullable Object] */;
1329 val* var1 /* : HashSet[nullable Object] */;
1330 var1 = self->attrs[COLOR_poset__POSetElement___froms].val; /* _froms on <self:POSetElement[nullable Object]> */
1331 if (unlikely(var1 == NULL)) {
1332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _froms");
1333 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 390);
1334 show_backtrace(1);
1335 }
1336 var = var1;
1337 RET_LABEL:;
1338 return var;
1339 }
1340 /* method poset#POSetElement#dtos for (self: POSetElement[nullable Object]): HashSet[nullable Object] */
1341 val* poset___poset__POSetElement___dtos(val* self) {
1342 val* var /* : HashSet[nullable Object] */;
1343 val* var1 /* : HashSet[nullable Object] */;
1344 var1 = self->attrs[COLOR_poset__POSetElement___dtos].val; /* _dtos on <self:POSetElement[nullable Object]> */
1345 if (unlikely(var1 == NULL)) {
1346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dtos");
1347 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 391);
1348 show_backtrace(1);
1349 }
1350 var = var1;
1351 RET_LABEL:;
1352 return var;
1353 }
1354 /* method poset#POSetElement#dfroms for (self: POSetElement[nullable Object]): HashSet[nullable Object] */
1355 val* poset___poset__POSetElement___dfroms(val* self) {
1356 val* var /* : HashSet[nullable Object] */;
1357 val* var1 /* : HashSet[nullable Object] */;
1358 var1 = self->attrs[COLOR_poset__POSetElement___dfroms].val; /* _dfroms on <self:POSetElement[nullable Object]> */
1359 if (unlikely(var1 == NULL)) {
1360 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dfroms");
1361 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 392);
1362 show_backtrace(1);
1363 }
1364 var = var1;
1365 RET_LABEL:;
1366 return var;
1367 }
1368 /* method poset#POSetElement#count for (self: POSetElement[nullable Object]): Int */
1369 long poset___poset__POSetElement___count(val* self) {
1370 long var /* : Int */;
1371 long var1 /* : Int */;
1372 var1 = self->attrs[COLOR_poset__POSetElement___count].l; /* _count on <self:POSetElement[nullable Object]> */
1373 var = var1;
1374 RET_LABEL:;
1375 return var;
1376 }
1377 /* method poset#POSetElement#count= for (self: POSetElement[nullable Object], Int) */
1378 void poset___poset__POSetElement___count_61d(val* self, long p0) {
1379 self->attrs[COLOR_poset__POSetElement___count].l = p0; /* _count on <self:POSetElement[nullable Object]> */
1380 RET_LABEL:;
1381 }
1382 /* method poset#POSetElement#greaters for (self: POSetElement[nullable Object]): Collection[nullable Object] */
1383 val* poset___poset__POSetElement___greaters(val* self) {
1384 val* var /* : Collection[nullable Object] */;
1385 val* var1 /* : HashSet[nullable Object] */;
1386 val* var3 /* : HashSet[nullable Object] */;
1387 {
1388 { /* Inline poset#POSetElement#tos (self) on <self:POSetElement[nullable Object]> */
1389 var3 = self->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <self:POSetElement[nullable Object]> */
1390 if (unlikely(var3 == NULL)) {
1391 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
1392 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
1393 show_backtrace(1);
1394 }
1395 var1 = var3;
1396 RET_LABEL2:(void)0;
1397 }
1398 }
1399 var = var1;
1400 goto RET_LABEL;
1401 RET_LABEL:;
1402 return var;
1403 }
1404 /* method poset#POSetElement#direct_greaters for (self: POSetElement[nullable Object]): Collection[nullable Object] */
1405 val* poset___poset__POSetElement___direct_greaters(val* self) {
1406 val* var /* : Collection[nullable Object] */;
1407 val* var1 /* : HashSet[nullable Object] */;
1408 val* var3 /* : HashSet[nullable Object] */;
1409 {
1410 { /* Inline poset#POSetElement#dtos (self) on <self:POSetElement[nullable Object]> */
1411 var3 = self->attrs[COLOR_poset__POSetElement___dtos].val; /* _dtos on <self:POSetElement[nullable Object]> */
1412 if (unlikely(var3 == NULL)) {
1413 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dtos");
1414 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 391);
1415 show_backtrace(1);
1416 }
1417 var1 = var3;
1418 RET_LABEL2:(void)0;
1419 }
1420 }
1421 var = var1;
1422 goto RET_LABEL;
1423 RET_LABEL:;
1424 return var;
1425 }
1426 /* method poset#POSetElement#smallers for (self: POSetElement[nullable Object]): Collection[nullable Object] */
1427 val* poset___poset__POSetElement___smallers(val* self) {
1428 val* var /* : Collection[nullable Object] */;
1429 val* var1 /* : HashSet[nullable Object] */;
1430 val* var3 /* : HashSet[nullable Object] */;
1431 {
1432 { /* Inline poset#POSetElement#froms (self) on <self:POSetElement[nullable Object]> */
1433 var3 = self->attrs[COLOR_poset__POSetElement___froms].val; /* _froms on <self:POSetElement[nullable Object]> */
1434 if (unlikely(var3 == NULL)) {
1435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _froms");
1436 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 390);
1437 show_backtrace(1);
1438 }
1439 var1 = var3;
1440 RET_LABEL2:(void)0;
1441 }
1442 }
1443 var = var1;
1444 goto RET_LABEL;
1445 RET_LABEL:;
1446 return var;
1447 }
1448 /* method poset#POSetElement#direct_smallers for (self: POSetElement[nullable Object]): Collection[nullable Object] */
1449 val* poset___poset__POSetElement___direct_smallers(val* self) {
1450 val* var /* : Collection[nullable Object] */;
1451 val* var1 /* : HashSet[nullable Object] */;
1452 val* var3 /* : HashSet[nullable Object] */;
1453 {
1454 { /* Inline poset#POSetElement#dfroms (self) on <self:POSetElement[nullable Object]> */
1455 var3 = self->attrs[COLOR_poset__POSetElement___dfroms].val; /* _dfroms on <self:POSetElement[nullable Object]> */
1456 if (unlikely(var3 == NULL)) {
1457 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _dfroms");
1458 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 392);
1459 show_backtrace(1);
1460 }
1461 var1 = var3;
1462 RET_LABEL2:(void)0;
1463 }
1464 }
1465 var = var1;
1466 goto RET_LABEL;
1467 RET_LABEL:;
1468 return var;
1469 }
1470 /* method poset#POSetElement#<= for (self: POSetElement[nullable Object], nullable Object): Bool */
1471 short int poset___poset__POSetElement____60d_61d(val* self, val* p0) {
1472 short int var /* : Bool */;
1473 short int var1 /* : Bool */;
1474 int cltype;
1475 int idtype;
1476 const struct type* type_struct;
1477 short int is_nullable;
1478 const char* var_class_name;
1479 val* var_t /* var t: nullable Object */;
1480 val* var2 /* : HashSet[nullable Object] */;
1481 val* var4 /* : HashSet[nullable Object] */;
1482 short int var5 /* : Bool */;
1483 /* Covariant cast for argument 0 (t) <p0:nullable Object> isa E */
1484 /* <p0:nullable Object> isa E */
1485 type_struct = self->type->resolution_table->types[COLOR_poset__POSetElement___35dE];
1486 cltype = type_struct->color;
1487 idtype = type_struct->id;
1488 is_nullable = type_struct->is_nullable;
1489 if(p0 == NULL) {
1490 var1 = is_nullable;
1491 } else {
1492 if(cltype >= p0->type->table_size) {
1493 var1 = 0;
1494 } else {
1495 var1 = p0->type->type_table[cltype] == idtype;
1496 }
1497 }
1498 if (unlikely(!var1)) {
1499 var_class_name = p0 == NULL ? "null" : p0->type->name;
1500 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
1501 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 448);
1502 show_backtrace(1);
1503 }
1504 var_t = p0;
1505 {
1506 { /* Inline poset#POSetElement#tos (self) on <self:POSetElement[nullable Object]> */
1507 var4 = self->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <self:POSetElement[nullable Object]> */
1508 if (unlikely(var4 == NULL)) {
1509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
1510 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
1511 show_backtrace(1);
1512 }
1513 var2 = var4;
1514 RET_LABEL3:(void)0;
1515 }
1516 }
1517 {
1518 var5 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var2, var_t);
1519 }
1520 var = var5;
1521 goto RET_LABEL;
1522 RET_LABEL:;
1523 return var;
1524 }
1525 /* method poset#POSetElement#< for (self: POSetElement[nullable Object], nullable Object): Bool */
1526 short int poset___poset__POSetElement____60d(val* self, val* p0) {
1527 short int var /* : Bool */;
1528 short int var1 /* : Bool */;
1529 int cltype;
1530 int idtype;
1531 const struct type* type_struct;
1532 short int is_nullable;
1533 const char* var_class_name;
1534 val* var_t /* var t: nullable Object */;
1535 short int var2 /* : Bool */;
1536 val* var3 /* : nullable Object */;
1537 val* var5 /* : nullable Object */;
1538 short int var6 /* : Bool */;
1539 short int var7 /* : Bool */;
1540 short int var_ /* var : Bool */;
1541 val* var8 /* : HashSet[nullable Object] */;
1542 val* var10 /* : HashSet[nullable Object] */;
1543 short int var11 /* : Bool */;
1544 /* Covariant cast for argument 0 (t) <p0:nullable Object> isa E */
1545 /* <p0:nullable Object> isa E */
1546 type_struct = self->type->resolution_table->types[COLOR_poset__POSetElement___35dE];
1547 cltype = type_struct->color;
1548 idtype = type_struct->id;
1549 is_nullable = type_struct->is_nullable;
1550 if(p0 == NULL) {
1551 var1 = is_nullable;
1552 } else {
1553 if(cltype >= p0->type->table_size) {
1554 var1 = 0;
1555 } else {
1556 var1 = p0->type->type_table[cltype] == idtype;
1557 }
1558 }
1559 if (unlikely(!var1)) {
1560 var_class_name = p0 == NULL ? "null" : p0->type->name;
1561 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
1562 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 463);
1563 show_backtrace(1);
1564 }
1565 var_t = p0;
1566 {
1567 { /* Inline poset#POSetElement#element (self) on <self:POSetElement[nullable Object]> */
1568 var5 = self->attrs[COLOR_poset__POSetElement___element].val; /* _element on <self:POSetElement[nullable Object]> */
1569 var3 = var5;
1570 RET_LABEL4:(void)0;
1571 }
1572 }
1573 if (var_t == NULL) {
1574 var6 = (var3 != NULL);
1575 } else {
1576 var7 = ((short int (*)(val* self, val* p0))(var_t->class->vft[COLOR_standard__kernel__Object___33d_61d]))(var_t, var3) /* != on <var_t:nullable Object>*/;
1577 var6 = var7;
1578 }
1579 var_ = var6;
1580 if (var6){
1581 {
1582 { /* Inline poset#POSetElement#tos (self) on <self:POSetElement[nullable Object]> */
1583 var10 = self->attrs[COLOR_poset__POSetElement___tos].val; /* _tos on <self:POSetElement[nullable Object]> */
1584 if (unlikely(var10 == NULL)) {
1585 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tos");
1586 PRINT_ERROR(" (%s:%d)\n", FILE_poset, 389);
1587 show_backtrace(1);
1588 }
1589 var8 = var10;
1590 RET_LABEL9:(void)0;
1591 }
1592 }
1593 {
1594 var11 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var8, var_t);
1595 }
1596 var2 = var11;
1597 } else {
1598 var2 = var_;
1599 }
1600 var = var2;
1601 goto RET_LABEL;
1602 RET_LABEL:;
1603 return var;
1604 }
1605 /* method poset#POSetElement#init for (self: POSetElement[nullable Object]) */
1606 void poset___poset__POSetElement___standard__kernel__Object__init(val* self) {
1607 {
1608 ((void (*)(val* self))(self->class->vft[COLOR_poset___poset__POSetElement___standard__kernel__Object__init]))(self) /* init on <self:POSetElement[nullable Object]>*/;
1609 }
1610 RET_LABEL:;
1611 }