1 #include "flow.sep.0.h"
2 /* method flow#ToolContext#flow_phase for (self: ToolContext): Phase */
3 val
* flow__ToolContext__flow_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_flow__ToolContext___flow_phase
].val
; /* _flow_phase on <self:ToolContext> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flow_phase");
9 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 23);
16 /* method flow#ToolContext#flow_phase for (self: Object): Phase */
17 val
* VIRTUAL_flow__ToolContext__flow_phase(val
* self
) {
18 val
* var
/* : Phase */;
19 val
* var1
/* : Phase */;
20 val
* var3
/* : Phase */;
21 { /* Inline flow#ToolContext#flow_phase (self) on <self:Object(ToolContext)> */
22 var3
= self
->attrs
[COLOR_flow__ToolContext___flow_phase
].val
; /* _flow_phase on <self:Object(ToolContext)> */
23 if (unlikely(var3
== NULL
)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flow_phase");
25 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 23);
35 /* method flow#FlowPhase#process_npropdef for (self: FlowPhase, APropdef) */
36 void flow__FlowPhase__process_npropdef(val
* self
, val
* p0
) {
37 val
* var_npropdef
/* var npropdef: APropdef */;
38 val
* var
/* : ToolContext */;
39 val
* var2
/* : ToolContext */;
42 { /* Inline phase#Phase#toolcontext (self) on <self:FlowPhase> */
43 var2
= self
->attrs
[COLOR_phase__Phase___toolcontext
].val
; /* _toolcontext on <self:FlowPhase> */
44 if (unlikely(var2
== NULL
)) {
45 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
46 PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162);
54 flow__APropdef__do_flow(var_npropdef
, var
); /* Direct call flow#APropdef#do_flow on <var_npropdef:APropdef>*/
58 /* method flow#FlowPhase#process_npropdef for (self: Object, APropdef) */
59 void VIRTUAL_flow__FlowPhase__process_npropdef(val
* self
, val
* p0
) {
60 flow__FlowPhase__process_npropdef(self
, p0
); /* Direct call flow#FlowPhase#process_npropdef on <self:Object(FlowPhase)>*/
63 /* method flow#FlowVisitor#current_flow_context for (self: FlowVisitor): FlowContext */
64 val
* flow__FlowVisitor__current_flow_context(val
* self
) {
65 val
* var
/* : FlowContext */;
66 val
* var1
/* : FlowContext */;
67 var1
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
68 if (unlikely(var1
== NULL
)) {
69 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
70 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
77 /* method flow#FlowVisitor#current_flow_context for (self: Object): FlowContext */
78 val
* VIRTUAL_flow__FlowVisitor__current_flow_context(val
* self
) {
79 val
* var
/* : FlowContext */;
80 val
* var1
/* : FlowContext */;
81 val
* var3
/* : FlowContext */;
82 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:Object(FlowVisitor)> */
83 var3
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:Object(FlowVisitor)> */
84 if (unlikely(var3
== NULL
)) {
85 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
86 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
96 /* method flow#FlowVisitor#current_flow_context= for (self: FlowVisitor, FlowContext) */
97 void flow__FlowVisitor__current_flow_context_61d(val
* self
, val
* p0
) {
98 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= p0
; /* _current_flow_context on <self:FlowVisitor> */
101 /* method flow#FlowVisitor#current_flow_context= for (self: Object, FlowContext) */
102 void VIRTUAL_flow__FlowVisitor__current_flow_context_61d(val
* self
, val
* p0
) {
103 { /* Inline flow#FlowVisitor#current_flow_context= (self,p0) on <self:Object(FlowVisitor)> */
104 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= p0
; /* _current_flow_context on <self:Object(FlowVisitor)> */
109 /* method flow#FlowVisitor#toolcontext for (self: FlowVisitor): ToolContext */
110 val
* flow__FlowVisitor__toolcontext(val
* self
) {
111 val
* var
/* : ToolContext */;
112 val
* var1
/* : ToolContext */;
113 var1
= self
->attrs
[COLOR_flow__FlowVisitor___toolcontext
].val
; /* _toolcontext on <self:FlowVisitor> */
114 if (unlikely(var1
== NULL
)) {
115 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
116 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 38);
123 /* method flow#FlowVisitor#toolcontext for (self: Object): ToolContext */
124 val
* VIRTUAL_flow__FlowVisitor__toolcontext(val
* self
) {
125 val
* var
/* : ToolContext */;
126 val
* var1
/* : ToolContext */;
127 val
* var3
/* : ToolContext */;
128 { /* Inline flow#FlowVisitor#toolcontext (self) on <self:Object(FlowVisitor)> */
129 var3
= self
->attrs
[COLOR_flow__FlowVisitor___toolcontext
].val
; /* _toolcontext on <self:Object(FlowVisitor)> */
130 if (unlikely(var3
== NULL
)) {
131 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
132 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 38);
142 /* method flow#FlowVisitor#toolcontext= for (self: FlowVisitor, ToolContext) */
143 void flow__FlowVisitor__toolcontext_61d(val
* self
, val
* p0
) {
144 self
->attrs
[COLOR_flow__FlowVisitor___toolcontext
].val
= p0
; /* _toolcontext on <self:FlowVisitor> */
147 /* method flow#FlowVisitor#toolcontext= for (self: Object, ToolContext) */
148 void VIRTUAL_flow__FlowVisitor__toolcontext_61d(val
* self
, val
* p0
) {
149 { /* Inline flow#FlowVisitor#toolcontext= (self,p0) on <self:Object(FlowVisitor)> */
150 self
->attrs
[COLOR_flow__FlowVisitor___toolcontext
].val
= p0
; /* _toolcontext on <self:Object(FlowVisitor)> */
155 /* method flow#FlowVisitor#init for (self: FlowVisitor, ToolContext) */
156 void flow__FlowVisitor__init(val
* self
, val
* p0
) {
157 val
* var_toolcontext
/* var toolcontext: ToolContext */;
158 val
* var
/* : FlowContext */;
159 val
* var3
/* : Array[FlowContext] */;
160 val
* var5
/* : Array[FlowContext] */;
161 val
* var6
/* : FlowContext */;
162 val
* var8
/* : FlowContext */;
163 val
* var9
/* : FlowContext */;
164 val
* var11
/* : FlowContext */;
165 short int var12
/* : Bool */;
167 ((void (*)(val
*))(self
->class->vft
[COLOR_kernel__Object__init
]))(self
) /* init on <self:FlowVisitor>*/;
169 var_toolcontext
= p0
;
171 { /* Inline flow#FlowVisitor#toolcontext= (self,var_toolcontext) on <self:FlowVisitor> */
172 self
->attrs
[COLOR_flow__FlowVisitor___toolcontext
].val
= var_toolcontext
; /* _toolcontext on <self:FlowVisitor> */
176 var
= NEW_flow__FlowContext(&type_flow__FlowContext
);
178 ((void (*)(val
*))(var
->class->vft
[COLOR_kernel__Object__init
]))(var
) /* init on <var:FlowContext>*/;
181 { /* Inline flow#FlowVisitor#current_flow_context= (self,var) on <self:FlowVisitor> */
182 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var
; /* _current_flow_context on <self:FlowVisitor> */
187 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
188 var5
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
189 if (unlikely(var5
== NULL
)) {
190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
191 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 77);
199 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
200 var8
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
201 if (unlikely(var8
== NULL
)) {
202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
203 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
211 array__Array__add(var3
, var6
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
214 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
215 var11
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
216 if (unlikely(var11
== NULL
)) {
217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
218 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
227 { /* Inline flow#FlowContext#is_start= (var9,var12) on <var9:FlowContext> */
228 var9
->attrs
[COLOR_flow__FlowContext___is_start
].s
= var12
; /* _is_start on <var9:FlowContext> */
234 /* method flow#FlowVisitor#init for (self: Object, ToolContext) */
235 void VIRTUAL_flow__FlowVisitor__init(val
* self
, val
* p0
) {
236 flow__FlowVisitor__init(self
, p0
); /* Direct call flow#FlowVisitor#init on <self:Object(FlowVisitor)>*/
239 /* method flow#FlowVisitor#first for (self: FlowVisitor): nullable ANode */
240 val
* flow__FlowVisitor__first(val
* self
) {
241 val
* var
/* : nullable ANode */;
242 val
* var1
/* : nullable ANode */;
243 var1
= self
->attrs
[COLOR_flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
248 /* method flow#FlowVisitor#first for (self: Object): nullable ANode */
249 val
* VIRTUAL_flow__FlowVisitor__first(val
* self
) {
250 val
* var
/* : nullable ANode */;
251 val
* var1
/* : nullable ANode */;
252 val
* var3
/* : nullable ANode */;
253 { /* Inline flow#FlowVisitor#first (self) on <self:Object(FlowVisitor)> */
254 var3
= self
->attrs
[COLOR_flow__FlowVisitor___first
].val
; /* _first on <self:Object(FlowVisitor)> */
262 /* method flow#FlowVisitor#first= for (self: FlowVisitor, nullable ANode) */
263 void flow__FlowVisitor__first_61d(val
* self
, val
* p0
) {
264 self
->attrs
[COLOR_flow__FlowVisitor___first
].val
= p0
; /* _first on <self:FlowVisitor> */
267 /* method flow#FlowVisitor#first= for (self: Object, nullable ANode) */
268 void VIRTUAL_flow__FlowVisitor__first_61d(val
* self
, val
* p0
) {
269 { /* Inline flow#FlowVisitor#first= (self,p0) on <self:Object(FlowVisitor)> */
270 self
->attrs
[COLOR_flow__FlowVisitor___first
].val
= p0
; /* _first on <self:Object(FlowVisitor)> */
275 /* method flow#FlowVisitor#visit for (self: FlowVisitor, ANode) */
276 void flow__FlowVisitor__visit(val
* self
, val
* p0
) {
277 val
* var_node
/* var node: ANode */;
278 val
* var
/* : nullable ANode */;
279 val
* var2
/* : nullable ANode */;
280 val
* var3
/* : null */;
281 short int var4
/* : Bool */;
282 short int var5
/* : Bool */;
283 val
* var_other
/* var other: nullable Object */;
284 short int var7
/* : Bool */;
285 short int var9
/* : Bool */;
286 val
* var11
/* : FlowContext */;
287 val
* var13
/* : FlowContext */;
288 val
* var14
/* : nullable ANode */;
289 val
* var16
/* : nullable ANode */;
290 val
* var17
/* : null */;
291 short int var18
/* : Bool */;
292 short int var19
/* : Bool */;
293 short int var21
/* : Bool */;
294 short int var23
/* : Bool */;
295 val
* var24
/* : FlowContext */;
296 val
* var26
/* : FlowContext */;
297 short int var28
/* : Bool */;
300 val
* var29
/* : FlowContext */;
301 val
* var31
/* : FlowContext */;
302 val
* var_flow
/* var flow: FlowContext */;
303 short int var33
/* : Bool */;
304 val
* var34
/* : FlowContext */;
305 val
* var36
/* : FlowContext */;
306 short int var37
/* : Bool */;
307 short int var38
/* : Bool */;
308 val
* var_other40
/* var other: nullable Object */;
309 short int var41
/* : Bool */;
310 short int var42
/* : Bool */;
311 short int var43
/* : Bool */;
312 short int var_
/* var : Bool */;
313 val
* var44
/* : FlowContext */;
314 val
* var46
/* : FlowContext */;
315 short int var47
/* : Bool */;
316 short int var48
/* : Bool */;
317 short int var50
/* : Bool */;
318 short int var51
/* : Bool */;
319 short int var52
/* : Bool */;
320 val
* var53
/* : FlowContext */;
321 val
* var54
/* : FlowContext */;
322 val
* var56
/* : FlowContext */;
324 val
* var57
/* : String */;
325 char* var58
/* : NativeString */;
326 long var59
/* : Int */;
327 val
* var60
/* : FlatString */;
328 val
* var62
/* : nullable ANode */;
329 val
* var64
/* : nullable ANode */;
330 short int var65
/* : Bool */;
331 short int var66
/* : Bool */;
332 short int var68
/* : Bool */;
333 short int var70
/* : Bool */;
336 { /* Inline flow#FlowVisitor#first (self) on <self:FlowVisitor> */
337 var2
= self
->attrs
[COLOR_flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
344 var4
= 1; /* is null */
346 var4
= 0; /* arg is null but recv is not */
349 { /* Inline kernel#Object#== (var,var3) on <var:nullable ANode> */
352 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ANode(ANode)> */
353 var9
= var
== var_other
;
367 { /* Inline flow#FlowVisitor#first= (self,var_node) on <self:FlowVisitor> */
368 self
->attrs
[COLOR_flow__FlowVisitor___first
].val
= var_node
; /* _first on <self:FlowVisitor> */
375 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
376 var13
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
377 if (unlikely(var13
== NULL
)) {
378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
379 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
387 { /* Inline flow#FlowContext#node (var11) on <var11:FlowContext> */
388 var16
= var11
->attrs
[COLOR_flow__FlowContext___node
].val
; /* _node on <var11:FlowContext> */
395 var18
= 1; /* is null */
397 var18
= 0; /* arg is null but recv is not */
400 { /* Inline kernel#Object#== (var14,var17) on <var14:nullable ANode> */
403 { /* Inline kernel#Object#is_same_instance (var14,var_other) on <var14:nullable ANode(ANode)> */
404 var23
= var14
== var_other
;
418 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
419 var26
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
420 if (unlikely(var26
== NULL
)) {
421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
422 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
430 { /* Inline flow#FlowContext#node= (var24,var_node) on <var24:FlowContext> */
431 var24
->attrs
[COLOR_flow__FlowContext___node
].val
= var_node
; /* _node on <var24:FlowContext> */
438 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_flow__ANode__accept_flow_visitor
]))(var_node
, self
) /* accept_flow_visitor on <var_node:ANode>*/;
440 /* <var_node:ANode> isa AExpr */
441 cltype
= type_parser_nodes__AExpr
.color
;
442 idtype
= type_parser_nodes__AExpr
.id
;
443 if(cltype
>= var_node
->type
->table_size
) {
446 var28
= var_node
->type
->type_table
[cltype
] == idtype
;
450 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
451 var31
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
452 if (unlikely(var31
== NULL
)) {
453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
454 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
463 { /* Inline flow#AExpr#after_flow_context= (var_node,var_flow) on <var_node:ANode(AExpr)> */
464 var_node
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
= var_flow
; /* _after_flow_context on <var_node:ANode(AExpr)> */
469 { /* Inline flow#FlowContext#when_true (var_flow) on <var_flow:FlowContext> */
470 var36
= var_flow
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_flow:FlowContext> */
471 if (unlikely(var36
== NULL
)) {
472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
473 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
481 { /* Inline kernel#Object#!= (var34,var_flow) on <var34:FlowContext> */
482 var_other40
= var_flow
;
484 var42
= ((short int (*)(val
*, val
*))(var34
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var34
, var_other40
) /* == on <var34:FlowContext>*/;
499 { /* Inline flow#FlowContext#when_false (var_flow) on <var_flow:FlowContext> */
500 var46
= var_flow
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_flow:FlowContext> */
501 if (unlikely(var46
== NULL
)) {
502 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
503 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
511 { /* Inline kernel#Object#!= (var44,var_flow) on <var44:FlowContext> */
512 var_other40
= var_flow
;
514 var51
= ((short int (*)(val
*, val
*))(var44
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var44
, var_other40
) /* == on <var44:FlowContext>*/;
528 var53
= flow__FlowVisitor__make_sub_flow(self
);
531 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
532 var56
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
533 if (unlikely(var56
== NULL
)) {
534 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
535 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
547 var60
= string__NativeString__to_s_with_length(var58
, var59
);
552 { /* Inline flow#FlowContext#name= (var54,var57) on <var54:FlowContext> */
553 var54
->attrs
[COLOR_flow__FlowContext___name
].val
= var57
; /* _name on <var54:FlowContext> */
562 { /* Inline flow#FlowVisitor#first (self) on <self:FlowVisitor> */
563 var64
= self
->attrs
[COLOR_flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
569 var65
= 0; /* <var_node:ANode> cannot be null */
571 { /* Inline kernel#Object#== (var62,var_node) on <var62:nullable ANode> */
572 var_other
= var_node
;
574 { /* Inline kernel#Object#is_same_instance (var62,var_other) on <var62:nullable ANode(ANode)> */
575 var70
= var62
== var_other
;
592 /* method flow#FlowVisitor#visit for (self: Object, ANode) */
593 void VIRTUAL_flow__FlowVisitor__visit(val
* self
, val
* p0
) {
594 flow__FlowVisitor__visit(self
, p0
); /* Direct call flow#FlowVisitor#visit on <self:Object(FlowVisitor)>*/
597 /* method flow#FlowVisitor#visit_expr for (self: FlowVisitor, AExpr): FlowContext */
598 val
* flow__FlowVisitor__visit_expr(val
* self
, val
* p0
) {
599 val
* var
/* : FlowContext */;
600 val
* var_node
/* var node: AExpr */;
601 val
* var1
/* : nullable FlowContext */;
602 val
* var3
/* : nullable FlowContext */;
605 parser_nodes__Visitor__enter_visit(self
, var_node
); /* Direct call parser_nodes#Visitor#enter_visit on <self:FlowVisitor>*/
608 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
609 var3
= var_node
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
614 if (unlikely(var1
== NULL
)) {
615 PRINT_ERROR("Runtime error: %s", "Cast failed");
616 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 74);
624 /* method flow#FlowVisitor#visit_expr for (self: Object, AExpr): FlowContext */
625 val
* VIRTUAL_flow__FlowVisitor__visit_expr(val
* self
, val
* p0
) {
626 val
* var
/* : FlowContext */;
627 val
* var1
/* : FlowContext */;
628 var1
= flow__FlowVisitor__visit_expr(self
, p0
);
633 /* method flow#FlowVisitor#flows for (self: FlowVisitor): Array[FlowContext] */
634 val
* flow__FlowVisitor__flows(val
* self
) {
635 val
* var
/* : Array[FlowContext] */;
636 val
* var1
/* : Array[FlowContext] */;
637 var1
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
638 if (unlikely(var1
== NULL
)) {
639 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
640 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 77);
647 /* method flow#FlowVisitor#flows for (self: Object): Array[FlowContext] */
648 val
* VIRTUAL_flow__FlowVisitor__flows(val
* self
) {
649 val
* var
/* : Array[FlowContext] */;
650 val
* var1
/* : Array[FlowContext] */;
651 val
* var3
/* : Array[FlowContext] */;
652 { /* Inline flow#FlowVisitor#flows (self) on <self:Object(FlowVisitor)> */
653 var3
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:Object(FlowVisitor)> */
654 if (unlikely(var3
== NULL
)) {
655 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
656 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 77);
666 /* method flow#FlowVisitor#make_sub_flow for (self: FlowVisitor): FlowContext */
667 val
* flow__FlowVisitor__make_sub_flow(val
* self
) {
668 val
* var
/* : FlowContext */;
669 val
* var1
/* : FlowContext */;
670 val
* var_flow
/* var flow: FlowContext */;
671 val
* var2
/* : Array[FlowContext] */;
672 val
* var4
/* : Array[FlowContext] */;
673 val
* var5
/* : nullable ANode */;
674 val
* var7
/* : nullable ANode */;
675 val
* var9
/* : FlowContext */;
676 val
* var11
/* : FlowContext */;
677 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
679 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:FlowContext>*/;
683 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
684 var4
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
685 if (unlikely(var4
== NULL
)) {
686 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
687 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 77);
695 array__Array__add(var2
, var_flow
); /* Direct call array#Array#add on <var2:Array[FlowContext]>*/
698 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
699 var7
= self
->attrs
[COLOR_parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
705 { /* Inline flow#FlowContext#node= (var_flow,var5) on <var_flow:FlowContext> */
706 var_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var5
; /* _node on <var_flow:FlowContext> */
711 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
712 var11
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
713 if (unlikely(var11
== NULL
)) {
714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
715 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
723 flow__FlowContext__add_previous(var_flow
, var9
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
726 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
727 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
736 /* method flow#FlowVisitor#make_sub_flow for (self: Object): FlowContext */
737 val
* VIRTUAL_flow__FlowVisitor__make_sub_flow(val
* self
) {
738 val
* var
/* : FlowContext */;
739 val
* var1
/* : FlowContext */;
740 var1
= flow__FlowVisitor__make_sub_flow(self
);
745 /* method flow#FlowVisitor#make_merge_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
746 val
* flow__FlowVisitor__make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
747 val
* var
/* : FlowContext */;
748 val
* var_flow1
/* var flow1: FlowContext */;
749 val
* var_flow2
/* var flow2: FlowContext */;
750 val
* var1
/* : FlowContext */;
751 val
* var_flow
/* var flow: FlowContext */;
752 val
* var2
/* : Array[FlowContext] */;
753 val
* var4
/* : Array[FlowContext] */;
754 val
* var5
/* : nullable ANode */;
755 val
* var7
/* : nullable ANode */;
758 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
760 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:FlowContext>*/;
764 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
765 var4
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
766 if (unlikely(var4
== NULL
)) {
767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
768 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 77);
776 array__Array__add(var2
, var_flow
); /* Direct call array#Array#add on <var2:Array[FlowContext]>*/
779 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
780 var7
= self
->attrs
[COLOR_parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
786 { /* Inline flow#FlowContext#node= (var_flow,var5) on <var_flow:FlowContext> */
787 var_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var5
; /* _node on <var_flow:FlowContext> */
792 flow__FlowContext__add_previous(var_flow
, var_flow1
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
795 flow__FlowContext__add_previous(var_flow
, var_flow2
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
798 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
799 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
808 /* method flow#FlowVisitor#make_merge_flow for (self: Object, FlowContext, FlowContext): FlowContext */
809 val
* VIRTUAL_flow__FlowVisitor__make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
810 val
* var
/* : FlowContext */;
811 val
* var1
/* : FlowContext */;
812 var1
= flow__FlowVisitor__make_merge_flow(self
, p0
, p1
);
817 /* method flow#FlowVisitor#make_true_false_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
818 val
* flow__FlowVisitor__make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
819 val
* var
/* : FlowContext */;
820 val
* var_true_flow
/* var true_flow: FlowContext */;
821 val
* var_false_flow
/* var false_flow: FlowContext */;
822 val
* var1
/* : FlowContext */;
823 val
* var_flow
/* var flow: FlowContext */;
824 val
* var2
/* : Array[FlowContext] */;
825 val
* var4
/* : Array[FlowContext] */;
826 val
* var5
/* : nullable ANode */;
827 val
* var7
/* : nullable ANode */;
830 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
832 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:FlowContext>*/;
836 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
837 var4
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
838 if (unlikely(var4
== NULL
)) {
839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
840 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 77);
848 array__Array__add(var2
, var_flow
); /* Direct call array#Array#add on <var2:Array[FlowContext]>*/
851 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
852 var7
= self
->attrs
[COLOR_parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
858 { /* Inline flow#FlowContext#node= (var_flow,var5) on <var_flow:FlowContext> */
859 var_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var5
; /* _node on <var_flow:FlowContext> */
864 flow__FlowContext__add_previous(var_flow
, var_true_flow
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
867 flow__FlowContext__add_previous(var_flow
, var_false_flow
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
870 { /* Inline flow#FlowContext#when_true= (var_flow,var_true_flow) on <var_flow:FlowContext> */
871 var_flow
->attrs
[COLOR_flow__FlowContext___when_true
].val
= var_true_flow
; /* _when_true on <var_flow:FlowContext> */
876 { /* Inline flow#FlowContext#when_false= (var_flow,var_false_flow) on <var_flow:FlowContext> */
877 var_flow
->attrs
[COLOR_flow__FlowContext___when_false
].val
= var_false_flow
; /* _when_false on <var_flow:FlowContext> */
882 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
883 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
892 /* method flow#FlowVisitor#make_true_false_flow for (self: Object, FlowContext, FlowContext): FlowContext */
893 val
* VIRTUAL_flow__FlowVisitor__make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
894 val
* var
/* : FlowContext */;
895 val
* var1
/* : FlowContext */;
896 var1
= flow__FlowVisitor__make_true_false_flow(self
, p0
, p1
);
901 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: FlowVisitor): FlowContext */
902 val
* flow__FlowVisitor__make_sub_true_false_flow(val
* self
) {
903 val
* var
/* : FlowContext */;
904 val
* var1
/* : FlowContext */;
905 val
* var3
/* : FlowContext */;
906 val
* var_orig_flow
/* var orig_flow: FlowContext */;
907 val
* var4
/* : FlowContext */;
908 val
* var_true_flow
/* var true_flow: FlowContext */;
909 val
* var5
/* : Array[FlowContext] */;
910 val
* var7
/* : Array[FlowContext] */;
911 val
* var8
/* : nullable ANode */;
912 val
* var10
/* : nullable ANode */;
914 val
* var12
/* : String */;
915 char* var13
/* : NativeString */;
916 long var14
/* : Int */;
917 val
* var15
/* : FlatString */;
918 val
* var17
/* : FlowContext */;
919 val
* var_false_flow
/* var false_flow: FlowContext */;
920 val
* var18
/* : Array[FlowContext] */;
921 val
* var20
/* : Array[FlowContext] */;
922 val
* var21
/* : nullable ANode */;
923 val
* var23
/* : nullable ANode */;
924 static val
* varonce25
;
925 val
* var26
/* : String */;
926 char* var27
/* : NativeString */;
927 long var28
/* : Int */;
928 val
* var29
/* : FlatString */;
929 val
* var31
/* : FlowContext */;
931 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
932 var3
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
933 if (unlikely(var3
== NULL
)) {
934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
935 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
942 var_orig_flow
= var1
;
943 var4
= NEW_flow__FlowContext(&type_flow__FlowContext
);
945 ((void (*)(val
*))(var4
->class->vft
[COLOR_kernel__Object__init
]))(var4
) /* init on <var4:FlowContext>*/;
947 var_true_flow
= var4
;
949 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
950 var7
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
951 if (unlikely(var7
== NULL
)) {
952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
953 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 77);
961 array__Array__add(var5
, var_true_flow
); /* Direct call array#Array#add on <var5:Array[FlowContext]>*/
964 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
965 var10
= self
->attrs
[COLOR_parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
971 { /* Inline flow#FlowContext#node= (var_true_flow,var8) on <var_true_flow:FlowContext> */
972 var_true_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var8
; /* _node on <var_true_flow:FlowContext> */
977 flow__FlowContext__add_previous(var_true_flow
, var_orig_flow
); /* Direct call flow#FlowContext#add_previous on <var_true_flow:FlowContext>*/
984 var15
= string__NativeString__to_s_with_length(var13
, var14
);
989 { /* Inline flow#FlowContext#name= (var_true_flow,var12) on <var_true_flow:FlowContext> */
990 var_true_flow
->attrs
[COLOR_flow__FlowContext___name
].val
= var12
; /* _name on <var_true_flow:FlowContext> */
994 var17
= NEW_flow__FlowContext(&type_flow__FlowContext
);
996 ((void (*)(val
*))(var17
->class->vft
[COLOR_kernel__Object__init
]))(var17
) /* init on <var17:FlowContext>*/;
998 var_false_flow
= var17
;
1000 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
1001 var20
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
1002 if (unlikely(var20
== NULL
)) {
1003 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
1004 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 77);
1008 RET_LABEL19
:(void)0;
1012 array__Array__add(var18
, var_false_flow
); /* Direct call array#Array#add on <var18:Array[FlowContext]>*/
1015 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
1016 var23
= self
->attrs
[COLOR_parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
1018 RET_LABEL22
:(void)0;
1022 { /* Inline flow#FlowContext#node= (var_false_flow,var21) on <var_false_flow:FlowContext> */
1023 var_false_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var21
; /* _node on <var_false_flow:FlowContext> */
1024 RET_LABEL24
:(void)0;
1028 flow__FlowContext__add_previous(var_false_flow
, var_orig_flow
); /* Direct call flow#FlowContext#add_previous on <var_false_flow:FlowContext>*/
1035 var29
= string__NativeString__to_s_with_length(var27
, var28
);
1040 { /* Inline flow#FlowContext#name= (var_false_flow,var26) on <var_false_flow:FlowContext> */
1041 var_false_flow
->attrs
[COLOR_flow__FlowContext___name
].val
= var26
; /* _name on <var_false_flow:FlowContext> */
1042 RET_LABEL30
:(void)0;
1046 var31
= flow__FlowVisitor__make_true_false_flow(self
, var_true_flow
, var_false_flow
);
1053 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: Object): FlowContext */
1054 val
* VIRTUAL_flow__FlowVisitor__make_sub_true_false_flow(val
* self
) {
1055 val
* var
/* : FlowContext */;
1056 val
* var1
/* : FlowContext */;
1057 var1
= flow__FlowVisitor__make_sub_true_false_flow(self
);
1062 /* method flow#FlowVisitor#make_unreachable_flow for (self: FlowVisitor): FlowContext */
1063 val
* flow__FlowVisitor__make_unreachable_flow(val
* self
) {
1064 val
* var
/* : FlowContext */;
1065 val
* var1
/* : FlowContext */;
1066 val
* var_flow
/* var flow: FlowContext */;
1067 val
* var2
/* : Array[FlowContext] */;
1068 val
* var4
/* : Array[FlowContext] */;
1069 val
* var5
/* : nullable ANode */;
1070 val
* var7
/* : nullable ANode */;
1071 val
* var9
/* : FlowContext */;
1072 val
* var11
/* : FlowContext */;
1073 short int var12
/* : Bool */;
1074 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
1076 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:FlowContext>*/;
1080 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
1081 var4
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
1082 if (unlikely(var4
== NULL
)) {
1083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
1084 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 77);
1092 array__Array__add(var2
, var_flow
); /* Direct call array#Array#add on <var2:Array[FlowContext]>*/
1095 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
1096 var7
= self
->attrs
[COLOR_parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
1102 { /* Inline flow#FlowContext#node= (var_flow,var5) on <var_flow:FlowContext> */
1103 var_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var5
; /* _node on <var_flow:FlowContext> */
1108 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
1109 var11
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
1110 if (unlikely(var11
== NULL
)) {
1111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1112 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
1116 RET_LABEL10
:(void)0;
1120 flow__FlowContext__add_previous(var_flow
, var9
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
1124 { /* Inline flow#FlowContext#is_marked_unreachable= (var_flow,var12) on <var_flow:FlowContext> */
1125 var_flow
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
= var12
; /* _is_marked_unreachable on <var_flow:FlowContext> */
1126 RET_LABEL13
:(void)0;
1130 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
1131 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
1132 RET_LABEL14
:(void)0;
1140 /* method flow#FlowVisitor#make_unreachable_flow for (self: Object): FlowContext */
1141 val
* VIRTUAL_flow__FlowVisitor__make_unreachable_flow(val
* self
) {
1142 val
* var
/* : FlowContext */;
1143 val
* var1
/* : FlowContext */;
1144 var1
= flow__FlowVisitor__make_unreachable_flow(self
);
1149 /* method flow#FlowVisitor#merge_continues_to for (self: FlowVisitor, FlowContext, nullable EscapeMark) */
1150 void flow__FlowVisitor__merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
1151 val
* var_before_loop
/* var before_loop: FlowContext */;
1152 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1153 val
* var
/* : null */;
1154 short int var1
/* : Bool */;
1155 short int var2
/* : Bool */;
1156 val
* var_other
/* var other: nullable Object */;
1157 short int var4
/* : Bool */;
1158 short int var6
/* : Bool */;
1159 val
* var7
/* : Array[AEscapeExpr] */;
1160 val
* var9
/* : Array[AEscapeExpr] */;
1161 val
* var_
/* var : Array[AEscapeExpr] */;
1162 val
* var10
/* : ArrayIterator[nullable Object] */;
1163 val
* var_11
/* var : ArrayIterator[AEscapeExpr] */;
1164 short int var12
/* : Bool */;
1165 val
* var13
/* : nullable Object */;
1166 val
* var_b
/* var b: AEscapeExpr */;
1167 val
* var14
/* : nullable FlowContext */;
1168 val
* var_before
/* var before: nullable FlowContext */;
1169 val
* var15
/* : null */;
1170 short int var16
/* : Bool */;
1171 short int var17
/* : Bool */;
1172 short int var19
/* : Bool */;
1173 short int var21
/* : Bool */;
1174 var_before_loop
= p0
;
1175 var_escapemark
= p1
;
1177 if (var_escapemark
== NULL
) {
1178 var1
= 1; /* is null */
1180 var1
= 0; /* arg is null but recv is not */
1183 { /* Inline kernel#Object#== (var_escapemark,var) on <var_escapemark:nullable EscapeMark> */
1186 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1187 var6
= var_escapemark
== var_other
;
1204 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1205 var9
= var_escapemark
->attrs
[COLOR_scope__EscapeMark___escapes
].val
; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1206 if (unlikely(var9
== NULL
)) {
1207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
1208 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 57);
1217 var10
= array__AbstractArrayRead__iterator(var_
);
1222 var12
= array__ArrayIterator__is_ok(var_11
);
1226 var13
= array__ArrayIterator__item(var_11
);
1230 var14
= flow__AEscapeExpr__before_flow_context(var_b
);
1234 if (var_before
== NULL
) {
1235 var16
= 1; /* is null */
1237 var16
= 0; /* arg is null but recv is not */
1240 { /* Inline kernel#Object#== (var_before,var15) on <var_before:nullable FlowContext> */
1243 { /* Inline kernel#Object#is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1244 var21
= var_before
== var_other
;
1247 RET_LABEL20
:(void)0;
1252 RET_LABEL18
:(void)0;
1261 flow__FlowContext__add_loop(var_before_loop
, var_before
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
1263 BREAK_label
: (void)0;
1265 array__ArrayIterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[AEscapeExpr]>*/
1271 BREAK_label22
: (void)0;
1273 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[AEscapeExpr]> */
1274 RET_LABEL23
:(void)0;
1279 /* method flow#FlowVisitor#merge_continues_to for (self: Object, FlowContext, nullable EscapeMark) */
1280 void VIRTUAL_flow__FlowVisitor__merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
1281 flow__FlowVisitor__merge_continues_to(self
, p0
, p1
); /* Direct call flow#FlowVisitor#merge_continues_to on <self:Object(FlowVisitor)>*/
1284 /* method flow#FlowVisitor#merge_breaks for (self: FlowVisitor, nullable EscapeMark) */
1285 void flow__FlowVisitor__merge_breaks(val
* self
, val
* p0
) {
1286 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1287 val
* var
/* : null */;
1288 short int var1
/* : Bool */;
1289 short int var2
/* : Bool */;
1290 val
* var_other
/* var other: nullable Object */;
1291 short int var4
/* : Bool */;
1292 short int var6
/* : Bool */;
1293 val
* var7
/* : Array[AEscapeExpr] */;
1294 val
* var9
/* : Array[AEscapeExpr] */;
1295 val
* var_
/* var : Array[AEscapeExpr] */;
1296 val
* var10
/* : ArrayIterator[nullable Object] */;
1297 val
* var_11
/* var : ArrayIterator[AEscapeExpr] */;
1298 short int var12
/* : Bool */;
1299 val
* var13
/* : nullable Object */;
1300 val
* var_b
/* var b: AEscapeExpr */;
1301 val
* var14
/* : nullable FlowContext */;
1302 val
* var_before
/* var before: nullable FlowContext */;
1303 val
* var15
/* : null */;
1304 short int var16
/* : Bool */;
1305 short int var17
/* : Bool */;
1306 short int var19
/* : Bool */;
1307 short int var21
/* : Bool */;
1308 val
* var22
/* : FlowContext */;
1309 val
* var24
/* : FlowContext */;
1310 val
* var25
/* : FlowContext */;
1311 var_escapemark
= p0
;
1313 if (var_escapemark
== NULL
) {
1314 var1
= 1; /* is null */
1316 var1
= 0; /* arg is null but recv is not */
1319 { /* Inline kernel#Object#== (var_escapemark,var) on <var_escapemark:nullable EscapeMark> */
1322 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1323 var6
= var_escapemark
== var_other
;
1340 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1341 var9
= var_escapemark
->attrs
[COLOR_scope__EscapeMark___escapes
].val
; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1342 if (unlikely(var9
== NULL
)) {
1343 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
1344 PRINT_ERROR(" (%s:%d)\n", "semantize/scope.nit", 57);
1353 var10
= array__AbstractArrayRead__iterator(var_
);
1358 var12
= array__ArrayIterator__is_ok(var_11
);
1362 var13
= array__ArrayIterator__item(var_11
);
1366 var14
= flow__AEscapeExpr__before_flow_context(var_b
);
1370 if (var_before
== NULL
) {
1371 var16
= 1; /* is null */
1373 var16
= 0; /* arg is null but recv is not */
1376 { /* Inline kernel#Object#== (var_before,var15) on <var_before:nullable FlowContext> */
1379 { /* Inline kernel#Object#is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1380 var21
= var_before
== var_other
;
1383 RET_LABEL20
:(void)0;
1388 RET_LABEL18
:(void)0;
1397 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
1398 var24
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
1399 if (unlikely(var24
== NULL
)) {
1400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1401 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
1405 RET_LABEL23
:(void)0;
1409 var25
= flow__FlowVisitor__make_merge_flow(self
, var22
, var_before
);
1411 BREAK_label
: (void)0;
1413 array__ArrayIterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[AEscapeExpr]>*/
1419 BREAK_label26
: (void)0;
1421 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[AEscapeExpr]> */
1422 RET_LABEL27
:(void)0;
1427 /* method flow#FlowVisitor#merge_breaks for (self: Object, nullable EscapeMark) */
1428 void VIRTUAL_flow__FlowVisitor__merge_breaks(val
* self
, val
* p0
) {
1429 flow__FlowVisitor__merge_breaks(self
, p0
); /* Direct call flow#FlowVisitor#merge_breaks on <self:Object(FlowVisitor)>*/
1432 /* method flow#FlowContext#previous for (self: FlowContext): Array[FlowContext] */
1433 val
* flow__FlowContext__previous(val
* self
) {
1434 val
* var
/* : Array[FlowContext] */;
1435 val
* var1
/* : Array[FlowContext] */;
1436 var1
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1437 if (unlikely(var1
== NULL
)) {
1438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1439 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 189);
1446 /* method flow#FlowContext#previous for (self: Object): Array[FlowContext] */
1447 val
* VIRTUAL_flow__FlowContext__previous(val
* self
) {
1448 val
* var
/* : Array[FlowContext] */;
1449 val
* var1
/* : Array[FlowContext] */;
1450 val
* var3
/* : Array[FlowContext] */;
1451 { /* Inline flow#FlowContext#previous (self) on <self:Object(FlowContext)> */
1452 var3
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:Object(FlowContext)> */
1453 if (unlikely(var3
== NULL
)) {
1454 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1455 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 189);
1465 /* method flow#FlowContext#loops for (self: FlowContext): Array[FlowContext] */
1466 val
* flow__FlowContext__loops(val
* self
) {
1467 val
* var
/* : Array[FlowContext] */;
1468 val
* var1
/* : Array[FlowContext] */;
1469 var1
= self
->attrs
[COLOR_flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1470 if (unlikely(var1
== NULL
)) {
1471 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1472 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 192);
1479 /* method flow#FlowContext#loops for (self: Object): Array[FlowContext] */
1480 val
* VIRTUAL_flow__FlowContext__loops(val
* self
) {
1481 val
* var
/* : Array[FlowContext] */;
1482 val
* var1
/* : Array[FlowContext] */;
1483 val
* var3
/* : Array[FlowContext] */;
1484 { /* Inline flow#FlowContext#loops (self) on <self:Object(FlowContext)> */
1485 var3
= self
->attrs
[COLOR_flow__FlowContext___loops
].val
; /* _loops on <self:Object(FlowContext)> */
1486 if (unlikely(var3
== NULL
)) {
1487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1488 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 192);
1498 /* method flow#FlowContext#is_marked_unreachable for (self: FlowContext): Bool */
1499 short int flow__FlowContext__is_marked_unreachable(val
* self
) {
1500 short int var
/* : Bool */;
1501 short int var1
/* : Bool */;
1502 var1
= self
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1507 /* method flow#FlowContext#is_marked_unreachable for (self: Object): Bool */
1508 short int VIRTUAL_flow__FlowContext__is_marked_unreachable(val
* self
) {
1509 short int var
/* : Bool */;
1510 short int var1
/* : Bool */;
1511 short int var3
/* : Bool */;
1512 { /* Inline flow#FlowContext#is_marked_unreachable (self) on <self:Object(FlowContext)> */
1513 var3
= self
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:Object(FlowContext)> */
1521 /* method flow#FlowContext#is_marked_unreachable= for (self: FlowContext, Bool) */
1522 void flow__FlowContext__is_marked_unreachable_61d(val
* self
, short int p0
) {
1523 self
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
= p0
; /* _is_marked_unreachable on <self:FlowContext> */
1526 /* method flow#FlowContext#is_marked_unreachable= for (self: Object, Bool) */
1527 void VIRTUAL_flow__FlowContext__is_marked_unreachable_61d(val
* self
, short int p0
) {
1528 { /* Inline flow#FlowContext#is_marked_unreachable= (self,p0) on <self:Object(FlowContext)> */
1529 self
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
= p0
; /* _is_marked_unreachable on <self:Object(FlowContext)> */
1534 /* method flow#FlowContext#is_unreachable for (self: FlowContext): Bool */
1535 short int flow__FlowContext__is_unreachable(val
* self
) {
1536 short int var
/* : Bool */;
1537 short int var1
/* : Bool */;
1538 short int var3
/* : Bool */;
1539 short int var4
/* : Bool */;
1540 short int var5
/* : Bool */;
1541 short int var7
/* : Bool */;
1542 short int var8
/* : Bool */;
1543 val
* var9
/* : Array[FlowContext] */;
1544 val
* var11
/* : Array[FlowContext] */;
1545 long var12
/* : Int */;
1546 long var14
/* : Int */;
1547 long var15
/* : Int */;
1548 short int var16
/* : Bool */;
1549 short int var17
/* : Bool */;
1550 short int var19
/* : Bool */;
1551 short int var20
/* : Bool */;
1552 short int var21
/* : Bool */;
1554 { /* Inline flow#FlowContext#is_marked_unreachable (self) on <self:FlowContext> */
1555 var3
= self
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1567 { /* Inline flow#FlowContext#is_start (self) on <self:FlowContext> */
1568 var7
= self
->attrs
[COLOR_flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1580 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1581 var11
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1582 if (unlikely(var11
== NULL
)) {
1583 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1584 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 189);
1588 RET_LABEL10
:(void)0;
1592 { /* Inline array#AbstractArrayRead#length (var9) on <var9:Array[FlowContext]> */
1593 var14
= var9
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var9:Array[FlowContext]> */
1595 RET_LABEL13
:(void)0;
1600 { /* Inline kernel#Int#== (var12,var15) on <var12:Int> */
1601 var19
= var12
== var15
;
1604 RET_LABEL18
:(void)0;
1620 /* method flow#FlowContext#is_unreachable for (self: Object): Bool */
1621 short int VIRTUAL_flow__FlowContext__is_unreachable(val
* self
) {
1622 short int var
/* : Bool */;
1623 short int var1
/* : Bool */;
1624 var1
= flow__FlowContext__is_unreachable(self
);
1629 /* method flow#FlowContext#is_already_unreachable for (self: FlowContext): Bool */
1630 short int flow__FlowContext__is_already_unreachable(val
* self
) {
1631 short int var
/* : Bool */;
1632 short int var1
/* : Bool */;
1633 var1
= self
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <self:FlowContext> */
1638 /* method flow#FlowContext#is_already_unreachable for (self: Object): Bool */
1639 short int VIRTUAL_flow__FlowContext__is_already_unreachable(val
* self
) {
1640 short int var
/* : Bool */;
1641 short int var1
/* : Bool */;
1642 short int var3
/* : Bool */;
1643 { /* Inline flow#FlowContext#is_already_unreachable (self) on <self:Object(FlowContext)> */
1644 var3
= self
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <self:Object(FlowContext)> */
1652 /* method flow#FlowContext#is_already_unreachable= for (self: FlowContext, Bool) */
1653 void flow__FlowContext__is_already_unreachable_61d(val
* self
, short int p0
) {
1654 self
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
= p0
; /* _is_already_unreachable on <self:FlowContext> */
1657 /* method flow#FlowContext#is_already_unreachable= for (self: Object, Bool) */
1658 void VIRTUAL_flow__FlowContext__is_already_unreachable_61d(val
* self
, short int p0
) {
1659 { /* Inline flow#FlowContext#is_already_unreachable= (self,p0) on <self:Object(FlowContext)> */
1660 self
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
= p0
; /* _is_already_unreachable on <self:Object(FlowContext)> */
1665 /* method flow#FlowContext#is_start for (self: FlowContext): Bool */
1666 short int flow__FlowContext__is_start(val
* self
) {
1667 short int var
/* : Bool */;
1668 short int var1
/* : Bool */;
1669 var1
= self
->attrs
[COLOR_flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1674 /* method flow#FlowContext#is_start for (self: Object): Bool */
1675 short int VIRTUAL_flow__FlowContext__is_start(val
* self
) {
1676 short int var
/* : Bool */;
1677 short int var1
/* : Bool */;
1678 short int var3
/* : Bool */;
1679 { /* Inline flow#FlowContext#is_start (self) on <self:Object(FlowContext)> */
1680 var3
= self
->attrs
[COLOR_flow__FlowContext___is_start
].s
; /* _is_start on <self:Object(FlowContext)> */
1688 /* method flow#FlowContext#is_start= for (self: FlowContext, Bool) */
1689 void flow__FlowContext__is_start_61d(val
* self
, short int p0
) {
1690 self
->attrs
[COLOR_flow__FlowContext___is_start
].s
= p0
; /* _is_start on <self:FlowContext> */
1693 /* method flow#FlowContext#is_start= for (self: Object, Bool) */
1694 void VIRTUAL_flow__FlowContext__is_start_61d(val
* self
, short int p0
) {
1695 { /* Inline flow#FlowContext#is_start= (self,p0) on <self:Object(FlowContext)> */
1696 self
->attrs
[COLOR_flow__FlowContext___is_start
].s
= p0
; /* _is_start on <self:Object(FlowContext)> */
1701 /* method flow#FlowContext#node for (self: FlowContext): nullable ANode */
1702 val
* flow__FlowContext__node(val
* self
) {
1703 val
* var
/* : nullable ANode */;
1704 val
* var1
/* : nullable ANode */;
1705 var1
= self
->attrs
[COLOR_flow__FlowContext___node
].val
; /* _node on <self:FlowContext> */
1710 /* method flow#FlowContext#node for (self: Object): nullable ANode */
1711 val
* VIRTUAL_flow__FlowContext__node(val
* self
) {
1712 val
* var
/* : nullable ANode */;
1713 val
* var1
/* : nullable ANode */;
1714 val
* var3
/* : nullable ANode */;
1715 { /* Inline flow#FlowContext#node (self) on <self:Object(FlowContext)> */
1716 var3
= self
->attrs
[COLOR_flow__FlowContext___node
].val
; /* _node on <self:Object(FlowContext)> */
1724 /* method flow#FlowContext#node= for (self: FlowContext, nullable ANode) */
1725 void flow__FlowContext__node_61d(val
* self
, val
* p0
) {
1726 self
->attrs
[COLOR_flow__FlowContext___node
].val
= p0
; /* _node on <self:FlowContext> */
1729 /* method flow#FlowContext#node= for (self: Object, nullable ANode) */
1730 void VIRTUAL_flow__FlowContext__node_61d(val
* self
, val
* p0
) {
1731 { /* Inline flow#FlowContext#node= (self,p0) on <self:Object(FlowContext)> */
1732 self
->attrs
[COLOR_flow__FlowContext___node
].val
= p0
; /* _node on <self:Object(FlowContext)> */
1737 /* method flow#FlowContext#name= for (self: FlowContext, String) */
1738 void flow__FlowContext__name_61d(val
* self
, val
* p0
) {
1739 self
->attrs
[COLOR_flow__FlowContext___name
].val
= p0
; /* _name on <self:FlowContext> */
1742 /* method flow#FlowContext#name= for (self: Object, String) */
1743 void VIRTUAL_flow__FlowContext__name_61d(val
* self
, val
* p0
) {
1744 { /* Inline flow#FlowContext#name= (self,p0) on <self:Object(FlowContext)> */
1745 self
->attrs
[COLOR_flow__FlowContext___name
].val
= p0
; /* _name on <self:Object(FlowContext)> */
1750 /* method flow#FlowContext#when_true for (self: FlowContext): FlowContext */
1751 val
* flow__FlowContext__when_true(val
* self
) {
1752 val
* var
/* : FlowContext */;
1753 val
* var1
/* : FlowContext */;
1754 var1
= self
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <self:FlowContext> */
1755 if (unlikely(var1
== NULL
)) {
1756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1757 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
1764 /* method flow#FlowContext#when_true for (self: Object): FlowContext */
1765 val
* VIRTUAL_flow__FlowContext__when_true(val
* self
) {
1766 val
* var
/* : FlowContext */;
1767 val
* var1
/* : FlowContext */;
1768 val
* var3
/* : FlowContext */;
1769 { /* Inline flow#FlowContext#when_true (self) on <self:Object(FlowContext)> */
1770 var3
= self
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <self:Object(FlowContext)> */
1771 if (unlikely(var3
== NULL
)) {
1772 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1773 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
1783 /* method flow#FlowContext#when_true= for (self: FlowContext, FlowContext) */
1784 void flow__FlowContext__when_true_61d(val
* self
, val
* p0
) {
1785 self
->attrs
[COLOR_flow__FlowContext___when_true
].val
= p0
; /* _when_true on <self:FlowContext> */
1788 /* method flow#FlowContext#when_true= for (self: Object, FlowContext) */
1789 void VIRTUAL_flow__FlowContext__when_true_61d(val
* self
, val
* p0
) {
1790 { /* Inline flow#FlowContext#when_true= (self,p0) on <self:Object(FlowContext)> */
1791 self
->attrs
[COLOR_flow__FlowContext___when_true
].val
= p0
; /* _when_true on <self:Object(FlowContext)> */
1796 /* method flow#FlowContext#when_false for (self: FlowContext): FlowContext */
1797 val
* flow__FlowContext__when_false(val
* self
) {
1798 val
* var
/* : FlowContext */;
1799 val
* var1
/* : FlowContext */;
1800 var1
= self
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <self:FlowContext> */
1801 if (unlikely(var1
== NULL
)) {
1802 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
1803 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
1810 /* method flow#FlowContext#when_false for (self: Object): FlowContext */
1811 val
* VIRTUAL_flow__FlowContext__when_false(val
* self
) {
1812 val
* var
/* : FlowContext */;
1813 val
* var1
/* : FlowContext */;
1814 val
* var3
/* : FlowContext */;
1815 { /* Inline flow#FlowContext#when_false (self) on <self:Object(FlowContext)> */
1816 var3
= self
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <self:Object(FlowContext)> */
1817 if (unlikely(var3
== NULL
)) {
1818 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
1819 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
1829 /* method flow#FlowContext#when_false= for (self: FlowContext, FlowContext) */
1830 void flow__FlowContext__when_false_61d(val
* self
, val
* p0
) {
1831 self
->attrs
[COLOR_flow__FlowContext___when_false
].val
= p0
; /* _when_false on <self:FlowContext> */
1834 /* method flow#FlowContext#when_false= for (self: Object, FlowContext) */
1835 void VIRTUAL_flow__FlowContext__when_false_61d(val
* self
, val
* p0
) {
1836 { /* Inline flow#FlowContext#when_false= (self,p0) on <self:Object(FlowContext)> */
1837 self
->attrs
[COLOR_flow__FlowContext___when_false
].val
= p0
; /* _when_false on <self:Object(FlowContext)> */
1842 /* method flow#FlowContext#add_previous for (self: FlowContext, FlowContext) */
1843 void flow__FlowContext__add_previous(val
* self
, val
* p0
) {
1844 val
* var_flow
/* var flow: FlowContext */;
1845 short int var
/* : Bool */;
1846 short int var1
/* : Bool */;
1847 short int var2
/* : Bool */;
1848 short int var_
/* var : Bool */;
1849 val
* var3
/* : Array[FlowContext] */;
1850 val
* var5
/* : Array[FlowContext] */;
1851 short int var6
/* : Bool */;
1852 short int var7
/* : Bool */;
1853 val
* var8
/* : Array[FlowContext] */;
1854 val
* var10
/* : Array[FlowContext] */;
1857 var1
= flow__FlowContext__is_unreachable(var_flow
);
1863 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1864 var5
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1865 if (unlikely(var5
== NULL
)) {
1866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1867 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 189);
1875 var6
= array__AbstractArrayRead__has(var3
, var_flow
);
1884 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1885 var10
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1886 if (unlikely(var10
== NULL
)) {
1887 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1888 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 189);
1896 array__Array__add(var8
, var_flow
); /* Direct call array#Array#add on <var8:Array[FlowContext]>*/
1902 /* method flow#FlowContext#add_previous for (self: Object, FlowContext) */
1903 void VIRTUAL_flow__FlowContext__add_previous(val
* self
, val
* p0
) {
1904 flow__FlowContext__add_previous(self
, p0
); /* Direct call flow#FlowContext#add_previous on <self:Object(FlowContext)>*/
1907 /* method flow#FlowContext#add_loop for (self: FlowContext, FlowContext) */
1908 void flow__FlowContext__add_loop(val
* self
, val
* p0
) {
1909 val
* var_flow
/* var flow: FlowContext */;
1910 short int var
/* : Bool */;
1911 short int var1
/* : Bool */;
1912 short int var2
/* : Bool */;
1913 short int var_
/* var : Bool */;
1914 val
* var3
/* : Array[FlowContext] */;
1915 val
* var5
/* : Array[FlowContext] */;
1916 short int var6
/* : Bool */;
1917 short int var7
/* : Bool */;
1918 val
* var8
/* : Array[FlowContext] */;
1919 val
* var10
/* : Array[FlowContext] */;
1922 var1
= flow__FlowContext__is_unreachable(var_flow
);
1928 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1929 var5
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1930 if (unlikely(var5
== NULL
)) {
1931 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1932 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 189);
1940 var6
= array__AbstractArrayRead__has(var3
, var_flow
);
1949 { /* Inline flow#FlowContext#loops (self) on <self:FlowContext> */
1950 var10
= self
->attrs
[COLOR_flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1951 if (unlikely(var10
== NULL
)) {
1952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1953 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 192);
1961 array__Array__add(var8
, var_flow
); /* Direct call array#Array#add on <var8:Array[FlowContext]>*/
1967 /* method flow#FlowContext#add_loop for (self: Object, FlowContext) */
1968 void VIRTUAL_flow__FlowContext__add_loop(val
* self
, val
* p0
) {
1969 flow__FlowContext__add_loop(self
, p0
); /* Direct call flow#FlowContext#add_loop on <self:Object(FlowContext)>*/
1972 /* method flow#ANode#accept_flow_visitor for (self: ANode, FlowVisitor) */
1973 void flow__ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1974 val
* var_v
/* var v: FlowVisitor */;
1977 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
1981 /* method flow#ANode#accept_flow_visitor for (self: Object, FlowVisitor) */
1982 void VIRTUAL_flow__ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1983 flow__ANode__accept_flow_visitor(self
, p0
); /* Direct call flow#ANode#accept_flow_visitor on <self:Object(ANode)>*/
1986 /* method flow#APropdef#do_flow for (self: APropdef, ToolContext) */
1987 void flow__APropdef__do_flow(val
* self
, val
* p0
) {
1988 val
* var_toolcontext
/* var toolcontext: ToolContext */;
1989 val
* var
/* : FlowVisitor */;
1990 val
* var_v
/* var v: FlowVisitor */;
1991 var_toolcontext
= p0
;
1992 var
= NEW_flow__FlowVisitor(&type_flow__FlowVisitor
);
1994 flow__FlowVisitor__init(var
, var_toolcontext
); /* Direct call flow#FlowVisitor#init on <var:FlowVisitor>*/
1998 parser_nodes__Visitor__enter_visit(var_v
, self
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2002 /* method flow#APropdef#do_flow for (self: Object, ToolContext) */
2003 void VIRTUAL_flow__APropdef__do_flow(val
* self
, val
* p0
) {
2004 flow__APropdef__do_flow(self
, p0
); /* Direct call flow#APropdef#do_flow on <self:Object(APropdef)>*/
2007 /* method flow#APropdef#before_flow_context= for (self: APropdef, nullable FlowContext) */
2008 void flow__APropdef__before_flow_context_61d(val
* self
, val
* p0
) {
2009 self
->attrs
[COLOR_flow__APropdef___before_flow_context
].val
= p0
; /* _before_flow_context on <self:APropdef> */
2012 /* method flow#APropdef#before_flow_context= for (self: Object, nullable FlowContext) */
2013 void VIRTUAL_flow__APropdef__before_flow_context_61d(val
* self
, val
* p0
) {
2014 { /* Inline flow#APropdef#before_flow_context= (self,p0) on <self:Object(APropdef)> */
2015 self
->attrs
[COLOR_flow__APropdef___before_flow_context
].val
= p0
; /* _before_flow_context on <self:Object(APropdef)> */
2020 /* method flow#APropdef#after_flow_context= for (self: APropdef, nullable FlowContext) */
2021 void flow__APropdef__after_flow_context_61d(val
* self
, val
* p0
) {
2022 self
->attrs
[COLOR_flow__APropdef___after_flow_context
].val
= p0
; /* _after_flow_context on <self:APropdef> */
2025 /* method flow#APropdef#after_flow_context= for (self: Object, nullable FlowContext) */
2026 void VIRTUAL_flow__APropdef__after_flow_context_61d(val
* self
, val
* p0
) {
2027 { /* Inline flow#APropdef#after_flow_context= (self,p0) on <self:Object(APropdef)> */
2028 self
->attrs
[COLOR_flow__APropdef___after_flow_context
].val
= p0
; /* _after_flow_context on <self:Object(APropdef)> */
2033 /* method flow#APropdef#accept_flow_visitor for (self: APropdef, FlowVisitor) */
2034 void flow__APropdef__accept_flow_visitor(val
* self
, val
* p0
) {
2035 val
* var_v
/* var v: FlowVisitor */;
2036 val
* var
/* : FlowContext */;
2037 val
* var2
/* : FlowContext */;
2038 val
* var4
/* : FlowContext */;
2039 val
* var6
/* : FlowContext */;
2042 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2043 var2
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2044 if (unlikely(var2
== NULL
)) {
2045 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2046 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
2054 { /* Inline flow#APropdef#before_flow_context= (self,var) on <self:APropdef> */
2055 self
->attrs
[COLOR_flow__APropdef___before_flow_context
].val
= var
; /* _before_flow_context on <self:APropdef> */
2060 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__APropdef__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:APropdef>*/;
2063 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2064 var6
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2065 if (unlikely(var6
== NULL
)) {
2066 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2067 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
2075 { /* Inline flow#APropdef#after_flow_context= (self,var4) on <self:APropdef> */
2076 self
->attrs
[COLOR_flow__APropdef___after_flow_context
].val
= var4
; /* _after_flow_context on <self:APropdef> */
2082 /* method flow#APropdef#accept_flow_visitor for (self: Object, FlowVisitor) */
2083 void VIRTUAL_flow__APropdef__accept_flow_visitor(val
* self
, val
* p0
) {
2084 flow__APropdef__accept_flow_visitor(self
, p0
); /* Direct call flow#APropdef#accept_flow_visitor on <self:Object(APropdef)>*/
2087 /* method flow#AExpr#after_flow_context for (self: AExpr): nullable FlowContext */
2088 val
* flow__AExpr__after_flow_context(val
* self
) {
2089 val
* var
/* : nullable FlowContext */;
2090 val
* var1
/* : nullable FlowContext */;
2091 var1
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AExpr> */
2096 /* method flow#AExpr#after_flow_context for (self: Object): nullable FlowContext */
2097 val
* VIRTUAL_flow__AExpr__after_flow_context(val
* self
) {
2098 val
* var
/* : nullable FlowContext */;
2099 val
* var1
/* : nullable FlowContext */;
2100 val
* var3
/* : nullable FlowContext */;
2101 { /* Inline flow#AExpr#after_flow_context (self) on <self:Object(AExpr)> */
2102 var3
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:Object(AExpr)> */
2110 /* method flow#AExpr#after_flow_context= for (self: AExpr, nullable FlowContext) */
2111 void flow__AExpr__after_flow_context_61d(val
* self
, val
* p0
) {
2112 self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
= p0
; /* _after_flow_context on <self:AExpr> */
2115 /* method flow#AExpr#after_flow_context= for (self: Object, nullable FlowContext) */
2116 void VIRTUAL_flow__AExpr__after_flow_context_61d(val
* self
, val
* p0
) {
2117 { /* Inline flow#AExpr#after_flow_context= (self,p0) on <self:Object(AExpr)> */
2118 self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
= p0
; /* _after_flow_context on <self:Object(AExpr)> */
2123 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: AVarAssignExpr, FlowVisitor) */
2124 void flow__AVarAssignExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2125 val
* var_v
/* var v: FlowVisitor */;
2126 val
* var
/* : FlowContext */;
2129 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AVarAssignExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AVarAssignExpr>*/;
2132 var
= flow__FlowVisitor__make_sub_flow(var_v
);
2135 { /* Inline flow#AExpr#after_flow_context= (self,var) on <self:AVarAssignExpr> */
2136 self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AVarAssignExpr> */
2142 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2143 void VIRTUAL_flow__AVarAssignExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2144 flow__AVarAssignExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AVarAssignExpr#accept_flow_visitor on <self:Object(AVarAssignExpr)>*/
2147 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: AReassignFormExpr, FlowVisitor) */
2148 void flow__AReassignFormExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2149 val
* var_v
/* var v: FlowVisitor */;
2150 val
* var
/* : FlowContext */;
2153 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AReassignFormExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReassignFormExpr>*/;
2156 var
= flow__FlowVisitor__make_sub_flow(var_v
);
2159 { /* Inline flow#AExpr#after_flow_context= (self,var) on <self:AReassignFormExpr> */
2160 self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AReassignFormExpr> */
2166 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2167 void VIRTUAL_flow__AReassignFormExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2168 flow__AReassignFormExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AReassignFormExpr#accept_flow_visitor on <self:Object(AReassignFormExpr)>*/
2171 /* method flow#ABlockExpr#accept_flow_visitor for (self: ABlockExpr, FlowVisitor) */
2172 void flow__ABlockExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2173 val
* var_v
/* var v: FlowVisitor */;
2174 val
* var
/* : ANodes[AExpr] */;
2175 val
* var2
/* : ANodes[AExpr] */;
2176 val
* var_
/* var : ANodes[AExpr] */;
2177 val
* var3
/* : Iterator[ANode] */;
2178 val
* var_4
/* var : Iterator[AExpr] */;
2179 short int var5
/* : Bool */;
2180 val
* var6
/* : nullable Object */;
2181 val
* var_e
/* var e: AExpr */;
2182 val
* var7
/* : FlowContext */;
2183 val
* var9
/* : FlowContext */;
2184 short int var10
/* : Bool */;
2185 short int var11
/* : Bool */;
2186 val
* var12
/* : FlowContext */;
2187 val
* var14
/* : FlowContext */;
2188 short int var15
/* : Bool */;
2189 short int var17
/* : Bool */;
2190 short int var18
/* : Bool */;
2191 val
* var19
/* : FlowContext */;
2192 val
* var21
/* : FlowContext */;
2193 short int var22
/* : Bool */;
2194 val
* var24
/* : ToolContext */;
2195 val
* var26
/* : ToolContext */;
2196 val
* var27
/* : Location */;
2197 static val
* varonce
;
2198 val
* var28
/* : String */;
2199 char* var29
/* : NativeString */;
2200 long var30
/* : Int */;
2201 val
* var31
/* : FlatString */;
2204 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
2205 var2
= self
->attrs
[COLOR_parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
2206 if (unlikely(var2
== NULL
)) {
2207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2208 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1321);
2217 var3
= parser_nodes__ANodes__iterator(var_
);
2222 var5
= ((short int (*)(val
*))(var_4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_4
) /* is_ok on <var_4:Iterator[AExpr]>*/;
2226 var6
= ((val
* (*)(val
*))(var_4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_4
) /* item on <var_4:Iterator[AExpr]>*/;
2230 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2231 var9
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2232 if (unlikely(var9
== NULL
)) {
2233 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2234 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
2242 var10
= flow__FlowContext__is_unreachable(var7
);
2247 parser_nodes__Visitor__enter_visit(var_v
, var_e
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2251 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2252 var14
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2253 if (unlikely(var14
== NULL
)) {
2254 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2255 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
2259 RET_LABEL13
:(void)0;
2263 { /* Inline flow#FlowContext#is_already_unreachable (var12) on <var12:FlowContext> */
2264 var17
= var12
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <var12:FlowContext> */
2266 RET_LABEL16
:(void)0;
2272 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2273 var21
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2274 if (unlikely(var21
== NULL
)) {
2275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2276 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
2280 RET_LABEL20
:(void)0;
2285 { /* Inline flow#FlowContext#is_already_unreachable= (var19,var22) on <var19:FlowContext> */
2286 var19
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
= var22
; /* _is_already_unreachable on <var19:FlowContext> */
2287 RET_LABEL23
:(void)0;
2291 { /* Inline flow#FlowVisitor#toolcontext (var_v) on <var_v:FlowVisitor> */
2292 var26
= var_v
->attrs
[COLOR_flow__FlowVisitor___toolcontext
].val
; /* _toolcontext on <var_v:FlowVisitor> */
2293 if (unlikely(var26
== NULL
)) {
2294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2295 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 38);
2299 RET_LABEL25
:(void)0;
2303 var27
= parser_nodes__ANode__hot_location(var_e
);
2308 var29
= "Error: unreachable statement.";
2310 var31
= string__NativeString__to_s_with_length(var29
, var30
);
2315 toolcontext__ToolContext__error(var24
, var27
, var28
); /* Direct call toolcontext#ToolContext#error on <var24:ToolContext>*/
2321 ((void (*)(val
*))(var_4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_4
) /* next on <var_4:Iterator[AExpr]>*/;
2327 BREAK_label
: (void)0;
2329 { /* Inline abstract_collection#Iterator#finish (var_4) on <var_4:Iterator[AExpr]> */
2330 RET_LABEL32
:(void)0;
2335 /* method flow#ABlockExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2336 void VIRTUAL_flow__ABlockExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2337 flow__ABlockExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#ABlockExpr#accept_flow_visitor on <self:Object(ABlockExpr)>*/
2340 /* method flow#AReturnExpr#accept_flow_visitor for (self: AReturnExpr, FlowVisitor) */
2341 void flow__AReturnExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2342 val
* var_v
/* var v: FlowVisitor */;
2343 val
* var
/* : FlowContext */;
2346 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AReturnExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReturnExpr>*/;
2349 var
= flow__FlowVisitor__make_unreachable_flow(var_v
);
2353 /* method flow#AReturnExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2354 void VIRTUAL_flow__AReturnExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2355 flow__AReturnExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AReturnExpr#accept_flow_visitor on <self:Object(AReturnExpr)>*/
2358 /* method flow#AEscapeExpr#before_flow_context for (self: AEscapeExpr): nullable FlowContext */
2359 val
* flow__AEscapeExpr__before_flow_context(val
* self
) {
2360 val
* var
/* : nullable FlowContext */;
2361 val
* var1
/* : nullable FlowContext */;
2362 val
* var3
/* : nullable FlowContext */;
2363 val
* var_after
/* var after: nullable FlowContext */;
2364 val
* var4
/* : null */;
2365 short int var5
/* : Bool */;
2366 short int var6
/* : Bool */;
2367 val
* var_other
/* var other: nullable Object */;
2368 short int var8
/* : Bool */;
2369 short int var10
/* : Bool */;
2370 val
* var11
/* : null */;
2371 val
* var12
/* : Array[FlowContext] */;
2372 val
* var14
/* : Array[FlowContext] */;
2373 val
* var15
/* : nullable Object */;
2375 { /* Inline flow#AExpr#after_flow_context (self) on <self:AEscapeExpr> */
2376 var3
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AEscapeExpr> */
2383 if (var_after
== NULL
) {
2384 var5
= 1; /* is null */
2386 var5
= 0; /* arg is null but recv is not */
2389 { /* Inline kernel#Object#== (var_after,var4) on <var_after:nullable FlowContext> */
2392 { /* Inline kernel#Object#is_same_instance (var_after,var_other) on <var_after:nullable FlowContext(FlowContext)> */
2393 var10
= var_after
== var_other
;
2412 { /* Inline flow#FlowContext#previous (var_after) on <var_after:nullable FlowContext(FlowContext)> */
2413 var14
= var_after
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <var_after:nullable FlowContext(FlowContext)> */
2414 if (unlikely(var14
== NULL
)) {
2415 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
2416 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 189);
2420 RET_LABEL13
:(void)0;
2424 var15
= abstract_collection__SequenceRead__first(var12
);
2431 /* method flow#AEscapeExpr#before_flow_context for (self: Object): nullable FlowContext */
2432 val
* VIRTUAL_flow__AEscapeExpr__before_flow_context(val
* self
) {
2433 val
* var
/* : nullable FlowContext */;
2434 val
* var1
/* : nullable FlowContext */;
2435 var1
= flow__AEscapeExpr__before_flow_context(self
);
2440 /* method flow#AEscapeExpr#accept_flow_visitor for (self: AEscapeExpr, FlowVisitor) */
2441 void flow__AEscapeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2442 val
* var_v
/* var v: FlowVisitor */;
2443 val
* var
/* : FlowContext */;
2446 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AEscapeExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AEscapeExpr>*/;
2449 var
= flow__FlowVisitor__make_unreachable_flow(var_v
);
2453 /* method flow#AEscapeExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2454 void VIRTUAL_flow__AEscapeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2455 flow__AEscapeExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AEscapeExpr#accept_flow_visitor on <self:Object(AEscapeExpr)>*/
2458 /* method flow#AAbortExpr#accept_flow_visitor for (self: AAbortExpr, FlowVisitor) */
2459 void flow__AAbortExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2460 val
* var_v
/* var v: FlowVisitor */;
2461 val
* var
/* : FlowContext */;
2464 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AAbortExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AAbortExpr>*/;
2467 var
= flow__FlowVisitor__make_unreachable_flow(var_v
);
2471 /* method flow#AAbortExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2472 void VIRTUAL_flow__AAbortExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2473 flow__AAbortExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AAbortExpr#accept_flow_visitor on <self:Object(AAbortExpr)>*/
2476 /* method flow#ADoExpr#accept_flow_visitor for (self: ADoExpr, FlowVisitor) */
2477 void flow__ADoExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2478 val
* var_v
/* var v: FlowVisitor */;
2479 val
* var
/* : nullable EscapeMark */;
2480 val
* var2
/* : nullable EscapeMark */;
2483 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ADoExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ADoExpr>*/;
2486 { /* Inline scope#ADoExpr#break_mark (self) on <self:ADoExpr> */
2487 var2
= self
->attrs
[COLOR_scope__ADoExpr___break_mark
].val
; /* _break_mark on <self:ADoExpr> */
2493 flow__FlowVisitor__merge_breaks(var_v
, var
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2497 /* method flow#ADoExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2498 void VIRTUAL_flow__ADoExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2499 flow__ADoExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#ADoExpr#accept_flow_visitor on <self:Object(ADoExpr)>*/
2502 /* method flow#AIfExpr#accept_flow_visitor for (self: AIfExpr, FlowVisitor) */
2503 void flow__AIfExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2504 val
* var_v
/* var v: FlowVisitor */;
2505 val
* var
/* : AExpr */;
2506 val
* var2
/* : AExpr */;
2507 val
* var3
/* : FlowContext */;
2508 val
* var_after_expr
/* var after_expr: FlowContext */;
2509 val
* var4
/* : FlowContext */;
2510 val
* var6
/* : FlowContext */;
2511 val
* var8
/* : nullable AExpr */;
2512 val
* var10
/* : nullable AExpr */;
2513 val
* var11
/* : FlowContext */;
2514 val
* var13
/* : FlowContext */;
2515 val
* var_after_then
/* var after_then: FlowContext */;
2516 val
* var14
/* : FlowContext */;
2517 val
* var16
/* : FlowContext */;
2518 val
* var18
/* : nullable AExpr */;
2519 val
* var20
/* : nullable AExpr */;
2520 val
* var21
/* : FlowContext */;
2521 val
* var23
/* : FlowContext */;
2522 val
* var_after_else
/* var after_else: FlowContext */;
2523 val
* var24
/* : FlowContext */;
2526 { /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
2527 var2
= self
->attrs
[COLOR_parser_nodes__AIfExpr___n_expr
].val
; /* _n_expr on <self:AIfExpr> */
2528 if (unlikely(var2
== NULL
)) {
2529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2530 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1387);
2538 var3
= flow__FlowVisitor__visit_expr(var_v
, var
);
2540 var_after_expr
= var3
;
2542 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2543 var6
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2544 if (unlikely(var6
== NULL
)) {
2545 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2546 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
2554 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2555 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2560 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
2561 var10
= self
->attrs
[COLOR_parser_nodes__AIfExpr___n_then
].val
; /* _n_then on <self:AIfExpr> */
2567 parser_nodes__Visitor__enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2570 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2571 var13
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2572 if (unlikely(var13
== NULL
)) {
2573 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2574 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
2578 RET_LABEL12
:(void)0;
2581 var_after_then
= var11
;
2583 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2584 var16
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2585 if (unlikely(var16
== NULL
)) {
2586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2587 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
2591 RET_LABEL15
:(void)0;
2595 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var14) on <var_v:FlowVisitor> */
2596 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var14
; /* _current_flow_context on <var_v:FlowVisitor> */
2597 RET_LABEL17
:(void)0;
2601 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
2602 var20
= self
->attrs
[COLOR_parser_nodes__AIfExpr___n_else
].val
; /* _n_else on <self:AIfExpr> */
2604 RET_LABEL19
:(void)0;
2608 parser_nodes__Visitor__enter_visit(var_v
, var18
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2611 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2612 var23
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2613 if (unlikely(var23
== NULL
)) {
2614 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2615 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
2619 RET_LABEL22
:(void)0;
2622 var_after_else
= var21
;
2624 var24
= flow__FlowVisitor__make_merge_flow(var_v
, var_after_then
, var_after_else
);
2628 /* method flow#AIfExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2629 void VIRTUAL_flow__AIfExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2630 flow__AIfExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AIfExpr#accept_flow_visitor on <self:Object(AIfExpr)>*/
2633 /* method flow#AIfexprExpr#accept_flow_visitor for (self: AIfexprExpr, FlowVisitor) */
2634 void flow__AIfexprExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2635 val
* var_v
/* var v: FlowVisitor */;
2636 val
* var
/* : AExpr */;
2637 val
* var2
/* : AExpr */;
2638 val
* var3
/* : FlowContext */;
2639 val
* var_after_expr
/* var after_expr: FlowContext */;
2640 val
* var4
/* : FlowContext */;
2641 val
* var6
/* : FlowContext */;
2642 val
* var8
/* : AExpr */;
2643 val
* var10
/* : AExpr */;
2644 val
* var11
/* : FlowContext */;
2645 val
* var13
/* : FlowContext */;
2646 val
* var_after_then
/* var after_then: FlowContext */;
2647 val
* var14
/* : FlowContext */;
2648 val
* var16
/* : FlowContext */;
2649 val
* var18
/* : AExpr */;
2650 val
* var20
/* : AExpr */;
2651 val
* var21
/* : FlowContext */;
2652 val
* var23
/* : FlowContext */;
2653 val
* var_after_else
/* var after_else: FlowContext */;
2654 val
* var24
/* : FlowContext */;
2657 { /* Inline parser_nodes#AIfexprExpr#n_expr (self) on <self:AIfexprExpr> */
2658 var2
= self
->attrs
[COLOR_parser_nodes__AIfexprExpr___n_expr
].val
; /* _n_expr on <self:AIfexprExpr> */
2659 if (unlikely(var2
== NULL
)) {
2660 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2661 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1396);
2669 var3
= flow__FlowVisitor__visit_expr(var_v
, var
);
2671 var_after_expr
= var3
;
2673 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2674 var6
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2675 if (unlikely(var6
== NULL
)) {
2676 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2677 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
2685 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2686 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2691 { /* Inline parser_nodes#AIfexprExpr#n_then (self) on <self:AIfexprExpr> */
2692 var10
= self
->attrs
[COLOR_parser_nodes__AIfexprExpr___n_then
].val
; /* _n_then on <self:AIfexprExpr> */
2693 if (unlikely(var10
== NULL
)) {
2694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
2695 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1398);
2703 parser_nodes__Visitor__enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2706 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2707 var13
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2708 if (unlikely(var13
== NULL
)) {
2709 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2710 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
2714 RET_LABEL12
:(void)0;
2717 var_after_then
= var11
;
2719 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2720 var16
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2721 if (unlikely(var16
== NULL
)) {
2722 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2723 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
2727 RET_LABEL15
:(void)0;
2731 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var14) on <var_v:FlowVisitor> */
2732 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var14
; /* _current_flow_context on <var_v:FlowVisitor> */
2733 RET_LABEL17
:(void)0;
2737 { /* Inline parser_nodes#AIfexprExpr#n_else (self) on <self:AIfexprExpr> */
2738 var20
= self
->attrs
[COLOR_parser_nodes__AIfexprExpr___n_else
].val
; /* _n_else on <self:AIfexprExpr> */
2739 if (unlikely(var20
== NULL
)) {
2740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
2741 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1400);
2745 RET_LABEL19
:(void)0;
2749 parser_nodes__Visitor__enter_visit(var_v
, var18
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2752 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2753 var23
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2754 if (unlikely(var23
== NULL
)) {
2755 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2756 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
2760 RET_LABEL22
:(void)0;
2763 var_after_else
= var21
;
2765 var24
= flow__FlowVisitor__make_merge_flow(var_v
, var_after_then
, var_after_else
);
2769 /* method flow#AIfexprExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2770 void VIRTUAL_flow__AIfexprExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2771 flow__AIfexprExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AIfexprExpr#accept_flow_visitor on <self:Object(AIfexprExpr)>*/
2774 /* method flow#AWhileExpr#accept_flow_visitor for (self: AWhileExpr, FlowVisitor) */
2775 void flow__AWhileExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2776 val
* var_v
/* var v: FlowVisitor */;
2777 val
* var
/* : FlowContext */;
2778 val
* var_before_loop
/* var before_loop: FlowContext */;
2779 val
* var1
/* : AExpr */;
2780 val
* var3
/* : AExpr */;
2781 val
* var4
/* : FlowContext */;
2782 val
* var_after_expr
/* var after_expr: FlowContext */;
2783 val
* var5
/* : FlowContext */;
2784 val
* var7
/* : FlowContext */;
2785 val
* var9
/* : nullable AExpr */;
2786 val
* var11
/* : nullable AExpr */;
2787 val
* var12
/* : FlowContext */;
2788 val
* var14
/* : FlowContext */;
2789 val
* var_after_block
/* var after_block: FlowContext */;
2790 val
* var15
/* : nullable EscapeMark */;
2791 val
* var17
/* : nullable EscapeMark */;
2792 val
* var18
/* : FlowContext */;
2793 val
* var20
/* : FlowContext */;
2794 val
* var22
/* : nullable EscapeMark */;
2795 val
* var24
/* : nullable EscapeMark */;
2798 var
= flow__FlowVisitor__make_sub_flow(var_v
);
2800 var_before_loop
= var
;
2802 { /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
2803 var3
= self
->attrs
[COLOR_parser_nodes__AWhileExpr___n_expr
].val
; /* _n_expr on <self:AWhileExpr> */
2804 if (unlikely(var3
== NULL
)) {
2805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2806 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1408);
2814 var4
= flow__FlowVisitor__visit_expr(var_v
, var1
);
2816 var_after_expr
= var4
;
2818 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2819 var7
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2820 if (unlikely(var7
== NULL
)) {
2821 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2822 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
2830 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var5) on <var_v:FlowVisitor> */
2831 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var5
; /* _current_flow_context on <var_v:FlowVisitor> */
2836 { /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
2837 var11
= self
->attrs
[COLOR_parser_nodes__AWhileExpr___n_block
].val
; /* _n_block on <self:AWhileExpr> */
2839 RET_LABEL10
:(void)0;
2843 parser_nodes__Visitor__enter_visit(var_v
, var9
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2846 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2847 var14
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2848 if (unlikely(var14
== NULL
)) {
2849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2850 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
2854 RET_LABEL13
:(void)0;
2857 var_after_block
= var12
;
2859 flow__FlowContext__add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
2862 { /* Inline scope#AWhileExpr#continue_mark (self) on <self:AWhileExpr> */
2863 var17
= self
->attrs
[COLOR_scope__AWhileExpr___continue_mark
].val
; /* _continue_mark on <self:AWhileExpr> */
2865 RET_LABEL16
:(void)0;
2869 flow__FlowVisitor__merge_continues_to(var_v
, var_after_block
, var15
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
2872 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2873 var20
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2874 if (unlikely(var20
== NULL
)) {
2875 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2876 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
2880 RET_LABEL19
:(void)0;
2884 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var18) on <var_v:FlowVisitor> */
2885 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var18
; /* _current_flow_context on <var_v:FlowVisitor> */
2886 RET_LABEL21
:(void)0;
2890 { /* Inline scope#AWhileExpr#break_mark (self) on <self:AWhileExpr> */
2891 var24
= self
->attrs
[COLOR_scope__AWhileExpr___break_mark
].val
; /* _break_mark on <self:AWhileExpr> */
2893 RET_LABEL23
:(void)0;
2897 flow__FlowVisitor__merge_breaks(var_v
, var22
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2901 /* method flow#AWhileExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2902 void VIRTUAL_flow__AWhileExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2903 flow__AWhileExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AWhileExpr#accept_flow_visitor on <self:Object(AWhileExpr)>*/
2906 /* method flow#ALoopExpr#accept_flow_visitor for (self: ALoopExpr, FlowVisitor) */
2907 void flow__ALoopExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2908 val
* var_v
/* var v: FlowVisitor */;
2909 val
* var
/* : FlowContext */;
2910 val
* var_before_loop
/* var before_loop: FlowContext */;
2911 val
* var1
/* : nullable AExpr */;
2912 val
* var3
/* : nullable AExpr */;
2913 val
* var4
/* : FlowContext */;
2914 val
* var6
/* : FlowContext */;
2915 val
* var_after_block
/* var after_block: FlowContext */;
2916 val
* var7
/* : nullable EscapeMark */;
2917 val
* var9
/* : nullable EscapeMark */;
2918 val
* var10
/* : FlowContext */;
2919 val
* var11
/* : nullable EscapeMark */;
2920 val
* var13
/* : nullable EscapeMark */;
2923 var
= flow__FlowVisitor__make_sub_flow(var_v
);
2925 var_before_loop
= var
;
2927 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
2928 var3
= self
->attrs
[COLOR_parser_nodes__ALoopExpr___n_block
].val
; /* _n_block on <self:ALoopExpr> */
2934 parser_nodes__Visitor__enter_visit(var_v
, var1
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2937 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2938 var6
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2939 if (unlikely(var6
== NULL
)) {
2940 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2941 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
2948 var_after_block
= var4
;
2950 flow__FlowContext__add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
2953 { /* Inline scope#ALoopExpr#continue_mark (self) on <self:ALoopExpr> */
2954 var9
= self
->attrs
[COLOR_scope__ALoopExpr___continue_mark
].val
; /* _continue_mark on <self:ALoopExpr> */
2960 flow__FlowVisitor__merge_continues_to(var_v
, var_after_block
, var7
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
2963 var10
= flow__FlowVisitor__make_unreachable_flow(var_v
);
2966 { /* Inline scope#ALoopExpr#break_mark (self) on <self:ALoopExpr> */
2967 var13
= self
->attrs
[COLOR_scope__ALoopExpr___break_mark
].val
; /* _break_mark on <self:ALoopExpr> */
2969 RET_LABEL12
:(void)0;
2973 flow__FlowVisitor__merge_breaks(var_v
, var11
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2977 /* method flow#ALoopExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2978 void VIRTUAL_flow__ALoopExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2979 flow__ALoopExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#ALoopExpr#accept_flow_visitor on <self:Object(ALoopExpr)>*/
2982 /* method flow#AForExpr#accept_flow_visitor for (self: AForExpr, FlowVisitor) */
2983 void flow__AForExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2984 val
* var_v
/* var v: FlowVisitor */;
2985 val
* var
/* : AExpr */;
2986 val
* var2
/* : AExpr */;
2987 val
* var3
/* : FlowContext */;
2988 val
* var_before_loop
/* var before_loop: FlowContext */;
2989 val
* var4
/* : nullable AExpr */;
2990 val
* var6
/* : nullable AExpr */;
2991 val
* var7
/* : FlowContext */;
2992 val
* var9
/* : FlowContext */;
2993 val
* var_after_block
/* var after_block: FlowContext */;
2994 val
* var10
/* : nullable EscapeMark */;
2995 val
* var12
/* : nullable EscapeMark */;
2996 val
* var13
/* : FlowContext */;
2997 val
* var15
/* : FlowContext */;
2998 val
* var16
/* : FlowContext */;
2999 val
* var17
/* : nullable EscapeMark */;
3000 val
* var19
/* : nullable EscapeMark */;
3003 { /* Inline parser_nodes#AForExpr#n_expr (self) on <self:AForExpr> */
3004 var2
= self
->attrs
[COLOR_parser_nodes__AForExpr___n_expr
].val
; /* _n_expr on <self:AForExpr> */
3005 if (unlikely(var2
== NULL
)) {
3006 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3007 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1427);
3015 parser_nodes__Visitor__enter_visit(var_v
, var
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
3018 var3
= flow__FlowVisitor__make_sub_flow(var_v
);
3020 var_before_loop
= var3
;
3022 { /* Inline parser_nodes#AForExpr#n_block (self) on <self:AForExpr> */
3023 var6
= self
->attrs
[COLOR_parser_nodes__AForExpr___n_block
].val
; /* _n_block on <self:AForExpr> */
3029 parser_nodes__Visitor__enter_visit(var_v
, var4
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
3032 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
3033 var9
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
3034 if (unlikely(var9
== NULL
)) {
3035 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
3036 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
3043 var_after_block
= var7
;
3045 flow__FlowContext__add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
3048 { /* Inline scope#AForExpr#continue_mark (self) on <self:AForExpr> */
3049 var12
= self
->attrs
[COLOR_scope__AForExpr___continue_mark
].val
; /* _continue_mark on <self:AForExpr> */
3051 RET_LABEL11
:(void)0;
3055 flow__FlowVisitor__merge_continues_to(var_v
, var_after_block
, var10
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
3058 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
3059 var15
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
3060 if (unlikely(var15
== NULL
)) {
3061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
3062 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 36);
3066 RET_LABEL14
:(void)0;
3070 var16
= flow__FlowVisitor__make_merge_flow(var_v
, var13
, var_before_loop
);
3073 { /* Inline scope#AForExpr#break_mark (self) on <self:AForExpr> */
3074 var19
= self
->attrs
[COLOR_scope__AForExpr___break_mark
].val
; /* _break_mark on <self:AForExpr> */
3076 RET_LABEL18
:(void)0;
3080 flow__FlowVisitor__merge_breaks(var_v
, var17
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
3084 /* method flow#AForExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3085 void VIRTUAL_flow__AForExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3086 flow__AForExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AForExpr#accept_flow_visitor on <self:Object(AForExpr)>*/
3089 /* method flow#AAssertExpr#accept_flow_visitor for (self: AAssertExpr, FlowVisitor) */
3090 void flow__AAssertExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3091 val
* var_v
/* var v: FlowVisitor */;
3092 val
* var
/* : AExpr */;
3093 val
* var2
/* : AExpr */;
3094 val
* var3
/* : FlowContext */;
3095 val
* var_after_expr
/* var after_expr: FlowContext */;
3096 val
* var4
/* : FlowContext */;
3097 val
* var6
/* : FlowContext */;
3098 val
* var8
/* : nullable AExpr */;
3099 val
* var10
/* : nullable AExpr */;
3100 val
* var11
/* : FlowContext */;
3101 val
* var13
/* : FlowContext */;
3104 { /* Inline parser_nodes#AAssertExpr#n_expr (self) on <self:AAssertExpr> */
3105 var2
= self
->attrs
[COLOR_parser_nodes__AAssertExpr___n_expr
].val
; /* _n_expr on <self:AAssertExpr> */
3106 if (unlikely(var2
== NULL
)) {
3107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3108 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1437);
3116 var3
= flow__FlowVisitor__visit_expr(var_v
, var
);
3118 var_after_expr
= var3
;
3120 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3121 var6
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3122 if (unlikely(var6
== NULL
)) {
3123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3124 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
3132 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
3133 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
3138 { /* Inline parser_nodes#AAssertExpr#n_else (self) on <self:AAssertExpr> */
3139 var10
= self
->attrs
[COLOR_parser_nodes__AAssertExpr___n_else
].val
; /* _n_else on <self:AAssertExpr> */
3145 parser_nodes__Visitor__enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
3148 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3149 var13
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3150 if (unlikely(var13
== NULL
)) {
3151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3152 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
3156 RET_LABEL12
:(void)0;
3160 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var11) on <var_v:FlowVisitor> */
3161 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var11
; /* _current_flow_context on <var_v:FlowVisitor> */
3162 RET_LABEL14
:(void)0;
3167 /* method flow#AAssertExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3168 void VIRTUAL_flow__AAssertExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3169 flow__AAssertExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AAssertExpr#accept_flow_visitor on <self:Object(AAssertExpr)>*/
3172 /* method flow#AOrExpr#accept_flow_visitor for (self: AOrExpr, FlowVisitor) */
3173 void flow__AOrExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3174 val
* var_v
/* var v: FlowVisitor */;
3175 val
* var
/* : AExpr */;
3176 val
* var2
/* : AExpr */;
3177 val
* var3
/* : FlowContext */;
3178 val
* var_after_expr
/* var after_expr: FlowContext */;
3179 val
* var4
/* : FlowContext */;
3180 val
* var6
/* : FlowContext */;
3181 val
* var8
/* : AExpr */;
3182 val
* var10
/* : AExpr */;
3183 val
* var11
/* : FlowContext */;
3184 val
* var_after_expr2
/* var after_expr2: FlowContext */;
3185 val
* var12
/* : FlowContext */;
3186 val
* var14
/* : FlowContext */;
3187 val
* var15
/* : FlowContext */;
3188 val
* var17
/* : FlowContext */;
3189 val
* var18
/* : FlowContext */;
3190 val
* var_merge_true
/* var merge_true: FlowContext */;
3191 static val
* varonce
;
3192 val
* var19
/* : String */;
3193 char* var20
/* : NativeString */;
3194 long var21
/* : Int */;
3195 val
* var22
/* : FlatString */;
3196 val
* var24
/* : FlowContext */;
3197 val
* var26
/* : FlowContext */;
3198 val
* var27
/* : FlowContext */;
3201 { /* Inline parser_nodes#AOrExpr#n_expr (self) on <self:AOrExpr> */
3202 var2
= self
->attrs
[COLOR_parser_nodes__AOrExpr___n_expr
].val
; /* _n_expr on <self:AOrExpr> */
3203 if (unlikely(var2
== NULL
)) {
3204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3205 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1486);
3213 var3
= flow__FlowVisitor__visit_expr(var_v
, var
);
3215 var_after_expr
= var3
;
3217 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3218 var6
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3219 if (unlikely(var6
== NULL
)) {
3220 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3221 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
3229 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
3230 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
3235 { /* Inline parser_nodes#AOrExpr#n_expr2 (self) on <self:AOrExpr> */
3236 var10
= self
->attrs
[COLOR_parser_nodes__AOrExpr___n_expr2
].val
; /* _n_expr2 on <self:AOrExpr> */
3237 if (unlikely(var10
== NULL
)) {
3238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3239 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1487);
3247 var11
= flow__FlowVisitor__visit_expr(var_v
, var8
);
3249 var_after_expr2
= var11
;
3251 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3252 var14
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3253 if (unlikely(var14
== NULL
)) {
3254 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3255 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
3259 RET_LABEL13
:(void)0;
3263 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3264 var17
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3265 if (unlikely(var17
== NULL
)) {
3266 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3267 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
3271 RET_LABEL16
:(void)0;
3275 var18
= flow__FlowVisitor__make_merge_flow(var_v
, var12
, var15
);
3277 var_merge_true
= var18
;
3283 var22
= string__NativeString__to_s_with_length(var20
, var21
);
3288 { /* Inline flow#FlowContext#name= (var_merge_true,var19) on <var_merge_true:FlowContext> */
3289 var_merge_true
->attrs
[COLOR_flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_true:FlowContext> */
3290 RET_LABEL23
:(void)0;
3294 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
3295 var26
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
3296 if (unlikely(var26
== NULL
)) {
3297 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3298 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
3302 RET_LABEL25
:(void)0;
3306 var27
= flow__FlowVisitor__make_true_false_flow(var_v
, var_merge_true
, var24
);
3310 /* method flow#AOrExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3311 void VIRTUAL_flow__AOrExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3312 flow__AOrExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AOrExpr#accept_flow_visitor on <self:Object(AOrExpr)>*/
3315 /* method flow#AImpliesExpr#accept_flow_visitor for (self: AImpliesExpr, FlowVisitor) */
3316 void flow__AImpliesExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3317 val
* var_v
/* var v: FlowVisitor */;
3318 val
* var
/* : AExpr */;
3319 val
* var2
/* : AExpr */;
3320 val
* var3
/* : FlowContext */;
3321 val
* var_after_expr
/* var after_expr: FlowContext */;
3322 val
* var4
/* : FlowContext */;
3323 val
* var6
/* : FlowContext */;
3324 val
* var8
/* : AExpr */;
3325 val
* var10
/* : AExpr */;
3326 val
* var11
/* : FlowContext */;
3327 val
* var_after_expr2
/* var after_expr2: FlowContext */;
3328 val
* var12
/* : FlowContext */;
3329 val
* var14
/* : FlowContext */;
3330 val
* var15
/* : FlowContext */;
3331 val
* var17
/* : FlowContext */;
3332 val
* var18
/* : FlowContext */;
3333 val
* var_merge_true
/* var merge_true: FlowContext */;
3334 static val
* varonce
;
3335 val
* var19
/* : String */;
3336 char* var20
/* : NativeString */;
3337 long var21
/* : Int */;
3338 val
* var22
/* : FlatString */;
3339 val
* var24
/* : FlowContext */;
3340 val
* var26
/* : FlowContext */;
3341 val
* var27
/* : FlowContext */;
3344 { /* Inline parser_nodes#AImpliesExpr#n_expr (self) on <self:AImpliesExpr> */
3345 var2
= self
->attrs
[COLOR_parser_nodes__AImpliesExpr___n_expr
].val
; /* _n_expr on <self:AImpliesExpr> */
3346 if (unlikely(var2
== NULL
)) {
3347 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3348 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1507);
3356 var3
= flow__FlowVisitor__visit_expr(var_v
, var
);
3358 var_after_expr
= var3
;
3360 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3361 var6
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3362 if (unlikely(var6
== NULL
)) {
3363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3364 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
3372 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
3373 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
3378 { /* Inline parser_nodes#AImpliesExpr#n_expr2 (self) on <self:AImpliesExpr> */
3379 var10
= self
->attrs
[COLOR_parser_nodes__AImpliesExpr___n_expr2
].val
; /* _n_expr2 on <self:AImpliesExpr> */
3380 if (unlikely(var10
== NULL
)) {
3381 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3382 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1508);
3390 var11
= flow__FlowVisitor__visit_expr(var_v
, var8
);
3392 var_after_expr2
= var11
;
3394 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3395 var14
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3396 if (unlikely(var14
== NULL
)) {
3397 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3398 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
3402 RET_LABEL13
:(void)0;
3406 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3407 var17
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3408 if (unlikely(var17
== NULL
)) {
3409 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3410 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
3414 RET_LABEL16
:(void)0;
3418 var18
= flow__FlowVisitor__make_merge_flow(var_v
, var12
, var15
);
3420 var_merge_true
= var18
;
3426 var22
= string__NativeString__to_s_with_length(var20
, var21
);
3431 { /* Inline flow#FlowContext#name= (var_merge_true,var19) on <var_merge_true:FlowContext> */
3432 var_merge_true
->attrs
[COLOR_flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_true:FlowContext> */
3433 RET_LABEL23
:(void)0;
3437 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
3438 var26
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
3439 if (unlikely(var26
== NULL
)) {
3440 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3441 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
3445 RET_LABEL25
:(void)0;
3449 var27
= flow__FlowVisitor__make_true_false_flow(var_v
, var_merge_true
, var24
);
3453 /* method flow#AImpliesExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3454 void VIRTUAL_flow__AImpliesExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3455 flow__AImpliesExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AImpliesExpr#accept_flow_visitor on <self:Object(AImpliesExpr)>*/
3458 /* method flow#AAndExpr#accept_flow_visitor for (self: AAndExpr, FlowVisitor) */
3459 void flow__AAndExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3460 val
* var_v
/* var v: FlowVisitor */;
3461 val
* var
/* : AExpr */;
3462 val
* var2
/* : AExpr */;
3463 val
* var3
/* : FlowContext */;
3464 val
* var_after_expr
/* var after_expr: FlowContext */;
3465 val
* var4
/* : FlowContext */;
3466 val
* var6
/* : FlowContext */;
3467 val
* var8
/* : AExpr */;
3468 val
* var10
/* : AExpr */;
3469 val
* var11
/* : FlowContext */;
3470 val
* var_after_expr2
/* var after_expr2: FlowContext */;
3471 val
* var12
/* : FlowContext */;
3472 val
* var14
/* : FlowContext */;
3473 val
* var15
/* : FlowContext */;
3474 val
* var17
/* : FlowContext */;
3475 val
* var18
/* : FlowContext */;
3476 val
* var_merge_false
/* var merge_false: FlowContext */;
3477 static val
* varonce
;
3478 val
* var19
/* : String */;
3479 char* var20
/* : NativeString */;
3480 long var21
/* : Int */;
3481 val
* var22
/* : FlatString */;
3482 val
* var24
/* : FlowContext */;
3483 val
* var26
/* : FlowContext */;
3484 val
* var27
/* : FlowContext */;
3487 { /* Inline parser_nodes#AAndExpr#n_expr (self) on <self:AAndExpr> */
3488 var2
= self
->attrs
[COLOR_parser_nodes__AAndExpr___n_expr
].val
; /* _n_expr on <self:AAndExpr> */
3489 if (unlikely(var2
== NULL
)) {
3490 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3491 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1493);
3499 var3
= flow__FlowVisitor__visit_expr(var_v
, var
);
3501 var_after_expr
= var3
;
3503 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3504 var6
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3505 if (unlikely(var6
== NULL
)) {
3506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3507 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
3515 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
3516 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
3521 { /* Inline parser_nodes#AAndExpr#n_expr2 (self) on <self:AAndExpr> */
3522 var10
= self
->attrs
[COLOR_parser_nodes__AAndExpr___n_expr2
].val
; /* _n_expr2 on <self:AAndExpr> */
3523 if (unlikely(var10
== NULL
)) {
3524 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3525 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1494);
3533 var11
= flow__FlowVisitor__visit_expr(var_v
, var8
);
3535 var_after_expr2
= var11
;
3537 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3538 var14
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3539 if (unlikely(var14
== NULL
)) {
3540 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3541 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
3545 RET_LABEL13
:(void)0;
3549 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
3550 var17
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
3551 if (unlikely(var17
== NULL
)) {
3552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3553 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
3557 RET_LABEL16
:(void)0;
3561 var18
= flow__FlowVisitor__make_merge_flow(var_v
, var12
, var15
);
3563 var_merge_false
= var18
;
3567 var20
= "AND FALSE";
3569 var22
= string__NativeString__to_s_with_length(var20
, var21
);
3574 { /* Inline flow#FlowContext#name= (var_merge_false,var19) on <var_merge_false:FlowContext> */
3575 var_merge_false
->attrs
[COLOR_flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_false:FlowContext> */
3576 RET_LABEL23
:(void)0;
3580 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3581 var26
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3582 if (unlikely(var26
== NULL
)) {
3583 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3584 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
3588 RET_LABEL25
:(void)0;
3592 var27
= flow__FlowVisitor__make_true_false_flow(var_v
, var24
, var_merge_false
);
3596 /* method flow#AAndExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3597 void VIRTUAL_flow__AAndExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3598 flow__AAndExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AAndExpr#accept_flow_visitor on <self:Object(AAndExpr)>*/
3601 /* method flow#ANotExpr#accept_flow_visitor for (self: ANotExpr, FlowVisitor) */
3602 void flow__ANotExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3603 val
* var_v
/* var v: FlowVisitor */;
3604 val
* var
/* : AExpr */;
3605 val
* var2
/* : AExpr */;
3606 val
* var3
/* : FlowContext */;
3607 val
* var_after_expr
/* var after_expr: FlowContext */;
3608 val
* var4
/* : FlowContext */;
3609 val
* var6
/* : FlowContext */;
3610 val
* var7
/* : FlowContext */;
3611 val
* var9
/* : FlowContext */;
3612 val
* var10
/* : FlowContext */;
3615 { /* Inline parser_nodes#ANotExpr#n_expr (self) on <self:ANotExpr> */
3616 var2
= self
->attrs
[COLOR_parser_nodes__ANotExpr___n_expr
].val
; /* _n_expr on <self:ANotExpr> */
3617 if (unlikely(var2
== NULL
)) {
3618 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3619 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1515);
3627 var3
= flow__FlowVisitor__visit_expr(var_v
, var
);
3629 var_after_expr
= var3
;
3631 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3632 var6
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3633 if (unlikely(var6
== NULL
)) {
3634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3635 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
3643 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3644 var9
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3645 if (unlikely(var9
== NULL
)) {
3646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3647 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
3655 var10
= flow__FlowVisitor__make_true_false_flow(var_v
, var4
, var7
);
3659 /* method flow#ANotExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3660 void VIRTUAL_flow__ANotExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3661 flow__ANotExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#ANotExpr#accept_flow_visitor on <self:Object(ANotExpr)>*/
3664 /* method flow#AOrElseExpr#accept_flow_visitor for (self: AOrElseExpr, FlowVisitor) */
3665 void flow__AOrElseExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3666 val
* var_v
/* var v: FlowVisitor */;
3669 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AOrElseExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AOrElseExpr>*/;
3673 /* method flow#AOrElseExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3674 void VIRTUAL_flow__AOrElseExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3675 flow__AOrElseExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AOrElseExpr#accept_flow_visitor on <self:Object(AOrElseExpr)>*/
3678 /* method flow#AEqExpr#accept_flow_visitor for (self: AEqExpr, FlowVisitor) */
3679 void flow__AEqExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3680 val
* var_v
/* var v: FlowVisitor */;
3681 val
* var
/* : FlowContext */;
3684 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AEqExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AEqExpr>*/;
3687 var
= flow__FlowVisitor__make_sub_true_false_flow(var_v
);
3691 /* method flow#AEqExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3692 void VIRTUAL_flow__AEqExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3693 flow__AEqExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AEqExpr#accept_flow_visitor on <self:Object(AEqExpr)>*/
3696 /* method flow#ANeExpr#accept_flow_visitor for (self: ANeExpr, FlowVisitor) */
3697 void flow__ANeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3698 val
* var_v
/* var v: FlowVisitor */;
3699 val
* var
/* : FlowContext */;
3702 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ANeExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ANeExpr>*/;
3705 var
= flow__FlowVisitor__make_sub_true_false_flow(var_v
);
3709 /* method flow#ANeExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3710 void VIRTUAL_flow__ANeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3711 flow__ANeExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#ANeExpr#accept_flow_visitor on <self:Object(ANeExpr)>*/
3714 /* method flow#AIsaExpr#accept_flow_visitor for (self: AIsaExpr, FlowVisitor) */
3715 void flow__AIsaExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3716 val
* var_v
/* var v: FlowVisitor */;
3717 val
* var
/* : FlowContext */;
3720 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AIsaExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AIsaExpr>*/;
3723 var
= flow__FlowVisitor__make_sub_true_false_flow(var_v
);
3727 /* method flow#AIsaExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3728 void VIRTUAL_flow__AIsaExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3729 flow__AIsaExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AIsaExpr#accept_flow_visitor on <self:Object(AIsaExpr)>*/
3732 /* method flow#AParExpr#accept_flow_visitor for (self: AParExpr, FlowVisitor) */
3733 void flow__AParExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3734 val
* var_v
/* var v: FlowVisitor */;
3735 val
* var
/* : AExpr */;
3736 val
* var2
/* : AExpr */;
3737 val
* var3
/* : FlowContext */;
3738 val
* var_after_expr
/* var after_expr: FlowContext */;
3741 { /* Inline parser_nodes#AParExpr#n_expr (self) on <self:AParExpr> */
3742 var2
= self
->attrs
[COLOR_parser_nodes__AParExpr___n_expr
].val
; /* _n_expr on <self:AParExpr> */
3743 if (unlikely(var2
== NULL
)) {
3744 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3745 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1868);
3753 var3
= flow__FlowVisitor__visit_expr(var_v
, var
);
3755 var_after_expr
= var3
;
3757 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var_after_expr) on <var_v:FlowVisitor> */
3758 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var_after_expr
; /* _current_flow_context on <var_v:FlowVisitor> */
3764 /* method flow#AParExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3765 void VIRTUAL_flow__AParExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3766 flow__AParExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AParExpr#accept_flow_visitor on <self:Object(AParExpr)>*/
3769 /* method flow#AOnceExpr#accept_flow_visitor for (self: AOnceExpr, FlowVisitor) */
3770 void flow__AOnceExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3771 val
* var_v
/* var v: FlowVisitor */;
3772 val
* var
/* : AExpr */;
3773 val
* var2
/* : AExpr */;
3774 val
* var3
/* : FlowContext */;
3775 val
* var_after_expr
/* var after_expr: FlowContext */;
3778 { /* Inline parser_nodes#AOnceExpr#n_expr (self) on <self:AOnceExpr> */
3779 var2
= self
->attrs
[COLOR_parser_nodes__AOnceExpr___n_expr
].val
; /* _n_expr on <self:AOnceExpr> */
3780 if (unlikely(var2
== NULL
)) {
3781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3782 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1459);
3790 var3
= flow__FlowVisitor__visit_expr(var_v
, var
);
3792 var_after_expr
= var3
;
3794 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var_after_expr) on <var_v:FlowVisitor> */
3795 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var_after_expr
; /* _current_flow_context on <var_v:FlowVisitor> */
3801 /* method flow#AOnceExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3802 void VIRTUAL_flow__AOnceExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3803 flow__AOnceExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AOnceExpr#accept_flow_visitor on <self:Object(AOnceExpr)>*/