pep8analysis: add copyright info for viz.js
[nit.git] / c_src / poset.sep.1.c
1 #include "poset.sep.0.h"
2 /* method poset#POSet#iterator for (self: POSet[Object]): Iterator[Object] */
3 val* poset__POSet__iterator(val* self) {
4 val* var /* : Iterator[Object] */;
5 val* var1 /* : HashMap[Object, POSetElement[Object]] */;
6 val* var2 /* : Collection[Object] */;
7 val* var3 /* : Iterator[nullable Object] */;
8 var1 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
9 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__MapRead__keys]))(var1) /* keys on <var1:HashMap[Object, POSetElement[Object]]>*/;
10 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__iterator]))(var2) /* iterator on <var2:Collection[Object](HashMapKeys[Object, POSetElement[Object]])>*/;
11 var = var3;
12 goto RET_LABEL;
13 RET_LABEL:;
14 return var;
15 }
16 /* method poset#POSet#iterator for (self: Object): Iterator[nullable Object] */
17 val* VIRTUAL_poset__POSet__iterator(val* self) {
18 val* var /* : Iterator[nullable Object] */;
19 val* var1 /* : Iterator[Object] */;
20 var1 = poset__POSet__iterator(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method poset#POSet#elements for (self: POSet[Object]): HashMap[Object, POSetElement[Object]] */
26 val* poset__POSet__elements(val* self) {
27 val* var /* : HashMap[Object, POSetElement[Object]] */;
28 val* var1 /* : HashMap[Object, POSetElement[Object]] */;
29 var1 = self->attrs[COLOR_poset__POSet___64delements].val; /* @elements on <self:POSet[Object]> */
30 if (var1 == NULL) {
31 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @elements");
32 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 31);
33 show_backtrace(1);
34 }
35 var = var1;
36 RET_LABEL:;
37 return var;
38 }
39 /* method poset#POSet#elements for (self: Object): HashMap[Object, POSetElement[Object]] */
40 val* VIRTUAL_poset__POSet__elements(val* self) {
41 val* var /* : HashMap[Object, POSetElement[Object]] */;
42 val* var1 /* : HashMap[Object, POSetElement[Object]] */;
43 var1 = poset__POSet__elements(self);
44 var = var1;
45 RET_LABEL:;
46 return var;
47 }
48 /* method poset#POSet#elements= for (self: POSet[Object], HashMap[Object, POSetElement[Object]]) */
49 void poset__POSet__elements_61d(val* self, val* p0) {
50 short int var /* : Bool */;
51 int cltype;
52 int idtype;
53 const struct type* type_struct;
54 const char* var_class_name;
55 /* Covariant cast for argument 0 (elements) <p0:HashMap[Object, POSetElement[Object]]> isa HashMap[POSet#0, POSetElement[POSet#0]] */
56 /* <p0:HashMap[Object, POSetElement[Object]]> isa HashMap[POSet#0, POSetElement[POSet#0]] */
57 type_struct = self->type->resolution_table->types[COLOR_hash_collection__HashMapposet__POSet_FT0poset__POSetElementposet__POSet_FT0];
58 cltype = type_struct->color;
59 idtype = type_struct->id;
60 if(cltype >= p0->type->table_size) {
61 var = 0;
62 } else {
63 var = p0->type->type_table[cltype] == idtype;
64 }
65 if (!var) {
66 var_class_name = p0 == NULL ? "null" : p0->type->name;
67 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap[POSet#0, POSetElement[POSet#0]]", var_class_name);
68 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 31);
69 show_backtrace(1);
70 }
71 self->attrs[COLOR_poset__POSet___64delements].val = p0; /* @elements on <self:POSet[Object]> */
72 RET_LABEL:;
73 }
74 /* method poset#POSet#elements= for (self: Object, HashMap[Object, POSetElement[Object]]) */
75 void VIRTUAL_poset__POSet__elements_61d(val* self, val* p0) {
76 poset__POSet__elements_61d(self, p0);
77 RET_LABEL:;
78 }
79 /* method poset#POSet#has for (self: POSet[Object], Object): Bool */
80 short int poset__POSet__has(val* self, val* p0) {
81 short int var /* : Bool */;
82 short int var1 /* : Bool */;
83 int cltype;
84 int idtype;
85 const struct type* type_struct;
86 const char* var_class_name;
87 val* var_e /* var e: Object */;
88 val* var2 /* : HashMap[Object, POSetElement[Object]] */;
89 val* var3 /* : Collection[Object] */;
90 short int var4 /* : Bool */;
91 /* Covariant cast for argument 0 (e) <p0:Object> isa Collection#0 */
92 /* <p0:Object> isa Collection#0 */
93 type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collection_FT0];
94 cltype = type_struct->color;
95 idtype = type_struct->id;
96 if(cltype >= p0->type->table_size) {
97 var1 = 0;
98 } else {
99 var1 = p0->type->type_table[cltype] == idtype;
100 }
101 if (!var1) {
102 var_class_name = p0 == NULL ? "null" : p0->type->name;
103 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name);
104 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 34);
105 show_backtrace(1);
106 }
107 var_e = p0;
108 var2 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
109 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__MapRead__keys]))(var2) /* keys on <var2:HashMap[Object, POSetElement[Object]]>*/;
110 var4 = ((short int (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__Collection__has]))(var3, var_e) /* has on <var3:Collection[Object](HashMapKeys[Object, POSetElement[Object]])>*/;
111 var = var4;
112 goto RET_LABEL;
113 RET_LABEL:;
114 return var;
115 }
116 /* method poset#POSet#has for (self: Object, nullable Object): Bool */
117 short int VIRTUAL_poset__POSet__has(val* self, val* p0) {
118 short int var /* : Bool */;
119 short int var1 /* : Bool */;
120 var1 = poset__POSet__has(self, p0);
121 var = var1;
122 RET_LABEL:;
123 return var;
124 }
125 /* method poset#POSet#add_node for (self: POSet[Object], Object): POSetElement[Object] */
126 val* poset__POSet__add_node(val* self, val* p0) {
127 val* var /* : POSetElement[Object] */;
128 short int var1 /* : Bool */;
129 int cltype;
130 int idtype;
131 const struct type* type_struct;
132 const char* var_class_name;
133 val* var_e /* var e: Object */;
134 val* var2 /* : HashMap[Object, POSetElement[Object]] */;
135 val* var3 /* : Collection[Object] */;
136 short int var4 /* : Bool */;
137 val* var5 /* : HashMap[Object, POSetElement[Object]] */;
138 val* var6 /* : nullable Object */;
139 val* var7 /* : POSetElement[Object] */;
140 val* var8 /* : HashMap[Object, POSetElement[Object]] */;
141 long var9 /* : Int */;
142 val* var_poe /* var poe: POSetElement[Object] */;
143 val* var10 /* : HashSet[Object] */;
144 val* var11 /* : HashSet[Object] */;
145 val* var12 /* : HashMap[Object, POSetElement[Object]] */;
146 /* Covariant cast for argument 0 (e) <p0:Object> isa POSet#0 */
147 /* <p0:Object> isa POSet#0 */
148 type_struct = self->type->resolution_table->types[COLOR_poset__POSet_FT0];
149 cltype = type_struct->color;
150 idtype = type_struct->id;
151 if(cltype >= p0->type->table_size) {
152 var1 = 0;
153 } else {
154 var1 = p0->type->type_table[cltype] == idtype;
155 }
156 if (!var1) {
157 var_class_name = p0 == NULL ? "null" : p0->type->name;
158 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet#0", var_class_name);
159 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 36);
160 show_backtrace(1);
161 }
162 var_e = p0;
163 var2 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
164 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__MapRead__keys]))(var2) /* keys on <var2:HashMap[Object, POSetElement[Object]]>*/;
165 var4 = ((short int (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__Collection__has]))(var3, var_e) /* has on <var3:Collection[Object](HashMapKeys[Object, POSetElement[Object]])>*/;
166 if (var4){
167 var5 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
168 var6 = ((val* (*)(val*, val*))(var5->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var5, var_e) /* [] on <var5:HashMap[Object, POSetElement[Object]]>*/;
169 var = var6;
170 goto RET_LABEL;
171 } else {
172 }
173 var7 = NEW_poset__POSetElement(self->type->resolution_table->types[COLOR_poset__POSetElementposet__POSet_FT0]);
174 var8 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
175 var9 = ((long (*)(val*))(var8->class->vft[COLOR_abstract_collection__MapRead__length]))(var8) /* length on <var8:HashMap[Object, POSetElement[Object]]>*/;
176 ((void (*)(val*, val*, val*, long))(var7->class->vft[COLOR_poset__POSetElement__init]))(var7, self, var_e, var9) /* init on <var7:POSetElement[Object]>*/;
177 var_poe = var7;
178 var10 = ((val* (*)(val*))(var_poe->class->vft[COLOR_poset__POSetElement__tos]))(var_poe) /* tos on <var_poe:POSetElement[Object]>*/;
179 ((void (*)(val*, val*))(var10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var10, var_e) /* add on <var10:HashSet[Object]>*/;
180 var11 = ((val* (*)(val*))(var_poe->class->vft[COLOR_poset__POSetElement__froms]))(var_poe) /* froms on <var_poe:POSetElement[Object]>*/;
181 ((void (*)(val*, val*))(var11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var11, var_e) /* add on <var11:HashSet[Object]>*/;
182 var12 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
183 ((void (*)(val*, val*, val*))(var12->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var12, var_e, var_poe) /* []= on <var12:HashMap[Object, POSetElement[Object]]>*/;
184 var = var_poe;
185 goto RET_LABEL;
186 RET_LABEL:;
187 return var;
188 }
189 /* method poset#POSet#add_node for (self: Object, Object): POSetElement[Object] */
190 val* VIRTUAL_poset__POSet__add_node(val* self, val* p0) {
191 val* var /* : POSetElement[Object] */;
192 val* var1 /* : POSetElement[Object] */;
193 var1 = poset__POSet__add_node(self, p0);
194 var = var1;
195 RET_LABEL:;
196 return var;
197 }
198 /* method poset#POSet#[] for (self: POSet[Object], Object): POSetElement[Object] */
199 val* poset__POSet___91d_93d(val* self, val* p0) {
200 val* var /* : POSetElement[Object] */;
201 short int var1 /* : Bool */;
202 int cltype;
203 int idtype;
204 const struct type* type_struct;
205 const char* var_class_name;
206 val* var_e /* var e: Object */;
207 val* var2 /* : HashMap[Object, POSetElement[Object]] */;
208 val* var3 /* : Collection[Object] */;
209 short int var4 /* : Bool */;
210 val* var5 /* : HashMap[Object, POSetElement[Object]] */;
211 val* var6 /* : nullable Object */;
212 /* Covariant cast for argument 0 (e) <p0:Object> isa POSet#0 */
213 /* <p0:Object> isa POSet#0 */
214 type_struct = self->type->resolution_table->types[COLOR_poset__POSet_FT0];
215 cltype = type_struct->color;
216 idtype = type_struct->id;
217 if(cltype >= p0->type->table_size) {
218 var1 = 0;
219 } else {
220 var1 = p0->type->type_table[cltype] == idtype;
221 }
222 if (!var1) {
223 var_class_name = p0 == NULL ? "null" : p0->type->name;
224 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet#0", var_class_name);
225 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 50);
226 show_backtrace(1);
227 }
228 var_e = p0;
229 var2 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
230 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__MapRead__keys]))(var2) /* keys on <var2:HashMap[Object, POSetElement[Object]]>*/;
231 var4 = ((short int (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__Collection__has]))(var3, var_e) /* has on <var3:Collection[Object](HashMapKeys[Object, POSetElement[Object]])>*/;
232 if (!var4) {
233 fprintf(stderr, "Runtime error: %s", "Assert failed");
234 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 63);
235 show_backtrace(1);
236 }
237 var5 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
238 var6 = ((val* (*)(val*, val*))(var5->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var5, var_e) /* [] on <var5:HashMap[Object, POSetElement[Object]]>*/;
239 var = var6;
240 goto RET_LABEL;
241 RET_LABEL:;
242 return var;
243 }
244 /* method poset#POSet#[] for (self: Object, Object): POSetElement[Object] */
245 val* VIRTUAL_poset__POSet___91d_93d(val* self, val* p0) {
246 val* var /* : POSetElement[Object] */;
247 val* var1 /* : POSetElement[Object] */;
248 var1 = poset__POSet___91d_93d(self, p0);
249 var = var1;
250 RET_LABEL:;
251 return var;
252 }
253 /* method poset#POSet#add_edge for (self: POSet[Object], Object, Object) */
254 void poset__POSet__add_edge(val* self, val* p0, val* p1) {
255 short int var /* : Bool */;
256 int cltype;
257 int idtype;
258 const struct type* type_struct;
259 const char* var_class_name;
260 short int var1 /* : Bool */;
261 int cltype2;
262 int idtype3;
263 const struct type* type_struct4;
264 const char* var_class_name5;
265 val* var_f /* var f: Object */;
266 val* var_t /* var t: Object */;
267 val* var6 /* : POSetElement[Object] */;
268 val* var_fe /* var fe: POSetElement[Object] */;
269 val* var7 /* : POSetElement[Object] */;
270 val* var_te /* var te: POSetElement[Object] */;
271 val* var8 /* : HashSet[Object] */;
272 short int var9 /* : Bool */;
273 val* var10 /* : HashSet[Object] */;
274 val* var11 /* : Iterator[nullable Object] */;
275 short int var12 /* : Bool */;
276 val* var13 /* : nullable Object */;
277 val* var_ff /* var ff: Object */;
278 val* var14 /* : HashMap[Object, POSetElement[Object]] */;
279 val* var15 /* : nullable Object */;
280 val* var_ffe /* var ffe: POSetElement[Object] */;
281 val* var16 /* : HashSet[Object] */;
282 val* var17 /* : Iterator[nullable Object] */;
283 short int var18 /* : Bool */;
284 val* var19 /* : nullable Object */;
285 val* var_tt /* var tt: Object */;
286 val* var20 /* : HashMap[Object, POSetElement[Object]] */;
287 val* var21 /* : nullable Object */;
288 val* var_tte /* var tte: POSetElement[Object] */;
289 val* var22 /* : HashSet[Object] */;
290 val* var23 /* : HashSet[Object] */;
291 val* var25 /* : HashSet[Object] */;
292 short int var26 /* : Bool */;
293 val* var27 /* : HashSet[Object] */;
294 val* var28 /* : Array[nullable Object] */;
295 val* var29 /* : Iterator[nullable Object] */;
296 short int var30 /* : Bool */;
297 val* var31 /* : nullable Object */;
298 val* var_x /* var x: Object */;
299 val* var32 /* : HashMap[Object, POSetElement[Object]] */;
300 val* var33 /* : nullable Object */;
301 val* var_xe /* var xe: POSetElement[Object] */;
302 val* var34 /* : HashSet[Object] */;
303 short int var35 /* : Bool */;
304 val* var36 /* : HashSet[Object] */;
305 val* var37 /* : HashSet[Object] */;
306 val* var39 /* : HashSet[Object] */;
307 val* var40 /* : Array[nullable Object] */;
308 val* var41 /* : Iterator[nullable Object] */;
309 short int var42 /* : Bool */;
310 val* var43 /* : nullable Object */;
311 val* var_x44 /* var x: Object */;
312 val* var45 /* : HashMap[Object, POSetElement[Object]] */;
313 val* var46 /* : nullable Object */;
314 val* var_xe47 /* var xe: POSetElement[Object] */;
315 val* var48 /* : HashSet[Object] */;
316 short int var49 /* : Bool */;
317 val* var50 /* : HashSet[Object] */;
318 val* var51 /* : HashSet[Object] */;
319 val* var53 /* : HashSet[Object] */;
320 val* var54 /* : HashSet[Object] */;
321 /* Covariant cast for argument 0 (f) <p0:Object> isa POSet#0 */
322 /* <p0:Object> isa POSet#0 */
323 type_struct = self->type->resolution_table->types[COLOR_poset__POSet_FT0];
324 cltype = type_struct->color;
325 idtype = type_struct->id;
326 if(cltype >= p0->type->table_size) {
327 var = 0;
328 } else {
329 var = p0->type->type_table[cltype] == idtype;
330 }
331 if (!var) {
332 var_class_name = p0 == NULL ? "null" : p0->type->name;
333 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet#0", var_class_name);
334 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 67);
335 show_backtrace(1);
336 }
337 /* Covariant cast for argument 1 (t) <p1:Object> isa POSet#0 */
338 /* <p1:Object> isa POSet#0 */
339 type_struct4 = self->type->resolution_table->types[COLOR_poset__POSet_FT0];
340 cltype2 = type_struct4->color;
341 idtype3 = type_struct4->id;
342 if(cltype2 >= p1->type->table_size) {
343 var1 = 0;
344 } else {
345 var1 = p1->type->type_table[cltype2] == idtype3;
346 }
347 if (!var1) {
348 var_class_name5 = p1 == NULL ? "null" : p1->type->name;
349 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet#0", var_class_name5);
350 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 67);
351 show_backtrace(1);
352 }
353 var_f = p0;
354 var_t = p1;
355 var6 = ((val* (*)(val*, val*))(self->class->vft[COLOR_poset__POSet__add_node]))(self, var_f) /* add_node on <self:POSet[Object]>*/;
356 var_fe = var6;
357 var7 = ((val* (*)(val*, val*))(self->class->vft[COLOR_poset__POSet__add_node]))(self, var_t) /* add_node on <self:POSet[Object]>*/;
358 var_te = var7;
359 var8 = ((val* (*)(val*))(var_fe->class->vft[COLOR_poset__POSetElement__tos]))(var_fe) /* tos on <var_fe:POSetElement[Object]>*/;
360 var9 = ((short int (*)(val*, val*))(var8->class->vft[COLOR_abstract_collection__Collection__has]))(var8, var_t) /* has on <var8:HashSet[Object]>*/;
361 if (var9){
362 goto RET_LABEL;
363 } else {
364 }
365 var10 = ((val* (*)(val*))(var_fe->class->vft[COLOR_poset__POSetElement__froms]))(var_fe) /* froms on <var_fe:POSetElement[Object]>*/;
366 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__iterator]))(var10) /* iterator on <var10:HashSet[Object]>*/;
367 for(;;) {
368 var12 = ((short int (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var11) /* is_ok on <var11:Iterator[nullable Object]>*/;
369 if(!var12) break;
370 var13 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__item]))(var11) /* item on <var11:Iterator[nullable Object]>*/;
371 var_ff = var13;
372 var14 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
373 var15 = ((val* (*)(val*, val*))(var14->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var14, var_ff) /* [] on <var14:HashMap[Object, POSetElement[Object]]>*/;
374 var_ffe = var15;
375 var16 = ((val* (*)(val*))(var_te->class->vft[COLOR_poset__POSetElement__tos]))(var_te) /* tos on <var_te:POSetElement[Object]>*/;
376 var17 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__iterator]))(var16) /* iterator on <var16:HashSet[Object]>*/;
377 for(;;) {
378 var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var17) /* is_ok on <var17:Iterator[nullable Object]>*/;
379 if(!var18) break;
380 var19 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__item]))(var17) /* item on <var17:Iterator[nullable Object]>*/;
381 var_tt = var19;
382 var20 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
383 var21 = ((val* (*)(val*, val*))(var20->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var20, var_tt) /* [] on <var20:HashMap[Object, POSetElement[Object]]>*/;
384 var_tte = var21;
385 var22 = ((val* (*)(val*))(var_tte->class->vft[COLOR_poset__POSetElement__froms]))(var_tte) /* froms on <var_tte:POSetElement[Object]>*/;
386 ((void (*)(val*, val*))(var22->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var22, var_ff) /* add on <var22:HashSet[Object]>*/;
387 var23 = ((val* (*)(val*))(var_ffe->class->vft[COLOR_poset__POSetElement__tos]))(var_ffe) /* tos on <var_ffe:POSetElement[Object]>*/;
388 ((void (*)(val*, val*))(var23->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var23, var_tt) /* add on <var23:HashSet[Object]>*/;
389 CONTINUE_label: (void)0;
390 ((void (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__next]))(var17) /* next on <var17:Iterator[nullable Object]>*/;
391 }
392 BREAK_label: (void)0;
393 CONTINUE_label24: (void)0;
394 ((void (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__next]))(var11) /* next on <var11:Iterator[nullable Object]>*/;
395 }
396 BREAK_label24: (void)0;
397 var25 = ((val* (*)(val*))(var_te->class->vft[COLOR_poset__POSetElement__tos]))(var_te) /* tos on <var_te:POSetElement[Object]>*/;
398 var26 = ((short int (*)(val*, val*))(var25->class->vft[COLOR_abstract_collection__Collection__has]))(var25, var_f) /* has on <var25:HashSet[Object]>*/;
399 if (var26){
400 goto RET_LABEL;
401 } else {
402 }
403 var27 = ((val* (*)(val*))(var_te->class->vft[COLOR_poset__POSetElement__dfroms]))(var_te) /* dfroms on <var_te:POSetElement[Object]>*/;
404 var28 = ((val* (*)(val*))(var27->class->vft[COLOR_array__Collection__to_a]))(var27) /* to_a on <var27:HashSet[Object]>*/;
405 var29 = ((val* (*)(val*))(var28->class->vft[COLOR_abstract_collection__Collection__iterator]))(var28) /* iterator on <var28:Array[nullable Object](Array[Object])>*/;
406 for(;;) {
407 var30 = ((short int (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var29) /* is_ok on <var29:Iterator[nullable Object]>*/;
408 if(!var30) break;
409 var31 = ((val* (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__item]))(var29) /* item on <var29:Iterator[nullable Object]>*/;
410 var_x = var31;
411 var32 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
412 var33 = ((val* (*)(val*, val*))(var32->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var32, var_x) /* [] on <var32:HashMap[Object, POSetElement[Object]]>*/;
413 var_xe = var33;
414 var34 = ((val* (*)(val*))(var_xe->class->vft[COLOR_poset__POSetElement__tos]))(var_xe) /* tos on <var_xe:POSetElement[Object]>*/;
415 var35 = ((short int (*)(val*, val*))(var34->class->vft[COLOR_abstract_collection__Collection__has]))(var34, var_f) /* has on <var34:HashSet[Object]>*/;
416 if (var35){
417 var36 = ((val* (*)(val*))(var_te->class->vft[COLOR_poset__POSetElement__dfroms]))(var_te) /* dfroms on <var_te:POSetElement[Object]>*/;
418 ((void (*)(val*, val*))(var36->class->vft[COLOR_abstract_collection__RemovableCollection__remove]))(var36, var_x) /* remove on <var36:HashSet[Object]>*/;
419 var37 = ((val* (*)(val*))(var_xe->class->vft[COLOR_poset__POSetElement__dtos]))(var_xe) /* dtos on <var_xe:POSetElement[Object]>*/;
420 ((void (*)(val*, val*))(var37->class->vft[COLOR_abstract_collection__RemovableCollection__remove]))(var37, var_t) /* remove on <var37:HashSet[Object]>*/;
421 } else {
422 }
423 CONTINUE_label38: (void)0;
424 ((void (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__next]))(var29) /* next on <var29:Iterator[nullable Object]>*/;
425 }
426 BREAK_label38: (void)0;
427 var39 = ((val* (*)(val*))(var_fe->class->vft[COLOR_poset__POSetElement__dtos]))(var_fe) /* dtos on <var_fe:POSetElement[Object]>*/;
428 var40 = ((val* (*)(val*))(var39->class->vft[COLOR_array__Collection__to_a]))(var39) /* to_a on <var39:HashSet[Object]>*/;
429 var41 = ((val* (*)(val*))(var40->class->vft[COLOR_abstract_collection__Collection__iterator]))(var40) /* iterator on <var40:Array[nullable Object](Array[Object])>*/;
430 for(;;) {
431 var42 = ((short int (*)(val*))(var41->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var41) /* is_ok on <var41:Iterator[nullable Object]>*/;
432 if(!var42) break;
433 var43 = ((val* (*)(val*))(var41->class->vft[COLOR_abstract_collection__Iterator__item]))(var41) /* item on <var41:Iterator[nullable Object]>*/;
434 var_x44 = var43;
435 var45 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
436 var46 = ((val* (*)(val*, val*))(var45->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var45, var_x44) /* [] on <var45:HashMap[Object, POSetElement[Object]]>*/;
437 var_xe47 = var46;
438 var48 = ((val* (*)(val*))(var_xe47->class->vft[COLOR_poset__POSetElement__froms]))(var_xe47) /* froms on <var_xe47:POSetElement[Object]>*/;
439 var49 = ((short int (*)(val*, val*))(var48->class->vft[COLOR_abstract_collection__Collection__has]))(var48, var_t) /* has on <var48:HashSet[Object]>*/;
440 if (var49){
441 var50 = ((val* (*)(val*))(var_xe47->class->vft[COLOR_poset__POSetElement__dfroms]))(var_xe47) /* dfroms on <var_xe47:POSetElement[Object]>*/;
442 ((void (*)(val*, val*))(var50->class->vft[COLOR_abstract_collection__RemovableCollection__remove]))(var50, var_f) /* remove on <var50:HashSet[Object]>*/;
443 var51 = ((val* (*)(val*))(var_fe->class->vft[COLOR_poset__POSetElement__dtos]))(var_fe) /* dtos on <var_fe:POSetElement[Object]>*/;
444 ((void (*)(val*, val*))(var51->class->vft[COLOR_abstract_collection__RemovableCollection__remove]))(var51, var_x44) /* remove on <var51:HashSet[Object]>*/;
445 } else {
446 }
447 CONTINUE_label52: (void)0;
448 ((void (*)(val*))(var41->class->vft[COLOR_abstract_collection__Iterator__next]))(var41) /* next on <var41:Iterator[nullable Object]>*/;
449 }
450 BREAK_label52: (void)0;
451 var53 = ((val* (*)(val*))(var_fe->class->vft[COLOR_poset__POSetElement__dtos]))(var_fe) /* dtos on <var_fe:POSetElement[Object]>*/;
452 ((void (*)(val*, val*))(var53->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var53, var_t) /* add on <var53:HashSet[Object]>*/;
453 var54 = ((val* (*)(val*))(var_te->class->vft[COLOR_poset__POSetElement__dfroms]))(var_te) /* dfroms on <var_te:POSetElement[Object]>*/;
454 ((void (*)(val*, val*))(var54->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var54, var_f) /* add on <var54:HashSet[Object]>*/;
455 RET_LABEL:;
456 }
457 /* method poset#POSet#add_edge for (self: Object, Object, Object) */
458 void VIRTUAL_poset__POSet__add_edge(val* self, val* p0, val* p1) {
459 poset__POSet__add_edge(self, p0, p1);
460 RET_LABEL:;
461 }
462 /* method poset#POSet#has_edge for (self: POSet[Object], Object, Object): Bool */
463 short int poset__POSet__has_edge(val* self, val* p0, val* p1) {
464 short int var /* : Bool */;
465 short int var1 /* : Bool */;
466 int cltype;
467 int idtype;
468 const struct type* type_struct;
469 const char* var_class_name;
470 short int var2 /* : Bool */;
471 int cltype3;
472 int idtype4;
473 const struct type* type_struct5;
474 const char* var_class_name6;
475 val* var_f /* var f: Object */;
476 val* var_t /* var t: Object */;
477 val* var7 /* : HashMap[Object, POSetElement[Object]] */;
478 val* var8 /* : Collection[Object] */;
479 short int var9 /* : Bool */;
480 short int var10 /* : Bool */;
481 short int var11 /* : Bool */;
482 val* var12 /* : HashMap[Object, POSetElement[Object]] */;
483 val* var13 /* : nullable Object */;
484 val* var_fe /* var fe: POSetElement[Object] */;
485 val* var14 /* : HashSet[Object] */;
486 short int var15 /* : Bool */;
487 /* Covariant cast for argument 0 (f) <p0:Object> isa POSet#0 */
488 /* <p0:Object> isa POSet#0 */
489 type_struct = self->type->resolution_table->types[COLOR_poset__POSet_FT0];
490 cltype = type_struct->color;
491 idtype = type_struct->id;
492 if(cltype >= p0->type->table_size) {
493 var1 = 0;
494 } else {
495 var1 = p0->type->type_table[cltype] == idtype;
496 }
497 if (!var1) {
498 var_class_name = p0 == NULL ? "null" : p0->type->name;
499 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet#0", var_class_name);
500 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 109);
501 show_backtrace(1);
502 }
503 /* Covariant cast for argument 1 (t) <p1:Object> isa POSet#0 */
504 /* <p1:Object> isa POSet#0 */
505 type_struct5 = self->type->resolution_table->types[COLOR_poset__POSet_FT0];
506 cltype3 = type_struct5->color;
507 idtype4 = type_struct5->id;
508 if(cltype3 >= p1->type->table_size) {
509 var2 = 0;
510 } else {
511 var2 = p1->type->type_table[cltype3] == idtype4;
512 }
513 if (!var2) {
514 var_class_name6 = p1 == NULL ? "null" : p1->type->name;
515 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet#0", var_class_name6);
516 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 109);
517 show_backtrace(1);
518 }
519 var_f = p0;
520 var_t = p1;
521 var7 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
522 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__MapRead__keys]))(var7) /* keys on <var7:HashMap[Object, POSetElement[Object]]>*/;
523 var9 = ((short int (*)(val*, val*))(var8->class->vft[COLOR_abstract_collection__Collection__has]))(var8, var_f) /* has on <var8:Collection[Object](HashMapKeys[Object, POSetElement[Object]])>*/;
524 var10 = !var9;
525 if (var10){
526 var11 = 0;
527 var = var11;
528 goto RET_LABEL;
529 } else {
530 }
531 var12 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
532 var13 = ((val* (*)(val*, val*))(var12->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var12, var_f) /* [] on <var12:HashMap[Object, POSetElement[Object]]>*/;
533 var_fe = var13;
534 var14 = ((val* (*)(val*))(var_fe->class->vft[COLOR_poset__POSetElement__tos]))(var_fe) /* tos on <var_fe:POSetElement[Object]>*/;
535 var15 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_abstract_collection__Collection__has]))(var14, var_t) /* has on <var14:HashSet[Object]>*/;
536 var = var15;
537 goto RET_LABEL;
538 RET_LABEL:;
539 return var;
540 }
541 /* method poset#POSet#has_edge for (self: Object, Object, Object): Bool */
542 short int VIRTUAL_poset__POSet__has_edge(val* self, val* p0, val* p1) {
543 short int var /* : Bool */;
544 short int var1 /* : Bool */;
545 var1 = poset__POSet__has_edge(self, p0, p1);
546 var = var1;
547 RET_LABEL:;
548 return var;
549 }
550 /* method poset#POSet#has_direct_edge for (self: POSet[Object], Object, Object): Bool */
551 short int poset__POSet__has_direct_edge(val* self, val* p0, val* p1) {
552 short int var /* : Bool */;
553 short int var1 /* : Bool */;
554 int cltype;
555 int idtype;
556 const struct type* type_struct;
557 const char* var_class_name;
558 short int var2 /* : Bool */;
559 int cltype3;
560 int idtype4;
561 const struct type* type_struct5;
562 const char* var_class_name6;
563 val* var_f /* var f: Object */;
564 val* var_t /* var t: Object */;
565 val* var7 /* : HashMap[Object, POSetElement[Object]] */;
566 val* var8 /* : Collection[Object] */;
567 short int var9 /* : Bool */;
568 short int var10 /* : Bool */;
569 short int var11 /* : Bool */;
570 val* var12 /* : HashMap[Object, POSetElement[Object]] */;
571 val* var13 /* : nullable Object */;
572 val* var_fe /* var fe: POSetElement[Object] */;
573 val* var14 /* : HashSet[Object] */;
574 short int var15 /* : Bool */;
575 /* Covariant cast for argument 0 (f) <p0:Object> isa POSet#0 */
576 /* <p0:Object> isa POSet#0 */
577 type_struct = self->type->resolution_table->types[COLOR_poset__POSet_FT0];
578 cltype = type_struct->color;
579 idtype = type_struct->id;
580 if(cltype >= p0->type->table_size) {
581 var1 = 0;
582 } else {
583 var1 = p0->type->type_table[cltype] == idtype;
584 }
585 if (!var1) {
586 var_class_name = p0 == NULL ? "null" : p0->type->name;
587 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet#0", var_class_name);
588 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 118);
589 show_backtrace(1);
590 }
591 /* Covariant cast for argument 1 (t) <p1:Object> isa POSet#0 */
592 /* <p1:Object> isa POSet#0 */
593 type_struct5 = self->type->resolution_table->types[COLOR_poset__POSet_FT0];
594 cltype3 = type_struct5->color;
595 idtype4 = type_struct5->id;
596 if(cltype3 >= p1->type->table_size) {
597 var2 = 0;
598 } else {
599 var2 = p1->type->type_table[cltype3] == idtype4;
600 }
601 if (!var2) {
602 var_class_name6 = p1 == NULL ? "null" : p1->type->name;
603 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet#0", var_class_name6);
604 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 118);
605 show_backtrace(1);
606 }
607 var_f = p0;
608 var_t = p1;
609 var7 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
610 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__MapRead__keys]))(var7) /* keys on <var7:HashMap[Object, POSetElement[Object]]>*/;
611 var9 = ((short int (*)(val*, val*))(var8->class->vft[COLOR_abstract_collection__Collection__has]))(var8, var_f) /* has on <var8:Collection[Object](HashMapKeys[Object, POSetElement[Object]])>*/;
612 var10 = !var9;
613 if (var10){
614 var11 = 0;
615 var = var11;
616 goto RET_LABEL;
617 } else {
618 }
619 var12 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
620 var13 = ((val* (*)(val*, val*))(var12->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var12, var_f) /* [] on <var12:HashMap[Object, POSetElement[Object]]>*/;
621 var_fe = var13;
622 var14 = ((val* (*)(val*))(var_fe->class->vft[COLOR_poset__POSetElement__dtos]))(var_fe) /* dtos on <var_fe:POSetElement[Object]>*/;
623 var15 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_abstract_collection__Collection__has]))(var14, var_t) /* has on <var14:HashSet[Object]>*/;
624 var = var15;
625 goto RET_LABEL;
626 RET_LABEL:;
627 return var;
628 }
629 /* method poset#POSet#has_direct_edge for (self: Object, Object, Object): Bool */
630 short int VIRTUAL_poset__POSet__has_direct_edge(val* self, val* p0, val* p1) {
631 short int var /* : Bool */;
632 short int var1 /* : Bool */;
633 var1 = poset__POSet__has_direct_edge(self, p0, p1);
634 var = var1;
635 RET_LABEL:;
636 return var;
637 }
638 /* method poset#POSet#show_dot for (self: POSet[Object]) */
639 void poset__POSet__show_dot(val* self) {
640 val* var /* : OProcess */;
641 static val* varonce;
642 val* var1 /* : String */;
643 char* var2 /* : NativeString */;
644 long var3 /* : Int */;
645 val* var4 /* : String */;
646 static val* varonce5;
647 val* var6 /* : String */;
648 char* var7 /* : NativeString */;
649 long var8 /* : Int */;
650 val* var9 /* : String */;
651 val* var10 /* : Array[String] */;
652 long var11 /* : Int */;
653 val* var12 /* : NativeArray[String] */;
654 val* var_f /* var f: OProcess */;
655 static val* varonce13;
656 val* var14 /* : String */;
657 char* var15 /* : NativeString */;
658 long var16 /* : Int */;
659 val* var17 /* : String */;
660 val* var18 /* : HashMap[Object, POSetElement[Object]] */;
661 val* var19 /* : Collection[Object] */;
662 val* var20 /* : Iterator[nullable Object] */;
663 short int var21 /* : Bool */;
664 val* var22 /* : nullable Object */;
665 val* var_x /* var x: Object */;
666 static val* varonce23;
667 val* var24 /* : String */;
668 char* var25 /* : NativeString */;
669 long var26 /* : Int */;
670 val* var27 /* : String */;
671 static val* varonce28;
672 val* var29 /* : String */;
673 char* var30 /* : NativeString */;
674 long var31 /* : Int */;
675 val* var32 /* : String */;
676 val* var33 /* : Array[Object] */;
677 long var34 /* : Int */;
678 val* var35 /* : NativeArray[Object] */;
679 val* var36 /* : String */;
680 val* var37 /* : HashMap[Object, POSetElement[Object]] */;
681 val* var38 /* : nullable Object */;
682 val* var_xe /* var xe: POSetElement[Object] */;
683 val* var39 /* : HashSet[Object] */;
684 val* var40 /* : Iterator[nullable Object] */;
685 short int var41 /* : Bool */;
686 val* var42 /* : nullable Object */;
687 val* var_y /* var y: Object */;
688 short int var43 /* : Bool */;
689 static val* varonce44;
690 val* var45 /* : String */;
691 char* var46 /* : NativeString */;
692 long var47 /* : Int */;
693 val* var48 /* : String */;
694 static val* varonce49;
695 val* var50 /* : String */;
696 char* var51 /* : NativeString */;
697 long var52 /* : Int */;
698 val* var53 /* : String */;
699 static val* varonce54;
700 val* var55 /* : String */;
701 char* var56 /* : NativeString */;
702 long var57 /* : Int */;
703 val* var58 /* : String */;
704 val* var59 /* : Array[Object] */;
705 long var60 /* : Int */;
706 val* var61 /* : NativeArray[Object] */;
707 val* var62 /* : String */;
708 static val* varonce63;
709 val* var64 /* : String */;
710 char* var65 /* : NativeString */;
711 long var66 /* : Int */;
712 val* var67 /* : String */;
713 static val* varonce68;
714 val* var69 /* : String */;
715 char* var70 /* : NativeString */;
716 long var71 /* : Int */;
717 val* var72 /* : String */;
718 static val* varonce73;
719 val* var74 /* : String */;
720 char* var75 /* : NativeString */;
721 long var76 /* : Int */;
722 val* var77 /* : String */;
723 val* var78 /* : Array[Object] */;
724 long var79 /* : Int */;
725 val* var80 /* : NativeArray[Object] */;
726 val* var81 /* : String */;
727 static val* varonce83;
728 val* var84 /* : String */;
729 char* var85 /* : NativeString */;
730 long var86 /* : Int */;
731 val* var87 /* : String */;
732 var = NEW_exec__OProcess(&type_exec__OProcess);
733 if (varonce) {
734 var1 = varonce;
735 } else {
736 var2 = "dot";
737 var3 = 3;
738 var4 = string__NativeString__to_s_with_length(var2, var3);
739 var1 = var4;
740 varonce = var1;
741 }
742 if (varonce5) {
743 var6 = varonce5;
744 } else {
745 var7 = "-Txlib";
746 var8 = 6;
747 var9 = string__NativeString__to_s_with_length(var7, var8);
748 var6 = var9;
749 varonce5 = var6;
750 }
751 var10 = NEW_array__Array(&type_array__Arraystring__String);
752 { /* var10 = array_instance Array[String] */
753 var11 = 1;
754 var12 = NEW_array__NativeArray(var11, &type_array__NativeArraystring__String);
755 ((struct instance_array__NativeArray*)var12)->values[0] = (val*) var6;
756 ((void (*)(val*, val*, long))(var10->class->vft[COLOR_array__Array__with_native]))(var10, var12, var11) /* with_native on <var10:Array[String]>*/;
757 }
758 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_exec__OProcess__init]))(var, var1, var10) /* init on <var:OProcess>*/;
759 var_f = var;
760 if (varonce13) {
761 var14 = varonce13;
762 } else {
763 var15 = "digraph {\n";
764 var16 = 10;
765 var17 = string__NativeString__to_s_with_length(var15, var16);
766 var14 = var17;
767 varonce13 = var14;
768 }
769 ((void (*)(val*, val*))(var_f->class->vft[COLOR_stream__OStream__write]))(var_f, var14) /* write on <var_f:OProcess>*/;
770 var18 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
771 var19 = ((val* (*)(val*))(var18->class->vft[COLOR_abstract_collection__MapRead__keys]))(var18) /* keys on <var18:HashMap[Object, POSetElement[Object]]>*/;
772 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Collection__iterator]))(var19) /* iterator on <var19:Collection[Object](HashMapKeys[Object, POSetElement[Object]])>*/;
773 for(;;) {
774 var21 = ((short int (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var20) /* is_ok on <var20:Iterator[nullable Object]>*/;
775 if(!var21) break;
776 var22 = ((val* (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__item]))(var20) /* item on <var20:Iterator[nullable Object]>*/;
777 var_x = var22;
778 if (varonce23) {
779 var24 = varonce23;
780 } else {
781 var25 = "\"";
782 var26 = 1;
783 var27 = string__NativeString__to_s_with_length(var25, var26);
784 var24 = var27;
785 varonce23 = var24;
786 }
787 if (varonce28) {
788 var29 = varonce28;
789 } else {
790 var30 = "\";\n";
791 var31 = 3;
792 var32 = string__NativeString__to_s_with_length(var30, var31);
793 var29 = var32;
794 varonce28 = var29;
795 }
796 var33 = NEW_array__Array(&type_array__Arraykernel__Object);
797 { /* var33 = array_instance Array[Object] */
798 var34 = 3;
799 var35 = NEW_array__NativeArray(var34, &type_array__NativeArraykernel__Object);
800 ((struct instance_array__NativeArray*)var35)->values[0] = (val*) var24;
801 ((struct instance_array__NativeArray*)var35)->values[1] = (val*) var_x;
802 ((struct instance_array__NativeArray*)var35)->values[2] = (val*) var29;
803 ((void (*)(val*, val*, long))(var33->class->vft[COLOR_array__Array__with_native]))(var33, var35, var34) /* with_native on <var33:Array[Object]>*/;
804 }
805 var36 = ((val* (*)(val*))(var33->class->vft[COLOR_string__Object__to_s]))(var33) /* to_s on <var33:Array[Object]>*/;
806 ((void (*)(val*, val*))(var_f->class->vft[COLOR_stream__OStream__write]))(var_f, var36) /* write on <var_f:OProcess>*/;
807 var37 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
808 var38 = ((val* (*)(val*, val*))(var37->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var37, var_x) /* [] on <var37:HashMap[Object, POSetElement[Object]]>*/;
809 var_xe = var38;
810 var39 = ((val* (*)(val*))(var_xe->class->vft[COLOR_poset__POSetElement__dtos]))(var_xe) /* dtos on <var_xe:POSetElement[Object]>*/;
811 var40 = ((val* (*)(val*))(var39->class->vft[COLOR_abstract_collection__Collection__iterator]))(var39) /* iterator on <var39:HashSet[Object]>*/;
812 for(;;) {
813 var41 = ((short int (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var40) /* is_ok on <var40:Iterator[nullable Object]>*/;
814 if(!var41) break;
815 var42 = ((val* (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__item]))(var40) /* item on <var40:Iterator[nullable Object]>*/;
816 var_y = var42;
817 var43 = ((short int (*)(val*, val*, val*))(self->class->vft[COLOR_poset__POSet__has_edge]))(self, var_y, var_x) /* has_edge on <self:POSet[Object]>*/;
818 if (var43){
819 if (varonce44) {
820 var45 = varonce44;
821 } else {
822 var46 = "\"";
823 var47 = 1;
824 var48 = string__NativeString__to_s_with_length(var46, var47);
825 var45 = var48;
826 varonce44 = var45;
827 }
828 if (varonce49) {
829 var50 = varonce49;
830 } else {
831 var51 = "\" -> \"";
832 var52 = 6;
833 var53 = string__NativeString__to_s_with_length(var51, var52);
834 var50 = var53;
835 varonce49 = var50;
836 }
837 if (varonce54) {
838 var55 = varonce54;
839 } else {
840 var56 = "\"[dir=both];\n";
841 var57 = 13;
842 var58 = string__NativeString__to_s_with_length(var56, var57);
843 var55 = var58;
844 varonce54 = var55;
845 }
846 var59 = NEW_array__Array(&type_array__Arraykernel__Object);
847 { /* var59 = array_instance Array[Object] */
848 var60 = 5;
849 var61 = NEW_array__NativeArray(var60, &type_array__NativeArraykernel__Object);
850 ((struct instance_array__NativeArray*)var61)->values[0] = (val*) var45;
851 ((struct instance_array__NativeArray*)var61)->values[1] = (val*) var_x;
852 ((struct instance_array__NativeArray*)var61)->values[2] = (val*) var50;
853 ((struct instance_array__NativeArray*)var61)->values[3] = (val*) var_y;
854 ((struct instance_array__NativeArray*)var61)->values[4] = (val*) var55;
855 ((void (*)(val*, val*, long))(var59->class->vft[COLOR_array__Array__with_native]))(var59, var61, var60) /* with_native on <var59:Array[Object]>*/;
856 }
857 var62 = ((val* (*)(val*))(var59->class->vft[COLOR_string__Object__to_s]))(var59) /* to_s on <var59:Array[Object]>*/;
858 ((void (*)(val*, val*))(var_f->class->vft[COLOR_stream__OStream__write]))(var_f, var62) /* write on <var_f:OProcess>*/;
859 } else {
860 if (varonce63) {
861 var64 = varonce63;
862 } else {
863 var65 = "\"";
864 var66 = 1;
865 var67 = string__NativeString__to_s_with_length(var65, var66);
866 var64 = var67;
867 varonce63 = var64;
868 }
869 if (varonce68) {
870 var69 = varonce68;
871 } else {
872 var70 = "\" -> \"";
873 var71 = 6;
874 var72 = string__NativeString__to_s_with_length(var70, var71);
875 var69 = var72;
876 varonce68 = var69;
877 }
878 if (varonce73) {
879 var74 = varonce73;
880 } else {
881 var75 = "\";\n";
882 var76 = 3;
883 var77 = string__NativeString__to_s_with_length(var75, var76);
884 var74 = var77;
885 varonce73 = var74;
886 }
887 var78 = NEW_array__Array(&type_array__Arraykernel__Object);
888 { /* var78 = array_instance Array[Object] */
889 var79 = 5;
890 var80 = NEW_array__NativeArray(var79, &type_array__NativeArraykernel__Object);
891 ((struct instance_array__NativeArray*)var80)->values[0] = (val*) var64;
892 ((struct instance_array__NativeArray*)var80)->values[1] = (val*) var_x;
893 ((struct instance_array__NativeArray*)var80)->values[2] = (val*) var69;
894 ((struct instance_array__NativeArray*)var80)->values[3] = (val*) var_y;
895 ((struct instance_array__NativeArray*)var80)->values[4] = (val*) var74;
896 ((void (*)(val*, val*, long))(var78->class->vft[COLOR_array__Array__with_native]))(var78, var80, var79) /* with_native on <var78:Array[Object]>*/;
897 }
898 var81 = ((val* (*)(val*))(var78->class->vft[COLOR_string__Object__to_s]))(var78) /* to_s on <var78:Array[Object]>*/;
899 ((void (*)(val*, val*))(var_f->class->vft[COLOR_stream__OStream__write]))(var_f, var81) /* write on <var_f:OProcess>*/;
900 }
901 CONTINUE_label: (void)0;
902 ((void (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__next]))(var40) /* next on <var40:Iterator[nullable Object]>*/;
903 }
904 BREAK_label: (void)0;
905 CONTINUE_label82: (void)0;
906 ((void (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__next]))(var20) /* next on <var20:Iterator[nullable Object]>*/;
907 }
908 BREAK_label82: (void)0;
909 if (varonce83) {
910 var84 = varonce83;
911 } else {
912 var85 = "}\n";
913 var86 = 2;
914 var87 = string__NativeString__to_s_with_length(var85, var86);
915 var84 = var87;
916 varonce83 = var84;
917 }
918 ((void (*)(val*, val*))(var_f->class->vft[COLOR_stream__OStream__write]))(var_f, var84) /* write on <var_f:OProcess>*/;
919 RET_LABEL:;
920 }
921 /* method poset#POSet#show_dot for (self: Object) */
922 void VIRTUAL_poset__POSet__show_dot(val* self) {
923 poset__POSet__show_dot(self);
924 RET_LABEL:;
925 }
926 /* method poset#POSet#compare for (self: POSet[Object], Object, Object): Int */
927 long poset__POSet__compare(val* self, val* p0, val* p1) {
928 long var /* : Int */;
929 short int var1 /* : Bool */;
930 int cltype;
931 int idtype;
932 const struct type* type_struct;
933 const char* var_class_name;
934 short int var2 /* : Bool */;
935 int cltype3;
936 int idtype4;
937 const struct type* type_struct5;
938 const char* var_class_name6;
939 val* var_a /* var a: Object */;
940 val* var_b /* var b: Object */;
941 val* var7 /* : HashMap[Object, POSetElement[Object]] */;
942 val* var8 /* : nullable Object */;
943 val* var_ae /* var ae: POSetElement[Object] */;
944 val* var9 /* : HashMap[Object, POSetElement[Object]] */;
945 val* var10 /* : nullable Object */;
946 val* var_be /* var be: POSetElement[Object] */;
947 val* var11 /* : HashSet[Object] */;
948 long var12 /* : Int */;
949 val* var13 /* : HashSet[Object] */;
950 long var14 /* : Int */;
951 long var15 /* : Int */;
952 long var_res /* var res: Int */;
953 long var16 /* : Int */;
954 short int var17 /* : Bool */;
955 short int var19 /* : Bool */;
956 short int var20 /* : Bool */;
957 val* var21 /* : HashMap[Object, POSetElement[Object]] */;
958 val* var22 /* : nullable Object */;
959 long var23 /* : Int */;
960 val* var24 /* : HashMap[Object, POSetElement[Object]] */;
961 val* var25 /* : nullable Object */;
962 long var26 /* : Int */;
963 long var27 /* : Int */;
964 /* Covariant cast for argument 0 (a) <p0:Object> isa POSet#0 */
965 /* <p0:Object> isa POSet#0 */
966 type_struct = self->type->resolution_table->types[COLOR_poset__POSet_FT0];
967 cltype = type_struct->color;
968 idtype = type_struct->id;
969 if(cltype >= p0->type->table_size) {
970 var1 = 0;
971 } else {
972 var1 = p0->type->type_table[cltype] == idtype;
973 }
974 if (!var1) {
975 var_class_name = p0 == NULL ? "null" : p0->type->name;
976 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet#0", var_class_name);
977 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 151);
978 show_backtrace(1);
979 }
980 /* Covariant cast for argument 1 (b) <p1:Object> isa POSet#0 */
981 /* <p1:Object> isa POSet#0 */
982 type_struct5 = self->type->resolution_table->types[COLOR_poset__POSet_FT0];
983 cltype3 = type_struct5->color;
984 idtype4 = type_struct5->id;
985 if(cltype3 >= p1->type->table_size) {
986 var2 = 0;
987 } else {
988 var2 = p1->type->type_table[cltype3] == idtype4;
989 }
990 if (!var2) {
991 var_class_name6 = p1 == NULL ? "null" : p1->type->name;
992 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet#0", var_class_name6);
993 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 151);
994 show_backtrace(1);
995 }
996 var_a = p0;
997 var_b = p1;
998 var7 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
999 var8 = ((val* (*)(val*, val*))(var7->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var7, var_a) /* [] on <var7:HashMap[Object, POSetElement[Object]]>*/;
1000 var_ae = var8;
1001 var9 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
1002 var10 = ((val* (*)(val*, val*))(var9->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var9, var_b) /* [] on <var9:HashMap[Object, POSetElement[Object]]>*/;
1003 var_be = var10;
1004 var11 = ((val* (*)(val*))(var_ae->class->vft[COLOR_poset__POSetElement__tos]))(var_ae) /* tos on <var_ae:POSetElement[Object]>*/;
1005 var12 = ((long (*)(val*))(var11->class->vft[COLOR_abstract_collection__Collection__length]))(var11) /* length on <var11:HashSet[Object]>*/;
1006 var13 = ((val* (*)(val*))(var_be->class->vft[COLOR_poset__POSetElement__tos]))(var_be) /* tos on <var_be:POSetElement[Object]>*/;
1007 var14 = ((long (*)(val*))(var13->class->vft[COLOR_abstract_collection__Collection__length]))(var13) /* length on <var13:HashSet[Object]>*/;
1008 var15 = kernel__Int___60d_61d_62d(var12, var14);
1009 var_res = var15;
1010 var16 = 0;
1011 { /* Inline kernel#Int#!= (var_res,var16) */
1012 var19 = var_res == var16;
1013 var20 = !var19;
1014 var17 = var20;
1015 goto RET_LABEL18;
1016 RET_LABEL18:(void)0;
1017 }
1018 if (var17){
1019 var = var_res;
1020 goto RET_LABEL;
1021 } else {
1022 }
1023 var21 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
1024 var22 = ((val* (*)(val*, val*))(var21->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var21, var_a) /* [] on <var21:HashMap[Object, POSetElement[Object]]>*/;
1025 var23 = ((long (*)(val*))(var22->class->vft[COLOR_poset__POSetElement__count]))(var22) /* count on <var22:nullable Object(POSetElement[Object])>*/;
1026 var24 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSet__elements]))(self) /* elements on <self:POSet[Object]>*/;
1027 var25 = ((val* (*)(val*, val*))(var24->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var24, var_b) /* [] on <var24:HashMap[Object, POSetElement[Object]]>*/;
1028 var26 = ((long (*)(val*))(var25->class->vft[COLOR_poset__POSetElement__count]))(var25) /* count on <var25:nullable Object(POSetElement[Object])>*/;
1029 var27 = kernel__Int___60d_61d_62d(var23, var26);
1030 var = var27;
1031 goto RET_LABEL;
1032 RET_LABEL:;
1033 return var;
1034 }
1035 /* method poset#POSet#compare for (self: Object, nullable Object, nullable Object): Int */
1036 long VIRTUAL_poset__POSet__compare(val* self, val* p0, val* p1) {
1037 long var /* : Int */;
1038 long var1 /* : Int */;
1039 var1 = poset__POSet__compare(self, p0, p1);
1040 var = var1;
1041 RET_LABEL:;
1042 return var;
1043 }
1044 /* method poset#POSet#init for (self: POSet[Object]) */
1045 void poset__POSet__init(val* self) {
1046 RET_LABEL:;
1047 }
1048 /* method poset#POSet#init for (self: Object) */
1049 void VIRTUAL_poset__POSet__init(val* self) {
1050 poset__POSet__init(self);
1051 RET_LABEL:;
1052 }
1053 /* method poset#POSetElement#poset for (self: POSetElement[Object]): POSet[Object] */
1054 val* poset__POSetElement__poset(val* self) {
1055 val* var /* : POSet[Object] */;
1056 val* var1 /* : POSet[Object] */;
1057 var1 = self->attrs[COLOR_poset__POSetElement___64dposet].val; /* @poset on <self:POSetElement[Object]> */
1058 if (var1 == NULL) {
1059 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @poset");
1060 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 181);
1061 show_backtrace(1);
1062 }
1063 var = var1;
1064 RET_LABEL:;
1065 return var;
1066 }
1067 /* method poset#POSetElement#poset for (self: Object): POSet[Object] */
1068 val* VIRTUAL_poset__POSetElement__poset(val* self) {
1069 val* var /* : POSet[Object] */;
1070 val* var1 /* : POSet[Object] */;
1071 var1 = poset__POSetElement__poset(self);
1072 var = var1;
1073 RET_LABEL:;
1074 return var;
1075 }
1076 /* method poset#POSetElement#poset= for (self: POSetElement[Object], POSet[Object]) */
1077 void poset__POSetElement__poset_61d(val* self, val* p0) {
1078 short int var /* : Bool */;
1079 int cltype;
1080 int idtype;
1081 const struct type* type_struct;
1082 const char* var_class_name;
1083 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[POSetElement#0] */
1084 /* <p0:POSet[Object]> isa POSet[POSetElement#0] */
1085 type_struct = self->type->resolution_table->types[COLOR_poset__POSetposet__POSetElement_FT0];
1086 cltype = type_struct->color;
1087 idtype = type_struct->id;
1088 if(cltype >= p0->type->table_size) {
1089 var = 0;
1090 } else {
1091 var = p0->type->type_table[cltype] == idtype;
1092 }
1093 if (!var) {
1094 var_class_name = p0 == NULL ? "null" : p0->type->name;
1095 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetElement#0]", var_class_name);
1096 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 181);
1097 show_backtrace(1);
1098 }
1099 self->attrs[COLOR_poset__POSetElement___64dposet].val = p0; /* @poset on <self:POSetElement[Object]> */
1100 RET_LABEL:;
1101 }
1102 /* method poset#POSetElement#poset= for (self: Object, POSet[Object]) */
1103 void VIRTUAL_poset__POSetElement__poset_61d(val* self, val* p0) {
1104 poset__POSetElement__poset_61d(self, p0);
1105 RET_LABEL:;
1106 }
1107 /* method poset#POSetElement#element for (self: POSetElement[Object]): Object */
1108 val* poset__POSetElement__element(val* self) {
1109 val* var /* : Object */;
1110 val* var1 /* : Object */;
1111 var1 = self->attrs[COLOR_poset__POSetElement___64delement].val; /* @element on <self:POSetElement[Object]> */
1112 if (var1 == NULL) {
1113 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @element");
1114 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 184);
1115 show_backtrace(1);
1116 }
1117 var = var1;
1118 RET_LABEL:;
1119 return var;
1120 }
1121 /* method poset#POSetElement#element for (self: Object): Object */
1122 val* VIRTUAL_poset__POSetElement__element(val* self) {
1123 val* var /* : Object */;
1124 val* var1 /* : Object */;
1125 var1 = poset__POSetElement__element(self);
1126 var = var1;
1127 RET_LABEL:;
1128 return var;
1129 }
1130 /* method poset#POSetElement#element= for (self: POSetElement[Object], Object) */
1131 void poset__POSetElement__element_61d(val* self, val* p0) {
1132 short int var /* : Bool */;
1133 int cltype;
1134 int idtype;
1135 const struct type* type_struct;
1136 const char* var_class_name;
1137 /* Covariant cast for argument 0 (element) <p0:Object> isa POSetElement#0 */
1138 /* <p0:Object> isa POSetElement#0 */
1139 type_struct = self->type->resolution_table->types[COLOR_poset__POSetElement_FT0];
1140 cltype = type_struct->color;
1141 idtype = type_struct->id;
1142 if(cltype >= p0->type->table_size) {
1143 var = 0;
1144 } else {
1145 var = p0->type->type_table[cltype] == idtype;
1146 }
1147 if (!var) {
1148 var_class_name = p0 == NULL ? "null" : p0->type->name;
1149 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetElement#0", var_class_name);
1150 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 184);
1151 show_backtrace(1);
1152 }
1153 self->attrs[COLOR_poset__POSetElement___64delement].val = p0; /* @element on <self:POSetElement[Object]> */
1154 RET_LABEL:;
1155 }
1156 /* method poset#POSetElement#element= for (self: Object, Object) */
1157 void VIRTUAL_poset__POSetElement__element_61d(val* self, val* p0) {
1158 poset__POSetElement__element_61d(self, p0);
1159 RET_LABEL:;
1160 }
1161 /* method poset#POSetElement#tos for (self: POSetElement[Object]): HashSet[Object] */
1162 val* poset__POSetElement__tos(val* self) {
1163 val* var /* : HashSet[Object] */;
1164 val* var1 /* : HashSet[Object] */;
1165 var1 = self->attrs[COLOR_poset__POSetElement___64dtos].val; /* @tos on <self:POSetElement[Object]> */
1166 if (var1 == NULL) {
1167 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @tos");
1168 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 187);
1169 show_backtrace(1);
1170 }
1171 var = var1;
1172 RET_LABEL:;
1173 return var;
1174 }
1175 /* method poset#POSetElement#tos for (self: Object): HashSet[Object] */
1176 val* VIRTUAL_poset__POSetElement__tos(val* self) {
1177 val* var /* : HashSet[Object] */;
1178 val* var1 /* : HashSet[Object] */;
1179 var1 = poset__POSetElement__tos(self);
1180 var = var1;
1181 RET_LABEL:;
1182 return var;
1183 }
1184 /* method poset#POSetElement#tos= for (self: POSetElement[Object], HashSet[Object]) */
1185 void poset__POSetElement__tos_61d(val* self, val* p0) {
1186 short int var /* : Bool */;
1187 int cltype;
1188 int idtype;
1189 const struct type* type_struct;
1190 const char* var_class_name;
1191 /* Covariant cast for argument 0 (tos) <p0:HashSet[Object]> isa HashSet[POSetElement#0] */
1192 /* <p0:HashSet[Object]> isa HashSet[POSetElement#0] */
1193 type_struct = self->type->resolution_table->types[COLOR_hash_collection__HashSetposet__POSetElement_FT0];
1194 cltype = type_struct->color;
1195 idtype = type_struct->id;
1196 if(cltype >= p0->type->table_size) {
1197 var = 0;
1198 } else {
1199 var = p0->type->type_table[cltype] == idtype;
1200 }
1201 if (!var) {
1202 var_class_name = p0 == NULL ? "null" : p0->type->name;
1203 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashSet[POSetElement#0]", var_class_name);
1204 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 187);
1205 show_backtrace(1);
1206 }
1207 self->attrs[COLOR_poset__POSetElement___64dtos].val = p0; /* @tos on <self:POSetElement[Object]> */
1208 RET_LABEL:;
1209 }
1210 /* method poset#POSetElement#tos= for (self: Object, HashSet[Object]) */
1211 void VIRTUAL_poset__POSetElement__tos_61d(val* self, val* p0) {
1212 poset__POSetElement__tos_61d(self, p0);
1213 RET_LABEL:;
1214 }
1215 /* method poset#POSetElement#froms for (self: POSetElement[Object]): HashSet[Object] */
1216 val* poset__POSetElement__froms(val* self) {
1217 val* var /* : HashSet[Object] */;
1218 val* var1 /* : HashSet[Object] */;
1219 var1 = self->attrs[COLOR_poset__POSetElement___64dfroms].val; /* @froms on <self:POSetElement[Object]> */
1220 if (var1 == NULL) {
1221 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @froms");
1222 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 188);
1223 show_backtrace(1);
1224 }
1225 var = var1;
1226 RET_LABEL:;
1227 return var;
1228 }
1229 /* method poset#POSetElement#froms for (self: Object): HashSet[Object] */
1230 val* VIRTUAL_poset__POSetElement__froms(val* self) {
1231 val* var /* : HashSet[Object] */;
1232 val* var1 /* : HashSet[Object] */;
1233 var1 = poset__POSetElement__froms(self);
1234 var = var1;
1235 RET_LABEL:;
1236 return var;
1237 }
1238 /* method poset#POSetElement#froms= for (self: POSetElement[Object], HashSet[Object]) */
1239 void poset__POSetElement__froms_61d(val* self, val* p0) {
1240 short int var /* : Bool */;
1241 int cltype;
1242 int idtype;
1243 const struct type* type_struct;
1244 const char* var_class_name;
1245 /* Covariant cast for argument 0 (froms) <p0:HashSet[Object]> isa HashSet[POSetElement#0] */
1246 /* <p0:HashSet[Object]> isa HashSet[POSetElement#0] */
1247 type_struct = self->type->resolution_table->types[COLOR_hash_collection__HashSetposet__POSetElement_FT0];
1248 cltype = type_struct->color;
1249 idtype = type_struct->id;
1250 if(cltype >= p0->type->table_size) {
1251 var = 0;
1252 } else {
1253 var = p0->type->type_table[cltype] == idtype;
1254 }
1255 if (!var) {
1256 var_class_name = p0 == NULL ? "null" : p0->type->name;
1257 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashSet[POSetElement#0]", var_class_name);
1258 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 188);
1259 show_backtrace(1);
1260 }
1261 self->attrs[COLOR_poset__POSetElement___64dfroms].val = p0; /* @froms on <self:POSetElement[Object]> */
1262 RET_LABEL:;
1263 }
1264 /* method poset#POSetElement#froms= for (self: Object, HashSet[Object]) */
1265 void VIRTUAL_poset__POSetElement__froms_61d(val* self, val* p0) {
1266 poset__POSetElement__froms_61d(self, p0);
1267 RET_LABEL:;
1268 }
1269 /* method poset#POSetElement#dtos for (self: POSetElement[Object]): HashSet[Object] */
1270 val* poset__POSetElement__dtos(val* self) {
1271 val* var /* : HashSet[Object] */;
1272 val* var1 /* : HashSet[Object] */;
1273 var1 = self->attrs[COLOR_poset__POSetElement___64ddtos].val; /* @dtos on <self:POSetElement[Object]> */
1274 if (var1 == NULL) {
1275 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @dtos");
1276 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 189);
1277 show_backtrace(1);
1278 }
1279 var = var1;
1280 RET_LABEL:;
1281 return var;
1282 }
1283 /* method poset#POSetElement#dtos for (self: Object): HashSet[Object] */
1284 val* VIRTUAL_poset__POSetElement__dtos(val* self) {
1285 val* var /* : HashSet[Object] */;
1286 val* var1 /* : HashSet[Object] */;
1287 var1 = poset__POSetElement__dtos(self);
1288 var = var1;
1289 RET_LABEL:;
1290 return var;
1291 }
1292 /* method poset#POSetElement#dtos= for (self: POSetElement[Object], HashSet[Object]) */
1293 void poset__POSetElement__dtos_61d(val* self, val* p0) {
1294 short int var /* : Bool */;
1295 int cltype;
1296 int idtype;
1297 const struct type* type_struct;
1298 const char* var_class_name;
1299 /* Covariant cast for argument 0 (dtos) <p0:HashSet[Object]> isa HashSet[POSetElement#0] */
1300 /* <p0:HashSet[Object]> isa HashSet[POSetElement#0] */
1301 type_struct = self->type->resolution_table->types[COLOR_hash_collection__HashSetposet__POSetElement_FT0];
1302 cltype = type_struct->color;
1303 idtype = type_struct->id;
1304 if(cltype >= p0->type->table_size) {
1305 var = 0;
1306 } else {
1307 var = p0->type->type_table[cltype] == idtype;
1308 }
1309 if (!var) {
1310 var_class_name = p0 == NULL ? "null" : p0->type->name;
1311 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashSet[POSetElement#0]", var_class_name);
1312 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 189);
1313 show_backtrace(1);
1314 }
1315 self->attrs[COLOR_poset__POSetElement___64ddtos].val = p0; /* @dtos on <self:POSetElement[Object]> */
1316 RET_LABEL:;
1317 }
1318 /* method poset#POSetElement#dtos= for (self: Object, HashSet[Object]) */
1319 void VIRTUAL_poset__POSetElement__dtos_61d(val* self, val* p0) {
1320 poset__POSetElement__dtos_61d(self, p0);
1321 RET_LABEL:;
1322 }
1323 /* method poset#POSetElement#dfroms for (self: POSetElement[Object]): HashSet[Object] */
1324 val* poset__POSetElement__dfroms(val* self) {
1325 val* var /* : HashSet[Object] */;
1326 val* var1 /* : HashSet[Object] */;
1327 var1 = self->attrs[COLOR_poset__POSetElement___64ddfroms].val; /* @dfroms on <self:POSetElement[Object]> */
1328 if (var1 == NULL) {
1329 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @dfroms");
1330 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 190);
1331 show_backtrace(1);
1332 }
1333 var = var1;
1334 RET_LABEL:;
1335 return var;
1336 }
1337 /* method poset#POSetElement#dfroms for (self: Object): HashSet[Object] */
1338 val* VIRTUAL_poset__POSetElement__dfroms(val* self) {
1339 val* var /* : HashSet[Object] */;
1340 val* var1 /* : HashSet[Object] */;
1341 var1 = poset__POSetElement__dfroms(self);
1342 var = var1;
1343 RET_LABEL:;
1344 return var;
1345 }
1346 /* method poset#POSetElement#dfroms= for (self: POSetElement[Object], HashSet[Object]) */
1347 void poset__POSetElement__dfroms_61d(val* self, val* p0) {
1348 short int var /* : Bool */;
1349 int cltype;
1350 int idtype;
1351 const struct type* type_struct;
1352 const char* var_class_name;
1353 /* Covariant cast for argument 0 (dfroms) <p0:HashSet[Object]> isa HashSet[POSetElement#0] */
1354 /* <p0:HashSet[Object]> isa HashSet[POSetElement#0] */
1355 type_struct = self->type->resolution_table->types[COLOR_hash_collection__HashSetposet__POSetElement_FT0];
1356 cltype = type_struct->color;
1357 idtype = type_struct->id;
1358 if(cltype >= p0->type->table_size) {
1359 var = 0;
1360 } else {
1361 var = p0->type->type_table[cltype] == idtype;
1362 }
1363 if (!var) {
1364 var_class_name = p0 == NULL ? "null" : p0->type->name;
1365 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashSet[POSetElement#0]", var_class_name);
1366 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 190);
1367 show_backtrace(1);
1368 }
1369 self->attrs[COLOR_poset__POSetElement___64ddfroms].val = p0; /* @dfroms on <self:POSetElement[Object]> */
1370 RET_LABEL:;
1371 }
1372 /* method poset#POSetElement#dfroms= for (self: Object, HashSet[Object]) */
1373 void VIRTUAL_poset__POSetElement__dfroms_61d(val* self, val* p0) {
1374 poset__POSetElement__dfroms_61d(self, p0);
1375 RET_LABEL:;
1376 }
1377 /* method poset#POSetElement#count for (self: POSetElement[Object]): Int */
1378 long poset__POSetElement__count(val* self) {
1379 long var /* : Int */;
1380 long var1 /* : Int */;
1381 var1 = self->attrs[COLOR_poset__POSetElement___64dcount].l; /* @count on <self:POSetElement[Object]> */
1382 var = var1;
1383 RET_LABEL:;
1384 return var;
1385 }
1386 /* method poset#POSetElement#count for (self: Object): Int */
1387 long VIRTUAL_poset__POSetElement__count(val* self) {
1388 long var /* : Int */;
1389 long var1 /* : Int */;
1390 var1 = poset__POSetElement__count(self);
1391 var = var1;
1392 RET_LABEL:;
1393 return var;
1394 }
1395 /* method poset#POSetElement#count= for (self: POSetElement[Object], Int) */
1396 void poset__POSetElement__count_61d(val* self, long p0) {
1397 self->attrs[COLOR_poset__POSetElement___64dcount].l = p0; /* @count on <self:POSetElement[Object]> */
1398 RET_LABEL:;
1399 }
1400 /* method poset#POSetElement#count= for (self: Object, Int) */
1401 void VIRTUAL_poset__POSetElement__count_61d(val* self, long p0) {
1402 poset__POSetElement__count_61d(self, p0);
1403 RET_LABEL:;
1404 }
1405 /* method poset#POSetElement#greaters for (self: POSetElement[Object]): Collection[Object] */
1406 val* poset__POSetElement__greaters(val* self) {
1407 val* var /* : Collection[Object] */;
1408 val* var1 /* : HashSet[Object] */;
1409 var1 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSetElement__tos]))(self) /* tos on <self:POSetElement[Object]>*/;
1410 var = var1;
1411 goto RET_LABEL;
1412 RET_LABEL:;
1413 return var;
1414 }
1415 /* method poset#POSetElement#greaters for (self: Object): Collection[Object] */
1416 val* VIRTUAL_poset__POSetElement__greaters(val* self) {
1417 val* var /* : Collection[Object] */;
1418 val* var1 /* : Collection[Object] */;
1419 var1 = poset__POSetElement__greaters(self);
1420 var = var1;
1421 RET_LABEL:;
1422 return var;
1423 }
1424 /* method poset#POSetElement#direct_greaters for (self: POSetElement[Object]): Collection[Object] */
1425 val* poset__POSetElement__direct_greaters(val* self) {
1426 val* var /* : Collection[Object] */;
1427 val* var1 /* : HashSet[Object] */;
1428 var1 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSetElement__dtos]))(self) /* dtos on <self:POSetElement[Object]>*/;
1429 var = var1;
1430 goto RET_LABEL;
1431 RET_LABEL:;
1432 return var;
1433 }
1434 /* method poset#POSetElement#direct_greaters for (self: Object): Collection[Object] */
1435 val* VIRTUAL_poset__POSetElement__direct_greaters(val* self) {
1436 val* var /* : Collection[Object] */;
1437 val* var1 /* : Collection[Object] */;
1438 var1 = poset__POSetElement__direct_greaters(self);
1439 var = var1;
1440 RET_LABEL:;
1441 return var;
1442 }
1443 /* method poset#POSetElement#smallers for (self: POSetElement[Object]): Collection[Object] */
1444 val* poset__POSetElement__smallers(val* self) {
1445 val* var /* : Collection[Object] */;
1446 val* var1 /* : HashSet[Object] */;
1447 var1 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSetElement__froms]))(self) /* froms on <self:POSetElement[Object]>*/;
1448 var = var1;
1449 goto RET_LABEL;
1450 RET_LABEL:;
1451 return var;
1452 }
1453 /* method poset#POSetElement#smallers for (self: Object): Collection[Object] */
1454 val* VIRTUAL_poset__POSetElement__smallers(val* self) {
1455 val* var /* : Collection[Object] */;
1456 val* var1 /* : Collection[Object] */;
1457 var1 = poset__POSetElement__smallers(self);
1458 var = var1;
1459 RET_LABEL:;
1460 return var;
1461 }
1462 /* method poset#POSetElement#direct_smallers for (self: POSetElement[Object]): Collection[Object] */
1463 val* poset__POSetElement__direct_smallers(val* self) {
1464 val* var /* : Collection[Object] */;
1465 val* var1 /* : HashSet[Object] */;
1466 var1 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSetElement__dfroms]))(self) /* dfroms on <self:POSetElement[Object]>*/;
1467 var = var1;
1468 goto RET_LABEL;
1469 RET_LABEL:;
1470 return var;
1471 }
1472 /* method poset#POSetElement#direct_smallers for (self: Object): Collection[Object] */
1473 val* VIRTUAL_poset__POSetElement__direct_smallers(val* self) {
1474 val* var /* : Collection[Object] */;
1475 val* var1 /* : Collection[Object] */;
1476 var1 = poset__POSetElement__direct_smallers(self);
1477 var = var1;
1478 RET_LABEL:;
1479 return var;
1480 }
1481 /* method poset#POSetElement#<= for (self: POSetElement[Object], Object): Bool */
1482 short int poset__POSetElement___60d_61d(val* self, val* p0) {
1483 short int var /* : Bool */;
1484 short int var1 /* : Bool */;
1485 int cltype;
1486 int idtype;
1487 const struct type* type_struct;
1488 const char* var_class_name;
1489 val* var_t /* var t: Object */;
1490 val* var2 /* : HashSet[Object] */;
1491 short int var3 /* : Bool */;
1492 /* Covariant cast for argument 0 (t) <p0:Object> isa POSetElement#0 */
1493 /* <p0:Object> isa POSetElement#0 */
1494 type_struct = self->type->resolution_table->types[COLOR_poset__POSetElement_FT0];
1495 cltype = type_struct->color;
1496 idtype = type_struct->id;
1497 if(cltype >= p0->type->table_size) {
1498 var1 = 0;
1499 } else {
1500 var1 = p0->type->type_table[cltype] == idtype;
1501 }
1502 if (!var1) {
1503 var_class_name = p0 == NULL ? "null" : p0->type->name;
1504 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetElement#0", var_class_name);
1505 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 222);
1506 show_backtrace(1);
1507 }
1508 var_t = p0;
1509 var2 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSetElement__tos]))(self) /* tos on <self:POSetElement[Object]>*/;
1510 var3 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__Collection__has]))(var2, var_t) /* has on <var2:HashSet[Object]>*/;
1511 var = var3;
1512 goto RET_LABEL;
1513 RET_LABEL:;
1514 return var;
1515 }
1516 /* method poset#POSetElement#<= for (self: Object, Object): Bool */
1517 short int VIRTUAL_poset__POSetElement___60d_61d(val* self, val* p0) {
1518 short int var /* : Bool */;
1519 short int var1 /* : Bool */;
1520 var1 = poset__POSetElement___60d_61d(self, p0);
1521 var = var1;
1522 RET_LABEL:;
1523 return var;
1524 }
1525 /* method poset#POSetElement#< for (self: POSetElement[Object], Object): Bool */
1526 short int 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 const char* var_class_name;
1533 val* var_t /* var t: Object */;
1534 short int var2 /* : Bool */;
1535 val* var3 /* : Object */;
1536 short int var4 /* : Bool */;
1537 short int var_ /* var : Bool */;
1538 val* var5 /* : HashSet[Object] */;
1539 short int var6 /* : Bool */;
1540 /* Covariant cast for argument 0 (t) <p0:Object> isa POSetElement#0 */
1541 /* <p0:Object> isa POSetElement#0 */
1542 type_struct = self->type->resolution_table->types[COLOR_poset__POSetElement_FT0];
1543 cltype = type_struct->color;
1544 idtype = type_struct->id;
1545 if(cltype >= p0->type->table_size) {
1546 var1 = 0;
1547 } else {
1548 var1 = p0->type->type_table[cltype] == idtype;
1549 }
1550 if (!var1) {
1551 var_class_name = p0 == NULL ? "null" : p0->type->name;
1552 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetElement#0", var_class_name);
1553 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 228);
1554 show_backtrace(1);
1555 }
1556 var_t = p0;
1557 var3 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSetElement__element]))(self) /* element on <self:POSetElement[Object]>*/;
1558 var4 = ((short int (*)(val*, val*))(var_t->class->vft[COLOR_kernel__Object___33d_61d]))(var_t, var3) /* != on <var_t:Object>*/;
1559 var_ = var4;
1560 if (var4){
1561 var5 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSetElement__tos]))(self) /* tos on <self:POSetElement[Object]>*/;
1562 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_abstract_collection__Collection__has]))(var5, var_t) /* has on <var5:HashSet[Object]>*/;
1563 var2 = var6;
1564 } else {
1565 var2 = var_;
1566 }
1567 var = var2;
1568 goto RET_LABEL;
1569 RET_LABEL:;
1570 return var;
1571 }
1572 /* method poset#POSetElement#< for (self: Object, Object): Bool */
1573 short int VIRTUAL_poset__POSetElement___60d(val* self, val* p0) {
1574 short int var /* : Bool */;
1575 short int var1 /* : Bool */;
1576 var1 = poset__POSetElement___60d(self, p0);
1577 var = var1;
1578 RET_LABEL:;
1579 return var;
1580 }
1581 /* method poset#POSetElement#depth for (self: POSetElement[Object]): Int */
1582 long poset__POSetElement__depth(val* self) {
1583 long var /* : Int */;
1584 val* var1 /* : Collection[Object] */;
1585 short int var2 /* : Bool */;
1586 long var3 /* : Int */;
1587 long var4 /* : Int */;
1588 long var5 /* : Int */;
1589 long var7 /* : Int */;
1590 long var_min /* var min: Int */;
1591 val* var8 /* : Collection[Object] */;
1592 val* var9 /* : Iterator[nullable Object] */;
1593 short int var10 /* : Bool */;
1594 val* var11 /* : nullable Object */;
1595 val* var_p /* var p: Object */;
1596 val* var12 /* : POSet[Object] */;
1597 val* var13 /* : POSetElement[Object] */;
1598 long var14 /* : Int */;
1599 long var15 /* : Int */;
1600 long var16 /* : Int */;
1601 long var18 /* : Int */;
1602 long var_d /* var d: Int */;
1603 short int var19 /* : Bool */;
1604 long var20 /* : Int */;
1605 long var21 /* : Int */;
1606 long var23 /* : Int */;
1607 short int var24 /* : Bool */;
1608 short int var26 /* : Bool */;
1609 short int var_ /* var : Bool */;
1610 short int var27 /* : Bool */;
1611 short int var29 /* : Bool */;
1612 int cltype;
1613 int idtype;
1614 const char* var_class_name;
1615 short int var30 /* : Bool */;
1616 var1 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSetElement__direct_greaters]))(self) /* direct_greaters on <self:POSetElement[Object]>*/;
1617 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var1) /* is_empty on <var1:Collection[Object]>*/;
1618 if (var2){
1619 var3 = 0;
1620 var = var3;
1621 goto RET_LABEL;
1622 } else {
1623 }
1624 var4 = 1;
1625 { /* Inline kernel#Int#unary - (var4) */
1626 var7 = -var4;
1627 var5 = var7;
1628 goto RET_LABEL6;
1629 RET_LABEL6:(void)0;
1630 }
1631 var_min = var5;
1632 var8 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSetElement__direct_greaters]))(self) /* direct_greaters on <self:POSetElement[Object]>*/;
1633 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_abstract_collection__Collection__iterator]))(var8) /* iterator on <var8:Collection[Object]>*/;
1634 for(;;) {
1635 var10 = ((short int (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var9) /* is_ok on <var9:Iterator[nullable Object]>*/;
1636 if(!var10) break;
1637 var11 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__item]))(var9) /* item on <var9:Iterator[nullable Object]>*/;
1638 var_p = var11;
1639 var12 = ((val* (*)(val*))(self->class->vft[COLOR_poset__POSetElement__poset]))(self) /* poset on <self:POSetElement[Object]>*/;
1640 var13 = ((val* (*)(val*, val*))(var12->class->vft[COLOR_poset__POSet___91d_93d]))(var12, var_p) /* [] on <var12:POSet[Object]>*/;
1641 var14 = ((long (*)(val*))(var13->class->vft[COLOR_poset__POSetElement__depth]))(var13) /* depth on <var13:POSetElement[Object]>*/;
1642 var15 = 1;
1643 { /* Inline kernel#Int#+ (var14,var15) */
1644 var18 = var14 + var15;
1645 var16 = var18;
1646 goto RET_LABEL17;
1647 RET_LABEL17:(void)0;
1648 }
1649 var_d = var16;
1650 var20 = 1;
1651 { /* Inline kernel#Int#unary - (var20) */
1652 var23 = -var20;
1653 var21 = var23;
1654 goto RET_LABEL22;
1655 RET_LABEL22:(void)0;
1656 }
1657 { /* Inline kernel#Int#== (var_min,var21) */
1658 var26 = var_min == var21;
1659 var24 = var26;
1660 goto RET_LABEL25;
1661 RET_LABEL25:(void)0;
1662 }
1663 var_ = var24;
1664 if (var24){
1665 var19 = var_;
1666 } else {
1667 { /* Inline kernel#Int#< (var_d,var_min) */
1668 /* Covariant cast for argument 0 (i) <var_min:Int> isa OTHER */
1669 /* <var_min:Int> isa OTHER */
1670 var29 = 1; /* easy <var_min:Int> isa OTHER*/
1671 if (!var29) {
1672 var_class_name = type_kernel__Int.name;
1673 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1674 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
1675 show_backtrace(1);
1676 }
1677 var30 = var_d < var_min;
1678 var27 = var30;
1679 goto RET_LABEL28;
1680 RET_LABEL28:(void)0;
1681 }
1682 var19 = var27;
1683 }
1684 if (var19){
1685 var_min = var_d;
1686 } else {
1687 }
1688 CONTINUE_label: (void)0;
1689 ((void (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__next]))(var9) /* next on <var9:Iterator[nullable Object]>*/;
1690 }
1691 BREAK_label: (void)0;
1692 var = var_min;
1693 goto RET_LABEL;
1694 RET_LABEL:;
1695 return var;
1696 }
1697 /* method poset#POSetElement#depth for (self: Object): Int */
1698 long VIRTUAL_poset__POSetElement__depth(val* self) {
1699 long var /* : Int */;
1700 long var1 /* : Int */;
1701 var1 = poset__POSetElement__depth(self);
1702 var = var1;
1703 RET_LABEL:;
1704 return var;
1705 }
1706 /* method poset#POSetElement#init for (self: POSetElement[Object], POSet[Object], Object, Int) */
1707 void poset__POSetElement__init(val* self, val* p0, val* p1, long p2) {
1708 short int var /* : Bool */;
1709 int cltype;
1710 int idtype;
1711 const struct type* type_struct;
1712 const char* var_class_name;
1713 short int var1 /* : Bool */;
1714 int cltype2;
1715 int idtype3;
1716 const struct type* type_struct4;
1717 const char* var_class_name5;
1718 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[POSetElement#0] */
1719 /* <p0:POSet[Object]> isa POSet[POSetElement#0] */
1720 type_struct = self->type->resolution_table->types[COLOR_poset__POSetposet__POSetElement_FT0];
1721 cltype = type_struct->color;
1722 idtype = type_struct->id;
1723 if(cltype >= p0->type->table_size) {
1724 var = 0;
1725 } else {
1726 var = p0->type->type_table[cltype] == idtype;
1727 }
1728 if (!var) {
1729 var_class_name = p0 == NULL ? "null" : p0->type->name;
1730 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetElement#0]", var_class_name);
1731 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 168);
1732 show_backtrace(1);
1733 }
1734 /* Covariant cast for argument 1 (element) <p1:Object> isa POSetElement#0 */
1735 /* <p1:Object> isa POSetElement#0 */
1736 type_struct4 = self->type->resolution_table->types[COLOR_poset__POSetElement_FT0];
1737 cltype2 = type_struct4->color;
1738 idtype3 = type_struct4->id;
1739 if(cltype2 >= p1->type->table_size) {
1740 var1 = 0;
1741 } else {
1742 var1 = p1->type->type_table[cltype2] == idtype3;
1743 }
1744 if (!var1) {
1745 var_class_name5 = p1 == NULL ? "null" : p1->type->name;
1746 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetElement#0", var_class_name5);
1747 fprintf(stderr, " (%s:%d)\n", "lib/poset.nit", 168);
1748 show_backtrace(1);
1749 }
1750 self->attrs[COLOR_poset__POSetElement___64dposet].val = p0; /* @poset on <self:POSetElement[Object]> */
1751 self->attrs[COLOR_poset__POSetElement___64delement].val = p1; /* @element on <self:POSetElement[Object]> */
1752 self->attrs[COLOR_poset__POSetElement___64dcount].l = p2; /* @count on <self:POSetElement[Object]> */
1753 RET_LABEL:;
1754 }
1755 /* method poset#POSetElement#init for (self: Object, POSet[Object], Object, Int) */
1756 void VIRTUAL_poset__POSetElement__init(val* self, val* p0, val* p1, long p2) {
1757 poset__POSetElement__init(self, p0, p1, p2);
1758 RET_LABEL:;
1759 }