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
};
6 struct WBT_
**closurevariable
= NULL
;
7 trace
.prev
= tracehead
; tracehead
= &trace
;
8 trace
.file
= LOCATE_partial_order
;
9 /* Register variable[0]: Local variable */
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];
18 return_label0
: while(false);
19 tracehead
= trace
.prev
;
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
};
25 struct WBT_
**closurevariable
= NULL
;
26 trace
.prev
= tracehead
; tracehead
= &trace
;
27 trace
.file
= LOCATE_partial_order
;
28 /* Register variable[0]: Local variable */
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];
37 return_label1
: while(false);
38 tracehead
= trace
.prev
;
41 val_t
partial_order___PartialOrder___length(val_t self
) {
42 struct trace_t trace
= {NULL
, NULL
, 37, LOCATE_partial_order___PartialOrder___length
};
44 struct WBT_
**closurevariable
= NULL
;
45 trace
.prev
= tracehead
; tracehead
= &trace
;
46 trace
.file
= LOCATE_partial_order
;
47 /* Register variable[0]: Local variable */
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];
56 return_label2
: while(false);
57 tracehead
= trace
.prev
;
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
};
63 struct WBT_
**closurevariable
= NULL
;
64 trace
.prev
= tracehead
; tracehead
= &trace
;
65 trace
.file
= LOCATE_partial_order
;
66 /* Register variable[0]: Local variable */
68 /* Register variable[1]: Local variable */
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];
77 return_label3
: while(false);
78 tracehead
= trace
.prev
;
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
};
84 struct WBT_
**closurevariable
= NULL
;
85 trace
.prev
= tracehead
; tracehead
= &trace
;
86 trace
.file
= LOCATE_partial_order
;
87 /* Register variable[0]: Local variable */
89 /* Register variable[1]: Local variable */
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::==*/)))));
107 /* Register variable[3]: Result */
108 variable
[2] = variable
[3];
110 return_label4
: while(false);
111 tracehead
= trace
.prev
;
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
};
117 struct WBT_
**closurevariable
= NULL
;
118 trace
.prev
= tracehead
; tracehead
= &trace
;
119 trace
.file
= LOCATE_partial_order
;
120 /* Register variable[0]: Local variable */
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);
131 variable
[2] = TAG_Int(0);
134 return_label5
: while(false);
135 tracehead
= trace
.prev
;
138 val_t
partial_order___PartialOrder___first(val_t self
) {
139 struct trace_t trace
= {NULL
, NULL
, 39, LOCATE_partial_order___PartialOrder___first
};
141 struct WBT_
**closurevariable
= NULL
;
142 trace
.prev
= tracehead
; tracehead
= &trace
;
143 trace
.file
= LOCATE_partial_order
;
144 /* Register variable[0]: Local variable */
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];
153 return_label6
: while(false);
154 tracehead
= trace
.prev
;
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*/;
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
};
169 struct WBT_
**closurevariable
= NULL
;
170 trace
.prev
= tracehead
; tracehead
= &trace
;
171 trace
.file
= LOCATE_partial_order
;
172 /* Register variable[0]: Local variable */
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];
183 return_label7
: while(false);
184 tracehead
= trace
.prev
;
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]*/
191 struct WBT_
**closurevariable
= NULL
;
192 trace
.prev
= tracehead
; tracehead
= &trace
;
193 trace
.file
= LOCATE_partial_order
;
194 /* Register variable[0]: Local variable */
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*/;
240 continue_9
: while(0);
241 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
244 /* Register variable[3]: Once String constant */
245 if (once_value_11
!= NIT_NULL
) variable
[3] = once_value_11
;
247 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("}\n"), TAG_Int(2)) /*new String*/;
248 once_value_11
= variable
[3];
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];
256 return_label8
: while(false);
257 tracehead
= trace
.prev
;
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]*/
264 struct WBT_
**closurevariable
= NULL
;
265 trace
.prev
= tracehead
; tracehead
= &trace
;
266 trace
.file
= LOCATE_partial_order
;
267 /* Register variable[0]: Local variable */
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
;
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];
276 /* Register variable[2]: Result */
277 variable
[1] = variable
[2];
279 return_label12
: while(false);
280 tracehead
= trace
.prev
;
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]*/
288 struct WBT_
**closurevariable
= NULL
;
289 trace
.prev
= tracehead
; tracehead
= &trace
;
290 trace
.file
= LOCATE_partial_order
;
291 /* Register variable[0]: Local variable */
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
;
300 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)) /*new String*/;
301 once_value_15
= variable
[4];
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
;
311 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)) /*new String*/;
312 once_value_16
= variable
[4];
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];
321 return_label14
: while(false);
322 tracehead
= trace
.prev
;
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]*/
331 struct WBT_
**closurevariable
= NULL
;
332 trace
.prev
= tracehead
; tracehead
= &trace
;
333 trace
.file
= LOCATE_partial_order
;
334 /* Register variable[0]: Local variable */
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
;
345 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)) /*new String*/;
346 once_value_18
= variable
[5];
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
;
356 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("\" -> \""), TAG_Int(6)) /*new String*/;
357 once_value_19
= variable
[5];
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
;
367 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)) /*new String*/;
368 once_value_20
= variable
[5];
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];
377 return_label17
: while(false);
378 tracehead
= trace
.prev
;
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
};
384 struct WBT_
**closurevariable
= NULL
;
385 trace
.prev
= tracehead
; tracehead
= &trace
;
386 trace
.file
= LOCATE_partial_order
;
387 /* Register variable[0]: Local variable */
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];
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=*/;
434 continue_22
: while(0);
435 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*Iterator::next*/;
438 variable
[2] = variable
[3] /*res*/;
440 return_label21
: while(false);
441 tracehead
= trace
.prev
;
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
};
447 struct WBT_
**closurevariable
= NULL
;
448 trace
.prev
= tracehead
; tracehead
= &trace
;
449 trace
.file
= LOCATE_partial_order
;
450 /* Register variable[0]: Local variable */
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*/;
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*/;
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*/;
496 variable
[3] = variable
[5] /*poe*/;
498 return_label23
: while(false);
499 tracehead
= trace
.prev
;
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
};
505 struct WBT_
**closurevariable
= NULL
;
506 trace
.prev
= tracehead
; tracehead
= &trace
;
507 trace
.file
= LOCATE_partial_order
;
508 /* Register variable[0]: Local variable */
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);
528 continue_25
: while(0);
529 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
532 variable
[2] = TAG_Bool(true);
534 return_label24
: while(false);
535 tracehead
= trace
.prev
;
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
};
541 struct WBT_
**closurevariable
= NULL
;
542 trace
.prev
= tracehead
; tracehead
= &trace
;
543 trace
.file
= LOCATE_partial_order
;
544 /* Register variable[0]: Local variable */
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];
555 return_label26
: while(false);
556 tracehead
= trace
.prev
;
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
};
562 struct WBT_
**closurevariable
= NULL
;
563 trace
.prev
= tracehead
; tracehead
= &trace
;
564 trace
.file
= LOCATE_partial_order
;
565 /* Register variable[0]: Local variable */
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);
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*/;
599 continue_28
: while(0);
600 CALL_abstract_collection___Iterator___next(variable
[6])(variable
[6]) /*ArrayIterator::next*/;
603 CALL_abstract_collection___SimpleCollection___add( variable
[3] /*to*/)( variable
[3] /*to*/, variable
[1] /*e*/) /*AbstractArray::add*/;
604 variable
[4] = TAG_Bool(true);
606 return_label27
: while(false);
607 tracehead
= trace
.prev
;
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
};
613 struct WBT_
**closurevariable
= NULL
;
614 trace
.prev
= tracehead
; tracehead
= &trace
;
615 trace
.file
= LOCATE_partial_order
;
616 /* Register variable[0]: Local variable */
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*/;
645 continue_30
: while(0);
646 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*Iterator::next*/;
649 return_label29
: while(false);
650 tracehead
= trace
.prev
;
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
};
656 struct WBT_
**closurevariable
= NULL
;
657 trace
.prev
= tracehead
; tracehead
= &trace
;
658 trace
.file
= LOCATE_partial_order
;
659 /* Register variable[0]: Local variable */
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
;
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*/;
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*/;
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*/;
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*/;
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*/;
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*/;
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
};
734 struct WBT_
**closurevariable
= NULL
;
735 trace
.prev
= tracehead
; tracehead
= &trace
;
736 trace
.file
= LOCATE_partial_order
;
737 /* Register variable[0]: Local variable */
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*/;
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];
760 return_label32
: while(false);
761 tracehead
= trace
.prev
;
764 val_t
partial_order___PartialOrderElement___smallers(val_t self
) {
765 struct trace_t trace
= {NULL
, NULL
, 230, LOCATE_partial_order___PartialOrderElement___smallers
};
767 struct WBT_
**closurevariable
= NULL
;
768 trace
.prev
= tracehead
; tracehead
= &trace
;
769 trace
.file
= LOCATE_partial_order
;
770 /* Register variable[0]: Local variable */
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];
793 /* Register variable[2]: Result */
794 variable
[2] = ATTR_partial_order___PartialOrderElement____smallers_cache(variable
[0]) /*PartialOrderElement::_smallers_cache*/;
795 variable
[1] = variable
[2];
797 return_label33
: while(false);
798 tracehead
= trace
.prev
;
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
};
804 struct WBT_
**closurevariable
= NULL
;
805 trace
.prev
= tracehead
; tracehead
= &trace
;
806 trace
.file
= LOCATE_partial_order
;
807 /* Register variable[0]: Local variable */
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*/;
860 continue_36
: while(0);
861 CALL_abstract_collection___Iterator___next(variable
[8])(variable
[8]) /*ArrayIterator::next*/;
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*/;
873 ATTR_partial_order___PartialOrderElement____linear_extension_cache(variable
[0]) /*PartialOrderElement::_linear_extension_cache*/ = variable
[2] /*res*/;
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];
879 return_label34
: while(false);
880 tracehead
= trace
.prev
;
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
};
886 struct WBT_
**closurevariable
= NULL
;
887 trace
.prev
= tracehead
; tracehead
= &trace
;
888 trace
.file
= LOCATE_partial_order
;
889 /* Register variable[0]: Local variable */
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*/;
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];
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];
936 return_label37
: while(false);
937 tracehead
= trace
.prev
;
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
};
943 struct WBT_
**closurevariable
= NULL
;
944 trace
.prev
= tracehead
; tracehead
= &trace
;
945 trace
.file
= LOCATE_partial_order
;
946 /* Register variable[0]: Local variable */
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];
957 return_label39
: while(false);
958 tracehead
= trace
.prev
;
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
};
964 struct WBT_
**closurevariable
= NULL
;
965 trace
.prev
= tracehead
; tracehead
= &trace
;
966 trace
.file
= LOCATE_partial_order
;
967 /* Register variable[0]: Local variable */
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*/;
983 /* Register variable[3]: Result */
984 variable
[2] = variable
[3];
986 return_label40
: while(false);
987 tracehead
= trace
.prev
;
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
};
993 struct WBT_
**closurevariable
= NULL
;
994 trace
.prev
= tracehead
; tracehead
= &trace
;
995 trace
.file
= LOCATE_partial_order
;
996 /* Register variable[0]: Local variable */
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
;
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
};
1018 struct WBT_
**closurevariable
= NULL
;
1019 trace
.prev
= tracehead
; tracehead
= &trace
;
1020 trace
.file
= LOCATE_partial_order
;
1021 /* Register variable[0]: Local variable */
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::<*/;
1041 /* Register variable[3]: Result */
1042 variable
[2] = variable
[3];
1043 goto return_label42
;
1044 return_label42
: while(false);
1045 tracehead
= trace
.prev
;
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
};
1051 struct WBT_
**closurevariable
= NULL
;
1052 trace
.prev
= tracehead
; tracehead
= &trace
;
1053 trace
.file
= LOCATE_partial_order
;
1054 /* Register variable[0]: Local variable */
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
;
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
};
1069 struct WBT_
**closurevariable
= NULL
;
1070 trace
.prev
= tracehead
; tracehead
= &trace
;
1071 trace
.file
= LOCATE_partial_order
;
1072 /* Register variable[0]: Local variable */
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=*/;
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*/;
1144 continue_45
: while(0);
1145 CALL_abstract_collection___Iterator___next(variable
[7])(variable
[7]) /*ArrayIterator::next*/;
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
;