-val_t list___List___iterator(val_t self) {
- struct trace_t trace = {NULL, NULL, 173, LOCATE_list___List___iterator};
- val_t variable0;
- val_t variable1;
- trace.prev = tracehead; tracehead = &trace;
- trace.file = LOCATE_list;
- variable0 = ATTR_list___List____head( self) /*List::_head*/;
- variable1 = NEW_ListIterator_list___ListIterator___init(variable0); /*new ListIterator[E]*/
- variable0 = variable1;
- goto return_label23;
+void list___List___link(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 109, LOCATE_list___List___link};
+ val_t variable[5];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_list;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Result */
+ variable[3] = ATTR_list___List____tail(variable[0]) /*List::_tail*/;
+ /* Register variable[3]: Result */
+ variable[3] = TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))));
+ if (UNTAG_Bool(variable[3])) { /*if*/
+ /* Register variable[3]: Result */
+ variable[3] = ATTR_list___List____head( variable[1] /*l*/) /*List::_head*/;
+ ATTR_list___List____head(variable[0]) /*List::_head*/ = variable[3];
+ } else { /*if*/
+ /* Register variable[3]: Result */
+ variable[3] = ATTR_list___List____head( variable[1] /*l*/) /*List::_head*/;
+ /* Register variable[3]: Result */
+ variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[3])) { /*if*/
+ /* Register variable[3]: Result */
+ variable[3] = ATTR_list___List____tail(variable[0]) /*List::_tail*/;
+ /* Register variable[4]: Result */
+ variable[4] = ATTR_list___List____head( variable[1] /*l*/) /*List::_head*/;
+ CALL_list___ListNode___next__eq(variable[3])(variable[3], variable[4]) /*ListNode::next=*/;
+ /* Register variable[3]: Result */
+ variable[3] = ATTR_list___List____tail(variable[0]) /*List::_tail*/;
+ /* Register variable[3]: Result */
+ variable[3] = CALL_list___ListNode___next(variable[3])(variable[3]) /*ListNode::next*/;
+ /* Register variable[4]: Result */
+ variable[4] = ATTR_list___List____tail(variable[0]) /*List::_tail*/;
+ CALL_list___ListNode___prev__eq(variable[3])(variable[3], variable[4]) /*ListNode::prev=*/;
+ }
+ }
+ /* Register variable[3]: Result */
+ variable[3] = ATTR_list___List____tail( variable[1] /*l*/) /*List::_tail*/;
+ ATTR_list___List____tail(variable[0]) /*List::_tail*/ = variable[3];
+ CALL_abstract_collection___RemovableCollection___clear( variable[1] /*l*/)( variable[1] /*l*/) /*List::clear*/;