First NIT release and new clean mercurial repository
[nit.git] / c_src / list._sep.c
1 #include "list._sep.h"
2 val_t list___List_____bra(val_t self, val_t param0) {
3 struct trace_t trace = {NULL, "list::List::[] (bin/../lib/standard//list.nit:21,1--22:52)"};
4 val_t variable0;
5 val_t variable1;
6 trace.prev = tracehead; tracehead = &trace;
7 variable0 = param0;
8 variable1 = ((list___List___get_node_t)CALL( self,COLOR_list___List___get_node))( self, variable0 /*index*/) /*List::get_node*/;
9 variable1 = ((abstract_collection___Container___item_t)CALL(variable1,COLOR_abstract_collection___Container___item))(variable1) /*ListNode::item*/;
10 goto return_label0;
11 return_label0: while(false);
12 tracehead = trace.prev;
13 return variable1;
14 }
15 void list___List_____braeq(val_t self, val_t param0, val_t param1) {
16 struct trace_t trace = {NULL, "list::List::[]= (bin/../lib/standard//list.nit:24,2--59)"};
17 val_t variable0;
18 val_t variable1;
19 val_t variable2;
20 trace.prev = tracehead; tracehead = &trace;
21 variable0 = param0;
22 variable1 = param1;
23 variable2 = ((list___List___get_node_t)CALL( self,COLOR_list___List___get_node))( self, variable0 /*index*/) /*List::get_node*/;
24 ((abstract_collection___Container___item__eq_t)CALL(variable2,COLOR_abstract_collection___Container___item__eq))(variable2, variable1 /*item*/) /*ListNode::item=*/;
25 tracehead = trace.prev;
26 return;
27 }
28 val_t list___List___first(val_t self) {
29 struct trace_t trace = {NULL, "list::List::first (bin/../lib/standard//list.nit:26,2--27:38)"};
30 val_t variable0;
31 trace.prev = tracehead; tracehead = &trace;
32 variable0 = ATTR_list___List____head( self) /*List::_head*/;
33 variable0 = ((abstract_collection___Container___item_t)CALL(variable0,COLOR_abstract_collection___Container___item))(variable0) /*ListNode::item*/;
34 goto return_label2;
35 return_label2: while(false);
36 tracehead = trace.prev;
37 return variable0;
38 }
39 void list___List___first__eq(val_t self, val_t param0) {
40 struct trace_t trace = {NULL, "list::List::first= (bin/../lib/standard//list.nit:29,2--30:39)"};
41 val_t variable0;
42 val_t variable1;
43 trace.prev = tracehead; tracehead = &trace;
44 variable0 = param0;
45 variable1 = ATTR_list___List____head( self) /*List::_head*/;
46 ((abstract_collection___Container___item__eq_t)CALL(variable1,COLOR_abstract_collection___Container___item__eq))(variable1, variable0 /*e*/) /*ListNode::item=*/;
47 tracehead = trace.prev;
48 return;
49 }
50 val_t list___List___last(val_t self) {
51 struct trace_t trace = {NULL, "list::List::last (bin/../lib/standard//list.nit:32,2--33:37)"};
52 val_t variable0;
53 trace.prev = tracehead; tracehead = &trace;
54 variable0 = ATTR_list___List____tail( self) /*List::_tail*/;
55 variable0 = ((abstract_collection___Container___item_t)CALL(variable0,COLOR_abstract_collection___Container___item))(variable0) /*ListNode::item*/;
56 goto return_label4;
57 return_label4: while(false);
58 tracehead = trace.prev;
59 return variable0;
60 }
61 void list___List___last__eq(val_t self, val_t param0) {
62 struct trace_t trace = {NULL, "list::List::last= (bin/../lib/standard//list.nit:35,2--36:38)"};
63 val_t variable0;
64 val_t variable1;
65 trace.prev = tracehead; tracehead = &trace;
66 variable0 = param0;
67 variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
68 ((abstract_collection___Container___item__eq_t)CALL(variable1,COLOR_abstract_collection___Container___item__eq))(variable1, variable0 /*e*/) /*ListNode::item=*/;
69 tracehead = trace.prev;
70 return;
71 }
72 val_t list___List___is_empty(val_t self) {
73 struct trace_t trace = {NULL, "list::List::is_empty (bin/../lib/standard//list.nit:40,2--41:44)"};
74 val_t variable0;
75 trace.prev = tracehead; tracehead = &trace;
76 variable0 = ATTR_list___List____head( self) /*List::_head*/;
77 variable0 = TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*ListNode::==*/)))));
78 goto return_label6;
79 return_label6: while(false);
80 tracehead = trace.prev;
81 return variable0;
82 }
83 val_t list___List___length(val_t self) {
84 struct trace_t trace = {NULL, "list::List::length (bin/../lib/standard//list.nit:43,2--52:10)"};
85 val_t variable0;
86 val_t variable1;
87 val_t variable2;
88 trace.prev = tracehead; tracehead = &trace;
89 variable0 = TAG_Int(0);
90 variable2 = ATTR_list___List____head( self) /*List::_head*/;
91 variable1 = variable2;
92 while (true) { /*while*/
93 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ == NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/, NIT_NULL /*null*/) /*ListNode::==*/)))))));
94 if (!UNTAG_Bool(variable2)) break; /* while*/
95 variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( TAG_Int(1))) /*l*/;
96 variable2 = ((list___ListNode___next_t)CALL( variable1 /*t*/,COLOR_list___ListNode___next))( variable1 /*t*/) /*ListNode::next*/;
97 variable1 = variable2 /*t=*/;
98 continue_8: while(0);
99 }
100 break_8: while(0);
101 variable0 = variable0 /*l*/;
102 goto return_label7;
103 return_label7: while(false);
104 tracehead = trace.prev;
105 return variable0;
106 }
107 val_t list___List___has(val_t self, val_t param0) {
108 struct trace_t trace = {NULL, "list::List::has (bin/../lib/standard//list.nit:55,2--56:64)"};
109 val_t variable0;
110 val_t variable1;
111 trace.prev = tracehead; tracehead = &trace;
112 variable0 = param0;
113 variable1 = ATTR_list___List____head( self) /*List::_head*/;
114 variable1 = ((list___List___search_node_after_t)CALL( self,COLOR_list___List___search_node_after))( self, variable0 /*e*/, variable1) /*List::search_node_after*/;
115 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*ListNode::==*/)))))));
116 goto return_label9;
117 return_label9: while(false);
118 tracehead = trace.prev;
119 return variable1;
120 }
121 val_t list___List___has_only(val_t self, val_t param0) {
122 struct trace_t trace = {NULL, "list::List::has_only (bin/../lib/standard//list.nit:58,2--65:13)"};
123 val_t variable0;
124 val_t variable1;
125 val_t variable2;
126 trace.prev = tracehead; tracehead = &trace;
127 variable0 = param0;
128 variable2 = ATTR_list___List____head( self) /*List::_head*/;
129 variable1 = variable2;
130 while (true) { /*while*/
131 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*node*/ == NIT_NULL /*null*/) || (( variable1 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))( variable1 /*node*/, NIT_NULL /*null*/) /*ListNode::==*/)))))));
132 if (!UNTAG_Bool(variable2)) break; /* while*/
133 variable2 = ((abstract_collection___Container___item_t)CALL( variable1 /*node*/,COLOR_abstract_collection___Container___item))( variable1 /*node*/) /*ListNode::item*/;
134 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == variable0 /*e*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*e*/) /*Object::==*/)))))));
135 if (UNTAG_Bool(variable2)) { /*if*/
136 variable1 = TAG_Bool(false);
137 goto return_label10;
138 }
139 variable2 = ((list___ListNode___next_t)CALL( variable1 /*node*/,COLOR_list___ListNode___next))( variable1 /*node*/) /*ListNode::next*/;
140 variable1 = variable2 /*node=*/;
141 continue_11: while(0);
142 }
143 break_11: while(0);
144 variable1 = TAG_Bool(true);
145 goto return_label10;
146 return_label10: while(false);
147 tracehead = trace.prev;
148 return variable1;
149 }
150 val_t list___List___count(val_t self, val_t param0) {
151 struct trace_t trace = {NULL, "list::List::count (bin/../lib/standard//list.nit:68,2--76:11)"};
152 val_t variable0;
153 val_t variable1;
154 val_t variable2;
155 val_t variable3;
156 trace.prev = tracehead; tracehead = &trace;
157 variable0 = param0;
158 variable1 = TAG_Int(0);
159 variable3 = ATTR_list___List____head( self) /*List::_head*/;
160 variable2 = variable3;
161 while (true) { /*while*/
162 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*node*/ == NIT_NULL /*null*/) || (( variable2 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*node*/,COLOR_kernel___Object_____eqeq))( variable2 /*node*/, NIT_NULL /*null*/) /*ListNode::==*/)))))));
163 if (!UNTAG_Bool(variable3)) break; /* while*/
164 variable3 = ((abstract_collection___Container___item_t)CALL( variable2 /*node*/,COLOR_abstract_collection___Container___item))( variable2 /*node*/) /*ListNode::item*/;
165 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3 == variable0 /*e*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, variable0 /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3, variable0 /*e*/) /*Object::==*/)))))));
166 if (UNTAG_Bool(variable3)) { /*if*/
167 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*nb*/;
168 }
169 variable3 = ((list___ListNode___next_t)CALL( variable2 /*node*/,COLOR_list___ListNode___next))( variable2 /*node*/) /*ListNode::next*/;
170 variable2 = variable3 /*node=*/;
171 continue_13: while(0);
172 }
173 break_13: while(0);
174 variable1 = variable1 /*nb*/;
175 goto return_label12;
176 return_label12: while(false);
177 tracehead = trace.prev;
178 return variable1;
179 }
180 val_t list___List___has_key(val_t self, val_t param0) {
181 struct trace_t trace = {NULL, "list::List::has_key (bin/../lib/standard//list.nit:79,2--60)"};
182 val_t variable0;
183 val_t variable1;
184 trace.prev = tracehead; tracehead = &trace;
185 variable0 = param0;
186 variable1 = ((list___List___get_node_t)CALL( self,COLOR_list___List___get_node))( self, variable0 /*index*/) /*List::get_node*/;
187 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*ListNode::==*/)))))));
188 goto return_label14;
189 return_label14: while(false);
190 tracehead = trace.prev;
191 return variable1;
192 }
193 void list___List___push(val_t self, val_t param0) {
194 struct trace_t trace = {NULL, "list::List::push (bin/../lib/standard//list.nit:83,2--93:14)"};
195 val_t variable0;
196 val_t variable1;
197 val_t variable2;
198 trace.prev = tracehead; tracehead = &trace;
199 variable0 = param0;
200 variable2 = NEW_list___ListNode___init( variable0 /*e*/); /*new ListNode[E]*/
201 variable1 = variable2;
202 variable2 = ATTR_list___List____tail( self) /*List::_tail*/;
203 variable2 = TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*ListNode::==*/)))));
204 if (UNTAG_Bool(variable2)) { /*if*/
205 ATTR_list___List____head( self) /*List::_head*/ = variable1 /*node*/;
206 } else { /*if*/
207 variable2 = ATTR_list___List____tail( self) /*List::_tail*/;
208 ((list___ListNode___next__eq_t)CALL(variable2,COLOR_list___ListNode___next__eq))(variable2, variable1 /*node*/) /*ListNode::next=*/;
209 variable2 = ATTR_list___List____tail( self) /*List::_tail*/;
210 ((list___ListNode___prev__eq_t)CALL( variable1 /*node*/,COLOR_list___ListNode___prev__eq))( variable1 /*node*/, variable2) /*ListNode::prev=*/;
211 }
212 ATTR_list___List____tail( self) /*List::_tail*/ = variable1 /*node*/;
213 tracehead = trace.prev;
214 return;
215 }
216 void list___List___unshift(val_t self, val_t param0) {
217 struct trace_t trace = {NULL, "list::List::unshift (bin/../lib/standard//list.nit:96,2--106:14)"};
218 val_t variable0;
219 val_t variable1;
220 val_t variable2;
221 trace.prev = tracehead; tracehead = &trace;
222 variable0 = param0;
223 variable2 = NEW_list___ListNode___init( variable0 /*e*/); /*new ListNode[E]*/
224 variable1 = variable2;
225 variable2 = ATTR_list___List____head( self) /*List::_head*/;
226 variable2 = TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*ListNode::==*/)))));
227 if (UNTAG_Bool(variable2)) { /*if*/
228 ATTR_list___List____tail( self) /*List::_tail*/ = variable1 /*node*/;
229 } else { /*if*/
230 variable2 = ATTR_list___List____head( self) /*List::_head*/;
231 ((list___ListNode___next__eq_t)CALL( variable1 /*node*/,COLOR_list___ListNode___next__eq))( variable1 /*node*/, variable2) /*ListNode::next=*/;
232 variable2 = ATTR_list___List____head( self) /*List::_head*/;
233 ((list___ListNode___prev__eq_t)CALL(variable2,COLOR_list___ListNode___prev__eq))(variable2, variable1 /*node*/) /*ListNode::prev=*/;
234 }
235 ATTR_list___List____head( self) /*List::_head*/ = variable1 /*node*/;
236 tracehead = trace.prev;
237 return;
238 }
239 void list___List___link(val_t self, val_t param0) {
240 struct trace_t trace = {NULL, "list::List::link (bin/../lib/standard//list.nit:109,2--121:9)"};
241 val_t variable0;
242 val_t variable1;
243 val_t variable2;
244 trace.prev = tracehead; tracehead = &trace;
245 variable0 = param0;
246 variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
247 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*ListNode::==*/)))));
248 if (UNTAG_Bool(variable1)) { /*if*/
249 variable1 = ATTR_list___List____head( variable0 /*l*/) /*List::_head*/;
250 ATTR_list___List____head( self) /*List::_head*/ = variable1;
251 } else { /*if*/
252 variable1 = ATTR_list___List____head( variable0 /*l*/) /*List::_head*/;
253 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*ListNode::==*/)))))));
254 if (UNTAG_Bool(variable1)) { /*if*/
255 variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
256 variable2 = ATTR_list___List____head( variable0 /*l*/) /*List::_head*/;
257 ((list___ListNode___next__eq_t)CALL(variable1,COLOR_list___ListNode___next__eq))(variable1, variable2) /*ListNode::next=*/;
258 variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
259 variable1 = ((list___ListNode___next_t)CALL(variable1,COLOR_list___ListNode___next))(variable1) /*ListNode::next*/;
260 variable2 = ATTR_list___List____tail( self) /*List::_tail*/;
261 ((list___ListNode___prev__eq_t)CALL(variable1,COLOR_list___ListNode___prev__eq))(variable1, variable2) /*ListNode::prev=*/;
262 }
263 }
264 variable1 = ATTR_list___List____tail( variable0 /*l*/) /*List::_tail*/;
265 ATTR_list___List____tail( self) /*List::_tail*/ = variable1;
266 ((list___List___clear_t)CALL( variable0 /*l*/,COLOR_abstract_collection___RemovableCollection___clear))( variable0 /*l*/) /*List::clear*/;
267 tracehead = trace.prev;
268 return;
269 }
270 val_t list___List___pop(val_t self) {
271 struct trace_t trace = {NULL, "list::List::pop (bin/../lib/standard//list.nit:126,2--137:18)"};
272 val_t variable0;
273 val_t variable1;
274 trace.prev = tracehead; tracehead = &trace;
275 variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
276 variable0 = variable1;
277 variable1 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
278 ATTR_list___List____tail( self) /*List::_tail*/ = variable1;
279 ((list___ListNode___prev__eq_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev__eq))( variable0 /*node*/, NIT_NULL /*null*/) /*ListNode::prev=*/;
280 variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
281 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*ListNode::==*/)))));
282 if (UNTAG_Bool(variable1)) { /*if*/
283 ATTR_list___List____head( self) /*List::_head*/ = NIT_NULL /*null*/;
284 } else { /*if*/
285 variable1 = ATTR_list___List____tail( self) /*List::_tail*/;
286 ((list___ListNode___next__eq_t)CALL(variable1,COLOR_list___ListNode___next__eq))(variable1, NIT_NULL /*null*/) /*ListNode::next=*/;
287 }
288 variable1 = ((abstract_collection___Container___item_t)CALL( variable0 /*node*/,COLOR_abstract_collection___Container___item))( variable0 /*node*/) /*ListNode::item*/;
289 variable0 = variable1;
290 goto return_label18;
291 return_label18: while(false);
292 tracehead = trace.prev;
293 return variable0;
294 }
295 val_t list___List___shift(val_t self) {
296 struct trace_t trace = {NULL, "list::List::shift (bin/../lib/standard//list.nit:140,2--151:18)"};
297 val_t variable0;
298 val_t variable1;
299 trace.prev = tracehead; tracehead = &trace;
300 variable1 = ATTR_list___List____head( self) /*List::_head*/;
301 variable0 = variable1;
302 variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
303 ATTR_list___List____head( self) /*List::_head*/ = variable1;
304 ((list___ListNode___next__eq_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next__eq))( variable0 /*node*/, NIT_NULL /*null*/) /*ListNode::next=*/;
305 variable1 = ATTR_list___List____head( self) /*List::_head*/;
306 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*ListNode::==*/)))));
307 if (UNTAG_Bool(variable1)) { /*if*/
308 ATTR_list___List____tail( self) /*List::_tail*/ = NIT_NULL /*null*/;
309 } else { /*if*/
310 variable1 = ATTR_list___List____head( self) /*List::_head*/;
311 ((list___ListNode___prev__eq_t)CALL(variable1,COLOR_list___ListNode___prev__eq))(variable1, NIT_NULL /*null*/) /*ListNode::prev=*/;
312 }
313 variable1 = ((abstract_collection___Container___item_t)CALL( variable0 /*node*/,COLOR_abstract_collection___Container___item))( variable0 /*node*/) /*ListNode::item*/;
314 variable0 = variable1;
315 goto return_label19;
316 return_label19: while(false);
317 tracehead = trace.prev;
318 return variable0;
319 }
320 void list___List___remove(val_t self, val_t param0) {
321 struct trace_t trace = {NULL, "list::List::remove (bin/../lib/standard//list.nit:154,2--157:39)"};
322 val_t variable0;
323 val_t variable1;
324 val_t variable2;
325 trace.prev = tracehead; tracehead = &trace;
326 variable0 = param0;
327 variable2 = ATTR_list___List____head( self) /*List::_head*/;
328 variable2 = ((list___List___search_node_after_t)CALL( self,COLOR_list___List___search_node_after))( self, variable0 /*e*/, variable2) /*List::search_node_after*/;
329 variable1 = variable2;
330 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*node*/ == NIT_NULL /*null*/) || (( variable1 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))( variable1 /*node*/, NIT_NULL /*null*/) /*ListNode::==*/)))))));
331 if (UNTAG_Bool(variable2)) { /*if*/
332 ((list___List___remove_node_t)CALL( self,COLOR_list___List___remove_node))( self, variable1 /*node*/) /*List::remove_node*/;
333 }
334 tracehead = trace.prev;
335 return;
336 }
337 void list___List___remove_at(val_t self, val_t param0) {
338 struct trace_t trace = {NULL, "list::List::remove_at (bin/../lib/standard//list.nit:160,2--163:39)"};
339 val_t variable0;
340 val_t variable1;
341 val_t variable2;
342 trace.prev = tracehead; tracehead = &trace;
343 variable0 = param0;
344 variable2 = ((list___List___get_node_t)CALL( self,COLOR_list___List___get_node))( self, variable0 /*i*/) /*List::get_node*/;
345 variable1 = variable2;
346 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*node*/ == NIT_NULL /*null*/) || (( variable1 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))( variable1 /*node*/, NIT_NULL /*null*/) /*ListNode::==*/)))))));
347 if (UNTAG_Bool(variable2)) { /*if*/
348 ((list___List___remove_node_t)CALL( self,COLOR_list___List___remove_node))( self, variable1 /*node*/) /*List::remove_node*/;
349 }
350 tracehead = trace.prev;
351 return;
352 }
353 void list___List___clear(val_t self) {
354 struct trace_t trace = {NULL, "list::List::clear (bin/../lib/standard//list.nit:166,2--169:14)"};
355 trace.prev = tracehead; tracehead = &trace;
356 ATTR_list___List____head( self) /*List::_head*/ = NIT_NULL /*null*/;
357 ATTR_list___List____tail( self) /*List::_tail*/ = NIT_NULL /*null*/;
358 tracehead = trace.prev;
359 return;
360 }
361 val_t list___List___iterator(val_t self) {
362 struct trace_t trace = {NULL, "list::List::iterator (bin/../lib/standard//list.nit:173,2--73)"};
363 val_t variable0;
364 val_t variable1;
365 trace.prev = tracehead; tracehead = &trace;
366 variable0 = ATTR_list___List____head( self) /*List::_head*/;
367 variable1 = NEW_list___ListIterator___init(variable0); /*new ListIterator[E]*/
368 variable0 = variable1;
369 goto return_label23;
370 return_label23: while(false);
371 tracehead = trace.prev;
372 return variable0;
373 }
374 void list___List___init(val_t self, int* init_table) {
375 struct trace_t trace = {NULL, "list::List::init (bin/../lib/standard//list.nit:175,2--176:5)"};
376 trace.prev = tracehead; tracehead = &trace;
377 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_List].i]) return;
378 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_List].i] = 1;
379 tracehead = trace.prev;
380 return;
381 }
382 void list___List___from(val_t self, val_t param0, int* init_table) {
383 struct trace_t trace = {NULL, "list::List::from (bin/../lib/standard//list.nit:178,2--179:46)"};
384 val_t variable0;
385 trace.prev = tracehead; tracehead = &trace;
386 variable0 = param0;
387 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_List].i]) return;
388 ((abstract_collection___IndexedCollection___append_t)CALL( self,COLOR_abstract_collection___IndexedCollection___append))( self, variable0 /*coll*/) /*List::append*/;
389 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_List].i] = 1;
390 tracehead = trace.prev;
391 return;
392 }
393 val_t list___List___get_node(val_t self, val_t param0) {
394 struct trace_t trace = {NULL, "list::List::get_node (bin/../lib/standard//list.nit:187,2--198:10)"};
395 val_t variable0;
396 val_t variable1;
397 val_t variable2;
398 val_t variable3;
399 trace.prev = tracehead; tracehead = &trace;
400 variable0 = param0;
401 variable2 = ATTR_list___List____head( self) /*List::_head*/;
402 variable1 = variable2;
403 variable2 = TAG_Bool(UNTAG_Int( variable0 /*i*/)<UNTAG_Int( TAG_Int(0)));
404 if (UNTAG_Bool(variable2)) { /*if*/
405 variable1 = NIT_NULL /*null*/;
406 goto return_label26;
407 }
408 while (true) { /*while*/
409 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*n*/ == NIT_NULL /*null*/) || (( variable1 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*n*/,COLOR_kernel___Object_____eqeq))( variable1 /*n*/, NIT_NULL /*null*/) /*ListNode::==*/)))))));
410 variable3 = variable2;
411 if (UNTAG_Bool(variable3)) { /* and */
412 variable3 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>UNTAG_Int( TAG_Int(0)));
413 }
414 variable2 = variable3;
415 if (!UNTAG_Bool(variable2)) break; /* while*/
416 variable2 = ((list___ListNode___next_t)CALL( variable1 /*n*/,COLOR_list___ListNode___next))( variable1 /*n*/) /*ListNode::next*/;
417 variable1 = variable2 /*n=*/;
418 variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
419 continue_27: while(0);
420 }
421 break_27: while(0);
422 variable1 = variable1 /*n*/;
423 goto return_label26;
424 return_label26: while(false);
425 tracehead = trace.prev;
426 return variable1;
427 }
428 val_t list___List___search_node_after(val_t self, val_t param0, val_t param1) {
429 struct trace_t trace = {NULL, "list::List::search_node_after (bin/../lib/standard//list.nit:201,2--206:10)"};
430 val_t variable0;
431 val_t variable1;
432 val_t variable2;
433 val_t variable3;
434 val_t variable4;
435 trace.prev = tracehead; tracehead = &trace;
436 variable0 = param0;
437 variable1 = param1;
438 variable2 = variable1 /*after*/;
439 while (true) { /*while*/
440 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*n*/ == NIT_NULL /*null*/) || (( variable2 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*n*/,COLOR_kernel___Object_____eqeq))( variable2 /*n*/, NIT_NULL /*null*/) /*ListNode::==*/)))))));
441 variable4 = variable3;
442 if (UNTAG_Bool(variable4)) { /* and */
443 variable4 = ((abstract_collection___Container___item_t)CALL( variable2 /*n*/,COLOR_abstract_collection___Container___item))( variable2 /*n*/) /*ListNode::item*/;
444 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 == variable0 /*e*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*e*/) /*Object::==*/)))))));
445 }
446 variable3 = variable4;
447 if (!UNTAG_Bool(variable3)) break; /* while*/
448 variable3 = ((list___ListNode___next_t)CALL( variable2 /*n*/,COLOR_list___ListNode___next))( variable2 /*n*/) /*ListNode::next*/;
449 variable2 = variable3 /*n=*/;
450 continue_29: while(0);
451 }
452 break_29: while(0);
453 variable2 = variable2 /*n*/;
454 goto return_label28;
455 return_label28: while(false);
456 tracehead = trace.prev;
457 return variable2;
458 }
459 void list___List___remove_node(val_t self, val_t param0) {
460 struct trace_t trace = {NULL, "list::List::remove_node (bin/../lib/standard//list.nit:209,2--224:29)"};
461 val_t variable0;
462 val_t variable1;
463 val_t variable2;
464 trace.prev = tracehead; tracehead = &trace;
465 variable0 = param0;
466 variable1 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
467 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*ListNode::==*/)))));
468 if (UNTAG_Bool(variable1)) { /*if*/
469 variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
470 ATTR_list___List____head( self) /*List::_head*/ = variable1;
471 variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
472 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*ListNode::==*/)))));
473 if (UNTAG_Bool(variable1)) { /*if*/
474 ATTR_list___List____tail( self) /*List::_tail*/ = NIT_NULL /*null*/;
475 } else { /*if*/
476 variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
477 ((list___ListNode___prev__eq_t)CALL(variable1,COLOR_list___ListNode___prev__eq))(variable1, NIT_NULL /*null*/) /*ListNode::prev=*/;
478 }
479 } else { /*if*/
480 variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
481 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*ListNode::==*/)))));
482 if (UNTAG_Bool(variable1)) { /*if*/
483 variable1 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
484 ATTR_list___List____tail( self) /*List::_tail*/ = variable1;
485 variable1 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
486 ((list___ListNode___next__eq_t)CALL(variable1,COLOR_list___ListNode___next__eq))(variable1, NIT_NULL /*null*/) /*ListNode::next=*/;
487 } else { /*if*/
488 variable1 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
489 variable2 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
490 ((list___ListNode___next__eq_t)CALL(variable1,COLOR_list___ListNode___next__eq))(variable1, variable2) /*ListNode::next=*/;
491 variable1 = ((list___ListNode___next_t)CALL( variable0 /*node*/,COLOR_list___ListNode___next))( variable0 /*node*/) /*ListNode::next*/;
492 variable2 = ((list___ListNode___prev_t)CALL( variable0 /*node*/,COLOR_list___ListNode___prev))( variable0 /*node*/) /*ListNode::prev*/;
493 ((list___ListNode___prev__eq_t)CALL(variable1,COLOR_list___ListNode___prev__eq))(variable1, variable2) /*ListNode::prev=*/;
494 }
495 }
496 tracehead = trace.prev;
497 return;
498 }
499 void list___List___insert_before(val_t self, val_t param0, val_t param1) {
500 struct trace_t trace = {NULL, "list::List::insert_before (bin/../lib/standard//list.nit:228,2--239:19)"};
501 val_t variable0;
502 val_t variable1;
503 val_t variable2;
504 val_t variable3;
505 val_t variable4;
506 trace.prev = tracehead; tracehead = &trace;
507 variable0 = param0;
508 variable1 = param1;
509 variable3 = NEW_list___ListNode___init( variable0 /*element*/); /*new ListNode[E]*/
510 variable2 = variable3;
511 variable4 = ((list___ListNode___prev_t)CALL( variable1 /*node*/,COLOR_list___ListNode___prev))( variable1 /*node*/) /*ListNode::prev*/;
512 variable3 = variable4;
513 variable4 = TAG_Bool(( variable3 /*prev*/ == NIT_NULL /*null*/) || (( variable3 /*prev*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*prev*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*prev*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*prev*/,COLOR_kernel___Object_____eqeq))( variable3 /*prev*/, NIT_NULL /*null*/) /*ListNode::==*/)))));
514 if (UNTAG_Bool(variable4)) { /*if*/
515 ATTR_list___List____head( self) /*List::_head*/ = variable2 /*nnode*/;
516 } else { /*if*/
517 ((list___ListNode___next__eq_t)CALL( variable3 /*prev*/,COLOR_list___ListNode___next__eq))( variable3 /*prev*/, variable2 /*nnode*/) /*ListNode::next=*/;
518 }
519 ((list___ListNode___prev__eq_t)CALL( variable2 /*nnode*/,COLOR_list___ListNode___prev__eq))( variable2 /*nnode*/, variable3 /*prev*/) /*ListNode::prev=*/;
520 ((list___ListNode___next__eq_t)CALL( variable2 /*nnode*/,COLOR_list___ListNode___next__eq))( variable2 /*nnode*/, variable1 /*node*/) /*ListNode::next=*/;
521 ((list___ListNode___prev__eq_t)CALL( variable1 /*node*/,COLOR_list___ListNode___prev__eq))( variable1 /*node*/, variable2 /*nnode*/) /*ListNode::prev=*/;
522 tracehead = trace.prev;
523 return;
524 }
525 val_t list___ListIterator___item(val_t self) {
526 struct trace_t trace = {NULL, "list::ListIterator::item (bin/../lib/standard//list.nit:246,2--37)"};
527 val_t variable0;
528 trace.prev = tracehead; tracehead = &trace;
529 variable0 = ATTR_list___ListIterator____node( self) /*ListIterator::_node*/;
530 variable0 = ((abstract_collection___Container___item_t)CALL(variable0,COLOR_abstract_collection___Container___item))(variable0) /*ListNode::item*/;
531 goto return_label32;
532 return_label32: while(false);
533 tracehead = trace.prev;
534 return variable0;
535 }
536 void list___ListIterator___item__eq(val_t self, val_t param0) {
537 struct trace_t trace = {NULL, "list::ListIterator::item= (bin/../lib/standard//list.nit:248,2--38)"};
538 val_t variable0;
539 val_t variable1;
540 trace.prev = tracehead; tracehead = &trace;
541 variable0 = param0;
542 variable1 = ATTR_list___ListIterator____node( self) /*ListIterator::_node*/;
543 ((abstract_collection___Container___item__eq_t)CALL(variable1,COLOR_abstract_collection___Container___item__eq))(variable1, variable0 /*e*/) /*ListNode::item=*/;
544 tracehead = trace.prev;
545 return;
546 }
547 val_t list___ListIterator___is_ok(val_t self) {
548 struct trace_t trace = {NULL, "list::ListIterator::is_ok (bin/../lib/standard//list.nit:250,2--45)"};
549 val_t variable0;
550 trace.prev = tracehead; tracehead = &trace;
551 variable0 = ATTR_list___ListIterator____node( self) /*ListIterator::_node*/;
552 variable0 = TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*ListNode::==*/)))));
553 variable0 = TAG_Bool(!UNTAG_Bool(variable0));
554 goto return_label34;
555 return_label34: while(false);
556 tracehead = trace.prev;
557 return variable0;
558 }
559 void list___ListIterator___next(val_t self) {
560 struct trace_t trace = {NULL, "list::ListIterator::next (bin/../lib/standard//list.nit:252,2--255:13)"};
561 val_t variable0;
562 trace.prev = tracehead; tracehead = &trace;
563 variable0 = ATTR_list___ListIterator____node( self) /*ListIterator::_node*/;
564 variable0 = ((list___ListNode___next_t)CALL(variable0,COLOR_list___ListNode___next))(variable0) /*ListNode::next*/;
565 ATTR_list___ListIterator____node( self) /*ListIterator::_node*/ = variable0;
566 ATTR_list___ListIterator____index( self) /*ListIterator::_index*/ = TAG_Int(UNTAG_Int(ATTR_list___ListIterator____index( self) /*ListIterator::_index*/)+UNTAG_Int( TAG_Int(1)));
567 tracehead = trace.prev;
568 return;
569 }
570 void list___ListIterator___init(val_t self, val_t param0, int* init_table) {
571 struct trace_t trace = {NULL, "list::ListIterator::init (bin/../lib/standard//list.nit:258,2--262:12)"};
572 val_t variable0;
573 trace.prev = tracehead; tracehead = &trace;
574 variable0 = param0;
575 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ListIterator].i]) return;
576 ATTR_list___ListIterator____node( self) /*ListIterator::_node*/ = variable0 /*node*/;
577 ATTR_list___ListIterator____index( self) /*ListIterator::_index*/ = TAG_Int(0);
578 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ListIterator].i] = 1;
579 tracehead = trace.prev;
580 return;
581 }
582 val_t list___ListIterator___index(val_t self) {
583 struct trace_t trace = {NULL, "list::ListIterator::index (bin/../lib/standard//list.nit:268,2--269:32)"};
584 trace.prev = tracehead; tracehead = &trace;
585 tracehead = trace.prev;
586 return ATTR_list___ListIterator____index( self) /*ListIterator::_index*/;
587 }
588 void list___ListNode___init(val_t self, val_t param0, int* init_table) {
589 struct trace_t trace = {NULL, "list::ListNode::init (bin/../lib/standard//list.nit:275,2--277:10)"};
590 val_t variable0;
591 trace.prev = tracehead; tracehead = &trace;
592 variable0 = param0;
593 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ListNode].i]) return;
594 ((abstract_collection___Container___item__eq_t)CALL( self,COLOR_abstract_collection___Container___item__eq))( self, variable0 /*i*/) /*ListNode::item=*/;
595 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ListNode].i] = 1;
596 tracehead = trace.prev;
597 return;
598 }
599 val_t list___ListNode___next(val_t self) {
600 struct trace_t trace = {NULL, "list::ListNode::next (bin/../lib/standard//list.nit:280,2--281:41)"};
601 trace.prev = tracehead; tracehead = &trace;
602 tracehead = trace.prev;
603 return ATTR_list___ListNode____next( self) /*ListNode::_next*/;
604 }
605 void list___ListNode___next__eq(val_t self, val_t param0) {
606 struct trace_t trace = {NULL, "list::ListNode::next= (bin/../lib/standard//list.nit:280,2--281:41)"};
607 trace.prev = tracehead; tracehead = &trace;
608 ATTR_list___ListNode____next( self) /*ListNode::_next*/ = param0;
609 tracehead = trace.prev;
610 return;
611 }
612 val_t list___ListNode___prev(val_t self) {
613 struct trace_t trace = {NULL, "list::ListNode::prev (bin/../lib/standard//list.nit:283,2--284:41)"};
614 trace.prev = tracehead; tracehead = &trace;
615 tracehead = trace.prev;
616 return ATTR_list___ListNode____prev( self) /*ListNode::_prev*/;
617 }
618 void list___ListNode___prev__eq(val_t self, val_t param0) {
619 struct trace_t trace = {NULL, "list::ListNode::prev= (bin/../lib/standard//list.nit:283,2--284:41)"};
620 trace.prev = tracehead; tracehead = &trace;
621 ATTR_list___ListNode____prev( self) /*ListNode::_prev*/ = param0;
622 tracehead = trace.prev;
623 return;
624 }