misc: update Changelog and NOTICE; remove BUGS and TODO
[nit.git] / c_src / partial_order._sep.c
1 /* This C file is generated by NIT to compile module partial_order. */
2 #include "partial_order._sep.h"
3 val_t partial_order___PartialOrder___iterator(val_t self) {
4 struct trace_t trace = {NULL, NULL, 54, LOCATE_partial_order___PartialOrder___iterator};
5 val_t variable[3];
6 struct WBT_ **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_partial_order;
9 /* Register variable[0]: Local variable */
10 variable[0] = self;
11 /* Register variable[1]: Method return value and escape marker */
12 /* Register variable[2]: Result */
13 variable[2] = ATTR_partial_order___PartialOrder____elements_list(variable[0]) /*PartialOrder::_elements_list*/;
14 /* Register variable[2]: Result */
15 variable[2] = CALL_abstract_collection___Collection___iterator(variable[2])(variable[2]) /*AbstractArrayRead::iterator*/;
16 variable[1] = variable[2];
17 goto return_label0;
18 return_label0: while(false);
19 tracehead = trace.prev;
20 return variable[1];
21 }
22 val_t partial_order___PartialOrder___is_empty(val_t self) {
23 struct trace_t trace = {NULL, NULL, 35, LOCATE_partial_order___PartialOrder___is_empty};
24 val_t variable[3];
25 struct WBT_ **closurevariable = NULL;
26 trace.prev = tracehead; tracehead = &trace;
27 trace.file = LOCATE_partial_order;
28 /* Register variable[0]: Local variable */
29 variable[0] = self;
30 /* Register variable[1]: Method return value and escape marker */
31 /* Register variable[2]: Result */
32 variable[2] = ATTR_partial_order___PartialOrder____elements(variable[0]) /*PartialOrder::_elements*/;
33 /* Register variable[2]: Result */
34 variable[2] = CALL_abstract_collection___Collection___is_empty(variable[2])(variable[2]) /*Collection::is_empty*/;
35 variable[1] = variable[2];
36 goto return_label1;
37 return_label1: while(false);
38 tracehead = trace.prev;
39 return variable[1];
40 }
41 val_t partial_order___PartialOrder___length(val_t self) {
42 struct trace_t trace = {NULL, NULL, 37, LOCATE_partial_order___PartialOrder___length};
43 val_t variable[3];
44 struct WBT_ **closurevariable = NULL;
45 trace.prev = tracehead; tracehead = &trace;
46 trace.file = LOCATE_partial_order;
47 /* Register variable[0]: Local variable */
48 variable[0] = self;
49 /* Register variable[1]: Method return value and escape marker */
50 /* Register variable[2]: Result */
51 variable[2] = ATTR_partial_order___PartialOrder____elements(variable[0]) /*PartialOrder::_elements*/;
52 /* Register variable[2]: Result */
53 variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*Collection::length*/;
54 variable[1] = variable[2];
55 goto return_label2;
56 return_label2: while(false);
57 tracehead = trace.prev;
58 return variable[1];
59 }
60 val_t partial_order___PartialOrder___has(val_t self, val_t param0) {
61 struct trace_t trace = {NULL, NULL, 41, LOCATE_partial_order___PartialOrder___has};
62 val_t variable[4];
63 struct WBT_ **closurevariable = NULL;
64 trace.prev = tracehead; tracehead = &trace;
65 trace.file = LOCATE_partial_order;
66 /* Register variable[0]: Local variable */
67 variable[0] = self;
68 /* Register variable[1]: Local variable */
69 variable[1] = param0;
70 /* Register variable[2]: Method return value and escape marker */
71 /* Register variable[3]: Result */
72 variable[3] = ATTR_partial_order___PartialOrder____elements(variable[0]) /*PartialOrder::_elements*/;
73 /* Register variable[3]: Result */
74 variable[3] = CALL_abstract_collection___MapRead___has_key(variable[3])(variable[3], variable[1] /*e*/) /*MapRead::has_key*/;
75 variable[2] = variable[3];
76 goto return_label3;
77 return_label3: while(false);
78 tracehead = trace.prev;
79 return variable[2];
80 }
81 val_t partial_order___PartialOrder___has_only(val_t self, val_t param0) {
82 struct trace_t trace = {NULL, NULL, 43, LOCATE_partial_order___PartialOrder___has_only};
83 val_t variable[4];
84 struct WBT_ **closurevariable = NULL;
85 trace.prev = tracehead; tracehead = &trace;
86 trace.file = LOCATE_partial_order;
87 /* Register variable[0]: Local variable */
88 variable[0] = self;
89 /* Register variable[1]: Local variable */
90 variable[1] = param0;
91 /* Register variable[2]: Method return value and escape marker */
92 /* Register variable[3]: Result */
93 variable[3] = ATTR_partial_order___PartialOrder____elements(variable[0]) /*PartialOrder::_elements*/;
94 /* Register variable[3]: Result */
95 variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*Collection::length*/;
96 /* Register variable[3]: Result */
97 variable[3] = TAG_Bool((variable[3])==( TAG_Int(1)));
98 /* Ensure var variable[3]: Left 'and' operand*/
99 if (UNTAG_Bool(variable[3])) { /* and */
100 /* Register variable[3]: Result */
101 variable[3] = ATTR_partial_order___PartialOrder____elements(variable[0]) /*PartialOrder::_elements*/;
102 /* Register variable[3]: Result */
103 variable[3] = CALL_abstract_collection___Collection___first(variable[3])(variable[3]) /*Collection::first*/;
104 /* Register variable[3]: Result */
105 variable[3] = TAG_Bool((variable[3] == variable[1] /*e*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*e*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[1] /*e*/) /*Object::==*/)))));
106 }
107 /* Register variable[3]: Result */
108 variable[2] = variable[3];
109 goto return_label4;
110 return_label4: while(false);
111 tracehead = trace.prev;
112 return variable[2];
113 }
114 val_t partial_order___PartialOrder___count(val_t self, val_t param0) {
115 struct trace_t trace = {NULL, NULL, 45, LOCATE_partial_order___PartialOrder___count};
116 val_t variable[4];
117 struct WBT_ **closurevariable = NULL;
118 trace.prev = tracehead; tracehead = &trace;
119 trace.file = LOCATE_partial_order;
120 /* Register variable[0]: Local variable */
121 variable[0] = self;
122 /* Register variable[1]: Local variable */
123 variable[1] = param0;
124 /* Register variable[2]: Method return value and escape marker */
125 /* Register variable[3]: Result */
126 variable[3] = CALL_abstract_collection___Collection___has(variable[0])(variable[0], variable[1] /*e*/) /*PartialOrder::has*/;
127 if (UNTAG_Bool(variable[3])) { /*if*/
128 variable[2] = TAG_Int(1);
129 goto return_label5;
130 } else { /*if*/
131 variable[2] = TAG_Int(0);
132 goto return_label5;
133 }
134 return_label5: while(false);
135 tracehead = trace.prev;
136 return variable[2];
137 }
138 val_t partial_order___PartialOrder___first(val_t self) {
139 struct trace_t trace = {NULL, NULL, 39, LOCATE_partial_order___PartialOrder___first};
140 val_t variable[3];
141 struct WBT_ **closurevariable = NULL;
142 trace.prev = tracehead; tracehead = &trace;
143 trace.file = LOCATE_partial_order;
144 /* Register variable[0]: Local variable */
145 variable[0] = self;
146 /* Register variable[1]: Method return value and escape marker */
147 /* Register variable[2]: Result */
148 variable[2] = ATTR_partial_order___PartialOrder____elements_list(variable[0]) /*PartialOrder::_elements_list*/;
149 /* Register variable[2]: Result */
150 variable[2] = CALL_abstract_collection___Collection___first(variable[2])(variable[2]) /*IndexedCollectionRead::first*/;
151 variable[1] = variable[2];
152 goto return_label6;
153 return_label6: while(false);
154 tracehead = trace.prev;
155 return variable[1];
156 }
157 val_t partial_order___PartialOrder___roots(val_t self) {
158 struct trace_t trace = {NULL, NULL, 30, LOCATE_partial_order___PartialOrder___roots};
159 val_t *variable = NULL;
160 struct WBT_ **closurevariable = NULL;
161 trace.prev = tracehead; tracehead = &trace;
162 trace.file = LOCATE_partial_order;
163 tracehead = trace.prev;
164 return ATTR_partial_order___PartialOrder____roots( self) /*PartialOrder::_roots*/;
165 }
166 val_t partial_order___PartialOrder_____bra(val_t self, val_t param0) {
167 struct trace_t trace = {NULL, NULL, 58, LOCATE_partial_order___PartialOrder_____bra};
168 val_t variable[4];
169 struct WBT_ **closurevariable = NULL;
170 trace.prev = tracehead; tracehead = &trace;
171 trace.file = LOCATE_partial_order;
172 /* Register variable[0]: Local variable */
173 variable[0] = self;
174 /* Register variable[1]: Local variable */
175 variable[1] = param0;
176 /* Register variable[2]: Method return value and escape marker */
177 /* Register variable[3]: Result */
178 variable[3] = ATTR_partial_order___PartialOrder____elements(variable[0]) /*PartialOrder::_elements*/;
179 /* Register variable[3]: Result */
180 variable[3] = CALL_abstract_collection___MapRead_____bra(variable[3])(variable[3], variable[1] /*e*/) /*MapRead::[]*/;
181 variable[2] = variable[3];
182 goto return_label7;
183 return_label7: while(false);
184 tracehead = trace.prev;
185 return variable[2];
186 }
187 val_t partial_order___PartialOrder___to_dot(val_t self) {
188 struct trace_t trace = {NULL, NULL, 64, LOCATE_partial_order___PartialOrder___to_dot};
189 static val_t once_value_11 = NIT_NULL; /* Once value for string variable[3]*/
190 val_t variable[10];
191 struct WBT_ **closurevariable = NULL;
192 trace.prev = tracehead; tracehead = &trace;
193 trace.file = LOCATE_partial_order;
194 /* Register variable[0]: Local variable */
195 variable[0] = self;
196 /* Register variable[1]: Method return value and escape marker */
197 /* Register variable[2]: Local variable */
198 /* Register variable[3]: Result */
199 variable[3] = NEW_Buffer_string___Buffer___init() /*new Buffer*/;
200 variable[2] = variable[3];
201 /* Register variable[3]: Result */
202 variable[3] = CALL_partial_order___PartialOrder___to_dot_header(variable[0])(variable[0]) /*PartialOrder::to_dot_header*/;
203 CALL_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[3]) /*Buffer::append*/;
204 /* Register variable[3]: Result */
205 variable[3] = ATTR_partial_order___PartialOrder____elements(variable[0]) /*PartialOrder::_elements*/;
206 /* Register variable[3]: For iterator */
207 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*MapRead::iterator*/;
208 while (true) { /*for*/
209 /* Register variable[4]: For 'is_ok' result */
210 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
211 if (!UNTAG_Bool(variable[4])) break; /*for*/
212 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
213 /* Register variable[5]: Local variable */
214 variable[5] = variable[4];
215 /* Register variable[6]: Result */
216 variable[6] = CALL_partial_order___PartialOrderElement___value( variable[5] /*e*/)( variable[5] /*e*/) /*PartialOrderElement::value*/;
217 /* Register variable[6]: Result */
218 variable[6] = CALL_partial_order___PartialOrder___to_dot_node(variable[0])(variable[0], variable[6]) /*PartialOrder::to_dot_node*/;
219 CALL_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[6]) /*Buffer::append*/;
220 /* Register variable[6]: Result */
221 variable[6] = CALL_partial_order___PartialOrderElement___direct_greaters( variable[5] /*e*/)( variable[5] /*e*/) /*PartialOrderElement::direct_greaters*/;
222 /* Register variable[6]: For iterator */
223 variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*AbstractArrayRead::iterator*/;
224 while (true) { /*for*/
225 /* Register variable[7]: For 'is_ok' result */
226 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
227 if (!UNTAG_Bool(variable[7])) break; /*for*/
228 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
229 /* Register variable[8]: Local variable */
230 variable[8] = variable[7];
231 /* Register variable[9]: Result */
232 variable[9] = CALL_partial_order___PartialOrderElement___value( variable[5] /*e*/)( variable[5] /*e*/) /*PartialOrderElement::value*/;
233 /* Register variable[9]: Result */
234 variable[9] = CALL_partial_order___PartialOrder___to_dot_edge(variable[0])(variable[0], variable[9], variable[8] /*d*/) /*PartialOrder::to_dot_edge*/;
235 CALL_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[9]) /*Buffer::append*/;
236 continue_10: while(0);
237 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
238 }
239 break_10: while(0);
240 continue_9: while(0);
241 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
242 }
243 break_9: while(0);
244 /* Register variable[3]: Once String constant */
245 if (once_value_11 != NIT_NULL) variable[3] = once_value_11;
246 else {
247 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("}\n"), TAG_Int(2)) /*new String*/;
248 once_value_11 = variable[3];
249 }
250 /* Register variable[3]: Result */
251 CALL_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[3]) /*Buffer::append*/;
252 /* Register variable[3]: Result */
253 variable[3] = CALL_string___Object___to_s( variable[2] /*s*/)( variable[2] /*s*/) /*Buffer::to_s*/;
254 variable[1] = variable[3];
255 goto return_label8;
256 return_label8: while(false);
257 tracehead = trace.prev;
258 return variable[1];
259 }
260 val_t partial_order___PartialOrder___to_dot_header(val_t self) {
261 struct trace_t trace = {NULL, NULL, 79, LOCATE_partial_order___PartialOrder___to_dot_header};
262 static val_t once_value_13 = NIT_NULL; /* Once value for string variable[2]*/
263 val_t variable[3];
264 struct WBT_ **closurevariable = NULL;
265 trace.prev = tracehead; tracehead = &trace;
266 trace.file = LOCATE_partial_order;
267 /* Register variable[0]: Local variable */
268 variable[0] = self;
269 /* Register variable[1]: Method return value and escape marker */
270 /* Register variable[2]: Once String constant */
271 if (once_value_13 != NIT_NULL) variable[2] = once_value_13;
272 else {
273 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("digraph G {\ngraph [rankdir=BT];\n"), TAG_Int(32)) /*new String*/;
274 once_value_13 = variable[2];
275 }
276 /* Register variable[2]: Result */
277 variable[1] = variable[2];
278 goto return_label12;
279 return_label12: while(false);
280 tracehead = trace.prev;
281 return variable[1];
282 }
283 val_t partial_order___PartialOrder___to_dot_node(val_t self, val_t param0) {
284 struct trace_t trace = {NULL, NULL, 85, LOCATE_partial_order___PartialOrder___to_dot_node};
285 static val_t once_value_15 = NIT_NULL; /* Once value for string variable[4]*/
286 static val_t once_value_16 = NIT_NULL; /* Once value for string variable[4]*/
287 val_t variable[5];
288 struct WBT_ **closurevariable = NULL;
289 trace.prev = tracehead; tracehead = &trace;
290 trace.file = LOCATE_partial_order;
291 /* Register variable[0]: Local variable */
292 variable[0] = self;
293 /* Register variable[1]: Local variable */
294 variable[1] = param0;
295 /* Register variable[2]: Method return value and escape marker */
296 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
297 /* Register variable[4]: Once String constant */
298 if (once_value_15 != NIT_NULL) variable[4] = once_value_15;
299 else {
300 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)) /*new String*/;
301 once_value_15 = variable[4];
302 }
303 /* Register variable[4]: Result */
304 /* Ensure var variable[4]: super-string element*/
305 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
306 variable[4] = variable[1] /*e*/ /* Ensure var: super-string element*/;
307 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
308 /* Register variable[4]: Once String constant */
309 if (once_value_16 != NIT_NULL) variable[4] = once_value_16;
310 else {
311 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)) /*new String*/;
312 once_value_16 = variable[4];
313 }
314 /* Register variable[4]: Result */
315 /* Ensure var variable[4]: super-string element*/
316 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
317 /* Register variable[3]: Result */
318 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
319 variable[2] = variable[3];
320 goto return_label14;
321 return_label14: while(false);
322 tracehead = trace.prev;
323 return variable[2];
324 }
325 val_t partial_order___PartialOrder___to_dot_edge(val_t self, val_t param0, val_t param1) {
326 struct trace_t trace = {NULL, NULL, 91, LOCATE_partial_order___PartialOrder___to_dot_edge};
327 static val_t once_value_18 = NIT_NULL; /* Once value for string variable[5]*/
328 static val_t once_value_19 = NIT_NULL; /* Once value for string variable[5]*/
329 static val_t once_value_20 = NIT_NULL; /* Once value for string variable[5]*/
330 val_t variable[6];
331 struct WBT_ **closurevariable = NULL;
332 trace.prev = tracehead; tracehead = &trace;
333 trace.file = LOCATE_partial_order;
334 /* Register variable[0]: Local variable */
335 variable[0] = self;
336 /* Register variable[1]: Local variable */
337 variable[1] = param0;
338 /* Register variable[2]: Local variable */
339 variable[2] = param1;
340 /* Register variable[3]: Method return value and escape marker */
341 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
342 /* Register variable[5]: Once String constant */
343 if (once_value_18 != NIT_NULL) variable[5] = once_value_18;
344 else {
345 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)) /*new String*/;
346 once_value_18 = variable[5];
347 }
348 /* Register variable[5]: Result */
349 /* Ensure var variable[5]: super-string element*/
350 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
351 variable[5] = variable[1] /*e1*/ /* Ensure var: super-string element*/;
352 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/;
353 /* Register variable[5]: Once String constant */
354 if (once_value_19 != NIT_NULL) variable[5] = once_value_19;
355 else {
356 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("\" -> \""), TAG_Int(6)) /*new String*/;
357 once_value_19 = variable[5];
358 }
359 /* Register variable[5]: Result */
360 /* Ensure var variable[5]: super-string element*/
361 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
362 variable[5] = variable[2] /*e2*/ /* Ensure var: super-string element*/;
363 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/;
364 /* Register variable[5]: Once String constant */
365 if (once_value_20 != NIT_NULL) variable[5] = once_value_20;
366 else {
367 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)) /*new String*/;
368 once_value_20 = variable[5];
369 }
370 /* Register variable[5]: Result */
371 /* Ensure var variable[5]: super-string element*/
372 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
373 /* Register variable[4]: Result */
374 variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
375 variable[3] = variable[4];
376 goto return_label17;
377 return_label17: while(false);
378 tracehead = trace.prev;
379 return variable[3];
380 }
381 val_t partial_order___PartialOrder___select_smallests(val_t self, val_t param0) {
382 struct trace_t trace = {NULL, NULL, 97, LOCATE_partial_order___PartialOrder___select_smallests};
383 val_t variable[10];
384 struct WBT_ **closurevariable = NULL;
385 trace.prev = tracehead; tracehead = &trace;
386 trace.file = LOCATE_partial_order;
387 /* Register variable[0]: Local variable */
388 variable[0] = self;
389 /* Register variable[1]: Local variable */
390 variable[1] = param0;
391 /* Register variable[2]: Method return value and escape marker */
392 /* Register variable[3]: Result */
393 variable[3] = TAG_Bool(( variable[1] /*c*/ == NIT_NULL /*null*/) || (( variable[1] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*c*/)( variable[1] /*c*/, NIT_NULL /*null*/) /*Object::==*/)))));
394 if (UNTAG_Bool(variable[3])) { /*if*/
395 /* Register variable[3]: Result */
396 variable[3] = NEW_Array_array___Array___init() /*new Array[E]*/;
397 variable[2] = variable[3];
398 goto return_label21;
399 }
400 /* Register variable[3]: Result */
401 variable[3] = CALL_partial_order___PartialOrder___has_all(variable[0])(variable[0], variable[1] /*c*/) /*PartialOrder::has_all*/;
402 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_partial_order___PartialOrder___select_smallests, LOCATE_partial_order, 101); nit_exit(1);}
403 /* Register variable[3]: Local variable */
404 /* Register variable[4]: Result */
405 variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*c*/)( variable[1] /*c*/) /*Collection::length*/;
406 /* Register variable[4]: Result */
407 variable[4] = NEW_Array_array___Array___with_capacity(variable[4]) /*new Array[E]*/;
408 variable[3] = variable[4];
409 /* Register variable[4]: Local variable */
410 /* Register variable[5]: Result */
411 variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*c*/)( variable[1] /*c*/) /*Collection::length*/;
412 /* Register variable[5]: Result */
413 variable[5] = NEW_Array_array___Array___with_capacity(variable[5]) /*new Array[E]*/;
414 variable[4] = variable[5];
415 /* Register variable[5]: For iterator */
416 variable[5] = CALL_abstract_collection___Collection___iterator( variable[1] /*c*/)( variable[1] /*c*/) /*Collection::iterator*/;
417 while (true) { /*for*/
418 /* Register variable[6]: For 'is_ok' result */
419 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
420 if (!UNTAG_Bool(variable[6])) break; /*for*/
421 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
422 /* Register variable[7]: Local variable */
423 variable[7] = variable[6];
424 /* Register variable[8]: Local variable */
425 /* Register variable[9]: Result */
426 variable[9] = CALL_partial_order___PartialOrder___add_to_smallests(variable[0])(variable[0], variable[7] /*e*/, variable[3] /*res*/, variable[4] /*tmp*/) /*PartialOrder::add_to_smallests*/;
427 variable[8] = variable[9];
428 if (UNTAG_Bool( variable[8] /*r*/)) { /*if*/
429 /* Register variable[9]: Local variable */
430 variable[9] = variable[4] /*tmp*/;
431 variable[4] = variable[3] /*res*/ /*tmp=*/;
432 variable[3] = variable[9] /*t*/ /*res=*/;
433 }
434 continue_22: while(0);
435 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
436 }
437 break_22: while(0);
438 variable[2] = variable[3] /*res*/;
439 goto return_label21;
440 return_label21: while(false);
441 tracehead = trace.prev;
442 return variable[2];
443 }
444 val_t partial_order___PartialOrder___add(val_t self, val_t param0, val_t param1) {
445 struct trace_t trace = {NULL, NULL, 118, LOCATE_partial_order___PartialOrder___add};
446 val_t variable[7];
447 struct WBT_ **closurevariable = NULL;
448 trace.prev = tracehead; tracehead = &trace;
449 trace.file = LOCATE_partial_order;
450 /* Register variable[0]: Local variable */
451 variable[0] = self;
452 /* Register variable[1]: Local variable */
453 variable[1] = param0;
454 /* Register variable[2]: Local variable */
455 variable[2] = param1;
456 /* Register variable[3]: Method return value and escape marker */
457 /* Register variable[4]: Result */
458 variable[4] = CALL_abstract_collection___Collection___has(variable[0])(variable[0], variable[1] /*e*/) /*PartialOrder::has*/;
459 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_partial_order___PartialOrder___add, LOCATE_partial_order, 121); nit_exit(1);}
460 /* Register variable[4]: Result */
461 variable[4] = TAG_Bool(( variable[2] /*supers*/ == NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*supers*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*supers*/)( variable[2] /*supers*/, NIT_NULL /*null*/) /*Object::==*/)))));
462 /* Ensure var variable[4]: Left 'or' operand*/
463 if (!UNTAG_Bool(variable[4])) { /* or */
464 /* Register variable[4]: Result */
465 variable[4] = CALL_partial_order___PartialOrder___has_all(variable[0])(variable[0], variable[2] /*supers*/) /*PartialOrder::has_all*/;
466 }
467 /* Register variable[4]: Result */
468 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_partial_order___PartialOrder___add, LOCATE_partial_order, 122); nit_exit(1);}
469 /* Register variable[4]: Local variable */
470 /* Register variable[5]: Result */
471 variable[5] = CALL_partial_order___PartialOrder___select_smallests(variable[0])(variable[0], variable[2] /*supers*/) /*PartialOrder::select_smallests*/;
472 variable[4] = variable[5];
473 /* Register variable[5]: Local variable */
474 /* Register variable[6]: Result */
475 variable[6] = CALL_partial_order___PartialOrder___new_poe(variable[0])(variable[0], variable[1] /*e*/, variable[4] /*directs*/) /*PartialOrder::new_poe*/;
476 variable[5] = variable[6];
477 /* Register variable[6]: Result */
478 variable[6] = ATTR_partial_order___PartialOrder____elements(variable[0]) /*PartialOrder::_elements*/;
479 CALL_abstract_collection___Map_____braeq(variable[6])(variable[6], variable[1] /*e*/, variable[5] /*poe*/) /*Map::[]=*/;
480 /* Register variable[6]: Result */
481 variable[6] = ATTR_partial_order___PartialOrder____elements_list(variable[0]) /*PartialOrder::_elements_list*/;
482 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[1] /*e*/) /*AbstractArray::add*/;
483 /* Register variable[6]: Result */
484 variable[6] = TAG_Bool(( variable[2] /*supers*/ == NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*supers*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*supers*/)( variable[2] /*supers*/, NIT_NULL /*null*/) /*Object::==*/)))));
485 /* Ensure var variable[6]: Left 'or' operand*/
486 if (!UNTAG_Bool(variable[6])) { /* or */
487 /* Register variable[6]: Result */
488 variable[6] = CALL_abstract_collection___Collection___is_empty( variable[2] /*supers*/)( variable[2] /*supers*/) /*Collection::is_empty*/;
489 }
490 /* Register variable[6]: Result */
491 if (UNTAG_Bool(variable[6])) { /*if*/
492 /* Register variable[6]: Result */
493 variable[6] = ATTR_partial_order___PartialOrder____roots(variable[0]) /*PartialOrder::_roots*/;
494 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[1] /*e*/) /*AbstractArray::add*/;
495 }
496 variable[3] = variable[5] /*poe*/;
497 goto return_label23;
498 return_label23: while(false);
499 tracehead = trace.prev;
500 return variable[3];
501 }
502 val_t partial_order___PartialOrder___has_all(val_t self, val_t param0) {
503 struct trace_t trace = {NULL, NULL, 133, LOCATE_partial_order___PartialOrder___has_all};
504 val_t variable[7];
505 struct WBT_ **closurevariable = NULL;
506 trace.prev = tracehead; tracehead = &trace;
507 trace.file = LOCATE_partial_order;
508 /* Register variable[0]: Local variable */
509 variable[0] = self;
510 /* Register variable[1]: Local variable */
511 variable[1] = param0;
512 /* Register variable[2]: Method return value and escape marker */
513 /* Register variable[3]: For iterator */
514 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*e*/)( variable[1] /*e*/) /*Collection::iterator*/;
515 while (true) { /*for*/
516 /* Register variable[4]: For 'is_ok' result */
517 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
518 if (!UNTAG_Bool(variable[4])) break; /*for*/
519 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
520 /* Register variable[5]: Local variable */
521 variable[5] = variable[4];
522 /* Register variable[6]: Result */
523 variable[6] = CALL_abstract_collection___Collection___has(variable[0])(variable[0], variable[5] /*i*/) /*PartialOrder::has*/;
524 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
525 variable[2] = TAG_Bool(false);
526 goto return_label24;
527 }
528 continue_25: while(0);
529 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
530 }
531 break_25: while(0);
532 variable[2] = TAG_Bool(true);
533 goto return_label24;
534 return_label24: while(false);
535 tracehead = trace.prev;
536 return variable[2];
537 }
538 val_t partial_order___PartialOrder___new_poe(val_t self, val_t param0, val_t param1) {
539 struct trace_t trace = {NULL, NULL, 144, LOCATE_partial_order___PartialOrder___new_poe};
540 val_t variable[5];
541 struct WBT_ **closurevariable = NULL;
542 trace.prev = tracehead; tracehead = &trace;
543 trace.file = LOCATE_partial_order;
544 /* Register variable[0]: Local variable */
545 variable[0] = self;
546 /* Register variable[1]: Local variable */
547 variable[1] = param0;
548 /* Register variable[2]: Local variable */
549 variable[2] = param1;
550 /* Register variable[3]: Method return value and escape marker */
551 /* Register variable[4]: Result */
552 variable[4] = NEW_PartialOrderElement_partial_order___PartialOrderElement___init(variable[0], variable[1] /*e*/, variable[2] /*directs*/) /*new PartialOrderElement[E]*/;
553 variable[3] = variable[4];
554 goto return_label26;
555 return_label26: while(false);
556 tracehead = trace.prev;
557 return variable[3];
558 }
559 val_t partial_order___PartialOrder___add_to_smallests(val_t self, val_t param0, val_t param1, val_t param2) {
560 struct trace_t trace = {NULL, NULL, 150, LOCATE_partial_order___PartialOrder___add_to_smallests};
561 val_t variable[10];
562 struct WBT_ **closurevariable = NULL;
563 trace.prev = tracehead; tracehead = &trace;
564 trace.file = LOCATE_partial_order;
565 /* Register variable[0]: Local variable */
566 variable[0] = self;
567 /* Register variable[1]: Local variable */
568 variable[1] = param0;
569 /* Register variable[2]: Local variable */
570 variable[2] = param1;
571 /* Register variable[3]: Local variable */
572 variable[3] = param2;
573 /* Register variable[4]: Method return value and escape marker */
574 CALL_abstract_collection___RemovableCollection___clear( variable[3] /*to*/)( variable[3] /*to*/) /*AbstractArray::clear*/;
575 /* Register variable[5]: Local variable */
576 /* Register variable[6]: Result */
577 variable[6] = CALL_partial_order___PartialOrder_____bra(variable[0])(variable[0], variable[1] /*e*/) /*PartialOrder::[]*/;
578 variable[5] = variable[6];
579 /* Register variable[6]: For iterator */
580 variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*from*/)( variable[2] /*from*/) /*AbstractArrayRead::iterator*/;
581 while (true) { /*for*/
582 /* Register variable[7]: For 'is_ok' result */
583 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
584 if (!UNTAG_Bool(variable[7])) break; /*for*/
585 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
586 /* Register variable[8]: Local variable */
587 variable[8] = variable[7];
588 /* Register variable[9]: Result */
589 variable[9] = CALL_partial_order___PartialOrderElement_____g( variable[5] /*poe*/)( variable[5] /*poe*/, variable[8] /*i*/) /*PartialOrderElement::>*/;
590 if (UNTAG_Bool(variable[9])) { /*if*/
591 variable[4] = TAG_Bool(false);
592 goto return_label27;
593 }
594 /* Register variable[9]: Result */
595 variable[9] = CALL_partial_order___PartialOrderElement_____l( variable[5] /*poe*/)( variable[5] /*poe*/, variable[8] /*i*/) /*PartialOrderElement::<*/;
596 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[9])))) { /*if*/
597 CALL_abstract_collection___SimpleCollection___add( variable[3] /*to*/)( variable[3] /*to*/, variable[8] /*i*/) /*AbstractArray::add*/;
598 }
599 continue_28: while(0);
600 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
601 }
602 break_28: while(0);
603 CALL_abstract_collection___SimpleCollection___add( variable[3] /*to*/)( variable[3] /*to*/, variable[1] /*e*/) /*AbstractArray::add*/;
604 variable[4] = TAG_Bool(true);
605 goto return_label27;
606 return_label27: while(false);
607 tracehead = trace.prev;
608 return variable[4];
609 }
610 void partial_order___PartialOrder___compute_smallers_for(val_t self, val_t param0, val_t param1) {
611 struct trace_t trace = {NULL, NULL, 171, LOCATE_partial_order___PartialOrder___compute_smallers_for};
612 val_t variable[9];
613 struct WBT_ **closurevariable = NULL;
614 trace.prev = tracehead; tracehead = &trace;
615 trace.file = LOCATE_partial_order;
616 /* Register variable[0]: Local variable */
617 variable[0] = self;
618 /* Register variable[1]: Local variable */
619 variable[1] = param0;
620 /* Register variable[2]: Local variable */
621 variable[2] = param1;
622 /* Register variable[3]: Method return value and escape marker */
623 /* Register variable[4]: Local variable */
624 /* Register variable[5]: Result */
625 variable[5] = CALL_partial_order___PartialOrderElement___value( variable[1] /*poe*/)( variable[1] /*poe*/) /*PartialOrderElement::value*/;
626 variable[4] = variable[5];
627 /* Register variable[5]: Result */
628 variable[5] = ATTR_partial_order___PartialOrder____elements(variable[0]) /*PartialOrder::_elements*/;
629 /* Register variable[5]: For iterator */
630 variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*MapRead::iterator*/;
631 while (true) { /*for*/
632 /* Register variable[6]: For 'is_ok' result */
633 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
634 if (!UNTAG_Bool(variable[6])) break; /*for*/
635 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
636 /* Register variable[7]: Local variable */
637 variable[7] = variable[6];
638 /* Register variable[8]: Result */
639 variable[8] = CALL_partial_order___PartialOrderElement_____l( variable[7] /*s*/)( variable[7] /*s*/, variable[4] /*e*/) /*PartialOrderElement::<*/;
640 if (UNTAG_Bool(variable[8])) { /*if*/
641 /* Register variable[8]: Result */
642 variable[8] = CALL_partial_order___PartialOrderElement___value( variable[7] /*s*/)( variable[7] /*s*/) /*PartialOrderElement::value*/;
643 CALL_abstract_collection___SimpleCollection___add( variable[2] /*set*/)( variable[2] /*set*/, variable[8]) /*SimpleCollection::add*/;
644 }
645 continue_30: while(0);
646 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
647 }
648 break_30: while(0);
649 return_label29: while(false);
650 tracehead = trace.prev;
651 return;
652 }
653 void partial_order___PartialOrder___init(val_t self, int* init_table) {
654 struct trace_t trace = {NULL, NULL, 181, LOCATE_partial_order___PartialOrder___init};
655 val_t variable[3];
656 struct WBT_ **closurevariable = NULL;
657 trace.prev = tracehead; tracehead = &trace;
658 trace.file = LOCATE_partial_order;
659 /* Register variable[0]: Local variable */
660 variable[0] = self;
661 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PartialOrder].i]) return;
662 /* Register variable[1]: Method return value and escape marker */
663 /* Register variable[2]: Result */
664 variable[2] = NEW_HashMap_hash___HashMap___init() /*new HashMap[E, PartialOrderElement[E]]*/;
665 ATTR_partial_order___PartialOrder____elements(variable[0]) /*PartialOrder::_elements*/ = variable[2];
666 /* Register variable[2]: Result */
667 variable[2] = NEW_Array_array___Array___init() /*new Array[E]*/;
668 ATTR_partial_order___PartialOrder____elements_list(variable[0]) /*PartialOrder::_elements_list*/ = variable[2];
669 /* Register variable[2]: Result */
670 variable[2] = NEW_Array_array___Array___init() /*new Array[E]*/;
671 ATTR_partial_order___PartialOrder____roots(variable[0]) /*PartialOrder::_roots*/ = variable[2];
672 return_label31: while(false);
673 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PartialOrder].i] = 1;
674 tracehead = trace.prev;
675 return;
676 }
677 val_t partial_order___PartialOrderElement___order(val_t self) {
678 struct trace_t trace = {NULL, NULL, 190, LOCATE_partial_order___PartialOrderElement___order};
679 val_t *variable = NULL;
680 struct WBT_ **closurevariable = NULL;
681 trace.prev = tracehead; tracehead = &trace;
682 trace.file = LOCATE_partial_order;
683 tracehead = trace.prev;
684 return ATTR_partial_order___PartialOrderElement____order( self) /*PartialOrderElement::_order*/;
685 }
686 val_t partial_order___PartialOrderElement___value(val_t self) {
687 struct trace_t trace = {NULL, NULL, 193, LOCATE_partial_order___PartialOrderElement___value};
688 val_t *variable = NULL;
689 struct WBT_ **closurevariable = NULL;
690 trace.prev = tracehead; tracehead = &trace;
691 trace.file = LOCATE_partial_order;
692 tracehead = trace.prev;
693 return ATTR_partial_order___PartialOrderElement____value( self) /*PartialOrderElement::_value*/;
694 }
695 val_t partial_order___PartialOrderElement___rank(val_t self) {
696 struct trace_t trace = {NULL, NULL, 196, LOCATE_partial_order___PartialOrderElement___rank};
697 val_t *variable = NULL;
698 struct WBT_ **closurevariable = NULL;
699 trace.prev = tracehead; tracehead = &trace;
700 trace.file = LOCATE_partial_order;
701 tracehead = trace.prev;
702 return ATTR_partial_order___PartialOrderElement____rank( self) /*PartialOrderElement::_rank*/;
703 }
704 val_t partial_order___PartialOrderElement___direct_greaters(val_t self) {
705 struct trace_t trace = {NULL, NULL, 202, LOCATE_partial_order___PartialOrderElement___direct_greaters};
706 val_t *variable = NULL;
707 struct WBT_ **closurevariable = NULL;
708 trace.prev = tracehead; tracehead = &trace;
709 trace.file = LOCATE_partial_order;
710 tracehead = trace.prev;
711 return ATTR_partial_order___PartialOrderElement____direct_greaters( self) /*PartialOrderElement::_direct_greaters*/;
712 }
713 val_t partial_order___PartialOrderElement___direct_smallers(val_t self) {
714 struct trace_t trace = {NULL, NULL, 205, LOCATE_partial_order___PartialOrderElement___direct_smallers};
715 val_t *variable = NULL;
716 struct WBT_ **closurevariable = NULL;
717 trace.prev = tracehead; tracehead = &trace;
718 trace.file = LOCATE_partial_order;
719 tracehead = trace.prev;
720 return ATTR_partial_order___PartialOrderElement____direct_smallers( self) /*PartialOrderElement::_direct_smallers*/;
721 }
722 val_t partial_order___PartialOrderElement___greaters(val_t self) {
723 struct trace_t trace = {NULL, NULL, 208, LOCATE_partial_order___PartialOrderElement___greaters};
724 val_t *variable = NULL;
725 struct WBT_ **closurevariable = NULL;
726 trace.prev = tracehead; tracehead = &trace;
727 trace.file = LOCATE_partial_order;
728 tracehead = trace.prev;
729 return ATTR_partial_order___PartialOrderElement____greaters( self) /*PartialOrderElement::_greaters*/;
730 }
731 val_t partial_order___PartialOrderElement___greaters_and_self(val_t self) {
732 struct trace_t trace = {NULL, NULL, 214, LOCATE_partial_order___PartialOrderElement___greaters_and_self};
733 val_t variable[4];
734 struct WBT_ **closurevariable = NULL;
735 trace.prev = tracehead; tracehead = &trace;
736 trace.file = LOCATE_partial_order;
737 /* Register variable[0]: Local variable */
738 variable[0] = self;
739 /* Register variable[1]: Method return value and escape marker */
740 /* Register variable[2]: Result */
741 variable[2] = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache(variable[0]) /*PartialOrderElement::_greaters_and_self_cache*/;
742 /* Register variable[2]: Result */
743 variable[2] = TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], NIT_NULL /*null*/) /*AbstractArrayRead::==*/)));
744 if (UNTAG_Bool(variable[2])) { /*if*/
745 /* Register variable[2]: Result */
746 variable[2] = ATTR_partial_order___PartialOrderElement____greaters(variable[0]) /*PartialOrderElement::_greaters*/;
747 /* Register variable[2]: Result */
748 variable[2] = CALL_array___Collection___to_a(variable[2])(variable[2]) /*Collection::to_a*/;
749 ATTR_partial_order___PartialOrderElement____greaters_and_self_cache(variable[0]) /*PartialOrderElement::_greaters_and_self_cache*/ = variable[2];
750 /* Register variable[2]: Result */
751 variable[2] = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache(variable[0]) /*PartialOrderElement::_greaters_and_self_cache*/;
752 /* Register variable[3]: Result */
753 variable[3] = ATTR_partial_order___PartialOrderElement____value(variable[0]) /*PartialOrderElement::_value*/;
754 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
755 }
756 /* Register variable[2]: Result */
757 variable[2] = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache(variable[0]) /*PartialOrderElement::_greaters_and_self_cache*/;
758 variable[1] = variable[2];
759 goto return_label32;
760 return_label32: while(false);
761 tracehead = trace.prev;
762 return variable[1];
763 }
764 val_t partial_order___PartialOrderElement___smallers(val_t self) {
765 struct trace_t trace = {NULL, NULL, 230, LOCATE_partial_order___PartialOrderElement___smallers};
766 val_t variable[4];
767 struct WBT_ **closurevariable = NULL;
768 trace.prev = tracehead; tracehead = &trace;
769 trace.file = LOCATE_partial_order;
770 /* Register variable[0]: Local variable */
771 variable[0] = self;
772 /* Register variable[1]: Method return value and escape marker */
773 /* Register variable[2]: Result */
774 variable[2] = ATTR_partial_order___PartialOrderElement____smallers_last_length(variable[0]) /*PartialOrderElement::_smallers_last_length*/;
775 /* Register variable[3]: Result */
776 variable[3] = ATTR_partial_order___PartialOrderElement____order(variable[0]) /*PartialOrderElement::_order*/;
777 /* Register variable[3]: Result */
778 variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*PartialOrder::length*/;
779 /* Register variable[2]: Result */
780 variable[2] = TAG_Bool(UNTAG_Int(variable[2])<UNTAG_Int(variable[3]));
781 if (UNTAG_Bool(variable[2])) { /*if*/
782 /* Register variable[2]: Result */
783 variable[2] = ATTR_partial_order___PartialOrderElement____order(variable[0]) /*PartialOrderElement::_order*/;
784 /* Register variable[3]: Result */
785 variable[3] = ATTR_partial_order___PartialOrderElement____smallers_cache(variable[0]) /*PartialOrderElement::_smallers_cache*/;
786 CALL_partial_order___PartialOrder___compute_smallers_for(variable[2])(variable[2], variable[0], variable[3]) /*PartialOrder::compute_smallers_for*/;
787 /* Register variable[2]: Result */
788 variable[2] = ATTR_partial_order___PartialOrderElement____order(variable[0]) /*PartialOrderElement::_order*/;
789 /* Register variable[2]: Result */
790 variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*PartialOrder::length*/;
791 ATTR_partial_order___PartialOrderElement____smallers_last_length(variable[0]) /*PartialOrderElement::_smallers_last_length*/ = variable[2];
792 }
793 /* Register variable[2]: Result */
794 variable[2] = ATTR_partial_order___PartialOrderElement____smallers_cache(variable[0]) /*PartialOrderElement::_smallers_cache*/;
795 variable[1] = variable[2];
796 goto return_label33;
797 return_label33: while(false);
798 tracehead = trace.prev;
799 return variable[1];
800 }
801 val_t partial_order___PartialOrderElement___linear_extension(val_t self) {
802 struct trace_t trace = {NULL, NULL, 243, LOCATE_partial_order___PartialOrderElement___linear_extension};
803 val_t variable[12];
804 struct WBT_ **closurevariable = NULL;
805 trace.prev = tracehead; tracehead = &trace;
806 trace.file = LOCATE_partial_order;
807 /* Register variable[0]: Local variable */
808 variable[0] = self;
809 /* Register variable[1]: Method return value and escape marker */
810 /* Register variable[2]: Result */
811 variable[2] = ATTR_partial_order___PartialOrderElement____linear_extension_cache(variable[0]) /*PartialOrderElement::_linear_extension_cache*/;
812 /* Register variable[2]: Result */
813 variable[2] = TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], NIT_NULL /*null*/) /*AbstractArrayRead::==*/)));
814 if (UNTAG_Bool(variable[2])) { /*if*/
815 /* Register variable[2]: Local variable */
816 /* Register variable[3]: Result */
817 variable[3] = NEW_Array_array___Array___init() /*new Array[E]*/;
818 variable[2] = variable[3];
819 /* Register variable[3]: Local variable */
820 /* Register variable[4]: Result */
821 variable[4] = NEW_Array_array___Array___init() /*new Array[E]*/;
822 variable[3] = variable[4];
823 /* Register variable[4]: Result */
824 variable[4] = CALL_partial_order___PartialOrderElement___value(variable[0])(variable[0]) /*PartialOrderElement::value*/;
825 CALL_abstract_collection___SimpleCollection___add( variable[2] /*res*/)( variable[2] /*res*/, variable[4]) /*AbstractArray::add*/;
826 /* Register variable[4]: Result */
827 variable[4] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[0])(variable[0]) /*PartialOrderElement::direct_greaters*/;
828 /* Register variable[4]: For iterator */
829 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArrayRead::iterator*/;
830 while (true) { /*for*/
831 /* Register variable[5]: For 'is_ok' result */
832 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
833 if (!UNTAG_Bool(variable[5])) break; /*for*/
834 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
835 /* Register variable[6]: Local variable */
836 variable[6] = variable[5];
837 /* Register variable[7]: Local variable */
838 /* Register variable[8]: Result */
839 variable[8] = CALL_partial_order___PartialOrderElement___order(variable[0])(variable[0]) /*PartialOrderElement::order*/;
840 /* Register variable[8]: Result */
841 variable[8] = CALL_partial_order___PartialOrder_____bra(variable[8])(variable[8], variable[6] /*s*/) /*PartialOrder::[]*/;
842 /* Register variable[8]: Result */
843 variable[8] = CALL_partial_order___PartialOrderElement___linear_extension(variable[8])(variable[8]) /*PartialOrderElement::linear_extension*/;
844 variable[7] = variable[8];
845 CALL_abstract_collection___RemovableCollection___clear( variable[3] /*res2*/)( variable[3] /*res2*/) /*AbstractArray::clear*/;
846 /* Register variable[8]: For iterator */
847 variable[8] = CALL_abstract_collection___Collection___iterator( variable[2] /*res*/)( variable[2] /*res*/) /*AbstractArrayRead::iterator*/;
848 while (true) { /*for*/
849 /* Register variable[9]: For 'is_ok' result */
850 variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
851 if (!UNTAG_Bool(variable[9])) break; /*for*/
852 variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
853 /* Register variable[10]: Local variable */
854 variable[10] = variable[9];
855 /* Register variable[11]: Result */
856 variable[11] = CALL_abstract_collection___Collection___has( variable[7] /*sl*/)( variable[7] /*sl*/, variable[10] /*e*/) /*AbstractArrayRead::has*/;
857 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[11])))) { /*if*/
858 CALL_abstract_collection___SimpleCollection___add( variable[3] /*res2*/)( variable[3] /*res2*/, variable[10] /*e*/) /*AbstractArray::add*/;
859 }
860 continue_36: while(0);
861 CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
862 }
863 break_36: while(0);
864 CALL_abstract_collection___IndexedCollection___append( variable[3] /*res2*/)( variable[3] /*res2*/, variable[7] /*sl*/) /*IndexedCollection::append*/;
865 /* Register variable[8]: Local variable */
866 variable[8] = variable[2] /*res*/;
867 variable[2] = variable[3] /*res2*/ /*res=*/;
868 variable[3] = variable[8] /*tmp*/ /*res2=*/;
869 continue_35: while(0);
870 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
871 }
872 break_35: while(0);
873 ATTR_partial_order___PartialOrderElement____linear_extension_cache(variable[0]) /*PartialOrderElement::_linear_extension_cache*/ = variable[2] /*res*/;
874 }
875 /* Register variable[2]: Result */
876 variable[2] = ATTR_partial_order___PartialOrderElement____linear_extension_cache(variable[0]) /*PartialOrderElement::_linear_extension_cache*/;
877 variable[1] = variable[2];
878 goto return_label34;
879 return_label34: while(false);
880 tracehead = trace.prev;
881 return variable[1];
882 }
883 val_t partial_order___PartialOrderElement___reverse_linear_extension(val_t self) {
884 struct trace_t trace = {NULL, NULL, 271, LOCATE_partial_order___PartialOrderElement___reverse_linear_extension};
885 val_t variable[8];
886 struct WBT_ **closurevariable = NULL;
887 trace.prev = tracehead; tracehead = &trace;
888 trace.file = LOCATE_partial_order;
889 /* Register variable[0]: Local variable */
890 variable[0] = self;
891 /* Register variable[1]: Method return value and escape marker */
892 /* Register variable[2]: Result */
893 variable[2] = ATTR_partial_order___PartialOrderElement____reverse_linear_extension_cache(variable[0]) /*PartialOrderElement::_reverse_linear_extension_cache*/;
894 /* Register variable[2]: Result */
895 variable[2] = TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], NIT_NULL /*null*/) /*AbstractArrayRead::==*/)));
896 if (UNTAG_Bool(variable[2])) { /*if*/
897 /* Register variable[2]: Local variable */
898 /* Register variable[3]: Result */
899 variable[3] = NEW_HashSet_hash___HashSet___init() /*new HashSet[E]*/;
900 variable[2] = variable[3];
901 /* Register variable[3]: Result */
902 variable[3] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[0])(variable[0]) /*PartialOrderElement::direct_greaters*/;
903 /* Register variable[3]: For iterator */
904 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArrayRead::iterator*/;
905 while (true) { /*for*/
906 /* Register variable[4]: For 'is_ok' result */
907 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
908 if (!UNTAG_Bool(variable[4])) break; /*for*/
909 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
910 /* Register variable[5]: Local variable */
911 variable[5] = variable[4];
912 /* Register variable[6]: Local variable */
913 /* Register variable[7]: Result */
914 variable[7] = CALL_partial_order___PartialOrderElement___order(variable[0])(variable[0]) /*PartialOrderElement::order*/;
915 /* Register variable[7]: Result */
916 variable[7] = CALL_partial_order___PartialOrder_____bra(variable[7])(variable[7], variable[5] /*s*/) /*PartialOrder::[]*/;
917 /* Register variable[7]: Result */
918 variable[7] = CALL_partial_order___PartialOrderElement___linear_extension(variable[7])(variable[7]) /*PartialOrderElement::linear_extension*/;
919 variable[6] = variable[7];
920 CALL_abstract_collection___SimpleCollection___add_all( variable[2] /*res*/)( variable[2] /*res*/, variable[6] /*sl*/) /*SimpleCollection::add_all*/;
921 continue_38: while(0);
922 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
923 }
924 break_38: while(0);
925 /* Register variable[3]: Result */
926 variable[3] = CALL_partial_order___PartialOrderElement___value(variable[0])(variable[0]) /*PartialOrderElement::value*/;
927 CALL_abstract_collection___SimpleCollection___add( variable[2] /*res*/)( variable[2] /*res*/, variable[3]) /*HashSet::add*/;
928 /* Register variable[3]: Result */
929 variable[3] = CALL_array___Collection___to_a( variable[2] /*res*/)( variable[2] /*res*/) /*Collection::to_a*/;
930 ATTR_partial_order___PartialOrderElement____linear_extension_cache(variable[0]) /*PartialOrderElement::_linear_extension_cache*/ = variable[3];
931 }
932 /* Register variable[2]: Result */
933 variable[2] = ATTR_partial_order___PartialOrderElement____linear_extension_cache(variable[0]) /*PartialOrderElement::_linear_extension_cache*/;
934 variable[1] = variable[2];
935 goto return_label37;
936 return_label37: while(false);
937 tracehead = trace.prev;
938 return variable[1];
939 }
940 val_t partial_order___PartialOrderElement_____l(val_t self, val_t param0) {
941 struct trace_t trace = {NULL, NULL, 287, LOCATE_partial_order___PartialOrderElement_____l};
942 val_t variable[4];
943 struct WBT_ **closurevariable = NULL;
944 trace.prev = tracehead; tracehead = &trace;
945 trace.file = LOCATE_partial_order;
946 /* Register variable[0]: Local variable */
947 variable[0] = self;
948 /* Register variable[1]: Local variable */
949 variable[1] = param0;
950 /* Register variable[2]: Method return value and escape marker */
951 /* Register variable[3]: Result */
952 variable[3] = ATTR_partial_order___PartialOrderElement____greaters(variable[0]) /*PartialOrderElement::_greaters*/;
953 /* Register variable[3]: Result */
954 variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3], variable[1] /*o*/) /*Collection::has*/;
955 variable[2] = variable[3];
956 goto return_label39;
957 return_label39: while(false);
958 tracehead = trace.prev;
959 return variable[2];
960 }
961 val_t partial_order___PartialOrderElement_____leq(val_t self, val_t param0) {
962 struct trace_t trace = {NULL, NULL, 293, LOCATE_partial_order___PartialOrderElement_____leq};
963 val_t variable[4];
964 struct WBT_ **closurevariable = NULL;
965 trace.prev = tracehead; tracehead = &trace;
966 trace.file = LOCATE_partial_order;
967 /* Register variable[0]: Local variable */
968 variable[0] = self;
969 /* Register variable[1]: Local variable */
970 variable[1] = param0;
971 /* Register variable[2]: Method return value and escape marker */
972 /* Register variable[3]: Result */
973 variable[3] = ATTR_partial_order___PartialOrderElement____value(variable[0]) /*PartialOrderElement::_value*/;
974 /* Register variable[3]: Result */
975 variable[3] = TAG_Bool((variable[3] == variable[1] /*o*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*o*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[1] /*o*/) /*Object::==*/)))));
976 /* Ensure var variable[3]: Left 'or' operand*/
977 if (!UNTAG_Bool(variable[3])) { /* or */
978 /* Register variable[3]: Result */
979 variable[3] = ATTR_partial_order___PartialOrderElement____greaters(variable[0]) /*PartialOrderElement::_greaters*/;
980 /* Register variable[3]: Result */
981 variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3], variable[1] /*o*/) /*Collection::has*/;
982 }
983 /* Register variable[3]: Result */
984 variable[2] = variable[3];
985 goto return_label40;
986 return_label40: while(false);
987 tracehead = trace.prev;
988 return variable[2];
989 }
990 val_t partial_order___PartialOrderElement_____g(val_t self, val_t param0) {
991 struct trace_t trace = {NULL, NULL, 299, LOCATE_partial_order___PartialOrderElement_____g};
992 val_t variable[5];
993 struct WBT_ **closurevariable = NULL;
994 trace.prev = tracehead; tracehead = &trace;
995 trace.file = LOCATE_partial_order;
996 /* Register variable[0]: Local variable */
997 variable[0] = self;
998 /* Register variable[1]: Local variable */
999 variable[1] = param0;
1000 /* Register variable[2]: Method return value and escape marker */
1001 /* Register variable[3]: Result */
1002 variable[3] = ATTR_partial_order___PartialOrderElement____order(variable[0]) /*PartialOrderElement::_order*/;
1003 /* Register variable[3]: Result */
1004 variable[3] = CALL_partial_order___PartialOrder_____bra(variable[3])(variable[3], variable[1] /*o*/) /*PartialOrder::[]*/;
1005 /* Register variable[4]: Result */
1006 variable[4] = ATTR_partial_order___PartialOrderElement____value(variable[0]) /*PartialOrderElement::_value*/;
1007 /* Register variable[3]: Result */
1008 variable[3] = CALL_partial_order___PartialOrderElement_____l(variable[3])(variable[3], variable[4]) /*PartialOrderElement::<*/;
1009 variable[2] = variable[3];
1010 goto return_label41;
1011 return_label41: while(false);
1012 tracehead = trace.prev;
1013 return variable[2];
1014 }
1015 val_t partial_order___PartialOrderElement_____geq(val_t self, val_t param0) {
1016 struct trace_t trace = {NULL, NULL, 305, LOCATE_partial_order___PartialOrderElement_____geq};
1017 val_t variable[5];
1018 struct WBT_ **closurevariable = NULL;
1019 trace.prev = tracehead; tracehead = &trace;
1020 trace.file = LOCATE_partial_order;
1021 /* Register variable[0]: Local variable */
1022 variable[0] = self;
1023 /* Register variable[1]: Local variable */
1024 variable[1] = param0;
1025 /* Register variable[2]: Method return value and escape marker */
1026 /* Register variable[3]: Result */
1027 variable[3] = ATTR_partial_order___PartialOrderElement____value(variable[0]) /*PartialOrderElement::_value*/;
1028 /* Register variable[3]: Result */
1029 variable[3] = TAG_Bool((variable[3] == variable[1] /*o*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*o*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[1] /*o*/) /*Object::==*/)))));
1030 /* Ensure var variable[3]: Left 'or' operand*/
1031 if (!UNTAG_Bool(variable[3])) { /* or */
1032 /* Register variable[3]: Result */
1033 variable[3] = ATTR_partial_order___PartialOrderElement____order(variable[0]) /*PartialOrderElement::_order*/;
1034 /* Register variable[3]: Result */
1035 variable[3] = CALL_partial_order___PartialOrder_____bra(variable[3])(variable[3], variable[1] /*o*/) /*PartialOrder::[]*/;
1036 /* Register variable[4]: Result */
1037 variable[4] = ATTR_partial_order___PartialOrderElement____value(variable[0]) /*PartialOrderElement::_value*/;
1038 /* Register variable[3]: Result */
1039 variable[3] = CALL_partial_order___PartialOrderElement_____l(variable[3])(variable[3], variable[4]) /*PartialOrderElement::<*/;
1040 }
1041 /* Register variable[3]: Result */
1042 variable[2] = variable[3];
1043 goto return_label42;
1044 return_label42: while(false);
1045 tracehead = trace.prev;
1046 return variable[2];
1047 }
1048 void partial_order___PartialOrderElement___register_direct_smallers(val_t self, val_t param0) {
1049 struct trace_t trace = {NULL, NULL, 311, LOCATE_partial_order___PartialOrderElement___register_direct_smallers};
1050 val_t variable[4];
1051 struct WBT_ **closurevariable = NULL;
1052 trace.prev = tracehead; tracehead = &trace;
1053 trace.file = LOCATE_partial_order;
1054 /* Register variable[0]: Local variable */
1055 variable[0] = self;
1056 /* Register variable[1]: Local variable */
1057 variable[1] = param0;
1058 /* Register variable[2]: Method return value and escape marker */
1059 /* Register variable[3]: Result */
1060 variable[3] = ATTR_partial_order___PartialOrderElement____direct_smallers(variable[0]) /*PartialOrderElement::_direct_smallers*/;
1061 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1] /*e*/) /*AbstractArray::add*/;
1062 return_label43: while(false);
1063 tracehead = trace.prev;
1064 return;
1065 }
1066 void partial_order___PartialOrderElement___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
1067 struct trace_t trace = {NULL, NULL, 316, LOCATE_partial_order___PartialOrderElement___init};
1068 val_t variable[14];
1069 struct WBT_ **closurevariable = NULL;
1070 trace.prev = tracehead; tracehead = &trace;
1071 trace.file = LOCATE_partial_order;
1072 /* Register variable[0]: Local variable */
1073 variable[0] = self;
1074 /* Register variable[1]: Local variable */
1075 variable[1] = param0;
1076 /* Register variable[2]: Local variable */
1077 variable[2] = param1;
1078 /* Register variable[3]: Local variable */
1079 variable[3] = param2;
1080 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PartialOrderElement].i]) return;
1081 /* Register variable[4]: Method return value and escape marker */
1082 ATTR_partial_order___PartialOrderElement____order(variable[0]) /*PartialOrderElement::_order*/ = variable[1] /*o*/;
1083 ATTR_partial_order___PartialOrderElement____value(variable[0]) /*PartialOrderElement::_value*/ = variable[2] /*e*/;
1084 ATTR_partial_order___PartialOrderElement____direct_greaters(variable[0]) /*PartialOrderElement::_direct_greaters*/ = variable[3] /*directs*/;
1085 /* Register variable[5]: Result */
1086 variable[5] = NEW_Array_array___Array___init() /*new Array[E]*/;
1087 ATTR_partial_order___PartialOrderElement____direct_smallers(variable[0]) /*PartialOrderElement::_direct_smallers*/ = variable[5];
1088 /* Register variable[5]: Result */
1089 variable[5] = NEW_HashSet_hash___HashSet___init() /*new HashSet[E]*/;
1090 ATTR_partial_order___PartialOrderElement____greaters(variable[0]) /*PartialOrderElement::_greaters*/ = variable[5];
1091 /* Register variable[5]: Result */
1092 variable[5] = NEW_HashSet_hash___HashSet___init() /*new HashSet[E]*/;
1093 ATTR_partial_order___PartialOrderElement____smallers_cache(variable[0]) /*PartialOrderElement::_smallers_cache*/ = variable[5];
1094 /* Register variable[5]: Local variable */
1095 /* Register variable[6]: Result */
1096 variable[6] = ATTR_partial_order___PartialOrderElement____greaters(variable[0]) /*PartialOrderElement::_greaters*/;
1097 variable[5] = variable[6];
1098 /* Register variable[6]: Local variable */
1099 variable[6] = TAG_Int(0);
1100 /* Register variable[7]: For iterator */
1101 variable[7] = CALL_abstract_collection___Collection___iterator( variable[3] /*directs*/)( variable[3] /*directs*/) /*AbstractArrayRead::iterator*/;
1102 while (true) { /*for*/
1103 /* Register variable[8]: For 'is_ok' result */
1104 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
1105 if (!UNTAG_Bool(variable[8])) break; /*for*/
1106 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
1107 /* Register variable[9]: Local variable */
1108 variable[9] = variable[8];
1109 CALL_abstract_collection___SimpleCollection___add( variable[5] /*g*/)( variable[5] /*g*/, variable[9] /*ee*/) /*SimpleCollection::add*/;
1110 /* Register variable[10]: Local variable */
1111 /* Register variable[11]: Result */
1112 variable[11] = ATTR_partial_order___PartialOrderElement____order(variable[0]) /*PartialOrderElement::_order*/;
1113 /* Register variable[11]: Result */
1114 variable[11] = CALL_partial_order___PartialOrder_____bra(variable[11])(variable[11], variable[9] /*ee*/) /*PartialOrder::[]*/;
1115 variable[10] = variable[11];
1116 /* Register variable[11]: Result */
1117 variable[11] = CALL_partial_order___PartialOrderElement___rank( variable[10] /*poee*/)( variable[10] /*poee*/) /*PartialOrderElement::rank*/;
1118 /* Register variable[11]: Result */
1119 variable[11] = TAG_Bool(UNTAG_Int(variable[11])>=UNTAG_Int( variable[6] /*r*/));
1120 if (UNTAG_Bool(variable[11])) { /*if*/
1121 /* Register variable[11]: Result */
1122 variable[11] = CALL_partial_order___PartialOrderElement___rank( variable[10] /*poee*/)( variable[10] /*poee*/) /*PartialOrderElement::rank*/;
1123 /* Register variable[11]: Result */
1124 variable[11] = TAG_Int(UNTAG_Int(variable[11])+UNTAG_Int( TAG_Int(1)));
1125 variable[6] = variable[11] /*r=*/;
1126 }
1127 CALL_partial_order___PartialOrderElement___register_direct_smallers( variable[10] /*poee*/)( variable[10] /*poee*/, variable[2] /*e*/) /*PartialOrderElement::register_direct_smallers*/;
1128 /* Register variable[11]: Result */
1129 variable[11] = CALL_partial_order___PartialOrderElement___greaters( variable[10] /*poee*/)( variable[10] /*poee*/) /*PartialOrderElement::greaters*/;
1130 /* Register variable[11]: For iterator */
1131 variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Collection::iterator*/;
1132 while (true) { /*for*/
1133 /* Register variable[12]: For 'is_ok' result */
1134 variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
1135 if (!UNTAG_Bool(variable[12])) break; /*for*/
1136 variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/ /* Ensure var: For item*/;
1137 /* Register variable[13]: Local variable */
1138 variable[13] = variable[12];
1139 CALL_abstract_collection___SimpleCollection___add( variable[5] /*g*/)( variable[5] /*g*/, variable[13] /*eee*/) /*SimpleCollection::add*/;
1140 continue_46: while(0);
1141 CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*Iterator::next*/;
1142 }
1143 break_46: while(0);
1144 continue_45: while(0);
1145 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
1146 }
1147 break_45: while(0);
1148 ATTR_partial_order___PartialOrderElement____rank(variable[0]) /*PartialOrderElement::_rank*/ = variable[6] /*r*/;
1149 return_label44: while(false);
1150 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PartialOrderElement].i] = 1;
1151 tracehead = trace.prev;
1152 return;
1153 }