nitc: fix calling extern constructors from extern code in separate compiler
[nit.git] / c_src / scope.sep.1.c
1 #include "scope.sep.0.h"
2 /* method scope#ToolContext#scope_phase for (self: ToolContext): Phase */
3 val* scope__ToolContext__scope_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_scope__ToolContext___scope_phase].val; /* _scope_phase on <self:ToolContext> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scope_phase");
9 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 23);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method scope#ToolContext#scope_phase for (self: Object): Phase */
17 val* VIRTUAL_scope__ToolContext__scope_phase(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 val* var3 /* : Phase */;
21 { /* Inline scope#ToolContext#scope_phase (self) on <self:Object(ToolContext)> */
22 var3 = self->attrs[COLOR_scope__ToolContext___scope_phase].val; /* _scope_phase on <self:Object(ToolContext)> */
23 if (unlikely(var3 == NULL)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scope_phase");
25 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 23);
26 show_backtrace(1);
27 }
28 var1 = var3;
29 RET_LABEL2:(void)0;
30 }
31 var = var1;
32 RET_LABEL:;
33 return var;
34 }
35 /* method scope#ScopePhase#process_npropdef for (self: ScopePhase, APropdef) */
36 void scope__ScopePhase__process_npropdef(val* self, val* p0) {
37 val* var_npropdef /* var npropdef: APropdef */;
38 val* var /* : ToolContext */;
39 val* var2 /* : ToolContext */;
40 var_npropdef = p0;
41 {
42 { /* Inline phase#Phase#toolcontext (self) on <self:ScopePhase> */
43 var2 = self->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on <self:ScopePhase> */
44 if (unlikely(var2 == NULL)) {
45 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
46 PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162);
47 show_backtrace(1);
48 }
49 var = var2;
50 RET_LABEL1:(void)0;
51 }
52 }
53 {
54 scope__APropdef__do_scope(var_npropdef, var); /* Direct call scope#APropdef#do_scope on <var_npropdef:APropdef>*/
55 }
56 RET_LABEL:;
57 }
58 /* method scope#ScopePhase#process_npropdef for (self: Object, APropdef) */
59 void VIRTUAL_scope__ScopePhase__process_npropdef(val* self, val* p0) {
60 scope__ScopePhase__process_npropdef(self, p0); /* Direct call scope#ScopePhase#process_npropdef on <self:Object(ScopePhase)>*/
61 RET_LABEL:;
62 }
63 /* method scope#Variable#name for (self: Variable): String */
64 val* scope__Variable__name(val* self) {
65 val* var /* : String */;
66 val* var1 /* : String */;
67 var1 = self->attrs[COLOR_scope__Variable___name].val; /* _name on <self:Variable> */
68 if (unlikely(var1 == NULL)) {
69 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
70 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 34);
71 show_backtrace(1);
72 }
73 var = var1;
74 RET_LABEL:;
75 return var;
76 }
77 /* method scope#Variable#name for (self: Object): String */
78 val* VIRTUAL_scope__Variable__name(val* self) {
79 val* var /* : String */;
80 val* var1 /* : String */;
81 val* var3 /* : String */;
82 { /* Inline scope#Variable#name (self) on <self:Object(Variable)> */
83 var3 = self->attrs[COLOR_scope__Variable___name].val; /* _name on <self:Object(Variable)> */
84 if (unlikely(var3 == NULL)) {
85 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
86 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 34);
87 show_backtrace(1);
88 }
89 var1 = var3;
90 RET_LABEL2:(void)0;
91 }
92 var = var1;
93 RET_LABEL:;
94 return var;
95 }
96 /* method scope#Variable#name= for (self: Variable, String) */
97 void scope__Variable__name_61d(val* self, val* p0) {
98 self->attrs[COLOR_scope__Variable___name].val = p0; /* _name on <self:Variable> */
99 RET_LABEL:;
100 }
101 /* method scope#Variable#name= for (self: Object, String) */
102 void VIRTUAL_scope__Variable__name_61d(val* self, val* p0) {
103 { /* Inline scope#Variable#name= (self,p0) on <self:Object(Variable)> */
104 self->attrs[COLOR_scope__Variable___name].val = p0; /* _name on <self:Object(Variable)> */
105 RET_LABEL1:(void)0;
106 }
107 RET_LABEL:;
108 }
109 /* method scope#Variable#to_s for (self: Variable): String */
110 val* scope__Variable__to_s(val* self) {
111 val* var /* : String */;
112 val* var1 /* : String */;
113 val* var3 /* : String */;
114 {
115 { /* Inline scope#Variable#name (self) on <self:Variable> */
116 var3 = self->attrs[COLOR_scope__Variable___name].val; /* _name on <self:Variable> */
117 if (unlikely(var3 == NULL)) {
118 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
119 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 34);
120 show_backtrace(1);
121 }
122 var1 = var3;
123 RET_LABEL2:(void)0;
124 }
125 }
126 var = var1;
127 goto RET_LABEL;
128 RET_LABEL:;
129 return var;
130 }
131 /* method scope#Variable#to_s for (self: Object): String */
132 val* VIRTUAL_scope__Variable__to_s(val* self) {
133 val* var /* : String */;
134 val* var1 /* : String */;
135 var1 = scope__Variable__to_s(self);
136 var = var1;
137 RET_LABEL:;
138 return var;
139 }
140 /* method scope#Variable#location for (self: Variable): nullable Location */
141 val* scope__Variable__location(val* self) {
142 val* var /* : nullable Location */;
143 val* var1 /* : nullable Location */;
144 var1 = self->attrs[COLOR_scope__Variable___location].val; /* _location on <self:Variable> */
145 var = var1;
146 RET_LABEL:;
147 return var;
148 }
149 /* method scope#Variable#location for (self: Object): nullable Location */
150 val* VIRTUAL_scope__Variable__location(val* self) {
151 val* var /* : nullable Location */;
152 val* var1 /* : nullable Location */;
153 val* var3 /* : nullable Location */;
154 { /* Inline scope#Variable#location (self) on <self:Object(Variable)> */
155 var3 = self->attrs[COLOR_scope__Variable___location].val; /* _location on <self:Object(Variable)> */
156 var1 = var3;
157 RET_LABEL2:(void)0;
158 }
159 var = var1;
160 RET_LABEL:;
161 return var;
162 }
163 /* method scope#Variable#location= for (self: Variable, nullable Location) */
164 void scope__Variable__location_61d(val* self, val* p0) {
165 self->attrs[COLOR_scope__Variable___location].val = p0; /* _location on <self:Variable> */
166 RET_LABEL:;
167 }
168 /* method scope#Variable#location= for (self: Object, nullable Location) */
169 void VIRTUAL_scope__Variable__location_61d(val* self, val* p0) {
170 { /* Inline scope#Variable#location= (self,p0) on <self:Object(Variable)> */
171 self->attrs[COLOR_scope__Variable___location].val = p0; /* _location on <self:Object(Variable)> */
172 RET_LABEL1:(void)0;
173 }
174 RET_LABEL:;
175 }
176 /* method scope#Variable#warn_unread for (self: Variable): Bool */
177 short int scope__Variable__warn_unread(val* self) {
178 short int var /* : Bool */;
179 short int var1 /* : Bool */;
180 var1 = self->attrs[COLOR_scope__Variable___warn_unread].s; /* _warn_unread on <self:Variable> */
181 var = var1;
182 RET_LABEL:;
183 return var;
184 }
185 /* method scope#Variable#warn_unread for (self: Object): Bool */
186 short int VIRTUAL_scope__Variable__warn_unread(val* self) {
187 short int var /* : Bool */;
188 short int var1 /* : Bool */;
189 short int var3 /* : Bool */;
190 { /* Inline scope#Variable#warn_unread (self) on <self:Object(Variable)> */
191 var3 = self->attrs[COLOR_scope__Variable___warn_unread].s; /* _warn_unread on <self:Object(Variable)> */
192 var1 = var3;
193 RET_LABEL2:(void)0;
194 }
195 var = var1;
196 RET_LABEL:;
197 return var;
198 }
199 /* method scope#Variable#warn_unread= for (self: Variable, Bool) */
200 void scope__Variable__warn_unread_61d(val* self, short int p0) {
201 self->attrs[COLOR_scope__Variable___warn_unread].s = p0; /* _warn_unread on <self:Variable> */
202 RET_LABEL:;
203 }
204 /* method scope#Variable#warn_unread= for (self: Object, Bool) */
205 void VIRTUAL_scope__Variable__warn_unread_61d(val* self, short int p0) {
206 { /* Inline scope#Variable#warn_unread= (self,p0) on <self:Object(Variable)> */
207 self->attrs[COLOR_scope__Variable___warn_unread].s = p0; /* _warn_unread on <self:Object(Variable)> */
208 RET_LABEL1:(void)0;
209 }
210 RET_LABEL:;
211 }
212 /* method scope#Variable#init for (self: Variable) */
213 void scope__Variable__init(val* self) {
214 {
215 ((void (*)(val*))(self->class->vft[COLOR_scope__Variable__init]))(self) /* init on <self:Variable>*/;
216 }
217 RET_LABEL:;
218 }
219 /* method scope#Variable#init for (self: Object) */
220 void VIRTUAL_scope__Variable__init(val* self) {
221 { /* Inline scope#Variable#init (self) on <self:Object(Variable)> */
222 {
223 ((void (*)(val*))(self->class->vft[COLOR_scope__Variable__init]))(self) /* init on <self:Object(Variable)>*/;
224 }
225 RET_LABEL1:(void)0;
226 }
227 RET_LABEL:;
228 }
229 /* method scope#EscapeMark#name for (self: EscapeMark): nullable String */
230 val* scope__EscapeMark__name(val* self) {
231 val* var /* : nullable String */;
232 val* var1 /* : nullable String */;
233 var1 = self->attrs[COLOR_scope__EscapeMark___name].val; /* _name on <self:EscapeMark> */
234 var = var1;
235 RET_LABEL:;
236 return var;
237 }
238 /* method scope#EscapeMark#name for (self: Object): nullable String */
239 val* VIRTUAL_scope__EscapeMark__name(val* self) {
240 val* var /* : nullable String */;
241 val* var1 /* : nullable String */;
242 val* var3 /* : nullable String */;
243 { /* Inline scope#EscapeMark#name (self) on <self:Object(EscapeMark)> */
244 var3 = self->attrs[COLOR_scope__EscapeMark___name].val; /* _name on <self:Object(EscapeMark)> */
245 var1 = var3;
246 RET_LABEL2:(void)0;
247 }
248 var = var1;
249 RET_LABEL:;
250 return var;
251 }
252 /* method scope#EscapeMark#name= for (self: EscapeMark, nullable String) */
253 void scope__EscapeMark__name_61d(val* self, val* p0) {
254 self->attrs[COLOR_scope__EscapeMark___name].val = p0; /* _name on <self:EscapeMark> */
255 RET_LABEL:;
256 }
257 /* method scope#EscapeMark#name= for (self: Object, nullable String) */
258 void VIRTUAL_scope__EscapeMark__name_61d(val* self, val* p0) {
259 { /* Inline scope#EscapeMark#name= (self,p0) on <self:Object(EscapeMark)> */
260 self->attrs[COLOR_scope__EscapeMark___name].val = p0; /* _name on <self:Object(EscapeMark)> */
261 RET_LABEL1:(void)0;
262 }
263 RET_LABEL:;
264 }
265 /* method scope#EscapeMark#continue_mark for (self: EscapeMark): nullable EscapeMark */
266 val* scope__EscapeMark__continue_mark(val* self) {
267 val* var /* : nullable EscapeMark */;
268 val* var1 /* : nullable EscapeMark */;
269 var1 = self->attrs[COLOR_scope__EscapeMark___continue_mark].val; /* _continue_mark on <self:EscapeMark> */
270 var = var1;
271 RET_LABEL:;
272 return var;
273 }
274 /* method scope#EscapeMark#continue_mark for (self: Object): nullable EscapeMark */
275 val* VIRTUAL_scope__EscapeMark__continue_mark(val* self) {
276 val* var /* : nullable EscapeMark */;
277 val* var1 /* : nullable EscapeMark */;
278 val* var3 /* : nullable EscapeMark */;
279 { /* Inline scope#EscapeMark#continue_mark (self) on <self:Object(EscapeMark)> */
280 var3 = self->attrs[COLOR_scope__EscapeMark___continue_mark].val; /* _continue_mark on <self:Object(EscapeMark)> */
281 var1 = var3;
282 RET_LABEL2:(void)0;
283 }
284 var = var1;
285 RET_LABEL:;
286 return var;
287 }
288 /* method scope#EscapeMark#continue_mark= for (self: EscapeMark, nullable EscapeMark) */
289 void scope__EscapeMark__continue_mark_61d(val* self, val* p0) {
290 self->attrs[COLOR_scope__EscapeMark___continue_mark].val = p0; /* _continue_mark on <self:EscapeMark> */
291 RET_LABEL:;
292 }
293 /* method scope#EscapeMark#continue_mark= for (self: Object, nullable EscapeMark) */
294 void VIRTUAL_scope__EscapeMark__continue_mark_61d(val* self, val* p0) {
295 { /* Inline scope#EscapeMark#continue_mark= (self,p0) on <self:Object(EscapeMark)> */
296 self->attrs[COLOR_scope__EscapeMark___continue_mark].val = p0; /* _continue_mark on <self:Object(EscapeMark)> */
297 RET_LABEL1:(void)0;
298 }
299 RET_LABEL:;
300 }
301 /* method scope#EscapeMark#escapes for (self: EscapeMark): Array[AEscapeExpr] */
302 val* scope__EscapeMark__escapes(val* self) {
303 val* var /* : Array[AEscapeExpr] */;
304 val* var1 /* : Array[AEscapeExpr] */;
305 var1 = self->attrs[COLOR_scope__EscapeMark___escapes].val; /* _escapes on <self:EscapeMark> */
306 if (unlikely(var1 == NULL)) {
307 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
308 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 57);
309 show_backtrace(1);
310 }
311 var = var1;
312 RET_LABEL:;
313 return var;
314 }
315 /* method scope#EscapeMark#escapes for (self: Object): Array[AEscapeExpr] */
316 val* VIRTUAL_scope__EscapeMark__escapes(val* self) {
317 val* var /* : Array[AEscapeExpr] */;
318 val* var1 /* : Array[AEscapeExpr] */;
319 val* var3 /* : Array[AEscapeExpr] */;
320 { /* Inline scope#EscapeMark#escapes (self) on <self:Object(EscapeMark)> */
321 var3 = self->attrs[COLOR_scope__EscapeMark___escapes].val; /* _escapes on <self:Object(EscapeMark)> */
322 if (unlikely(var3 == NULL)) {
323 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
324 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 57);
325 show_backtrace(1);
326 }
327 var1 = var3;
328 RET_LABEL2:(void)0;
329 }
330 var = var1;
331 RET_LABEL:;
332 return var;
333 }
334 /* method scope#EscapeMark#init for (self: EscapeMark) */
335 void scope__EscapeMark__init(val* self) {
336 {
337 ((void (*)(val*))(self->class->vft[COLOR_scope__EscapeMark__init]))(self) /* init on <self:EscapeMark>*/;
338 }
339 RET_LABEL:;
340 }
341 /* method scope#EscapeMark#init for (self: Object) */
342 void VIRTUAL_scope__EscapeMark__init(val* self) {
343 { /* Inline scope#EscapeMark#init (self) on <self:Object(EscapeMark)> */
344 {
345 ((void (*)(val*))(self->class->vft[COLOR_scope__EscapeMark__init]))(self) /* init on <self:Object(EscapeMark)>*/;
346 }
347 RET_LABEL1:(void)0;
348 }
349 RET_LABEL:;
350 }
351 /* method scope#ScopeVisitor#toolcontext for (self: ScopeVisitor): ToolContext */
352 val* scope__ScopeVisitor__toolcontext(val* self) {
353 val* var /* : ToolContext */;
354 val* var1 /* : ToolContext */;
355 var1 = self->attrs[COLOR_scope__ScopeVisitor___toolcontext].val; /* _toolcontext on <self:ScopeVisitor> */
356 if (unlikely(var1 == NULL)) {
357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
358 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 69);
359 show_backtrace(1);
360 }
361 var = var1;
362 RET_LABEL:;
363 return var;
364 }
365 /* method scope#ScopeVisitor#toolcontext for (self: Object): ToolContext */
366 val* VIRTUAL_scope__ScopeVisitor__toolcontext(val* self) {
367 val* var /* : ToolContext */;
368 val* var1 /* : ToolContext */;
369 val* var3 /* : ToolContext */;
370 { /* Inline scope#ScopeVisitor#toolcontext (self) on <self:Object(ScopeVisitor)> */
371 var3 = self->attrs[COLOR_scope__ScopeVisitor___toolcontext].val; /* _toolcontext on <self:Object(ScopeVisitor)> */
372 if (unlikely(var3 == NULL)) {
373 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
374 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 69);
375 show_backtrace(1);
376 }
377 var1 = var3;
378 RET_LABEL2:(void)0;
379 }
380 var = var1;
381 RET_LABEL:;
382 return var;
383 }
384 /* method scope#ScopeVisitor#toolcontext= for (self: ScopeVisitor, ToolContext) */
385 void scope__ScopeVisitor__toolcontext_61d(val* self, val* p0) {
386 self->attrs[COLOR_scope__ScopeVisitor___toolcontext].val = p0; /* _toolcontext on <self:ScopeVisitor> */
387 RET_LABEL:;
388 }
389 /* method scope#ScopeVisitor#toolcontext= for (self: Object, ToolContext) */
390 void VIRTUAL_scope__ScopeVisitor__toolcontext_61d(val* self, val* p0) {
391 { /* Inline scope#ScopeVisitor#toolcontext= (self,p0) on <self:Object(ScopeVisitor)> */
392 self->attrs[COLOR_scope__ScopeVisitor___toolcontext].val = p0; /* _toolcontext on <self:Object(ScopeVisitor)> */
393 RET_LABEL1:(void)0;
394 }
395 RET_LABEL:;
396 }
397 /* method scope#ScopeVisitor#selfvariable for (self: ScopeVisitor): Variable */
398 val* scope__ScopeVisitor__selfvariable(val* self) {
399 val* var /* : Variable */;
400 val* var1 /* : Variable */;
401 var1 = self->attrs[COLOR_scope__ScopeVisitor___selfvariable].val; /* _selfvariable on <self:ScopeVisitor> */
402 if (unlikely(var1 == NULL)) {
403 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
404 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 72);
405 show_backtrace(1);
406 }
407 var = var1;
408 RET_LABEL:;
409 return var;
410 }
411 /* method scope#ScopeVisitor#selfvariable for (self: Object): Variable */
412 val* VIRTUAL_scope__ScopeVisitor__selfvariable(val* self) {
413 val* var /* : Variable */;
414 val* var1 /* : Variable */;
415 val* var3 /* : Variable */;
416 { /* Inline scope#ScopeVisitor#selfvariable (self) on <self:Object(ScopeVisitor)> */
417 var3 = self->attrs[COLOR_scope__ScopeVisitor___selfvariable].val; /* _selfvariable on <self:Object(ScopeVisitor)> */
418 if (unlikely(var3 == NULL)) {
419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
420 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 72);
421 show_backtrace(1);
422 }
423 var1 = var3;
424 RET_LABEL2:(void)0;
425 }
426 var = var1;
427 RET_LABEL:;
428 return var;
429 }
430 /* method scope#ScopeVisitor#init for (self: ScopeVisitor, ToolContext) */
431 void scope__ScopeVisitor__init(val* self, val* p0) {
432 val* var_toolcontext /* var toolcontext: ToolContext */;
433 val* var /* : List[Scope] */;
434 val* var3 /* : List[Scope] */;
435 val* var4 /* : Scope */;
436 {
437 ((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:ScopeVisitor>*/;
438 }
439 var_toolcontext = p0;
440 {
441 { /* Inline scope#ScopeVisitor#toolcontext= (self,var_toolcontext) on <self:ScopeVisitor> */
442 self->attrs[COLOR_scope__ScopeVisitor___toolcontext].val = var_toolcontext; /* _toolcontext on <self:ScopeVisitor> */
443 RET_LABEL1:(void)0;
444 }
445 }
446 {
447 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
448 var3 = self->attrs[COLOR_scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
449 if (unlikely(var3 == NULL)) {
450 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
451 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 80);
452 show_backtrace(1);
453 }
454 var = var3;
455 RET_LABEL2:(void)0;
456 }
457 }
458 var4 = NEW_scope__Scope(&type_scope__Scope);
459 {
460 ((void (*)(val*))(var4->class->vft[COLOR_kernel__Object__init]))(var4) /* init on <var4:Scope>*/;
461 }
462 {
463 abstract_collection__Sequence__add(var, var4); /* Direct call abstract_collection#Sequence#add on <var:List[Scope]>*/
464 }
465 RET_LABEL:;
466 }
467 /* method scope#ScopeVisitor#init for (self: Object, ToolContext) */
468 void VIRTUAL_scope__ScopeVisitor__init(val* self, val* p0) {
469 scope__ScopeVisitor__init(self, p0); /* Direct call scope#ScopeVisitor#init on <self:Object(ScopeVisitor)>*/
470 RET_LABEL:;
471 }
472 /* method scope#ScopeVisitor#scopes for (self: ScopeVisitor): List[Scope] */
473 val* scope__ScopeVisitor__scopes(val* self) {
474 val* var /* : List[Scope] */;
475 val* var1 /* : List[Scope] */;
476 var1 = self->attrs[COLOR_scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
477 if (unlikely(var1 == NULL)) {
478 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
479 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 80);
480 show_backtrace(1);
481 }
482 var = var1;
483 RET_LABEL:;
484 return var;
485 }
486 /* method scope#ScopeVisitor#scopes for (self: Object): List[Scope] */
487 val* VIRTUAL_scope__ScopeVisitor__scopes(val* self) {
488 val* var /* : List[Scope] */;
489 val* var1 /* : List[Scope] */;
490 val* var3 /* : List[Scope] */;
491 { /* Inline scope#ScopeVisitor#scopes (self) on <self:Object(ScopeVisitor)> */
492 var3 = self->attrs[COLOR_scope__ScopeVisitor___scopes].val; /* _scopes on <self:Object(ScopeVisitor)> */
493 if (unlikely(var3 == NULL)) {
494 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
495 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 80);
496 show_backtrace(1);
497 }
498 var1 = var3;
499 RET_LABEL2:(void)0;
500 }
501 var = var1;
502 RET_LABEL:;
503 return var;
504 }
505 /* method scope#ScopeVisitor#shift_scope for (self: ScopeVisitor) */
506 void scope__ScopeVisitor__shift_scope(val* self) {
507 val* var /* : List[Scope] */;
508 val* var2 /* : List[Scope] */;
509 short int var3 /* : Bool */;
510 short int var4 /* : Bool */;
511 val* var5 /* : List[Scope] */;
512 val* var7 /* : List[Scope] */;
513 val* var8 /* : nullable Object */;
514 val* var_scope /* var scope: Scope */;
515 val* var9 /* : HashMap[String, Variable] */;
516 val* var11 /* : HashMap[String, Variable] */;
517 val* var12 /* : RemovableCollection[nullable Object] */;
518 val* var14 /* : RemovableCollection[nullable Object] */;
519 val* var_ /* var : RemovableCollection[Variable] */;
520 val* var15 /* : Iterator[nullable Object] */;
521 val* var_16 /* var : Iterator[Variable] */;
522 short int var17 /* : Bool */;
523 val* var18 /* : nullable Object */;
524 val* var_v /* var v: Variable */;
525 short int var19 /* : Bool */;
526 short int var21 /* : Bool */;
527 val* var22 /* : ToolContext */;
528 val* var24 /* : ToolContext */;
529 val* var25 /* : nullable Location */;
530 val* var27 /* : nullable Location */;
531 static val* varonce;
532 val* var28 /* : String */;
533 char* var29 /* : NativeString */;
534 long var30 /* : Int */;
535 val* var31 /* : FlatString */;
536 static val* varonce32;
537 val* var33 /* : String */;
538 char* var34 /* : NativeString */;
539 long var35 /* : Int */;
540 val* var36 /* : FlatString */;
541 val* var37 /* : String */;
542 val* var39 /* : String */;
543 static val* varonce40;
544 val* var41 /* : String */;
545 char* var42 /* : NativeString */;
546 long var43 /* : Int */;
547 val* var44 /* : FlatString */;
548 val* var45 /* : Array[Object] */;
549 long var46 /* : Int */;
550 val* var47 /* : NativeArray[Object] */;
551 val* var48 /* : String */;
552 {
553 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
554 var2 = self->attrs[COLOR_scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
555 if (unlikely(var2 == NULL)) {
556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
557 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 80);
558 show_backtrace(1);
559 }
560 var = var2;
561 RET_LABEL1:(void)0;
562 }
563 }
564 {
565 var3 = list__List__is_empty(var);
566 }
567 var4 = !var3;
568 if (unlikely(!var4)) {
569 PRINT_ERROR("Runtime error: %s", "Assert failed");
570 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 86);
571 show_backtrace(1);
572 }
573 {
574 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
575 var7 = self->attrs[COLOR_scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
576 if (unlikely(var7 == NULL)) {
577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
578 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 80);
579 show_backtrace(1);
580 }
581 var5 = var7;
582 RET_LABEL6:(void)0;
583 }
584 }
585 {
586 var8 = list__List__shift(var5);
587 }
588 var_scope = var8;
589 {
590 { /* Inline scope#Scope#variables (var_scope) on <var_scope:Scope> */
591 var11 = var_scope->attrs[COLOR_scope__Scope___variables].val; /* _variables on <var_scope:Scope> */
592 if (unlikely(var11 == NULL)) {
593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
594 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 225);
595 show_backtrace(1);
596 }
597 var9 = var11;
598 RET_LABEL10:(void)0;
599 }
600 }
601 {
602 { /* Inline hash_collection#HashMap#values (var9) on <var9:HashMap[String, Variable]> */
603 var14 = var9->attrs[COLOR_hash_collection__HashMap___values].val; /* _values on <var9:HashMap[String, Variable]> */
604 if (unlikely(var14 == NULL)) {
605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
606 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/hash_collection.nit", 250);
607 show_backtrace(1);
608 }
609 var12 = var14;
610 RET_LABEL13:(void)0;
611 }
612 }
613 var_ = var12;
614 {
615 var15 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:RemovableCollection[Variable]>*/;
616 }
617 var_16 = var15;
618 for(;;) {
619 {
620 var17 = ((short int (*)(val*))(var_16->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_16) /* is_ok on <var_16:Iterator[Variable]>*/;
621 }
622 if (var17){
623 {
624 var18 = ((val* (*)(val*))(var_16->class->vft[COLOR_abstract_collection__Iterator__item]))(var_16) /* item on <var_16:Iterator[Variable]>*/;
625 }
626 var_v = var18;
627 {
628 { /* Inline scope#Variable#warn_unread (var_v) on <var_v:Variable> */
629 var21 = var_v->attrs[COLOR_scope__Variable___warn_unread].s; /* _warn_unread on <var_v:Variable> */
630 var19 = var21;
631 RET_LABEL20:(void)0;
632 }
633 }
634 if (var19){
635 {
636 { /* Inline scope#ScopeVisitor#toolcontext (self) on <self:ScopeVisitor> */
637 var24 = self->attrs[COLOR_scope__ScopeVisitor___toolcontext].val; /* _toolcontext on <self:ScopeVisitor> */
638 if (unlikely(var24 == NULL)) {
639 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
640 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 69);
641 show_backtrace(1);
642 }
643 var22 = var24;
644 RET_LABEL23:(void)0;
645 }
646 }
647 {
648 { /* Inline scope#Variable#location (var_v) on <var_v:Variable> */
649 var27 = var_v->attrs[COLOR_scope__Variable___location].val; /* _location on <var_v:Variable> */
650 var25 = var27;
651 RET_LABEL26:(void)0;
652 }
653 }
654 if (varonce) {
655 var28 = varonce;
656 } else {
657 var29 = "unread-variable";
658 var30 = 15;
659 var31 = string__NativeString__to_s_with_length(var29, var30);
660 var28 = var31;
661 varonce = var28;
662 }
663 if (varonce32) {
664 var33 = varonce32;
665 } else {
666 var34 = "Warning: local variable ";
667 var35 = 24;
668 var36 = string__NativeString__to_s_with_length(var34, var35);
669 var33 = var36;
670 varonce32 = var33;
671 }
672 {
673 { /* Inline scope#Variable#name (var_v) on <var_v:Variable> */
674 var39 = var_v->attrs[COLOR_scope__Variable___name].val; /* _name on <var_v:Variable> */
675 if (unlikely(var39 == NULL)) {
676 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
677 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 34);
678 show_backtrace(1);
679 }
680 var37 = var39;
681 RET_LABEL38:(void)0;
682 }
683 }
684 if (varonce40) {
685 var41 = varonce40;
686 } else {
687 var42 = " is never read.";
688 var43 = 15;
689 var44 = string__NativeString__to_s_with_length(var42, var43);
690 var41 = var44;
691 varonce40 = var41;
692 }
693 var45 = NEW_array__Array(&type_array__Arraykernel__Object);
694 { /* var45 = array_instance Array[Object] */
695 var46 = 3;
696 var47 = NEW_array__NativeArray(var46, &type_array__NativeArraykernel__Object);
697 ((struct instance_array__NativeArray*)var47)->values[0] = (val*) var33;
698 ((struct instance_array__NativeArray*)var47)->values[1] = (val*) var37;
699 ((struct instance_array__NativeArray*)var47)->values[2] = (val*) var41;
700 {
701 ((void (*)(val*, val*, long))(var45->class->vft[COLOR_array__Array__with_native]))(var45, var47, var46) /* with_native on <var45:Array[Object]>*/;
702 }
703 }
704 {
705 var48 = ((val* (*)(val*))(var45->class->vft[COLOR_string__Object__to_s]))(var45) /* to_s on <var45:Array[Object]>*/;
706 }
707 {
708 toolcontext__ToolContext__advice(var22, var25, var28, var48); /* Direct call toolcontext#ToolContext#advice on <var22:ToolContext>*/
709 }
710 } else {
711 }
712 {
713 ((void (*)(val*))(var_16->class->vft[COLOR_abstract_collection__Iterator__next]))(var_16) /* next on <var_16:Iterator[Variable]>*/;
714 }
715 } else {
716 goto BREAK_label;
717 }
718 }
719 BREAK_label: (void)0;
720 {
721 { /* Inline abstract_collection#Iterator#finish (var_16) on <var_16:Iterator[Variable]> */
722 RET_LABEL49:(void)0;
723 }
724 }
725 RET_LABEL:;
726 }
727 /* method scope#ScopeVisitor#shift_scope for (self: Object) */
728 void VIRTUAL_scope__ScopeVisitor__shift_scope(val* self) {
729 scope__ScopeVisitor__shift_scope(self); /* Direct call scope#ScopeVisitor#shift_scope on <self:Object(ScopeVisitor)>*/
730 RET_LABEL:;
731 }
732 /* method scope#ScopeVisitor#register_variable for (self: ScopeVisitor, ANode, Variable): Bool */
733 short int scope__ScopeVisitor__register_variable(val* self, val* p0, val* p1) {
734 short int var /* : Bool */;
735 val* var_node /* var node: ANode */;
736 val* var_variable /* var variable: Variable */;
737 val* var1 /* : String */;
738 val* var3 /* : String */;
739 val* var_name /* var name: String */;
740 val* var4 /* : nullable Variable */;
741 val* var_found /* var found: nullable Variable */;
742 val* var5 /* : null */;
743 short int var6 /* : Bool */;
744 short int var7 /* : Bool */;
745 val* var_other /* var other: nullable Object */;
746 short int var9 /* : Bool */;
747 short int var10 /* : Bool */;
748 short int var11 /* : Bool */;
749 static val* varonce;
750 val* var12 /* : String */;
751 char* var13 /* : NativeString */;
752 long var14 /* : Int */;
753 val* var15 /* : FlatString */;
754 static val* varonce16;
755 val* var17 /* : String */;
756 char* var18 /* : NativeString */;
757 long var19 /* : Int */;
758 val* var20 /* : FlatString */;
759 val* var21 /* : Array[Object] */;
760 long var22 /* : Int */;
761 val* var23 /* : NativeArray[Object] */;
762 val* var24 /* : String */;
763 short int var25 /* : Bool */;
764 val* var26 /* : List[Scope] */;
765 val* var28 /* : List[Scope] */;
766 val* var29 /* : nullable Object */;
767 val* var30 /* : HashMap[String, Variable] */;
768 val* var32 /* : HashMap[String, Variable] */;
769 val* var33 /* : Location */;
770 val* var35 /* : Location */;
771 short int var37 /* : Bool */;
772 var_node = p0;
773 var_variable = p1;
774 {
775 { /* Inline scope#Variable#name (var_variable) on <var_variable:Variable> */
776 var3 = var_variable->attrs[COLOR_scope__Variable___name].val; /* _name on <var_variable:Variable> */
777 if (unlikely(var3 == NULL)) {
778 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
779 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 34);
780 show_backtrace(1);
781 }
782 var1 = var3;
783 RET_LABEL2:(void)0;
784 }
785 }
786 var_name = var1;
787 {
788 var4 = scope__ScopeVisitor__search_variable(self, var_name);
789 }
790 var_found = var4;
791 var5 = NULL;
792 if (var_found == NULL) {
793 var6 = 0; /* is null */
794 } else {
795 var6 = 1; /* arg is null and recv is not */
796 }
797 if (0) {
798 { /* Inline kernel#Object#!= (var_found,var5) on <var_found:nullable Variable> */
799 var_other = var5;
800 {
801 var10 = ((short int (*)(val*, val*))(var_found->class->vft[COLOR_kernel__Object___61d_61d]))(var_found, var_other) /* == on <var_found:nullable Variable(Variable)>*/;
802 var9 = var10;
803 }
804 var11 = !var9;
805 var7 = var11;
806 goto RET_LABEL8;
807 RET_LABEL8:(void)0;
808 }
809 var6 = var7;
810 }
811 if (var6){
812 if (varonce) {
813 var12 = varonce;
814 } else {
815 var13 = "Error: A variable named `";
816 var14 = 25;
817 var15 = string__NativeString__to_s_with_length(var13, var14);
818 var12 = var15;
819 varonce = var12;
820 }
821 if (varonce16) {
822 var17 = varonce16;
823 } else {
824 var18 = "\' already exists";
825 var19 = 16;
826 var20 = string__NativeString__to_s_with_length(var18, var19);
827 var17 = var20;
828 varonce16 = var17;
829 }
830 var21 = NEW_array__Array(&type_array__Arraykernel__Object);
831 { /* var21 = array_instance Array[Object] */
832 var22 = 3;
833 var23 = NEW_array__NativeArray(var22, &type_array__NativeArraykernel__Object);
834 ((struct instance_array__NativeArray*)var23)->values[0] = (val*) var12;
835 ((struct instance_array__NativeArray*)var23)->values[1] = (val*) var_name;
836 ((struct instance_array__NativeArray*)var23)->values[2] = (val*) var17;
837 {
838 ((void (*)(val*, val*, long))(var21->class->vft[COLOR_array__Array__with_native]))(var21, var23, var22) /* with_native on <var21:Array[Object]>*/;
839 }
840 }
841 {
842 var24 = ((val* (*)(val*))(var21->class->vft[COLOR_string__Object__to_s]))(var21) /* to_s on <var21:Array[Object]>*/;
843 }
844 {
845 scope__ScopeVisitor__error(self, var_node, var24); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
846 }
847 var25 = 0;
848 var = var25;
849 goto RET_LABEL;
850 } else {
851 }
852 {
853 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
854 var28 = self->attrs[COLOR_scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
855 if (unlikely(var28 == NULL)) {
856 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
857 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 80);
858 show_backtrace(1);
859 }
860 var26 = var28;
861 RET_LABEL27:(void)0;
862 }
863 }
864 {
865 var29 = list__List__first(var26);
866 }
867 {
868 { /* Inline scope#Scope#variables (var29) on <var29:nullable Object(Scope)> */
869 var32 = var29->attrs[COLOR_scope__Scope___variables].val; /* _variables on <var29:nullable Object(Scope)> */
870 if (unlikely(var32 == NULL)) {
871 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
872 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 225);
873 show_backtrace(1);
874 }
875 var30 = var32;
876 RET_LABEL31:(void)0;
877 }
878 }
879 {
880 hash_collection__HashMap___91d_93d_61d(var30, var_name, var_variable); /* Direct call hash_collection#HashMap#[]= on <var30:HashMap[String, Variable]>*/
881 }
882 {
883 { /* Inline parser_nodes#ANode#location (var_node) on <var_node:ANode> */
884 var35 = var_node->attrs[COLOR_parser_nodes__ANode___location].val; /* _location on <var_node:ANode> */
885 if (unlikely(var35 == NULL)) {
886 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
887 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
888 show_backtrace(1);
889 }
890 var33 = var35;
891 RET_LABEL34:(void)0;
892 }
893 }
894 {
895 { /* Inline scope#Variable#location= (var_variable,var33) on <var_variable:Variable> */
896 var_variable->attrs[COLOR_scope__Variable___location].val = var33; /* _location on <var_variable:Variable> */
897 RET_LABEL36:(void)0;
898 }
899 }
900 var37 = 1;
901 var = var37;
902 goto RET_LABEL;
903 RET_LABEL:;
904 return var;
905 }
906 /* method scope#ScopeVisitor#register_variable for (self: Object, ANode, Variable): Bool */
907 short int VIRTUAL_scope__ScopeVisitor__register_variable(val* self, val* p0, val* p1) {
908 short int var /* : Bool */;
909 short int var1 /* : Bool */;
910 var1 = scope__ScopeVisitor__register_variable(self, p0, p1);
911 var = var1;
912 RET_LABEL:;
913 return var;
914 }
915 /* method scope#ScopeVisitor#search_variable for (self: ScopeVisitor, String): nullable Variable */
916 val* scope__ScopeVisitor__search_variable(val* self, val* p0) {
917 val* var /* : nullable Variable */;
918 val* var_name /* var name: String */;
919 val* var1 /* : List[Scope] */;
920 val* var3 /* : List[Scope] */;
921 val* var_ /* var : List[Scope] */;
922 val* var4 /* : ListIterator[nullable Object] */;
923 val* var_5 /* var : ListIterator[Scope] */;
924 short int var6 /* : Bool */;
925 val* var7 /* : nullable Object */;
926 val* var_scope /* var scope: Scope */;
927 val* var8 /* : nullable Variable */;
928 val* var_res /* var res: nullable Variable */;
929 val* var9 /* : null */;
930 short int var10 /* : Bool */;
931 short int var11 /* : Bool */;
932 val* var_other /* var other: nullable Object */;
933 short int var13 /* : Bool */;
934 short int var14 /* : Bool */;
935 short int var15 /* : Bool */;
936 val* var17 /* : null */;
937 var_name = p0;
938 {
939 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
940 var3 = self->attrs[COLOR_scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
941 if (unlikely(var3 == NULL)) {
942 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
943 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 80);
944 show_backtrace(1);
945 }
946 var1 = var3;
947 RET_LABEL2:(void)0;
948 }
949 }
950 var_ = var1;
951 {
952 var4 = list__List__iterator(var_);
953 }
954 var_5 = var4;
955 for(;;) {
956 {
957 var6 = list__ListIterator__is_ok(var_5);
958 }
959 if (var6){
960 {
961 var7 = list__ListIterator__item(var_5);
962 }
963 var_scope = var7;
964 {
965 var8 = scope__Scope__get_variable(var_scope, var_name);
966 }
967 var_res = var8;
968 var9 = NULL;
969 if (var_res == NULL) {
970 var10 = 0; /* is null */
971 } else {
972 var10 = 1; /* arg is null and recv is not */
973 }
974 if (0) {
975 { /* Inline kernel#Object#!= (var_res,var9) on <var_res:nullable Variable> */
976 var_other = var9;
977 {
978 var14 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable Variable(Variable)>*/;
979 var13 = var14;
980 }
981 var15 = !var13;
982 var11 = var15;
983 goto RET_LABEL12;
984 RET_LABEL12:(void)0;
985 }
986 var10 = var11;
987 }
988 if (var10){
989 var = var_res;
990 goto RET_LABEL;
991 } else {
992 }
993 {
994 list__ListIterator__next(var_5); /* Direct call list#ListIterator#next on <var_5:ListIterator[Scope]>*/
995 }
996 } else {
997 goto BREAK_label;
998 }
999 }
1000 BREAK_label: (void)0;
1001 {
1002 { /* Inline abstract_collection#Iterator#finish (var_5) on <var_5:ListIterator[Scope]> */
1003 RET_LABEL16:(void)0;
1004 }
1005 }
1006 var17 = NULL;
1007 var = var17;
1008 goto RET_LABEL;
1009 RET_LABEL:;
1010 return var;
1011 }
1012 /* method scope#ScopeVisitor#search_variable for (self: Object, String): nullable Variable */
1013 val* VIRTUAL_scope__ScopeVisitor__search_variable(val* self, val* p0) {
1014 val* var /* : nullable Variable */;
1015 val* var1 /* : nullable Variable */;
1016 var1 = scope__ScopeVisitor__search_variable(self, p0);
1017 var = var1;
1018 RET_LABEL:;
1019 return var;
1020 }
1021 /* method scope#ScopeVisitor#visit for (self: ScopeVisitor, ANode) */
1022 void scope__ScopeVisitor__visit(val* self, val* p0) {
1023 val* var_n /* var n: ANode */;
1024 var_n = p0;
1025 {
1026 ((void (*)(val*, val*))(var_n->class->vft[COLOR_scope__ANode__accept_scope_visitor]))(var_n, self) /* accept_scope_visitor on <var_n:ANode>*/;
1027 }
1028 RET_LABEL:;
1029 }
1030 /* method scope#ScopeVisitor#visit for (self: Object, ANode) */
1031 void VIRTUAL_scope__ScopeVisitor__visit(val* self, val* p0) {
1032 scope__ScopeVisitor__visit(self, p0); /* Direct call scope#ScopeVisitor#visit on <self:Object(ScopeVisitor)>*/
1033 RET_LABEL:;
1034 }
1035 /* method scope#ScopeVisitor#enter_visit_block for (self: ScopeVisitor, nullable AExpr, nullable EscapeMark) */
1036 void scope__ScopeVisitor__enter_visit_block(val* self, val* p0, val* p1) {
1037 val* var_node /* var node: nullable AExpr */;
1038 val* var_escapemark /* var escapemark: nullable EscapeMark */;
1039 val* var /* : null */;
1040 short int var1 /* : Bool */;
1041 short int var2 /* : Bool */;
1042 val* var_other /* var other: nullable Object */;
1043 short int var4 /* : Bool */;
1044 short int var6 /* : Bool */;
1045 val* var7 /* : Scope */;
1046 val* var_scope /* var scope: Scope */;
1047 val* var9 /* : List[Scope] */;
1048 val* var11 /* : List[Scope] */;
1049 var_node = p0;
1050 var_escapemark = p1;
1051 var = NULL;
1052 if (var_node == NULL) {
1053 var1 = 1; /* is null */
1054 } else {
1055 var1 = 0; /* arg is null but recv is not */
1056 }
1057 if (0) {
1058 { /* Inline kernel#Object#== (var_node,var) on <var_node:nullable AExpr> */
1059 var_other = var;
1060 {
1061 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable AExpr(AExpr)> */
1062 var6 = var_node == var_other;
1063 var4 = var6;
1064 goto RET_LABEL5;
1065 RET_LABEL5:(void)0;
1066 }
1067 }
1068 var2 = var4;
1069 goto RET_LABEL3;
1070 RET_LABEL3:(void)0;
1071 }
1072 var1 = var2;
1073 }
1074 if (var1){
1075 goto RET_LABEL;
1076 } else {
1077 }
1078 var7 = NEW_scope__Scope(&type_scope__Scope);
1079 {
1080 ((void (*)(val*))(var7->class->vft[COLOR_kernel__Object__init]))(var7) /* init on <var7:Scope>*/;
1081 }
1082 var_scope = var7;
1083 {
1084 { /* Inline scope#Scope#escapemark= (var_scope,var_escapemark) on <var_scope:Scope> */
1085 var_scope->attrs[COLOR_scope__Scope___escapemark].val = var_escapemark; /* _escapemark on <var_scope:Scope> */
1086 RET_LABEL8:(void)0;
1087 }
1088 }
1089 {
1090 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
1091 var11 = self->attrs[COLOR_scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
1092 if (unlikely(var11 == NULL)) {
1093 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
1094 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 80);
1095 show_backtrace(1);
1096 }
1097 var9 = var11;
1098 RET_LABEL10:(void)0;
1099 }
1100 }
1101 {
1102 list__List__unshift(var9, var_scope); /* Direct call list#List#unshift on <var9:List[Scope]>*/
1103 }
1104 {
1105 parser_nodes__Visitor__enter_visit(self, var_node); /* Direct call parser_nodes#Visitor#enter_visit on <self:ScopeVisitor>*/
1106 }
1107 {
1108 scope__ScopeVisitor__shift_scope(self); /* Direct call scope#ScopeVisitor#shift_scope on <self:ScopeVisitor>*/
1109 }
1110 RET_LABEL:;
1111 }
1112 /* method scope#ScopeVisitor#enter_visit_block for (self: Object, nullable AExpr, nullable EscapeMark) */
1113 void VIRTUAL_scope__ScopeVisitor__enter_visit_block(val* self, val* p0, val* p1) {
1114 scope__ScopeVisitor__enter_visit_block(self, p0, p1); /* Direct call scope#ScopeVisitor#enter_visit_block on <self:Object(ScopeVisitor)>*/
1115 RET_LABEL:;
1116 }
1117 /* method scope#ScopeVisitor#search_label for (self: ScopeVisitor, String): nullable EscapeMark */
1118 val* scope__ScopeVisitor__search_label(val* self, val* p0) {
1119 val* var /* : nullable EscapeMark */;
1120 val* var_name /* var name: String */;
1121 val* var1 /* : List[Scope] */;
1122 val* var3 /* : List[Scope] */;
1123 val* var_ /* var : List[Scope] */;
1124 val* var4 /* : ListIterator[nullable Object] */;
1125 val* var_5 /* var : ListIterator[Scope] */;
1126 short int var6 /* : Bool */;
1127 val* var7 /* : nullable Object */;
1128 val* var_scope /* var scope: Scope */;
1129 val* var8 /* : nullable EscapeMark */;
1130 val* var10 /* : nullable EscapeMark */;
1131 val* var_res /* var res: nullable EscapeMark */;
1132 short int var11 /* : Bool */;
1133 val* var12 /* : null */;
1134 short int var13 /* : Bool */;
1135 short int var14 /* : Bool */;
1136 val* var_other /* var other: nullable Object */;
1137 short int var16 /* : Bool */;
1138 short int var17 /* : Bool */;
1139 short int var18 /* : Bool */;
1140 short int var_19 /* var : Bool */;
1141 val* var20 /* : nullable String */;
1142 val* var22 /* : nullable String */;
1143 short int var23 /* : Bool */;
1144 short int var24 /* : Bool */;
1145 val* var26 /* : null */;
1146 var_name = p0;
1147 {
1148 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
1149 var3 = self->attrs[COLOR_scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
1150 if (unlikely(var3 == NULL)) {
1151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
1152 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 80);
1153 show_backtrace(1);
1154 }
1155 var1 = var3;
1156 RET_LABEL2:(void)0;
1157 }
1158 }
1159 var_ = var1;
1160 {
1161 var4 = list__List__iterator(var_);
1162 }
1163 var_5 = var4;
1164 for(;;) {
1165 {
1166 var6 = list__ListIterator__is_ok(var_5);
1167 }
1168 if (var6){
1169 {
1170 var7 = list__ListIterator__item(var_5);
1171 }
1172 var_scope = var7;
1173 {
1174 { /* Inline scope#Scope#escapemark (var_scope) on <var_scope:Scope> */
1175 var10 = var_scope->attrs[COLOR_scope__Scope___escapemark].val; /* _escapemark on <var_scope:Scope> */
1176 var8 = var10;
1177 RET_LABEL9:(void)0;
1178 }
1179 }
1180 var_res = var8;
1181 var12 = NULL;
1182 if (var_res == NULL) {
1183 var13 = 0; /* is null */
1184 } else {
1185 var13 = 1; /* arg is null and recv is not */
1186 }
1187 if (0) {
1188 { /* Inline kernel#Object#!= (var_res,var12) on <var_res:nullable EscapeMark> */
1189 var_other = var12;
1190 {
1191 var17 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable EscapeMark(EscapeMark)>*/;
1192 var16 = var17;
1193 }
1194 var18 = !var16;
1195 var14 = var18;
1196 goto RET_LABEL15;
1197 RET_LABEL15:(void)0;
1198 }
1199 var13 = var14;
1200 }
1201 var_19 = var13;
1202 if (var13){
1203 {
1204 { /* Inline scope#EscapeMark#name (var_res) on <var_res:nullable EscapeMark(EscapeMark)> */
1205 var22 = var_res->attrs[COLOR_scope__EscapeMark___name].val; /* _name on <var_res:nullable EscapeMark(EscapeMark)> */
1206 var20 = var22;
1207 RET_LABEL21:(void)0;
1208 }
1209 }
1210 if (var20 == NULL) {
1211 var23 = 0; /* <var_name:String> cannot be null */
1212 } else {
1213 var24 = string__FlatString___61d_61d(var20, var_name);
1214 var23 = var24;
1215 }
1216 var11 = var23;
1217 } else {
1218 var11 = var_19;
1219 }
1220 if (var11){
1221 var = var_res;
1222 goto RET_LABEL;
1223 } else {
1224 }
1225 {
1226 list__ListIterator__next(var_5); /* Direct call list#ListIterator#next on <var_5:ListIterator[Scope]>*/
1227 }
1228 } else {
1229 goto BREAK_label;
1230 }
1231 }
1232 BREAK_label: (void)0;
1233 {
1234 { /* Inline abstract_collection#Iterator#finish (var_5) on <var_5:ListIterator[Scope]> */
1235 RET_LABEL25:(void)0;
1236 }
1237 }
1238 var26 = NULL;
1239 var = var26;
1240 goto RET_LABEL;
1241 RET_LABEL:;
1242 return var;
1243 }
1244 /* method scope#ScopeVisitor#search_label for (self: Object, String): nullable EscapeMark */
1245 val* VIRTUAL_scope__ScopeVisitor__search_label(val* self, val* p0) {
1246 val* var /* : nullable EscapeMark */;
1247 val* var1 /* : nullable EscapeMark */;
1248 var1 = scope__ScopeVisitor__search_label(self, p0);
1249 var = var1;
1250 RET_LABEL:;
1251 return var;
1252 }
1253 /* method scope#ScopeVisitor#make_escape_mark for (self: ScopeVisitor, nullable ALabel, Bool): EscapeMark */
1254 val* scope__ScopeVisitor__make_escape_mark(val* self, val* p0, short int p1) {
1255 val* var /* : EscapeMark */;
1256 val* var_nlabel /* var nlabel: nullable ALabel */;
1257 short int var_for_loop /* var for_loop: Bool */;
1258 val* var1 /* : null */;
1259 short int var2 /* : Bool */;
1260 short int var3 /* : Bool */;
1261 val* var_other /* var other: nullable Object */;
1262 short int var5 /* : Bool */;
1263 short int var6 /* : Bool */;
1264 short int var7 /* : Bool */;
1265 val* var8 /* : nullable TId */;
1266 val* var10 /* : nullable TId */;
1267 val* var_nid /* var nid: nullable TId */;
1268 val* var11 /* : null */;
1269 short int var12 /* : Bool */;
1270 short int var13 /* : Bool */;
1271 val* var_other15 /* var other: nullable Object */;
1272 short int var16 /* : Bool */;
1273 short int var18 /* : Bool */;
1274 static val* varonce;
1275 val* var19 /* : String */;
1276 char* var20 /* : NativeString */;
1277 long var21 /* : Int */;
1278 val* var22 /* : FlatString */;
1279 val* var23 /* : nullable EscapeMark */;
1280 val* var_res /* var res: nullable EscapeMark */;
1281 val* var24 /* : null */;
1282 short int var25 /* : Bool */;
1283 short int var26 /* : Bool */;
1284 short int var28 /* : Bool */;
1285 short int var29 /* : Bool */;
1286 short int var30 /* : Bool */;
1287 static val* varonce31;
1288 val* var32 /* : String */;
1289 char* var33 /* : NativeString */;
1290 long var34 /* : Int */;
1291 val* var35 /* : FlatString */;
1292 static val* varonce36;
1293 val* var37 /* : String */;
1294 char* var38 /* : NativeString */;
1295 long var39 /* : Int */;
1296 val* var40 /* : FlatString */;
1297 val* var_name /* var name: nullable String */;
1298 val* var41 /* : String */;
1299 val* var42 /* : nullable EscapeMark */;
1300 val* var_found /* var found: nullable EscapeMark */;
1301 val* var43 /* : null */;
1302 short int var44 /* : Bool */;
1303 short int var45 /* : Bool */;
1304 short int var47 /* : Bool */;
1305 short int var48 /* : Bool */;
1306 short int var49 /* : Bool */;
1307 static val* varonce50;
1308 val* var51 /* : String */;
1309 char* var52 /* : NativeString */;
1310 long var53 /* : Int */;
1311 val* var54 /* : FlatString */;
1312 static val* varonce55;
1313 val* var56 /* : String */;
1314 char* var57 /* : NativeString */;
1315 long var58 /* : Int */;
1316 val* var59 /* : FlatString */;
1317 val* var60 /* : Array[Object] */;
1318 long var61 /* : Int */;
1319 val* var62 /* : NativeArray[Object] */;
1320 val* var63 /* : String */;
1321 val* var64 /* : null */;
1322 val* var65 /* : EscapeMark */;
1323 val* var_res66 /* var res: EscapeMark */;
1324 val* var67 /* : EscapeMark */;
1325 var_nlabel = p0;
1326 var_for_loop = p1;
1327 var1 = NULL;
1328 if (var_nlabel == NULL) {
1329 var2 = 0; /* is null */
1330 } else {
1331 var2 = 1; /* arg is null and recv is not */
1332 }
1333 if (0) {
1334 { /* Inline kernel#Object#!= (var_nlabel,var1) on <var_nlabel:nullable ALabel> */
1335 var_other = var1;
1336 {
1337 var6 = ((short int (*)(val*, val*))(var_nlabel->class->vft[COLOR_kernel__Object___61d_61d]))(var_nlabel, var_other) /* == on <var_nlabel:nullable ALabel(ALabel)>*/;
1338 var5 = var6;
1339 }
1340 var7 = !var5;
1341 var3 = var7;
1342 goto RET_LABEL4;
1343 RET_LABEL4:(void)0;
1344 }
1345 var2 = var3;
1346 }
1347 if (var2){
1348 {
1349 { /* Inline parser_nodes#ALabel#n_id (var_nlabel) on <var_nlabel:nullable ALabel(ALabel)> */
1350 var10 = var_nlabel->attrs[COLOR_parser_nodes__ALabel___n_id].val; /* _n_id on <var_nlabel:nullable ALabel(ALabel)> */
1351 var8 = var10;
1352 RET_LABEL9:(void)0;
1353 }
1354 }
1355 var_nid = var8;
1356 var11 = NULL;
1357 if (var_nid == NULL) {
1358 var12 = 1; /* is null */
1359 } else {
1360 var12 = 0; /* arg is null but recv is not */
1361 }
1362 if (0) {
1363 { /* Inline kernel#Object#== (var_nid,var11) on <var_nid:nullable TId> */
1364 var_other15 = var11;
1365 {
1366 { /* Inline kernel#Object#is_same_instance (var_nid,var_other15) on <var_nid:nullable TId(TId)> */
1367 var18 = var_nid == var_other15;
1368 var16 = var18;
1369 goto RET_LABEL17;
1370 RET_LABEL17:(void)0;
1371 }
1372 }
1373 var13 = var16;
1374 goto RET_LABEL14;
1375 RET_LABEL14:(void)0;
1376 }
1377 var12 = var13;
1378 }
1379 if (var12){
1380 if (varonce) {
1381 var19 = varonce;
1382 } else {
1383 var20 = "";
1384 var21 = 0;
1385 var22 = string__NativeString__to_s_with_length(var20, var21);
1386 var19 = var22;
1387 varonce = var19;
1388 }
1389 {
1390 var23 = scope__ScopeVisitor__search_label(self, var19);
1391 }
1392 var_res = var23;
1393 var24 = NULL;
1394 if (var_res == NULL) {
1395 var25 = 0; /* is null */
1396 } else {
1397 var25 = 1; /* arg is null and recv is not */
1398 }
1399 if (0) {
1400 { /* Inline kernel#Object#!= (var_res,var24) on <var_res:nullable EscapeMark> */
1401 var_other = var24;
1402 {
1403 var29 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable EscapeMark(EscapeMark)>*/;
1404 var28 = var29;
1405 }
1406 var30 = !var28;
1407 var26 = var30;
1408 goto RET_LABEL27;
1409 RET_LABEL27:(void)0;
1410 }
1411 var25 = var26;
1412 }
1413 if (var25){
1414 if (varonce31) {
1415 var32 = varonce31;
1416 } else {
1417 var33 = "Syntax error: anonymous label already defined.";
1418 var34 = 46;
1419 var35 = string__NativeString__to_s_with_length(var33, var34);
1420 var32 = var35;
1421 varonce31 = var32;
1422 }
1423 {
1424 scope__ScopeVisitor__error(self, var_nlabel, var32); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1425 }
1426 } else {
1427 }
1428 if (varonce36) {
1429 var37 = varonce36;
1430 } else {
1431 var38 = "";
1432 var39 = 0;
1433 var40 = string__NativeString__to_s_with_length(var38, var39);
1434 var37 = var40;
1435 varonce36 = var37;
1436 }
1437 var_name = var37;
1438 } else {
1439 {
1440 var41 = lexer_work__Token__text(var_nid);
1441 }
1442 var_name = var41;
1443 {
1444 var42 = scope__ScopeVisitor__search_label(self, var_name);
1445 }
1446 var_found = var42;
1447 var43 = NULL;
1448 if (var_found == NULL) {
1449 var44 = 0; /* is null */
1450 } else {
1451 var44 = 1; /* arg is null and recv is not */
1452 }
1453 if (0) {
1454 { /* Inline kernel#Object#!= (var_found,var43) on <var_found:nullable EscapeMark> */
1455 var_other = var43;
1456 {
1457 var48 = ((short int (*)(val*, val*))(var_found->class->vft[COLOR_kernel__Object___61d_61d]))(var_found, var_other) /* == on <var_found:nullable EscapeMark(EscapeMark)>*/;
1458 var47 = var48;
1459 }
1460 var49 = !var47;
1461 var45 = var49;
1462 goto RET_LABEL46;
1463 RET_LABEL46:(void)0;
1464 }
1465 var44 = var45;
1466 }
1467 if (var44){
1468 if (varonce50) {
1469 var51 = varonce50;
1470 } else {
1471 var52 = "Syntax error: label ";
1472 var53 = 20;
1473 var54 = string__NativeString__to_s_with_length(var52, var53);
1474 var51 = var54;
1475 varonce50 = var51;
1476 }
1477 if (varonce55) {
1478 var56 = varonce55;
1479 } else {
1480 var57 = " already defined.";
1481 var58 = 17;
1482 var59 = string__NativeString__to_s_with_length(var57, var58);
1483 var56 = var59;
1484 varonce55 = var56;
1485 }
1486 var60 = NEW_array__Array(&type_array__Arraykernel__Object);
1487 { /* var60 = array_instance Array[Object] */
1488 var61 = 3;
1489 var62 = NEW_array__NativeArray(var61, &type_array__NativeArraykernel__Object);
1490 ((struct instance_array__NativeArray*)var62)->values[0] = (val*) var51;
1491 ((struct instance_array__NativeArray*)var62)->values[1] = (val*) var_name;
1492 ((struct instance_array__NativeArray*)var62)->values[2] = (val*) var56;
1493 {
1494 ((void (*)(val*, val*, long))(var60->class->vft[COLOR_array__Array__with_native]))(var60, var62, var61) /* with_native on <var60:Array[Object]>*/;
1495 }
1496 }
1497 {
1498 var63 = ((val* (*)(val*))(var60->class->vft[COLOR_string__Object__to_s]))(var60) /* to_s on <var60:Array[Object]>*/;
1499 }
1500 {
1501 scope__ScopeVisitor__error(self, var_nlabel, var63); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1502 }
1503 } else {
1504 }
1505 }
1506 } else {
1507 var64 = NULL;
1508 var_name = var64;
1509 }
1510 var65 = NEW_scope__EscapeMark(&type_scope__EscapeMark);
1511 {
1512 ((void (*)(val*, val*))(var65->class->vft[COLOR_scope__EscapeMark__name_61d]))(var65, var_name) /* name= on <var65:EscapeMark>*/;
1513 }
1514 {
1515 ((void (*)(val*))(var65->class->vft[COLOR_kernel__Object__init]))(var65) /* init on <var65:EscapeMark>*/;
1516 }
1517 var_res66 = var65;
1518 if (var_for_loop){
1519 var67 = NEW_scope__EscapeMark(&type_scope__EscapeMark);
1520 {
1521 ((void (*)(val*, val*))(var67->class->vft[COLOR_scope__EscapeMark__name_61d]))(var67, var_name) /* name= on <var67:EscapeMark>*/;
1522 }
1523 {
1524 ((void (*)(val*))(var67->class->vft[COLOR_kernel__Object__init]))(var67) /* init on <var67:EscapeMark>*/;
1525 }
1526 {
1527 { /* Inline scope#EscapeMark#continue_mark= (var_res66,var67) on <var_res66:EscapeMark> */
1528 var_res66->attrs[COLOR_scope__EscapeMark___continue_mark].val = var67; /* _continue_mark on <var_res66:EscapeMark> */
1529 RET_LABEL68:(void)0;
1530 }
1531 }
1532 } else {
1533 }
1534 var = var_res66;
1535 goto RET_LABEL;
1536 RET_LABEL:;
1537 return var;
1538 }
1539 /* method scope#ScopeVisitor#make_escape_mark for (self: Object, nullable ALabel, Bool): EscapeMark */
1540 val* VIRTUAL_scope__ScopeVisitor__make_escape_mark(val* self, val* p0, short int p1) {
1541 val* var /* : EscapeMark */;
1542 val* var1 /* : EscapeMark */;
1543 var1 = scope__ScopeVisitor__make_escape_mark(self, p0, p1);
1544 var = var1;
1545 RET_LABEL:;
1546 return var;
1547 }
1548 /* method scope#ScopeVisitor#get_escapemark for (self: ScopeVisitor, ANode, nullable ALabel): nullable EscapeMark */
1549 val* scope__ScopeVisitor__get_escapemark(val* self, val* p0, val* p1) {
1550 val* var /* : nullable EscapeMark */;
1551 val* var_node /* var node: ANode */;
1552 val* var_nlabel /* var nlabel: nullable ALabel */;
1553 val* var1 /* : null */;
1554 short int var2 /* : Bool */;
1555 short int var3 /* : Bool */;
1556 val* var_other /* var other: nullable Object */;
1557 short int var5 /* : Bool */;
1558 short int var6 /* : Bool */;
1559 short int var7 /* : Bool */;
1560 val* var8 /* : nullable TId */;
1561 val* var10 /* : nullable TId */;
1562 val* var_nid /* var nid: nullable TId */;
1563 val* var11 /* : null */;
1564 short int var12 /* : Bool */;
1565 short int var13 /* : Bool */;
1566 val* var_other15 /* var other: nullable Object */;
1567 short int var16 /* : Bool */;
1568 short int var18 /* : Bool */;
1569 static val* varonce;
1570 val* var19 /* : String */;
1571 char* var20 /* : NativeString */;
1572 long var21 /* : Int */;
1573 val* var22 /* : FlatString */;
1574 val* var23 /* : nullable EscapeMark */;
1575 val* var_res /* var res: nullable EscapeMark */;
1576 val* var24 /* : null */;
1577 short int var25 /* : Bool */;
1578 short int var26 /* : Bool */;
1579 short int var28 /* : Bool */;
1580 short int var30 /* : Bool */;
1581 static val* varonce31;
1582 val* var32 /* : String */;
1583 char* var33 /* : NativeString */;
1584 long var34 /* : Int */;
1585 val* var35 /* : FlatString */;
1586 val* var36 /* : null */;
1587 val* var37 /* : String */;
1588 val* var_name /* var name: String */;
1589 val* var38 /* : nullable EscapeMark */;
1590 val* var_res39 /* var res: nullable EscapeMark */;
1591 val* var40 /* : null */;
1592 short int var41 /* : Bool */;
1593 short int var42 /* : Bool */;
1594 short int var44 /* : Bool */;
1595 short int var46 /* : Bool */;
1596 static val* varonce47;
1597 val* var48 /* : String */;
1598 char* var49 /* : NativeString */;
1599 long var50 /* : Int */;
1600 val* var51 /* : FlatString */;
1601 static val* varonce52;
1602 val* var53 /* : String */;
1603 char* var54 /* : NativeString */;
1604 long var55 /* : Int */;
1605 val* var56 /* : FlatString */;
1606 val* var57 /* : Array[Object] */;
1607 long var58 /* : Int */;
1608 val* var59 /* : NativeArray[Object] */;
1609 val* var60 /* : String */;
1610 val* var61 /* : null */;
1611 val* var62 /* : List[Scope] */;
1612 val* var64 /* : List[Scope] */;
1613 val* var_ /* var : List[Scope] */;
1614 val* var65 /* : ListIterator[nullable Object] */;
1615 val* var_66 /* var : ListIterator[Scope] */;
1616 short int var67 /* : Bool */;
1617 val* var68 /* : nullable Object */;
1618 val* var_scope /* var scope: Scope */;
1619 val* var69 /* : nullable EscapeMark */;
1620 val* var71 /* : nullable EscapeMark */;
1621 val* var_res72 /* var res: nullable EscapeMark */;
1622 val* var73 /* : null */;
1623 short int var74 /* : Bool */;
1624 short int var75 /* : Bool */;
1625 short int var77 /* : Bool */;
1626 short int var78 /* : Bool */;
1627 short int var79 /* : Bool */;
1628 static val* varonce81;
1629 val* var82 /* : String */;
1630 char* var83 /* : NativeString */;
1631 long var84 /* : Int */;
1632 val* var85 /* : FlatString */;
1633 val* var86 /* : null */;
1634 var_node = p0;
1635 var_nlabel = p1;
1636 var1 = NULL;
1637 if (var_nlabel == NULL) {
1638 var2 = 0; /* is null */
1639 } else {
1640 var2 = 1; /* arg is null and recv is not */
1641 }
1642 if (0) {
1643 { /* Inline kernel#Object#!= (var_nlabel,var1) on <var_nlabel:nullable ALabel> */
1644 var_other = var1;
1645 {
1646 var6 = ((short int (*)(val*, val*))(var_nlabel->class->vft[COLOR_kernel__Object___61d_61d]))(var_nlabel, var_other) /* == on <var_nlabel:nullable ALabel(ALabel)>*/;
1647 var5 = var6;
1648 }
1649 var7 = !var5;
1650 var3 = var7;
1651 goto RET_LABEL4;
1652 RET_LABEL4:(void)0;
1653 }
1654 var2 = var3;
1655 }
1656 if (var2){
1657 {
1658 { /* Inline parser_nodes#ALabel#n_id (var_nlabel) on <var_nlabel:nullable ALabel(ALabel)> */
1659 var10 = var_nlabel->attrs[COLOR_parser_nodes__ALabel___n_id].val; /* _n_id on <var_nlabel:nullable ALabel(ALabel)> */
1660 var8 = var10;
1661 RET_LABEL9:(void)0;
1662 }
1663 }
1664 var_nid = var8;
1665 var11 = NULL;
1666 if (var_nid == NULL) {
1667 var12 = 1; /* is null */
1668 } else {
1669 var12 = 0; /* arg is null but recv is not */
1670 }
1671 if (0) {
1672 { /* Inline kernel#Object#== (var_nid,var11) on <var_nid:nullable TId> */
1673 var_other15 = var11;
1674 {
1675 { /* Inline kernel#Object#is_same_instance (var_nid,var_other15) on <var_nid:nullable TId(TId)> */
1676 var18 = var_nid == var_other15;
1677 var16 = var18;
1678 goto RET_LABEL17;
1679 RET_LABEL17:(void)0;
1680 }
1681 }
1682 var13 = var16;
1683 goto RET_LABEL14;
1684 RET_LABEL14:(void)0;
1685 }
1686 var12 = var13;
1687 }
1688 if (var12){
1689 if (varonce) {
1690 var19 = varonce;
1691 } else {
1692 var20 = "";
1693 var21 = 0;
1694 var22 = string__NativeString__to_s_with_length(var20, var21);
1695 var19 = var22;
1696 varonce = var19;
1697 }
1698 {
1699 var23 = scope__ScopeVisitor__search_label(self, var19);
1700 }
1701 var_res = var23;
1702 var24 = NULL;
1703 if (var_res == NULL) {
1704 var25 = 1; /* is null */
1705 } else {
1706 var25 = 0; /* arg is null but recv is not */
1707 }
1708 if (0) {
1709 { /* Inline kernel#Object#== (var_res,var24) on <var_res:nullable EscapeMark> */
1710 var_other15 = var24;
1711 {
1712 { /* Inline kernel#Object#is_same_instance (var_res,var_other15) on <var_res:nullable EscapeMark(EscapeMark)> */
1713 var30 = var_res == var_other15;
1714 var28 = var30;
1715 goto RET_LABEL29;
1716 RET_LABEL29:(void)0;
1717 }
1718 }
1719 var26 = var28;
1720 goto RET_LABEL27;
1721 RET_LABEL27:(void)0;
1722 }
1723 var25 = var26;
1724 }
1725 if (var25){
1726 if (varonce31) {
1727 var32 = varonce31;
1728 } else {
1729 var33 = "Syntax error: invalid anonymous label.";
1730 var34 = 38;
1731 var35 = string__NativeString__to_s_with_length(var33, var34);
1732 var32 = var35;
1733 varonce31 = var32;
1734 }
1735 {
1736 scope__ScopeVisitor__error(self, var_nlabel, var32); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1737 }
1738 var36 = NULL;
1739 var = var36;
1740 goto RET_LABEL;
1741 } else {
1742 }
1743 var = var_res;
1744 goto RET_LABEL;
1745 } else {
1746 }
1747 {
1748 var37 = lexer_work__Token__text(var_nid);
1749 }
1750 var_name = var37;
1751 {
1752 var38 = scope__ScopeVisitor__search_label(self, var_name);
1753 }
1754 var_res39 = var38;
1755 var40 = NULL;
1756 if (var_res39 == NULL) {
1757 var41 = 1; /* is null */
1758 } else {
1759 var41 = 0; /* arg is null but recv is not */
1760 }
1761 if (0) {
1762 { /* Inline kernel#Object#== (var_res39,var40) on <var_res39:nullable EscapeMark> */
1763 var_other15 = var40;
1764 {
1765 { /* Inline kernel#Object#is_same_instance (var_res39,var_other15) on <var_res39:nullable EscapeMark(EscapeMark)> */
1766 var46 = var_res39 == var_other15;
1767 var44 = var46;
1768 goto RET_LABEL45;
1769 RET_LABEL45:(void)0;
1770 }
1771 }
1772 var42 = var44;
1773 goto RET_LABEL43;
1774 RET_LABEL43:(void)0;
1775 }
1776 var41 = var42;
1777 }
1778 if (var41){
1779 if (varonce47) {
1780 var48 = varonce47;
1781 } else {
1782 var49 = "Syntax error: invalid label ";
1783 var50 = 28;
1784 var51 = string__NativeString__to_s_with_length(var49, var50);
1785 var48 = var51;
1786 varonce47 = var48;
1787 }
1788 if (varonce52) {
1789 var53 = varonce52;
1790 } else {
1791 var54 = ".";
1792 var55 = 1;
1793 var56 = string__NativeString__to_s_with_length(var54, var55);
1794 var53 = var56;
1795 varonce52 = var53;
1796 }
1797 var57 = NEW_array__Array(&type_array__Arraykernel__Object);
1798 { /* var57 = array_instance Array[Object] */
1799 var58 = 3;
1800 var59 = NEW_array__NativeArray(var58, &type_array__NativeArraykernel__Object);
1801 ((struct instance_array__NativeArray*)var59)->values[0] = (val*) var48;
1802 ((struct instance_array__NativeArray*)var59)->values[1] = (val*) var_name;
1803 ((struct instance_array__NativeArray*)var59)->values[2] = (val*) var53;
1804 {
1805 ((void (*)(val*, val*, long))(var57->class->vft[COLOR_array__Array__with_native]))(var57, var59, var58) /* with_native on <var57:Array[Object]>*/;
1806 }
1807 }
1808 {
1809 var60 = ((val* (*)(val*))(var57->class->vft[COLOR_string__Object__to_s]))(var57) /* to_s on <var57:Array[Object]>*/;
1810 }
1811 {
1812 scope__ScopeVisitor__error(self, var_nlabel, var60); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1813 }
1814 var61 = NULL;
1815 var = var61;
1816 goto RET_LABEL;
1817 } else {
1818 }
1819 var = var_res39;
1820 goto RET_LABEL;
1821 } else {
1822 {
1823 { /* Inline scope#ScopeVisitor#scopes (self) on <self:ScopeVisitor> */
1824 var64 = self->attrs[COLOR_scope__ScopeVisitor___scopes].val; /* _scopes on <self:ScopeVisitor> */
1825 if (unlikely(var64 == NULL)) {
1826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
1827 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 80);
1828 show_backtrace(1);
1829 }
1830 var62 = var64;
1831 RET_LABEL63:(void)0;
1832 }
1833 }
1834 var_ = var62;
1835 {
1836 var65 = list__List__iterator(var_);
1837 }
1838 var_66 = var65;
1839 for(;;) {
1840 {
1841 var67 = list__ListIterator__is_ok(var_66);
1842 }
1843 if (var67){
1844 {
1845 var68 = list__ListIterator__item(var_66);
1846 }
1847 var_scope = var68;
1848 {
1849 { /* Inline scope#Scope#escapemark (var_scope) on <var_scope:Scope> */
1850 var71 = var_scope->attrs[COLOR_scope__Scope___escapemark].val; /* _escapemark on <var_scope:Scope> */
1851 var69 = var71;
1852 RET_LABEL70:(void)0;
1853 }
1854 }
1855 var_res72 = var69;
1856 var73 = NULL;
1857 if (var_res72 == NULL) {
1858 var74 = 0; /* is null */
1859 } else {
1860 var74 = 1; /* arg is null and recv is not */
1861 }
1862 if (0) {
1863 { /* Inline kernel#Object#!= (var_res72,var73) on <var_res72:nullable EscapeMark> */
1864 var_other = var73;
1865 {
1866 var78 = ((short int (*)(val*, val*))(var_res72->class->vft[COLOR_kernel__Object___61d_61d]))(var_res72, var_other) /* == on <var_res72:nullable EscapeMark(EscapeMark)>*/;
1867 var77 = var78;
1868 }
1869 var79 = !var77;
1870 var75 = var79;
1871 goto RET_LABEL76;
1872 RET_LABEL76:(void)0;
1873 }
1874 var74 = var75;
1875 }
1876 if (var74){
1877 var = var_res72;
1878 goto RET_LABEL;
1879 } else {
1880 }
1881 {
1882 list__ListIterator__next(var_66); /* Direct call list#ListIterator#next on <var_66:ListIterator[Scope]>*/
1883 }
1884 } else {
1885 goto BREAK_label;
1886 }
1887 }
1888 BREAK_label: (void)0;
1889 {
1890 { /* Inline abstract_collection#Iterator#finish (var_66) on <var_66:ListIterator[Scope]> */
1891 RET_LABEL80:(void)0;
1892 }
1893 }
1894 if (varonce81) {
1895 var82 = varonce81;
1896 } else {
1897 var83 = "Syntax Error: \'break\' statement outside block.";
1898 var84 = 46;
1899 var85 = string__NativeString__to_s_with_length(var83, var84);
1900 var82 = var85;
1901 varonce81 = var82;
1902 }
1903 {
1904 scope__ScopeVisitor__error(self, var_node, var82); /* Direct call scope#ScopeVisitor#error on <self:ScopeVisitor>*/
1905 }
1906 var86 = NULL;
1907 var = var86;
1908 goto RET_LABEL;
1909 }
1910 RET_LABEL:;
1911 return var;
1912 }
1913 /* method scope#ScopeVisitor#get_escapemark for (self: Object, ANode, nullable ALabel): nullable EscapeMark */
1914 val* VIRTUAL_scope__ScopeVisitor__get_escapemark(val* self, val* p0, val* p1) {
1915 val* var /* : nullable EscapeMark */;
1916 val* var1 /* : nullable EscapeMark */;
1917 var1 = scope__ScopeVisitor__get_escapemark(self, p0, p1);
1918 var = var1;
1919 RET_LABEL:;
1920 return var;
1921 }
1922 /* method scope#ScopeVisitor#error for (self: ScopeVisitor, ANode, String) */
1923 void scope__ScopeVisitor__error(val* self, val* p0, val* p1) {
1924 val* var_node /* var node: ANode */;
1925 val* var_message /* var message: String */;
1926 val* var /* : ToolContext */;
1927 val* var2 /* : ToolContext */;
1928 val* var3 /* : Location */;
1929 var_node = p0;
1930 var_message = p1;
1931 {
1932 { /* Inline scope#ScopeVisitor#toolcontext (self) on <self:ScopeVisitor> */
1933 var2 = self->attrs[COLOR_scope__ScopeVisitor___toolcontext].val; /* _toolcontext on <self:ScopeVisitor> */
1934 if (unlikely(var2 == NULL)) {
1935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1936 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 69);
1937 show_backtrace(1);
1938 }
1939 var = var2;
1940 RET_LABEL1:(void)0;
1941 }
1942 }
1943 {
1944 var3 = ((val* (*)(val*))(var_node->class->vft[COLOR_parser_nodes__ANode__hot_location]))(var_node) /* hot_location on <var_node:ANode>*/;
1945 }
1946 {
1947 toolcontext__ToolContext__error(var, var3, var_message); /* Direct call toolcontext#ToolContext#error on <var:ToolContext>*/
1948 }
1949 RET_LABEL:;
1950 }
1951 /* method scope#ScopeVisitor#error for (self: Object, ANode, String) */
1952 void VIRTUAL_scope__ScopeVisitor__error(val* self, val* p0, val* p1) {
1953 scope__ScopeVisitor__error(self, p0, p1); /* Direct call scope#ScopeVisitor#error on <self:Object(ScopeVisitor)>*/
1954 RET_LABEL:;
1955 }
1956 /* method scope#Scope#variables for (self: Scope): HashMap[String, Variable] */
1957 val* scope__Scope__variables(val* self) {
1958 val* var /* : HashMap[String, Variable] */;
1959 val* var1 /* : HashMap[String, Variable] */;
1960 var1 = self->attrs[COLOR_scope__Scope___variables].val; /* _variables on <self:Scope> */
1961 if (unlikely(var1 == NULL)) {
1962 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1963 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 225);
1964 show_backtrace(1);
1965 }
1966 var = var1;
1967 RET_LABEL:;
1968 return var;
1969 }
1970 /* method scope#Scope#variables for (self: Object): HashMap[String, Variable] */
1971 val* VIRTUAL_scope__Scope__variables(val* self) {
1972 val* var /* : HashMap[String, Variable] */;
1973 val* var1 /* : HashMap[String, Variable] */;
1974 val* var3 /* : HashMap[String, Variable] */;
1975 { /* Inline scope#Scope#variables (self) on <self:Object(Scope)> */
1976 var3 = self->attrs[COLOR_scope__Scope___variables].val; /* _variables on <self:Object(Scope)> */
1977 if (unlikely(var3 == NULL)) {
1978 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
1979 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 225);
1980 show_backtrace(1);
1981 }
1982 var1 = var3;
1983 RET_LABEL2:(void)0;
1984 }
1985 var = var1;
1986 RET_LABEL:;
1987 return var;
1988 }
1989 /* method scope#Scope#escapemark for (self: Scope): nullable EscapeMark */
1990 val* scope__Scope__escapemark(val* self) {
1991 val* var /* : nullable EscapeMark */;
1992 val* var1 /* : nullable EscapeMark */;
1993 var1 = self->attrs[COLOR_scope__Scope___escapemark].val; /* _escapemark on <self:Scope> */
1994 var = var1;
1995 RET_LABEL:;
1996 return var;
1997 }
1998 /* method scope#Scope#escapemark for (self: Object): nullable EscapeMark */
1999 val* VIRTUAL_scope__Scope__escapemark(val* self) {
2000 val* var /* : nullable EscapeMark */;
2001 val* var1 /* : nullable EscapeMark */;
2002 val* var3 /* : nullable EscapeMark */;
2003 { /* Inline scope#Scope#escapemark (self) on <self:Object(Scope)> */
2004 var3 = self->attrs[COLOR_scope__Scope___escapemark].val; /* _escapemark on <self:Object(Scope)> */
2005 var1 = var3;
2006 RET_LABEL2:(void)0;
2007 }
2008 var = var1;
2009 RET_LABEL:;
2010 return var;
2011 }
2012 /* method scope#Scope#escapemark= for (self: Scope, nullable EscapeMark) */
2013 void scope__Scope__escapemark_61d(val* self, val* p0) {
2014 self->attrs[COLOR_scope__Scope___escapemark].val = p0; /* _escapemark on <self:Scope> */
2015 RET_LABEL:;
2016 }
2017 /* method scope#Scope#escapemark= for (self: Object, nullable EscapeMark) */
2018 void VIRTUAL_scope__Scope__escapemark_61d(val* self, val* p0) {
2019 { /* Inline scope#Scope#escapemark= (self,p0) on <self:Object(Scope)> */
2020 self->attrs[COLOR_scope__Scope___escapemark].val = p0; /* _escapemark on <self:Object(Scope)> */
2021 RET_LABEL1:(void)0;
2022 }
2023 RET_LABEL:;
2024 }
2025 /* method scope#Scope#get_variable for (self: Scope, String): nullable Variable */
2026 val* scope__Scope__get_variable(val* self, val* p0) {
2027 val* var /* : nullable Variable */;
2028 val* var_name /* var name: String */;
2029 val* var1 /* : HashMap[String, Variable] */;
2030 val* var3 /* : HashMap[String, Variable] */;
2031 short int var4 /* : Bool */;
2032 val* var5 /* : HashMap[String, Variable] */;
2033 val* var7 /* : HashMap[String, Variable] */;
2034 val* var8 /* : nullable Object */;
2035 val* var9 /* : null */;
2036 var_name = p0;
2037 {
2038 { /* Inline scope#Scope#variables (self) on <self:Scope> */
2039 var3 = self->attrs[COLOR_scope__Scope___variables].val; /* _variables on <self:Scope> */
2040 if (unlikely(var3 == NULL)) {
2041 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
2042 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 225);
2043 show_backtrace(1);
2044 }
2045 var1 = var3;
2046 RET_LABEL2:(void)0;
2047 }
2048 }
2049 {
2050 var4 = abstract_collection__MapRead__has_key(var1, var_name);
2051 }
2052 if (var4){
2053 {
2054 { /* Inline scope#Scope#variables (self) on <self:Scope> */
2055 var7 = self->attrs[COLOR_scope__Scope___variables].val; /* _variables on <self:Scope> */
2056 if (unlikely(var7 == NULL)) {
2057 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
2058 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 225);
2059 show_backtrace(1);
2060 }
2061 var5 = var7;
2062 RET_LABEL6:(void)0;
2063 }
2064 }
2065 {
2066 var8 = hash_collection__HashMap___91d_93d(var5, var_name);
2067 }
2068 var = var8;
2069 goto RET_LABEL;
2070 } else {
2071 var9 = NULL;
2072 var = var9;
2073 goto RET_LABEL;
2074 }
2075 RET_LABEL:;
2076 return var;
2077 }
2078 /* method scope#Scope#get_variable for (self: Object, String): nullable Variable */
2079 val* VIRTUAL_scope__Scope__get_variable(val* self, val* p0) {
2080 val* var /* : nullable Variable */;
2081 val* var1 /* : nullable Variable */;
2082 var1 = scope__Scope__get_variable(self, p0);
2083 var = var1;
2084 RET_LABEL:;
2085 return var;
2086 }
2087 /* method scope#ANode#accept_scope_visitor for (self: ANode, ScopeVisitor) */
2088 void scope__ANode__accept_scope_visitor(val* self, val* p0) {
2089 val* var_v /* var v: ScopeVisitor */;
2090 var_v = p0;
2091 {
2092 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__visit_all]))(self, var_v) /* visit_all on <self:ANode>*/;
2093 }
2094 RET_LABEL:;
2095 }
2096 /* method scope#ANode#accept_scope_visitor for (self: Object, ScopeVisitor) */
2097 void VIRTUAL_scope__ANode__accept_scope_visitor(val* self, val* p0) {
2098 scope__ANode__accept_scope_visitor(self, p0); /* Direct call scope#ANode#accept_scope_visitor on <self:Object(ANode)>*/
2099 RET_LABEL:;
2100 }
2101 /* method scope#APropdef#do_scope for (self: APropdef, ToolContext) */
2102 void scope__APropdef__do_scope(val* self, val* p0) {
2103 val* var_toolcontext /* var toolcontext: ToolContext */;
2104 val* var /* : ScopeVisitor */;
2105 val* var_v /* var v: ScopeVisitor */;
2106 var_toolcontext = p0;
2107 var = NEW_scope__ScopeVisitor(&type_scope__ScopeVisitor);
2108 {
2109 scope__ScopeVisitor__init(var, var_toolcontext); /* Direct call scope#ScopeVisitor#init on <var:ScopeVisitor>*/
2110 }
2111 var_v = var;
2112 {
2113 parser_nodes__Visitor__enter_visit(var_v, self); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2114 }
2115 {
2116 scope__ScopeVisitor__shift_scope(var_v); /* Direct call scope#ScopeVisitor#shift_scope on <var_v:ScopeVisitor>*/
2117 }
2118 RET_LABEL:;
2119 }
2120 /* method scope#APropdef#do_scope for (self: Object, ToolContext) */
2121 void VIRTUAL_scope__APropdef__do_scope(val* self, val* p0) {
2122 scope__APropdef__do_scope(self, p0); /* Direct call scope#APropdef#do_scope on <self:Object(APropdef)>*/
2123 RET_LABEL:;
2124 }
2125 /* method scope#AParam#variable for (self: AParam): nullable Variable */
2126 val* scope__AParam__variable(val* self) {
2127 val* var /* : nullable Variable */;
2128 val* var1 /* : nullable Variable */;
2129 var1 = self->attrs[COLOR_scope__AParam___variable].val; /* _variable on <self:AParam> */
2130 var = var1;
2131 RET_LABEL:;
2132 return var;
2133 }
2134 /* method scope#AParam#variable for (self: Object): nullable Variable */
2135 val* VIRTUAL_scope__AParam__variable(val* self) {
2136 val* var /* : nullable Variable */;
2137 val* var1 /* : nullable Variable */;
2138 val* var3 /* : nullable Variable */;
2139 { /* Inline scope#AParam#variable (self) on <self:Object(AParam)> */
2140 var3 = self->attrs[COLOR_scope__AParam___variable].val; /* _variable on <self:Object(AParam)> */
2141 var1 = var3;
2142 RET_LABEL2:(void)0;
2143 }
2144 var = var1;
2145 RET_LABEL:;
2146 return var;
2147 }
2148 /* method scope#AParam#variable= for (self: AParam, nullable Variable) */
2149 void scope__AParam__variable_61d(val* self, val* p0) {
2150 self->attrs[COLOR_scope__AParam___variable].val = p0; /* _variable on <self:AParam> */
2151 RET_LABEL:;
2152 }
2153 /* method scope#AParam#variable= for (self: Object, nullable Variable) */
2154 void VIRTUAL_scope__AParam__variable_61d(val* self, val* p0) {
2155 { /* Inline scope#AParam#variable= (self,p0) on <self:Object(AParam)> */
2156 self->attrs[COLOR_scope__AParam___variable].val = p0; /* _variable on <self:Object(AParam)> */
2157 RET_LABEL1:(void)0;
2158 }
2159 RET_LABEL:;
2160 }
2161 /* method scope#AParam#accept_scope_visitor for (self: AParam, ScopeVisitor) */
2162 void scope__AParam__accept_scope_visitor(val* self, val* p0) {
2163 val* var_v /* var v: ScopeVisitor */;
2164 val* var /* : TId */;
2165 val* var2 /* : TId */;
2166 val* var_nid /* var nid: TId */;
2167 val* var3 /* : Variable */;
2168 val* var4 /* : String */;
2169 val* var_variable /* var variable: Variable */;
2170 short int var5 /* : Bool */;
2171 var_v = p0;
2172 {
2173 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AParam__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:AParam>*/;
2174 }
2175 {
2176 { /* Inline parser_nodes#AParam#n_id (self) on <self:AParam> */
2177 var2 = self->attrs[COLOR_parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
2178 if (unlikely(var2 == NULL)) {
2179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2180 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1287);
2181 show_backtrace(1);
2182 }
2183 var = var2;
2184 RET_LABEL1:(void)0;
2185 }
2186 }
2187 var_nid = var;
2188 var3 = NEW_scope__Variable(&type_scope__Variable);
2189 {
2190 var4 = lexer_work__Token__text(var_nid);
2191 }
2192 {
2193 ((void (*)(val*, val*))(var3->class->vft[COLOR_scope__Variable__name_61d]))(var3, var4) /* name= on <var3:Variable>*/;
2194 }
2195 {
2196 ((void (*)(val*))(var3->class->vft[COLOR_kernel__Object__init]))(var3) /* init on <var3:Variable>*/;
2197 }
2198 var_variable = var3;
2199 {
2200 var5 = scope__ScopeVisitor__register_variable(var_v, var_nid, var_variable);
2201 }
2202 {
2203 { /* Inline scope#AParam#variable= (self,var_variable) on <self:AParam> */
2204 self->attrs[COLOR_scope__AParam___variable].val = var_variable; /* _variable on <self:AParam> */
2205 RET_LABEL6:(void)0;
2206 }
2207 }
2208 RET_LABEL:;
2209 }
2210 /* method scope#AParam#accept_scope_visitor for (self: Object, ScopeVisitor) */
2211 void VIRTUAL_scope__AParam__accept_scope_visitor(val* self, val* p0) {
2212 scope__AParam__accept_scope_visitor(self, p0); /* Direct call scope#AParam#accept_scope_visitor on <self:Object(AParam)>*/
2213 RET_LABEL:;
2214 }
2215 /* method scope#AVardeclExpr#variable for (self: AVardeclExpr): nullable Variable */
2216 val* scope__AVardeclExpr__variable(val* self) {
2217 val* var /* : nullable Variable */;
2218 val* var1 /* : nullable Variable */;
2219 var1 = self->attrs[COLOR_scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
2220 var = var1;
2221 RET_LABEL:;
2222 return var;
2223 }
2224 /* method scope#AVardeclExpr#variable for (self: Object): nullable Variable */
2225 val* VIRTUAL_scope__AVardeclExpr__variable(val* self) {
2226 val* var /* : nullable Variable */;
2227 val* var1 /* : nullable Variable */;
2228 val* var3 /* : nullable Variable */;
2229 { /* Inline scope#AVardeclExpr#variable (self) on <self:Object(AVardeclExpr)> */
2230 var3 = self->attrs[COLOR_scope__AVardeclExpr___variable].val; /* _variable on <self:Object(AVardeclExpr)> */
2231 var1 = var3;
2232 RET_LABEL2:(void)0;
2233 }
2234 var = var1;
2235 RET_LABEL:;
2236 return var;
2237 }
2238 /* method scope#AVardeclExpr#variable= for (self: AVardeclExpr, nullable Variable) */
2239 void scope__AVardeclExpr__variable_61d(val* self, val* p0) {
2240 self->attrs[COLOR_scope__AVardeclExpr___variable].val = p0; /* _variable on <self:AVardeclExpr> */
2241 RET_LABEL:;
2242 }
2243 /* method scope#AVardeclExpr#variable= for (self: Object, nullable Variable) */
2244 void VIRTUAL_scope__AVardeclExpr__variable_61d(val* self, val* p0) {
2245 { /* Inline scope#AVardeclExpr#variable= (self,p0) on <self:Object(AVardeclExpr)> */
2246 self->attrs[COLOR_scope__AVardeclExpr___variable].val = p0; /* _variable on <self:Object(AVardeclExpr)> */
2247 RET_LABEL1:(void)0;
2248 }
2249 RET_LABEL:;
2250 }
2251 /* method scope#AVardeclExpr#accept_scope_visitor for (self: AVardeclExpr, ScopeVisitor) */
2252 void scope__AVardeclExpr__accept_scope_visitor(val* self, val* p0) {
2253 val* var_v /* var v: ScopeVisitor */;
2254 val* var /* : TId */;
2255 val* var2 /* : TId */;
2256 val* var_nid /* var nid: TId */;
2257 val* var3 /* : Variable */;
2258 val* var4 /* : String */;
2259 val* var_variable /* var variable: Variable */;
2260 short int var5 /* : Bool */;
2261 short int var6 /* : Bool */;
2262 var_v = p0;
2263 {
2264 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AVardeclExpr__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:AVardeclExpr>*/;
2265 }
2266 {
2267 { /* Inline parser_nodes#AVardeclExpr#n_id (self) on <self:AVardeclExpr> */
2268 var2 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
2269 if (unlikely(var2 == NULL)) {
2270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2271 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1329);
2272 show_backtrace(1);
2273 }
2274 var = var2;
2275 RET_LABEL1:(void)0;
2276 }
2277 }
2278 var_nid = var;
2279 var3 = NEW_scope__Variable(&type_scope__Variable);
2280 {
2281 var4 = lexer_work__Token__text(var_nid);
2282 }
2283 {
2284 ((void (*)(val*, val*))(var3->class->vft[COLOR_scope__Variable__name_61d]))(var3, var4) /* name= on <var3:Variable>*/;
2285 }
2286 {
2287 ((void (*)(val*))(var3->class->vft[COLOR_kernel__Object__init]))(var3) /* init on <var3:Variable>*/;
2288 }
2289 var_variable = var3;
2290 {
2291 var5 = scope__ScopeVisitor__register_variable(var_v, var_nid, var_variable);
2292 }
2293 var6 = 1;
2294 {
2295 { /* Inline scope#Variable#warn_unread= (var_variable,var6) on <var_variable:Variable> */
2296 var_variable->attrs[COLOR_scope__Variable___warn_unread].s = var6; /* _warn_unread on <var_variable:Variable> */
2297 RET_LABEL7:(void)0;
2298 }
2299 }
2300 {
2301 { /* Inline scope#AVardeclExpr#variable= (self,var_variable) on <self:AVardeclExpr> */
2302 self->attrs[COLOR_scope__AVardeclExpr___variable].val = var_variable; /* _variable on <self:AVardeclExpr> */
2303 RET_LABEL8:(void)0;
2304 }
2305 }
2306 RET_LABEL:;
2307 }
2308 /* method scope#AVardeclExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2309 void VIRTUAL_scope__AVardeclExpr__accept_scope_visitor(val* self, val* p0) {
2310 scope__AVardeclExpr__accept_scope_visitor(self, p0); /* Direct call scope#AVardeclExpr#accept_scope_visitor on <self:Object(AVardeclExpr)>*/
2311 RET_LABEL:;
2312 }
2313 /* method scope#ASelfExpr#variable= for (self: ASelfExpr, nullable Variable) */
2314 void scope__ASelfExpr__variable_61d(val* self, val* p0) {
2315 self->attrs[COLOR_scope__ASelfExpr___variable].val = p0; /* _variable on <self:ASelfExpr> */
2316 RET_LABEL:;
2317 }
2318 /* method scope#ASelfExpr#variable= for (self: Object, nullable Variable) */
2319 void VIRTUAL_scope__ASelfExpr__variable_61d(val* self, val* p0) {
2320 { /* Inline scope#ASelfExpr#variable= (self,p0) on <self:Object(ASelfExpr)> */
2321 self->attrs[COLOR_scope__ASelfExpr___variable].val = p0; /* _variable on <self:Object(ASelfExpr)> */
2322 RET_LABEL1:(void)0;
2323 }
2324 RET_LABEL:;
2325 }
2326 /* method scope#ASelfExpr#accept_scope_visitor for (self: ASelfExpr, ScopeVisitor) */
2327 void scope__ASelfExpr__accept_scope_visitor(val* self, val* p0) {
2328 val* var_v /* var v: ScopeVisitor */;
2329 val* var /* : Variable */;
2330 val* var2 /* : Variable */;
2331 var_v = p0;
2332 {
2333 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ASelfExpr__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:ASelfExpr>*/;
2334 }
2335 {
2336 { /* Inline scope#ScopeVisitor#selfvariable (var_v) on <var_v:ScopeVisitor> */
2337 var2 = var_v->attrs[COLOR_scope__ScopeVisitor___selfvariable].val; /* _selfvariable on <var_v:ScopeVisitor> */
2338 if (unlikely(var2 == NULL)) {
2339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
2340 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 72);
2341 show_backtrace(1);
2342 }
2343 var = var2;
2344 RET_LABEL1:(void)0;
2345 }
2346 }
2347 {
2348 { /* Inline scope#ASelfExpr#variable= (self,var) on <self:ASelfExpr> */
2349 self->attrs[COLOR_scope__ASelfExpr___variable].val = var; /* _variable on <self:ASelfExpr> */
2350 RET_LABEL3:(void)0;
2351 }
2352 }
2353 RET_LABEL:;
2354 }
2355 /* method scope#ASelfExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2356 void VIRTUAL_scope__ASelfExpr__accept_scope_visitor(val* self, val* p0) {
2357 scope__ASelfExpr__accept_scope_visitor(self, p0); /* Direct call scope#ASelfExpr#accept_scope_visitor on <self:Object(ASelfExpr)>*/
2358 RET_LABEL:;
2359 }
2360 /* method scope#AEscapeExpr#escapemark for (self: AEscapeExpr): nullable EscapeMark */
2361 val* scope__AEscapeExpr__escapemark(val* self) {
2362 val* var /* : nullable EscapeMark */;
2363 val* var1 /* : nullable EscapeMark */;
2364 var1 = self->attrs[COLOR_scope__AEscapeExpr___escapemark].val; /* _escapemark on <self:AEscapeExpr> */
2365 var = var1;
2366 RET_LABEL:;
2367 return var;
2368 }
2369 /* method scope#AEscapeExpr#escapemark for (self: Object): nullable EscapeMark */
2370 val* VIRTUAL_scope__AEscapeExpr__escapemark(val* self) {
2371 val* var /* : nullable EscapeMark */;
2372 val* var1 /* : nullable EscapeMark */;
2373 val* var3 /* : nullable EscapeMark */;
2374 { /* Inline scope#AEscapeExpr#escapemark (self) on <self:Object(AEscapeExpr)> */
2375 var3 = self->attrs[COLOR_scope__AEscapeExpr___escapemark].val; /* _escapemark on <self:Object(AEscapeExpr)> */
2376 var1 = var3;
2377 RET_LABEL2:(void)0;
2378 }
2379 var = var1;
2380 RET_LABEL:;
2381 return var;
2382 }
2383 /* method scope#AEscapeExpr#escapemark= for (self: AEscapeExpr, nullable EscapeMark) */
2384 void scope__AEscapeExpr__escapemark_61d(val* self, val* p0) {
2385 self->attrs[COLOR_scope__AEscapeExpr___escapemark].val = p0; /* _escapemark on <self:AEscapeExpr> */
2386 RET_LABEL:;
2387 }
2388 /* method scope#AEscapeExpr#escapemark= for (self: Object, nullable EscapeMark) */
2389 void VIRTUAL_scope__AEscapeExpr__escapemark_61d(val* self, val* p0) {
2390 { /* Inline scope#AEscapeExpr#escapemark= (self,p0) on <self:Object(AEscapeExpr)> */
2391 self->attrs[COLOR_scope__AEscapeExpr___escapemark].val = p0; /* _escapemark on <self:Object(AEscapeExpr)> */
2392 RET_LABEL1:(void)0;
2393 }
2394 RET_LABEL:;
2395 }
2396 /* method scope#AContinueExpr#accept_scope_visitor for (self: AContinueExpr, ScopeVisitor) */
2397 void scope__AContinueExpr__accept_scope_visitor(val* self, val* p0) {
2398 val* var_v /* var v: ScopeVisitor */;
2399 val* var /* : nullable ALabel */;
2400 val* var2 /* : nullable ALabel */;
2401 val* var3 /* : nullable EscapeMark */;
2402 val* var_escapemark /* var escapemark: nullable EscapeMark */;
2403 val* var4 /* : null */;
2404 short int var5 /* : Bool */;
2405 short int var6 /* : Bool */;
2406 val* var_other /* var other: nullable Object */;
2407 short int var8 /* : Bool */;
2408 short int var10 /* : Bool */;
2409 val* var11 /* : nullable EscapeMark */;
2410 val* var13 /* : nullable EscapeMark */;
2411 val* var14 /* : null */;
2412 short int var15 /* : Bool */;
2413 short int var16 /* : Bool */;
2414 short int var18 /* : Bool */;
2415 short int var20 /* : Bool */;
2416 static val* varonce;
2417 val* var21 /* : String */;
2418 char* var22 /* : NativeString */;
2419 long var23 /* : Int */;
2420 val* var24 /* : FlatString */;
2421 val* var25 /* : Array[AEscapeExpr] */;
2422 val* var27 /* : Array[AEscapeExpr] */;
2423 var_v = p0;
2424 {
2425 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AContinueExpr__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:AContinueExpr>*/;
2426 }
2427 {
2428 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:AContinueExpr> */
2429 var2 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
2430 var = var2;
2431 RET_LABEL1:(void)0;
2432 }
2433 }
2434 {
2435 var3 = scope__ScopeVisitor__get_escapemark(var_v, self, var);
2436 }
2437 var_escapemark = var3;
2438 var4 = NULL;
2439 if (var_escapemark == NULL) {
2440 var5 = 1; /* is null */
2441 } else {
2442 var5 = 0; /* arg is null but recv is not */
2443 }
2444 if (0) {
2445 { /* Inline kernel#Object#== (var_escapemark,var4) on <var_escapemark:nullable EscapeMark> */
2446 var_other = var4;
2447 {
2448 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2449 var10 = var_escapemark == var_other;
2450 var8 = var10;
2451 goto RET_LABEL9;
2452 RET_LABEL9:(void)0;
2453 }
2454 }
2455 var6 = var8;
2456 goto RET_LABEL7;
2457 RET_LABEL7:(void)0;
2458 }
2459 var5 = var6;
2460 }
2461 if (var5){
2462 goto RET_LABEL;
2463 } else {
2464 }
2465 {
2466 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2467 var13 = var_escapemark->attrs[COLOR_scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2468 var11 = var13;
2469 RET_LABEL12:(void)0;
2470 }
2471 }
2472 var_escapemark = var11;
2473 var14 = NULL;
2474 if (var_escapemark == NULL) {
2475 var15 = 1; /* is null */
2476 } else {
2477 var15 = 0; /* arg is null but recv is not */
2478 }
2479 if (0) {
2480 { /* Inline kernel#Object#== (var_escapemark,var14) on <var_escapemark:nullable EscapeMark> */
2481 var_other = var14;
2482 {
2483 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2484 var20 = var_escapemark == var_other;
2485 var18 = var20;
2486 goto RET_LABEL19;
2487 RET_LABEL19:(void)0;
2488 }
2489 }
2490 var16 = var18;
2491 goto RET_LABEL17;
2492 RET_LABEL17:(void)0;
2493 }
2494 var15 = var16;
2495 }
2496 if (var15){
2497 if (varonce) {
2498 var21 = varonce;
2499 } else {
2500 var22 = "Error: cannot \'continue\', only \'break\'.";
2501 var23 = 39;
2502 var24 = string__NativeString__to_s_with_length(var22, var23);
2503 var21 = var24;
2504 varonce = var21;
2505 }
2506 {
2507 scope__ScopeVisitor__error(var_v, self, var21); /* Direct call scope#ScopeVisitor#error on <var_v:ScopeVisitor>*/
2508 }
2509 goto RET_LABEL;
2510 } else {
2511 }
2512 {
2513 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2514 var27 = var_escapemark->attrs[COLOR_scope__EscapeMark___escapes].val; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2515 if (unlikely(var27 == NULL)) {
2516 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
2517 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 57);
2518 show_backtrace(1);
2519 }
2520 var25 = var27;
2521 RET_LABEL26:(void)0;
2522 }
2523 }
2524 {
2525 array__Array__add(var25, self); /* Direct call array#Array#add on <var25:Array[AEscapeExpr]>*/
2526 }
2527 {
2528 { /* Inline scope#AEscapeExpr#escapemark= (self,var_escapemark) on <self:AContinueExpr> */
2529 self->attrs[COLOR_scope__AEscapeExpr___escapemark].val = var_escapemark; /* _escapemark on <self:AContinueExpr> */
2530 RET_LABEL28:(void)0;
2531 }
2532 }
2533 RET_LABEL:;
2534 }
2535 /* method scope#AContinueExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2536 void VIRTUAL_scope__AContinueExpr__accept_scope_visitor(val* self, val* p0) {
2537 scope__AContinueExpr__accept_scope_visitor(self, p0); /* Direct call scope#AContinueExpr#accept_scope_visitor on <self:Object(AContinueExpr)>*/
2538 RET_LABEL:;
2539 }
2540 /* method scope#ABreakExpr#accept_scope_visitor for (self: ABreakExpr, ScopeVisitor) */
2541 void scope__ABreakExpr__accept_scope_visitor(val* self, val* p0) {
2542 val* var_v /* var v: ScopeVisitor */;
2543 val* var /* : nullable ALabel */;
2544 val* var2 /* : nullable ALabel */;
2545 val* var3 /* : nullable EscapeMark */;
2546 val* var_escapemark /* var escapemark: nullable EscapeMark */;
2547 val* var4 /* : null */;
2548 short int var5 /* : Bool */;
2549 short int var6 /* : Bool */;
2550 val* var_other /* var other: nullable Object */;
2551 short int var8 /* : Bool */;
2552 short int var10 /* : Bool */;
2553 val* var11 /* : Array[AEscapeExpr] */;
2554 val* var13 /* : Array[AEscapeExpr] */;
2555 var_v = p0;
2556 {
2557 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ABreakExpr__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:ABreakExpr>*/;
2558 }
2559 {
2560 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:ABreakExpr> */
2561 var2 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
2562 var = var2;
2563 RET_LABEL1:(void)0;
2564 }
2565 }
2566 {
2567 var3 = scope__ScopeVisitor__get_escapemark(var_v, self, var);
2568 }
2569 var_escapemark = var3;
2570 var4 = NULL;
2571 if (var_escapemark == NULL) {
2572 var5 = 1; /* is null */
2573 } else {
2574 var5 = 0; /* arg is null but recv is not */
2575 }
2576 if (0) {
2577 { /* Inline kernel#Object#== (var_escapemark,var4) on <var_escapemark:nullable EscapeMark> */
2578 var_other = var4;
2579 {
2580 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2581 var10 = var_escapemark == var_other;
2582 var8 = var10;
2583 goto RET_LABEL9;
2584 RET_LABEL9:(void)0;
2585 }
2586 }
2587 var6 = var8;
2588 goto RET_LABEL7;
2589 RET_LABEL7:(void)0;
2590 }
2591 var5 = var6;
2592 }
2593 if (var5){
2594 goto RET_LABEL;
2595 } else {
2596 }
2597 {
2598 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2599 var13 = var_escapemark->attrs[COLOR_scope__EscapeMark___escapes].val; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
2600 if (unlikely(var13 == NULL)) {
2601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
2602 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 57);
2603 show_backtrace(1);
2604 }
2605 var11 = var13;
2606 RET_LABEL12:(void)0;
2607 }
2608 }
2609 {
2610 array__Array__add(var11, self); /* Direct call array#Array#add on <var11:Array[AEscapeExpr]>*/
2611 }
2612 {
2613 { /* Inline scope#AEscapeExpr#escapemark= (self,var_escapemark) on <self:ABreakExpr> */
2614 self->attrs[COLOR_scope__AEscapeExpr___escapemark].val = var_escapemark; /* _escapemark on <self:ABreakExpr> */
2615 RET_LABEL14:(void)0;
2616 }
2617 }
2618 RET_LABEL:;
2619 }
2620 /* method scope#ABreakExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2621 void VIRTUAL_scope__ABreakExpr__accept_scope_visitor(val* self, val* p0) {
2622 scope__ABreakExpr__accept_scope_visitor(self, p0); /* Direct call scope#ABreakExpr#accept_scope_visitor on <self:Object(ABreakExpr)>*/
2623 RET_LABEL:;
2624 }
2625 /* method scope#ADoExpr#break_mark for (self: ADoExpr): nullable EscapeMark */
2626 val* scope__ADoExpr__break_mark(val* self) {
2627 val* var /* : nullable EscapeMark */;
2628 val* var1 /* : nullable EscapeMark */;
2629 var1 = self->attrs[COLOR_scope__ADoExpr___break_mark].val; /* _break_mark on <self:ADoExpr> */
2630 var = var1;
2631 RET_LABEL:;
2632 return var;
2633 }
2634 /* method scope#ADoExpr#break_mark for (self: Object): nullable EscapeMark */
2635 val* VIRTUAL_scope__ADoExpr__break_mark(val* self) {
2636 val* var /* : nullable EscapeMark */;
2637 val* var1 /* : nullable EscapeMark */;
2638 val* var3 /* : nullable EscapeMark */;
2639 { /* Inline scope#ADoExpr#break_mark (self) on <self:Object(ADoExpr)> */
2640 var3 = self->attrs[COLOR_scope__ADoExpr___break_mark].val; /* _break_mark on <self:Object(ADoExpr)> */
2641 var1 = var3;
2642 RET_LABEL2:(void)0;
2643 }
2644 var = var1;
2645 RET_LABEL:;
2646 return var;
2647 }
2648 /* method scope#ADoExpr#break_mark= for (self: ADoExpr, nullable EscapeMark) */
2649 void scope__ADoExpr__break_mark_61d(val* self, val* p0) {
2650 self->attrs[COLOR_scope__ADoExpr___break_mark].val = p0; /* _break_mark on <self:ADoExpr> */
2651 RET_LABEL:;
2652 }
2653 /* method scope#ADoExpr#break_mark= for (self: Object, nullable EscapeMark) */
2654 void VIRTUAL_scope__ADoExpr__break_mark_61d(val* self, val* p0) {
2655 { /* Inline scope#ADoExpr#break_mark= (self,p0) on <self:Object(ADoExpr)> */
2656 self->attrs[COLOR_scope__ADoExpr___break_mark].val = p0; /* _break_mark on <self:Object(ADoExpr)> */
2657 RET_LABEL1:(void)0;
2658 }
2659 RET_LABEL:;
2660 }
2661 /* method scope#ADoExpr#accept_scope_visitor for (self: ADoExpr, ScopeVisitor) */
2662 void scope__ADoExpr__accept_scope_visitor(val* self, val* p0) {
2663 val* var_v /* var v: ScopeVisitor */;
2664 val* var /* : nullable ALabel */;
2665 val* var2 /* : nullable ALabel */;
2666 short int var3 /* : Bool */;
2667 val* var4 /* : EscapeMark */;
2668 val* var6 /* : nullable AExpr */;
2669 val* var8 /* : nullable AExpr */;
2670 val* var9 /* : nullable EscapeMark */;
2671 val* var11 /* : nullable EscapeMark */;
2672 var_v = p0;
2673 {
2674 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:ADoExpr> */
2675 var2 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
2676 var = var2;
2677 RET_LABEL1:(void)0;
2678 }
2679 }
2680 var3 = 0;
2681 {
2682 var4 = scope__ScopeVisitor__make_escape_mark(var_v, var, var3);
2683 }
2684 {
2685 { /* Inline scope#ADoExpr#break_mark= (self,var4) on <self:ADoExpr> */
2686 self->attrs[COLOR_scope__ADoExpr___break_mark].val = var4; /* _break_mark on <self:ADoExpr> */
2687 RET_LABEL5:(void)0;
2688 }
2689 }
2690 {
2691 { /* Inline parser_nodes#ADoExpr#n_block (self) on <self:ADoExpr> */
2692 var8 = self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
2693 var6 = var8;
2694 RET_LABEL7:(void)0;
2695 }
2696 }
2697 {
2698 { /* Inline scope#ADoExpr#break_mark (self) on <self:ADoExpr> */
2699 var11 = self->attrs[COLOR_scope__ADoExpr___break_mark].val; /* _break_mark on <self:ADoExpr> */
2700 var9 = var11;
2701 RET_LABEL10:(void)0;
2702 }
2703 }
2704 {
2705 scope__ScopeVisitor__enter_visit_block(var_v, var6, var9); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2706 }
2707 RET_LABEL:;
2708 }
2709 /* method scope#ADoExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2710 void VIRTUAL_scope__ADoExpr__accept_scope_visitor(val* self, val* p0) {
2711 scope__ADoExpr__accept_scope_visitor(self, p0); /* Direct call scope#ADoExpr#accept_scope_visitor on <self:Object(ADoExpr)>*/
2712 RET_LABEL:;
2713 }
2714 /* method scope#AIfExpr#accept_scope_visitor for (self: AIfExpr, ScopeVisitor) */
2715 void scope__AIfExpr__accept_scope_visitor(val* self, val* p0) {
2716 val* var_v /* var v: ScopeVisitor */;
2717 val* var /* : AExpr */;
2718 val* var2 /* : AExpr */;
2719 val* var3 /* : nullable AExpr */;
2720 val* var5 /* : nullable AExpr */;
2721 val* var6 /* : null */;
2722 val* var7 /* : nullable AExpr */;
2723 val* var9 /* : nullable AExpr */;
2724 val* var10 /* : null */;
2725 var_v = p0;
2726 {
2727 { /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
2728 var2 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
2729 if (unlikely(var2 == NULL)) {
2730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2731 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1387);
2732 show_backtrace(1);
2733 }
2734 var = var2;
2735 RET_LABEL1:(void)0;
2736 }
2737 }
2738 {
2739 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2740 }
2741 {
2742 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
2743 var5 = self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
2744 var3 = var5;
2745 RET_LABEL4:(void)0;
2746 }
2747 }
2748 var6 = NULL;
2749 {
2750 scope__ScopeVisitor__enter_visit_block(var_v, var3, var6); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2751 }
2752 {
2753 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
2754 var9 = self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
2755 var7 = var9;
2756 RET_LABEL8:(void)0;
2757 }
2758 }
2759 var10 = NULL;
2760 {
2761 scope__ScopeVisitor__enter_visit_block(var_v, var7, var10); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2762 }
2763 RET_LABEL:;
2764 }
2765 /* method scope#AIfExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2766 void VIRTUAL_scope__AIfExpr__accept_scope_visitor(val* self, val* p0) {
2767 scope__AIfExpr__accept_scope_visitor(self, p0); /* Direct call scope#AIfExpr#accept_scope_visitor on <self:Object(AIfExpr)>*/
2768 RET_LABEL:;
2769 }
2770 /* method scope#AWhileExpr#break_mark for (self: AWhileExpr): nullable EscapeMark */
2771 val* scope__AWhileExpr__break_mark(val* self) {
2772 val* var /* : nullable EscapeMark */;
2773 val* var1 /* : nullable EscapeMark */;
2774 var1 = self->attrs[COLOR_scope__AWhileExpr___break_mark].val; /* _break_mark on <self:AWhileExpr> */
2775 var = var1;
2776 RET_LABEL:;
2777 return var;
2778 }
2779 /* method scope#AWhileExpr#break_mark for (self: Object): nullable EscapeMark */
2780 val* VIRTUAL_scope__AWhileExpr__break_mark(val* self) {
2781 val* var /* : nullable EscapeMark */;
2782 val* var1 /* : nullable EscapeMark */;
2783 val* var3 /* : nullable EscapeMark */;
2784 { /* Inline scope#AWhileExpr#break_mark (self) on <self:Object(AWhileExpr)> */
2785 var3 = self->attrs[COLOR_scope__AWhileExpr___break_mark].val; /* _break_mark on <self:Object(AWhileExpr)> */
2786 var1 = var3;
2787 RET_LABEL2:(void)0;
2788 }
2789 var = var1;
2790 RET_LABEL:;
2791 return var;
2792 }
2793 /* method scope#AWhileExpr#break_mark= for (self: AWhileExpr, nullable EscapeMark) */
2794 void scope__AWhileExpr__break_mark_61d(val* self, val* p0) {
2795 self->attrs[COLOR_scope__AWhileExpr___break_mark].val = p0; /* _break_mark on <self:AWhileExpr> */
2796 RET_LABEL:;
2797 }
2798 /* method scope#AWhileExpr#break_mark= for (self: Object, nullable EscapeMark) */
2799 void VIRTUAL_scope__AWhileExpr__break_mark_61d(val* self, val* p0) {
2800 { /* Inline scope#AWhileExpr#break_mark= (self,p0) on <self:Object(AWhileExpr)> */
2801 self->attrs[COLOR_scope__AWhileExpr___break_mark].val = p0; /* _break_mark on <self:Object(AWhileExpr)> */
2802 RET_LABEL1:(void)0;
2803 }
2804 RET_LABEL:;
2805 }
2806 /* method scope#AWhileExpr#continue_mark for (self: AWhileExpr): nullable EscapeMark */
2807 val* scope__AWhileExpr__continue_mark(val* self) {
2808 val* var /* : nullable EscapeMark */;
2809 val* var1 /* : nullable EscapeMark */;
2810 var1 = self->attrs[COLOR_scope__AWhileExpr___continue_mark].val; /* _continue_mark on <self:AWhileExpr> */
2811 var = var1;
2812 RET_LABEL:;
2813 return var;
2814 }
2815 /* method scope#AWhileExpr#continue_mark for (self: Object): nullable EscapeMark */
2816 val* VIRTUAL_scope__AWhileExpr__continue_mark(val* self) {
2817 val* var /* : nullable EscapeMark */;
2818 val* var1 /* : nullable EscapeMark */;
2819 val* var3 /* : nullable EscapeMark */;
2820 { /* Inline scope#AWhileExpr#continue_mark (self) on <self:Object(AWhileExpr)> */
2821 var3 = self->attrs[COLOR_scope__AWhileExpr___continue_mark].val; /* _continue_mark on <self:Object(AWhileExpr)> */
2822 var1 = var3;
2823 RET_LABEL2:(void)0;
2824 }
2825 var = var1;
2826 RET_LABEL:;
2827 return var;
2828 }
2829 /* method scope#AWhileExpr#continue_mark= for (self: AWhileExpr, nullable EscapeMark) */
2830 void scope__AWhileExpr__continue_mark_61d(val* self, val* p0) {
2831 self->attrs[COLOR_scope__AWhileExpr___continue_mark].val = p0; /* _continue_mark on <self:AWhileExpr> */
2832 RET_LABEL:;
2833 }
2834 /* method scope#AWhileExpr#continue_mark= for (self: Object, nullable EscapeMark) */
2835 void VIRTUAL_scope__AWhileExpr__continue_mark_61d(val* self, val* p0) {
2836 { /* Inline scope#AWhileExpr#continue_mark= (self,p0) on <self:Object(AWhileExpr)> */
2837 self->attrs[COLOR_scope__AWhileExpr___continue_mark].val = p0; /* _continue_mark on <self:Object(AWhileExpr)> */
2838 RET_LABEL1:(void)0;
2839 }
2840 RET_LABEL:;
2841 }
2842 /* method scope#AWhileExpr#accept_scope_visitor for (self: AWhileExpr, ScopeVisitor) */
2843 void scope__AWhileExpr__accept_scope_visitor(val* self, val* p0) {
2844 val* var_v /* var v: ScopeVisitor */;
2845 val* var /* : nullable ALabel */;
2846 val* var2 /* : nullable ALabel */;
2847 short int var3 /* : Bool */;
2848 val* var4 /* : EscapeMark */;
2849 val* var_escapemark /* var escapemark: EscapeMark */;
2850 val* var6 /* : nullable EscapeMark */;
2851 val* var8 /* : nullable EscapeMark */;
2852 val* var10 /* : AExpr */;
2853 val* var12 /* : AExpr */;
2854 val* var13 /* : nullable AExpr */;
2855 val* var15 /* : nullable AExpr */;
2856 var_v = p0;
2857 {
2858 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:AWhileExpr> */
2859 var2 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
2860 var = var2;
2861 RET_LABEL1:(void)0;
2862 }
2863 }
2864 var3 = 1;
2865 {
2866 var4 = scope__ScopeVisitor__make_escape_mark(var_v, var, var3);
2867 }
2868 var_escapemark = var4;
2869 {
2870 { /* Inline scope#AWhileExpr#break_mark= (self,var_escapemark) on <self:AWhileExpr> */
2871 self->attrs[COLOR_scope__AWhileExpr___break_mark].val = var_escapemark; /* _break_mark on <self:AWhileExpr> */
2872 RET_LABEL5:(void)0;
2873 }
2874 }
2875 {
2876 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:EscapeMark> */
2877 var8 = var_escapemark->attrs[COLOR_scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:EscapeMark> */
2878 var6 = var8;
2879 RET_LABEL7:(void)0;
2880 }
2881 }
2882 {
2883 { /* Inline scope#AWhileExpr#continue_mark= (self,var6) on <self:AWhileExpr> */
2884 self->attrs[COLOR_scope__AWhileExpr___continue_mark].val = var6; /* _continue_mark on <self:AWhileExpr> */
2885 RET_LABEL9:(void)0;
2886 }
2887 }
2888 {
2889 { /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
2890 var12 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
2891 if (unlikely(var12 == NULL)) {
2892 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2893 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1408);
2894 show_backtrace(1);
2895 }
2896 var10 = var12;
2897 RET_LABEL11:(void)0;
2898 }
2899 }
2900 {
2901 parser_nodes__Visitor__enter_visit(var_v, var10); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
2902 }
2903 {
2904 { /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
2905 var15 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
2906 var13 = var15;
2907 RET_LABEL14:(void)0;
2908 }
2909 }
2910 {
2911 scope__ScopeVisitor__enter_visit_block(var_v, var13, var_escapemark); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
2912 }
2913 RET_LABEL:;
2914 }
2915 /* method scope#AWhileExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
2916 void VIRTUAL_scope__AWhileExpr__accept_scope_visitor(val* self, val* p0) {
2917 scope__AWhileExpr__accept_scope_visitor(self, p0); /* Direct call scope#AWhileExpr#accept_scope_visitor on <self:Object(AWhileExpr)>*/
2918 RET_LABEL:;
2919 }
2920 /* method scope#ALoopExpr#break_mark for (self: ALoopExpr): nullable EscapeMark */
2921 val* scope__ALoopExpr__break_mark(val* self) {
2922 val* var /* : nullable EscapeMark */;
2923 val* var1 /* : nullable EscapeMark */;
2924 var1 = self->attrs[COLOR_scope__ALoopExpr___break_mark].val; /* _break_mark on <self:ALoopExpr> */
2925 var = var1;
2926 RET_LABEL:;
2927 return var;
2928 }
2929 /* method scope#ALoopExpr#break_mark for (self: Object): nullable EscapeMark */
2930 val* VIRTUAL_scope__ALoopExpr__break_mark(val* self) {
2931 val* var /* : nullable EscapeMark */;
2932 val* var1 /* : nullable EscapeMark */;
2933 val* var3 /* : nullable EscapeMark */;
2934 { /* Inline scope#ALoopExpr#break_mark (self) on <self:Object(ALoopExpr)> */
2935 var3 = self->attrs[COLOR_scope__ALoopExpr___break_mark].val; /* _break_mark on <self:Object(ALoopExpr)> */
2936 var1 = var3;
2937 RET_LABEL2:(void)0;
2938 }
2939 var = var1;
2940 RET_LABEL:;
2941 return var;
2942 }
2943 /* method scope#ALoopExpr#break_mark= for (self: ALoopExpr, nullable EscapeMark) */
2944 void scope__ALoopExpr__break_mark_61d(val* self, val* p0) {
2945 self->attrs[COLOR_scope__ALoopExpr___break_mark].val = p0; /* _break_mark on <self:ALoopExpr> */
2946 RET_LABEL:;
2947 }
2948 /* method scope#ALoopExpr#break_mark= for (self: Object, nullable EscapeMark) */
2949 void VIRTUAL_scope__ALoopExpr__break_mark_61d(val* self, val* p0) {
2950 { /* Inline scope#ALoopExpr#break_mark= (self,p0) on <self:Object(ALoopExpr)> */
2951 self->attrs[COLOR_scope__ALoopExpr___break_mark].val = p0; /* _break_mark on <self:Object(ALoopExpr)> */
2952 RET_LABEL1:(void)0;
2953 }
2954 RET_LABEL:;
2955 }
2956 /* method scope#ALoopExpr#continue_mark for (self: ALoopExpr): nullable EscapeMark */
2957 val* scope__ALoopExpr__continue_mark(val* self) {
2958 val* var /* : nullable EscapeMark */;
2959 val* var1 /* : nullable EscapeMark */;
2960 var1 = self->attrs[COLOR_scope__ALoopExpr___continue_mark].val; /* _continue_mark on <self:ALoopExpr> */
2961 var = var1;
2962 RET_LABEL:;
2963 return var;
2964 }
2965 /* method scope#ALoopExpr#continue_mark for (self: Object): nullable EscapeMark */
2966 val* VIRTUAL_scope__ALoopExpr__continue_mark(val* self) {
2967 val* var /* : nullable EscapeMark */;
2968 val* var1 /* : nullable EscapeMark */;
2969 val* var3 /* : nullable EscapeMark */;
2970 { /* Inline scope#ALoopExpr#continue_mark (self) on <self:Object(ALoopExpr)> */
2971 var3 = self->attrs[COLOR_scope__ALoopExpr___continue_mark].val; /* _continue_mark on <self:Object(ALoopExpr)> */
2972 var1 = var3;
2973 RET_LABEL2:(void)0;
2974 }
2975 var = var1;
2976 RET_LABEL:;
2977 return var;
2978 }
2979 /* method scope#ALoopExpr#continue_mark= for (self: ALoopExpr, nullable EscapeMark) */
2980 void scope__ALoopExpr__continue_mark_61d(val* self, val* p0) {
2981 self->attrs[COLOR_scope__ALoopExpr___continue_mark].val = p0; /* _continue_mark on <self:ALoopExpr> */
2982 RET_LABEL:;
2983 }
2984 /* method scope#ALoopExpr#continue_mark= for (self: Object, nullable EscapeMark) */
2985 void VIRTUAL_scope__ALoopExpr__continue_mark_61d(val* self, val* p0) {
2986 { /* Inline scope#ALoopExpr#continue_mark= (self,p0) on <self:Object(ALoopExpr)> */
2987 self->attrs[COLOR_scope__ALoopExpr___continue_mark].val = p0; /* _continue_mark on <self:Object(ALoopExpr)> */
2988 RET_LABEL1:(void)0;
2989 }
2990 RET_LABEL:;
2991 }
2992 /* method scope#ALoopExpr#accept_scope_visitor for (self: ALoopExpr, ScopeVisitor) */
2993 void scope__ALoopExpr__accept_scope_visitor(val* self, val* p0) {
2994 val* var_v /* var v: ScopeVisitor */;
2995 val* var /* : nullable ALabel */;
2996 val* var2 /* : nullable ALabel */;
2997 short int var3 /* : Bool */;
2998 val* var4 /* : EscapeMark */;
2999 val* var_escapemark /* var escapemark: EscapeMark */;
3000 val* var6 /* : nullable EscapeMark */;
3001 val* var8 /* : nullable EscapeMark */;
3002 val* var10 /* : nullable AExpr */;
3003 val* var12 /* : nullable AExpr */;
3004 var_v = p0;
3005 {
3006 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:ALoopExpr> */
3007 var2 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
3008 var = var2;
3009 RET_LABEL1:(void)0;
3010 }
3011 }
3012 var3 = 1;
3013 {
3014 var4 = scope__ScopeVisitor__make_escape_mark(var_v, var, var3);
3015 }
3016 var_escapemark = var4;
3017 {
3018 { /* Inline scope#ALoopExpr#break_mark= (self,var_escapemark) on <self:ALoopExpr> */
3019 self->attrs[COLOR_scope__ALoopExpr___break_mark].val = var_escapemark; /* _break_mark on <self:ALoopExpr> */
3020 RET_LABEL5:(void)0;
3021 }
3022 }
3023 {
3024 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:EscapeMark> */
3025 var8 = var_escapemark->attrs[COLOR_scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:EscapeMark> */
3026 var6 = var8;
3027 RET_LABEL7:(void)0;
3028 }
3029 }
3030 {
3031 { /* Inline scope#ALoopExpr#continue_mark= (self,var6) on <self:ALoopExpr> */
3032 self->attrs[COLOR_scope__ALoopExpr___continue_mark].val = var6; /* _continue_mark on <self:ALoopExpr> */
3033 RET_LABEL9:(void)0;
3034 }
3035 }
3036 {
3037 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
3038 var12 = self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
3039 var10 = var12;
3040 RET_LABEL11:(void)0;
3041 }
3042 }
3043 {
3044 scope__ScopeVisitor__enter_visit_block(var_v, var10, var_escapemark); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
3045 }
3046 RET_LABEL:;
3047 }
3048 /* method scope#ALoopExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
3049 void VIRTUAL_scope__ALoopExpr__accept_scope_visitor(val* self, val* p0) {
3050 scope__ALoopExpr__accept_scope_visitor(self, p0); /* Direct call scope#ALoopExpr#accept_scope_visitor on <self:Object(ALoopExpr)>*/
3051 RET_LABEL:;
3052 }
3053 /* method scope#AForExpr#variables for (self: AForExpr): nullable Array[Variable] */
3054 val* scope__AForExpr__variables(val* self) {
3055 val* var /* : nullable Array[Variable] */;
3056 val* var1 /* : nullable Array[Variable] */;
3057 var1 = self->attrs[COLOR_scope__AForExpr___variables].val; /* _variables on <self:AForExpr> */
3058 var = var1;
3059 RET_LABEL:;
3060 return var;
3061 }
3062 /* method scope#AForExpr#variables for (self: Object): nullable Array[Variable] */
3063 val* VIRTUAL_scope__AForExpr__variables(val* self) {
3064 val* var /* : nullable Array[Variable] */;
3065 val* var1 /* : nullable Array[Variable] */;
3066 val* var3 /* : nullable Array[Variable] */;
3067 { /* Inline scope#AForExpr#variables (self) on <self:Object(AForExpr)> */
3068 var3 = self->attrs[COLOR_scope__AForExpr___variables].val; /* _variables on <self:Object(AForExpr)> */
3069 var1 = var3;
3070 RET_LABEL2:(void)0;
3071 }
3072 var = var1;
3073 RET_LABEL:;
3074 return var;
3075 }
3076 /* method scope#AForExpr#variables= for (self: AForExpr, nullable Array[Variable]) */
3077 void scope__AForExpr__variables_61d(val* self, val* p0) {
3078 self->attrs[COLOR_scope__AForExpr___variables].val = p0; /* _variables on <self:AForExpr> */
3079 RET_LABEL:;
3080 }
3081 /* method scope#AForExpr#variables= for (self: Object, nullable Array[Variable]) */
3082 void VIRTUAL_scope__AForExpr__variables_61d(val* self, val* p0) {
3083 { /* Inline scope#AForExpr#variables= (self,p0) on <self:Object(AForExpr)> */
3084 self->attrs[COLOR_scope__AForExpr___variables].val = p0; /* _variables on <self:Object(AForExpr)> */
3085 RET_LABEL1:(void)0;
3086 }
3087 RET_LABEL:;
3088 }
3089 /* method scope#AForExpr#break_mark for (self: AForExpr): nullable EscapeMark */
3090 val* scope__AForExpr__break_mark(val* self) {
3091 val* var /* : nullable EscapeMark */;
3092 val* var1 /* : nullable EscapeMark */;
3093 var1 = self->attrs[COLOR_scope__AForExpr___break_mark].val; /* _break_mark on <self:AForExpr> */
3094 var = var1;
3095 RET_LABEL:;
3096 return var;
3097 }
3098 /* method scope#AForExpr#break_mark for (self: Object): nullable EscapeMark */
3099 val* VIRTUAL_scope__AForExpr__break_mark(val* self) {
3100 val* var /* : nullable EscapeMark */;
3101 val* var1 /* : nullable EscapeMark */;
3102 val* var3 /* : nullable EscapeMark */;
3103 { /* Inline scope#AForExpr#break_mark (self) on <self:Object(AForExpr)> */
3104 var3 = self->attrs[COLOR_scope__AForExpr___break_mark].val; /* _break_mark on <self:Object(AForExpr)> */
3105 var1 = var3;
3106 RET_LABEL2:(void)0;
3107 }
3108 var = var1;
3109 RET_LABEL:;
3110 return var;
3111 }
3112 /* method scope#AForExpr#break_mark= for (self: AForExpr, nullable EscapeMark) */
3113 void scope__AForExpr__break_mark_61d(val* self, val* p0) {
3114 self->attrs[COLOR_scope__AForExpr___break_mark].val = p0; /* _break_mark on <self:AForExpr> */
3115 RET_LABEL:;
3116 }
3117 /* method scope#AForExpr#break_mark= for (self: Object, nullable EscapeMark) */
3118 void VIRTUAL_scope__AForExpr__break_mark_61d(val* self, val* p0) {
3119 { /* Inline scope#AForExpr#break_mark= (self,p0) on <self:Object(AForExpr)> */
3120 self->attrs[COLOR_scope__AForExpr___break_mark].val = p0; /* _break_mark on <self:Object(AForExpr)> */
3121 RET_LABEL1:(void)0;
3122 }
3123 RET_LABEL:;
3124 }
3125 /* method scope#AForExpr#continue_mark for (self: AForExpr): nullable EscapeMark */
3126 val* scope__AForExpr__continue_mark(val* self) {
3127 val* var /* : nullable EscapeMark */;
3128 val* var1 /* : nullable EscapeMark */;
3129 var1 = self->attrs[COLOR_scope__AForExpr___continue_mark].val; /* _continue_mark on <self:AForExpr> */
3130 var = var1;
3131 RET_LABEL:;
3132 return var;
3133 }
3134 /* method scope#AForExpr#continue_mark for (self: Object): nullable EscapeMark */
3135 val* VIRTUAL_scope__AForExpr__continue_mark(val* self) {
3136 val* var /* : nullable EscapeMark */;
3137 val* var1 /* : nullable EscapeMark */;
3138 val* var3 /* : nullable EscapeMark */;
3139 { /* Inline scope#AForExpr#continue_mark (self) on <self:Object(AForExpr)> */
3140 var3 = self->attrs[COLOR_scope__AForExpr___continue_mark].val; /* _continue_mark on <self:Object(AForExpr)> */
3141 var1 = var3;
3142 RET_LABEL2:(void)0;
3143 }
3144 var = var1;
3145 RET_LABEL:;
3146 return var;
3147 }
3148 /* method scope#AForExpr#continue_mark= for (self: AForExpr, nullable EscapeMark) */
3149 void scope__AForExpr__continue_mark_61d(val* self, val* p0) {
3150 self->attrs[COLOR_scope__AForExpr___continue_mark].val = p0; /* _continue_mark on <self:AForExpr> */
3151 RET_LABEL:;
3152 }
3153 /* method scope#AForExpr#continue_mark= for (self: Object, nullable EscapeMark) */
3154 void VIRTUAL_scope__AForExpr__continue_mark_61d(val* self, val* p0) {
3155 { /* Inline scope#AForExpr#continue_mark= (self,p0) on <self:Object(AForExpr)> */
3156 self->attrs[COLOR_scope__AForExpr___continue_mark].val = p0; /* _continue_mark on <self:Object(AForExpr)> */
3157 RET_LABEL1:(void)0;
3158 }
3159 RET_LABEL:;
3160 }
3161 /* method scope#AForExpr#accept_scope_visitor for (self: AForExpr, ScopeVisitor) */
3162 void scope__AForExpr__accept_scope_visitor(val* self, val* p0) {
3163 val* var_v /* var v: ScopeVisitor */;
3164 val* var /* : AExpr */;
3165 val* var2 /* : AExpr */;
3166 val* var3 /* : List[Scope] */;
3167 val* var5 /* : List[Scope] */;
3168 val* var6 /* : Scope */;
3169 val* var7 /* : Array[Variable] */;
3170 val* var_variables /* var variables: Array[Variable] */;
3171 val* var9 /* : ANodes[TId] */;
3172 val* var11 /* : ANodes[TId] */;
3173 val* var_ /* var : ANodes[TId] */;
3174 val* var12 /* : Iterator[ANode] */;
3175 val* var_13 /* var : Iterator[TId] */;
3176 short int var14 /* : Bool */;
3177 val* var15 /* : nullable Object */;
3178 val* var_nid /* var nid: TId */;
3179 val* var16 /* : Variable */;
3180 val* var17 /* : String */;
3181 val* var_va /* var va: Variable */;
3182 short int var18 /* : Bool */;
3183 val* var20 /* : nullable ALabel */;
3184 val* var22 /* : nullable ALabel */;
3185 short int var23 /* : Bool */;
3186 val* var24 /* : EscapeMark */;
3187 val* var_escapemark /* var escapemark: EscapeMark */;
3188 val* var26 /* : nullable EscapeMark */;
3189 val* var28 /* : nullable EscapeMark */;
3190 val* var30 /* : nullable AExpr */;
3191 val* var32 /* : nullable AExpr */;
3192 var_v = p0;
3193 {
3194 { /* Inline parser_nodes#AForExpr#n_expr (self) on <self:AForExpr> */
3195 var2 = self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val; /* _n_expr on <self:AForExpr> */
3196 if (unlikely(var2 == NULL)) {
3197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3198 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1427);
3199 show_backtrace(1);
3200 }
3201 var = var2;
3202 RET_LABEL1:(void)0;
3203 }
3204 }
3205 {
3206 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:ScopeVisitor>*/
3207 }
3208 {
3209 { /* Inline scope#ScopeVisitor#scopes (var_v) on <var_v:ScopeVisitor> */
3210 var5 = var_v->attrs[COLOR_scope__ScopeVisitor___scopes].val; /* _scopes on <var_v:ScopeVisitor> */
3211 if (unlikely(var5 == NULL)) {
3212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _scopes");
3213 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 80);
3214 show_backtrace(1);
3215 }
3216 var3 = var5;
3217 RET_LABEL4:(void)0;
3218 }
3219 }
3220 var6 = NEW_scope__Scope(&type_scope__Scope);
3221 {
3222 ((void (*)(val*))(var6->class->vft[COLOR_kernel__Object__init]))(var6) /* init on <var6:Scope>*/;
3223 }
3224 {
3225 list__List__unshift(var3, var6); /* Direct call list#List#unshift on <var3:List[Scope]>*/
3226 }
3227 var7 = NEW_array__Array(&type_array__Arrayscope__Variable);
3228 {
3229 ((void (*)(val*))(var7->class->vft[COLOR_kernel__Object__init]))(var7) /* init on <var7:Array[Variable]>*/;
3230 }
3231 var_variables = var7;
3232 {
3233 { /* Inline scope#AForExpr#variables= (self,var_variables) on <self:AForExpr> */
3234 self->attrs[COLOR_scope__AForExpr___variables].val = var_variables; /* _variables on <self:AForExpr> */
3235 RET_LABEL8:(void)0;
3236 }
3237 }
3238 {
3239 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
3240 var11 = self->attrs[COLOR_parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
3241 if (unlikely(var11 == NULL)) {
3242 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
3243 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1426);
3244 show_backtrace(1);
3245 }
3246 var9 = var11;
3247 RET_LABEL10:(void)0;
3248 }
3249 }
3250 var_ = var9;
3251 {
3252 var12 = parser_nodes__ANodes__iterator(var_);
3253 }
3254 var_13 = var12;
3255 for(;;) {
3256 {
3257 var14 = ((short int (*)(val*))(var_13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_13) /* is_ok on <var_13:Iterator[TId]>*/;
3258 }
3259 if (var14){
3260 {
3261 var15 = ((val* (*)(val*))(var_13->class->vft[COLOR_abstract_collection__Iterator__item]))(var_13) /* item on <var_13:Iterator[TId]>*/;
3262 }
3263 var_nid = var15;
3264 var16 = NEW_scope__Variable(&type_scope__Variable);
3265 {
3266 var17 = lexer_work__Token__text(var_nid);
3267 }
3268 {
3269 ((void (*)(val*, val*))(var16->class->vft[COLOR_scope__Variable__name_61d]))(var16, var17) /* name= on <var16:Variable>*/;
3270 }
3271 {
3272 ((void (*)(val*))(var16->class->vft[COLOR_kernel__Object__init]))(var16) /* init on <var16:Variable>*/;
3273 }
3274 var_va = var16;
3275 {
3276 var18 = scope__ScopeVisitor__register_variable(var_v, var_nid, var_va);
3277 }
3278 {
3279 array__Array__add(var_variables, var_va); /* Direct call array#Array#add on <var_variables:Array[Variable]>*/
3280 }
3281 {
3282 ((void (*)(val*))(var_13->class->vft[COLOR_abstract_collection__Iterator__next]))(var_13) /* next on <var_13:Iterator[TId]>*/;
3283 }
3284 } else {
3285 goto BREAK_label;
3286 }
3287 }
3288 BREAK_label: (void)0;
3289 {
3290 { /* Inline abstract_collection#Iterator#finish (var_13) on <var_13:Iterator[TId]> */
3291 RET_LABEL19:(void)0;
3292 }
3293 }
3294 {
3295 { /* Inline parser_nodes#ALabelable#n_label (self) on <self:AForExpr> */
3296 var22 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AForExpr> */
3297 var20 = var22;
3298 RET_LABEL21:(void)0;
3299 }
3300 }
3301 var23 = 1;
3302 {
3303 var24 = scope__ScopeVisitor__make_escape_mark(var_v, var20, var23);
3304 }
3305 var_escapemark = var24;
3306 {
3307 { /* Inline scope#AForExpr#break_mark= (self,var_escapemark) on <self:AForExpr> */
3308 self->attrs[COLOR_scope__AForExpr___break_mark].val = var_escapemark; /* _break_mark on <self:AForExpr> */
3309 RET_LABEL25:(void)0;
3310 }
3311 }
3312 {
3313 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:EscapeMark> */
3314 var28 = var_escapemark->attrs[COLOR_scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:EscapeMark> */
3315 var26 = var28;
3316 RET_LABEL27:(void)0;
3317 }
3318 }
3319 {
3320 { /* Inline scope#AForExpr#continue_mark= (self,var26) on <self:AForExpr> */
3321 self->attrs[COLOR_scope__AForExpr___continue_mark].val = var26; /* _continue_mark on <self:AForExpr> */
3322 RET_LABEL29:(void)0;
3323 }
3324 }
3325 {
3326 { /* Inline parser_nodes#AForExpr#n_block (self) on <self:AForExpr> */
3327 var32 = self->attrs[COLOR_parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
3328 var30 = var32;
3329 RET_LABEL31:(void)0;
3330 }
3331 }
3332 {
3333 scope__ScopeVisitor__enter_visit_block(var_v, var30, var_escapemark); /* Direct call scope#ScopeVisitor#enter_visit_block on <var_v:ScopeVisitor>*/
3334 }
3335 {
3336 scope__ScopeVisitor__shift_scope(var_v); /* Direct call scope#ScopeVisitor#shift_scope on <var_v:ScopeVisitor>*/
3337 }
3338 RET_LABEL:;
3339 }
3340 /* method scope#AForExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
3341 void VIRTUAL_scope__AForExpr__accept_scope_visitor(val* self, val* p0) {
3342 scope__AForExpr__accept_scope_visitor(self, p0); /* Direct call scope#AForExpr#accept_scope_visitor on <self:Object(AForExpr)>*/
3343 RET_LABEL:;
3344 }
3345 /* method scope#AVarFormExpr#variable for (self: AVarFormExpr): nullable Variable */
3346 val* scope__AVarFormExpr__variable(val* self) {
3347 val* var /* : nullable Variable */;
3348 val* var1 /* : nullable Variable */;
3349 var1 = self->attrs[COLOR_scope__AVarFormExpr___variable].val; /* _variable on <self:AVarFormExpr> */
3350 var = var1;
3351 RET_LABEL:;
3352 return var;
3353 }
3354 /* method scope#AVarFormExpr#variable for (self: Object): nullable Variable */
3355 val* VIRTUAL_scope__AVarFormExpr__variable(val* self) {
3356 val* var /* : nullable Variable */;
3357 val* var1 /* : nullable Variable */;
3358 val* var3 /* : nullable Variable */;
3359 { /* Inline scope#AVarFormExpr#variable (self) on <self:Object(AVarFormExpr)> */
3360 var3 = self->attrs[COLOR_scope__AVarFormExpr___variable].val; /* _variable on <self:Object(AVarFormExpr)> */
3361 var1 = var3;
3362 RET_LABEL2:(void)0;
3363 }
3364 var = var1;
3365 RET_LABEL:;
3366 return var;
3367 }
3368 /* method scope#AVarFormExpr#variable= for (self: AVarFormExpr, nullable Variable) */
3369 void scope__AVarFormExpr__variable_61d(val* self, val* p0) {
3370 self->attrs[COLOR_scope__AVarFormExpr___variable].val = p0; /* _variable on <self:AVarFormExpr> */
3371 RET_LABEL:;
3372 }
3373 /* method scope#AVarFormExpr#variable= for (self: Object, nullable Variable) */
3374 void VIRTUAL_scope__AVarFormExpr__variable_61d(val* self, val* p0) {
3375 { /* Inline scope#AVarFormExpr#variable= (self,p0) on <self:Object(AVarFormExpr)> */
3376 self->attrs[COLOR_scope__AVarFormExpr___variable].val = p0; /* _variable on <self:Object(AVarFormExpr)> */
3377 RET_LABEL1:(void)0;
3378 }
3379 RET_LABEL:;
3380 }
3381 /* method scope#ACallFormExpr#accept_scope_visitor for (self: ACallFormExpr, ScopeVisitor) */
3382 void scope__ACallFormExpr__accept_scope_visitor(val* self, val* p0) {
3383 val* var_v /* var v: ScopeVisitor */;
3384 val* var /* : AExpr */;
3385 val* var2 /* : AExpr */;
3386 short int var3 /* : Bool */;
3387 int cltype;
3388 int idtype;
3389 val* var4 /* : TId */;
3390 val* var6 /* : TId */;
3391 val* var7 /* : String */;
3392 val* var_name /* var name: String */;
3393 val* var8 /* : nullable Variable */;
3394 val* var_variable /* var variable: nullable Variable */;
3395 val* var9 /* : null */;
3396 short int var10 /* : Bool */;
3397 short int var11 /* : Bool */;
3398 val* var_other /* var other: nullable Object */;
3399 short int var13 /* : Bool */;
3400 short int var14 /* : Bool */;
3401 short int var15 /* : Bool */;
3402 short int var16 /* : Bool */;
3403 val* var17 /* : AExprs */;
3404 val* var19 /* : AExprs */;
3405 val* var20 /* : ANodes[AExpr] */;
3406 val* var22 /* : ANodes[AExpr] */;
3407 short int var23 /* : Bool */;
3408 short int var24 /* : Bool */;
3409 short int var_ /* var : Bool */;
3410 val* var25 /* : AExprs */;
3411 val* var27 /* : AExprs */;
3412 short int var28 /* : Bool */;
3413 int cltype29;
3414 int idtype30;
3415 static val* varonce;
3416 val* var31 /* : String */;
3417 char* var32 /* : NativeString */;
3418 long var33 /* : Int */;
3419 val* var34 /* : FlatString */;
3420 static val* varonce35;
3421 val* var36 /* : String */;
3422 char* var37 /* : NativeString */;
3423 long var38 /* : Int */;
3424 val* var39 /* : FlatString */;
3425 val* var40 /* : Array[Object] */;
3426 long var41 /* : Int */;
3427 val* var42 /* : NativeArray[Object] */;
3428 val* var43 /* : String */;
3429 val* var44 /* : AVarFormExpr */;
3430 val* var_n /* var n: AExpr */;
3431 var_v = p0;
3432 {
3433 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ACallFormExpr> */
3434 var2 = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallFormExpr> */
3435 if (unlikely(var2 == NULL)) {
3436 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3437 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1466);
3438 show_backtrace(1);
3439 }
3440 var = var2;
3441 RET_LABEL1:(void)0;
3442 }
3443 }
3444 /* <var:AExpr> isa AImplicitSelfExpr */
3445 cltype = type_parser_nodes__AImplicitSelfExpr.color;
3446 idtype = type_parser_nodes__AImplicitSelfExpr.id;
3447 if(cltype >= var->type->table_size) {
3448 var3 = 0;
3449 } else {
3450 var3 = var->type->type_table[cltype] == idtype;
3451 }
3452 if (var3){
3453 {
3454 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:ACallFormExpr> */
3455 var6 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallFormExpr> */
3456 if (unlikely(var6 == NULL)) {
3457 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3458 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1644);
3459 show_backtrace(1);
3460 }
3461 var4 = var6;
3462 RET_LABEL5:(void)0;
3463 }
3464 }
3465 {
3466 var7 = lexer_work__Token__text(var4);
3467 }
3468 var_name = var7;
3469 {
3470 var8 = scope__ScopeVisitor__search_variable(var_v, var_name);
3471 }
3472 var_variable = var8;
3473 var9 = NULL;
3474 if (var_variable == NULL) {
3475 var10 = 0; /* is null */
3476 } else {
3477 var10 = 1; /* arg is null and recv is not */
3478 }
3479 if (0) {
3480 { /* Inline kernel#Object#!= (var_variable,var9) on <var_variable:nullable Variable> */
3481 var_other = var9;
3482 {
3483 var14 = ((short int (*)(val*, val*))(var_variable->class->vft[COLOR_kernel__Object___61d_61d]))(var_variable, var_other) /* == on <var_variable:nullable Variable(Variable)>*/;
3484 var13 = var14;
3485 }
3486 var15 = !var13;
3487 var11 = var15;
3488 goto RET_LABEL12;
3489 RET_LABEL12:(void)0;
3490 }
3491 var10 = var11;
3492 }
3493 if (var10){
3494 {
3495 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:ACallFormExpr> */
3496 var19 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallFormExpr> */
3497 if (unlikely(var19 == NULL)) {
3498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3499 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1647);
3500 show_backtrace(1);
3501 }
3502 var17 = var19;
3503 RET_LABEL18:(void)0;
3504 }
3505 }
3506 {
3507 { /* Inline parser_nodes#AExprs#n_exprs (var17) on <var17:AExprs> */
3508 var22 = var17->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var17:AExprs> */
3509 if (unlikely(var22 == NULL)) {
3510 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
3511 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1946);
3512 show_backtrace(1);
3513 }
3514 var20 = var22;
3515 RET_LABEL21:(void)0;
3516 }
3517 }
3518 {
3519 var23 = parser_nodes__ANodes__is_empty(var20);
3520 }
3521 var24 = !var23;
3522 var_ = var24;
3523 if (var24){
3524 var16 = var_;
3525 } else {
3526 {
3527 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:ACallFormExpr> */
3528 var27 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallFormExpr> */
3529 if (unlikely(var27 == NULL)) {
3530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3531 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1647);
3532 show_backtrace(1);
3533 }
3534 var25 = var27;
3535 RET_LABEL26:(void)0;
3536 }
3537 }
3538 /* <var25:AExprs> isa AParExprs */
3539 cltype29 = type_parser_nodes__AParExprs.color;
3540 idtype30 = type_parser_nodes__AParExprs.id;
3541 if(cltype29 >= var25->type->table_size) {
3542 var28 = 0;
3543 } else {
3544 var28 = var25->type->type_table[cltype29] == idtype30;
3545 }
3546 var16 = var28;
3547 }
3548 if (var16){
3549 if (varonce) {
3550 var31 = varonce;
3551 } else {
3552 var32 = "Error: ";
3553 var33 = 7;
3554 var34 = string__NativeString__to_s_with_length(var32, var33);
3555 var31 = var34;
3556 varonce = var31;
3557 }
3558 if (varonce35) {
3559 var36 = varonce35;
3560 } else {
3561 var37 = " is variable, not a function.";
3562 var38 = 29;
3563 var39 = string__NativeString__to_s_with_length(var37, var38);
3564 var36 = var39;
3565 varonce35 = var36;
3566 }
3567 var40 = NEW_array__Array(&type_array__Arraykernel__Object);
3568 { /* var40 = array_instance Array[Object] */
3569 var41 = 3;
3570 var42 = NEW_array__NativeArray(var41, &type_array__NativeArraykernel__Object);
3571 ((struct instance_array__NativeArray*)var42)->values[0] = (val*) var31;
3572 ((struct instance_array__NativeArray*)var42)->values[1] = (val*) var_name;
3573 ((struct instance_array__NativeArray*)var42)->values[2] = (val*) var36;
3574 {
3575 ((void (*)(val*, val*, long))(var40->class->vft[COLOR_array__Array__with_native]))(var40, var42, var41) /* with_native on <var40:Array[Object]>*/;
3576 }
3577 }
3578 {
3579 var43 = ((val* (*)(val*))(var40->class->vft[COLOR_string__Object__to_s]))(var40) /* to_s on <var40:Array[Object]>*/;
3580 }
3581 {
3582 scope__ScopeVisitor__error(var_v, self, var43); /* Direct call scope#ScopeVisitor#error on <var_v:ScopeVisitor>*/
3583 }
3584 goto RET_LABEL;
3585 } else {
3586 }
3587 {
3588 var44 = ((val* (*)(val*, val*))(self->class->vft[COLOR_scope__ACallFormExpr__variable_create]))(self, var_variable) /* variable_create on <self:ACallFormExpr>*/;
3589 }
3590 var_n = var44;
3591 {
3592 { /* Inline scope#AVarFormExpr#variable= (var_n,var_variable) on <var_n:AExpr(AVarFormExpr)> */
3593 var_n->attrs[COLOR_scope__AVarFormExpr___variable].val = var_variable; /* _variable on <var_n:AExpr(AVarFormExpr)> */
3594 RET_LABEL45:(void)0;
3595 }
3596 }
3597 {
3598 parser_nodes__Prod__replace_with(self, var_n); /* Direct call parser_nodes#Prod#replace_with on <self:ACallFormExpr>*/
3599 }
3600 {
3601 scope__ANode__accept_scope_visitor(var_n, var_v); /* Direct call scope#ANode#accept_scope_visitor on <var_n:AExpr(AVarFormExpr)>*/
3602 }
3603 goto RET_LABEL;
3604 } else {
3605 }
3606 } else {
3607 }
3608 {
3609 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ACallFormExpr__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on <self:ACallFormExpr>*/;
3610 }
3611 RET_LABEL:;
3612 }
3613 /* method scope#ACallFormExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */
3614 void VIRTUAL_scope__ACallFormExpr__accept_scope_visitor(val* self, val* p0) {
3615 scope__ACallFormExpr__accept_scope_visitor(self, p0); /* Direct call scope#ACallFormExpr#accept_scope_visitor on <self:Object(ACallFormExpr)>*/
3616 RET_LABEL:;
3617 }
3618 /* method scope#ACallExpr#variable_create for (self: ACallExpr, Variable): AVarFormExpr */
3619 val* scope__ACallExpr__variable_create(val* self, val* p0) {
3620 val* var /* : AVarFormExpr */;
3621 val* var_variable /* var variable: Variable */;
3622 short int var1 /* : Bool */;
3623 val* var3 /* : AVarExpr */;
3624 val* var4 /* : TId */;
3625 val* var6 /* : TId */;
3626 var_variable = p0;
3627 var1 = 0;
3628 {
3629 { /* Inline scope#Variable#warn_unread= (var_variable,var1) on <var_variable:Variable> */
3630 var_variable->attrs[COLOR_scope__Variable___warn_unread].s = var1; /* _warn_unread on <var_variable:Variable> */
3631 RET_LABEL2:(void)0;
3632 }
3633 }
3634 var3 = NEW_parser_nodes__AVarExpr(&type_parser_nodes__AVarExpr);
3635 {
3636 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:ACallExpr> */
3637 var6 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallExpr> */
3638 if (unlikely(var6 == NULL)) {
3639 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3640 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1644);
3641 show_backtrace(1);
3642 }
3643 var4 = var6;
3644 RET_LABEL5:(void)0;
3645 }
3646 }
3647 {
3648 parser_prod__AVarExpr__init_avarexpr(var3, var4); /* Direct call parser_prod#AVarExpr#init_avarexpr on <var3:AVarExpr>*/
3649 }
3650 var = var3;
3651 goto RET_LABEL;
3652 RET_LABEL:;
3653 return var;
3654 }
3655 /* method scope#ACallExpr#variable_create for (self: Object, Variable): AVarFormExpr */
3656 val* VIRTUAL_scope__ACallExpr__variable_create(val* self, val* p0) {
3657 val* var /* : AVarFormExpr */;
3658 val* var1 /* : AVarFormExpr */;
3659 var1 = scope__ACallExpr__variable_create(self, p0);
3660 var = var1;
3661 RET_LABEL:;
3662 return var;
3663 }
3664 /* method scope#ACallAssignExpr#variable_create for (self: ACallAssignExpr, Variable): AVarFormExpr */
3665 val* scope__ACallAssignExpr__variable_create(val* self, val* p0) {
3666 val* var /* : AVarFormExpr */;
3667 val* var_variable /* var variable: Variable */;
3668 val* var1 /* : AVarAssignExpr */;
3669 val* var2 /* : TId */;
3670 val* var4 /* : TId */;
3671 val* var5 /* : TAssign */;
3672 val* var7 /* : TAssign */;
3673 val* var8 /* : AExpr */;
3674 val* var10 /* : AExpr */;
3675 var_variable = p0;
3676 var1 = NEW_parser_nodes__AVarAssignExpr(&type_parser_nodes__AVarAssignExpr);
3677 {
3678 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:ACallAssignExpr> */
3679 var4 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallAssignExpr> */
3680 if (unlikely(var4 == NULL)) {
3681 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3682 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1644);
3683 show_backtrace(1);
3684 }
3685 var2 = var4;
3686 RET_LABEL3:(void)0;
3687 }
3688 }
3689 {
3690 { /* Inline parser_nodes#AAssignFormExpr#n_assign (self) on <self:ACallAssignExpr> */
3691 var7 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:ACallAssignExpr> */
3692 if (unlikely(var7 == NULL)) {
3693 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
3694 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1444);
3695 show_backtrace(1);
3696 }
3697 var5 = var7;
3698 RET_LABEL6:(void)0;
3699 }
3700 }
3701 {
3702 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:ACallAssignExpr> */
3703 var10 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ACallAssignExpr> */
3704 if (unlikely(var10 == NULL)) {
3705 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3706 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1445);
3707 show_backtrace(1);
3708 }
3709 var8 = var10;
3710 RET_LABEL9:(void)0;
3711 }
3712 }
3713 {
3714 parser_prod__AVarAssignExpr__init_avarassignexpr(var1, var2, var5, var8); /* Direct call parser_prod#AVarAssignExpr#init_avarassignexpr on <var1:AVarAssignExpr>*/
3715 }
3716 var = var1;
3717 goto RET_LABEL;
3718 RET_LABEL:;
3719 return var;
3720 }
3721 /* method scope#ACallAssignExpr#variable_create for (self: Object, Variable): AVarFormExpr */
3722 val* VIRTUAL_scope__ACallAssignExpr__variable_create(val* self, val* p0) {
3723 val* var /* : AVarFormExpr */;
3724 val* var1 /* : AVarFormExpr */;
3725 var1 = scope__ACallAssignExpr__variable_create(self, p0);
3726 var = var1;
3727 RET_LABEL:;
3728 return var;
3729 }
3730 /* method scope#ACallReassignExpr#variable_create for (self: ACallReassignExpr, Variable): AVarFormExpr */
3731 val* scope__ACallReassignExpr__variable_create(val* self, val* p0) {
3732 val* var /* : AVarFormExpr */;
3733 val* var_variable /* var variable: Variable */;
3734 short int var1 /* : Bool */;
3735 val* var3 /* : AVarReassignExpr */;
3736 val* var4 /* : TId */;
3737 val* var6 /* : TId */;
3738 val* var7 /* : AAssignOp */;
3739 val* var9 /* : AAssignOp */;
3740 val* var10 /* : AExpr */;
3741 val* var12 /* : AExpr */;
3742 var_variable = p0;
3743 var1 = 0;
3744 {
3745 { /* Inline scope#Variable#warn_unread= (var_variable,var1) on <var_variable:Variable> */
3746 var_variable->attrs[COLOR_scope__Variable___warn_unread].s = var1; /* _warn_unread on <var_variable:Variable> */
3747 RET_LABEL2:(void)0;
3748 }
3749 }
3750 var3 = NEW_parser_nodes__AVarReassignExpr(&type_parser_nodes__AVarReassignExpr);
3751 {
3752 { /* Inline parser_nodes#ACallFormExpr#n_id (self) on <self:ACallReassignExpr> */
3753 var6 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallReassignExpr> */
3754 if (unlikely(var6 == NULL)) {
3755 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3756 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1644);
3757 show_backtrace(1);
3758 }
3759 var4 = var6;
3760 RET_LABEL5:(void)0;
3761 }
3762 }
3763 {
3764 { /* Inline parser_nodes#AReassignFormExpr#n_assign_op (self) on <self:ACallReassignExpr> */
3765 var9 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:ACallReassignExpr> */
3766 if (unlikely(var9 == NULL)) {
3767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
3768 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1451);
3769 show_backtrace(1);
3770 }
3771 var7 = var9;
3772 RET_LABEL8:(void)0;
3773 }
3774 }
3775 {
3776 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:ACallReassignExpr> */
3777 var12 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ACallReassignExpr> */
3778 if (unlikely(var12 == NULL)) {
3779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3780 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1452);
3781 show_backtrace(1);
3782 }
3783 var10 = var12;
3784 RET_LABEL11:(void)0;
3785 }
3786 }
3787 {
3788 parser_prod__AVarReassignExpr__init_avarreassignexpr(var3, var4, var7, var10); /* Direct call parser_prod#AVarReassignExpr#init_avarreassignexpr on <var3:AVarReassignExpr>*/
3789 }
3790 var = var3;
3791 goto RET_LABEL;
3792 RET_LABEL:;
3793 return var;
3794 }
3795 /* method scope#ACallReassignExpr#variable_create for (self: Object, Variable): AVarFormExpr */
3796 val* VIRTUAL_scope__ACallReassignExpr__variable_create(val* self, val* p0) {
3797 val* var /* : AVarFormExpr */;
3798 val* var1 /* : AVarFormExpr */;
3799 var1 = scope__ACallReassignExpr__variable_create(self, p0);
3800 var = var1;
3801 RET_LABEL:;
3802 return var;
3803 }