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", "src/flow.nit", 26);
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", "src/flow.nit", 26);
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", "src/phase.nit", 145);
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", "src/flow.nit", 39);
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", "src/flow.nit", 39);
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", "src/flow.nit", 41);
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", "src/flow.nit", 41);
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
* var5
/* : Array[FlowContext] */;
160 val
* var7
/* : Array[FlowContext] */;
161 val
* var8
/* : FlowContext */;
162 val
* var10
/* : FlowContext */;
163 val
* var11
/* : FlowContext */;
164 val
* var13
/* : FlowContext */;
165 short int var14
/* : Bool */;
167 { /* Inline parser_nodes#Visitor#init (self) on <self:FlowVisitor> */
171 var_toolcontext
= p0
;
173 { /* Inline flow#FlowVisitor#toolcontext= (self,var_toolcontext) on <self:FlowVisitor> */
174 self
->attrs
[COLOR_flow__FlowVisitor___toolcontext
].val
= var_toolcontext
; /* _toolcontext on <self:FlowVisitor> */
178 var
= NEW_flow__FlowContext(&type_flow__FlowContext
);
180 { /* Inline flow#FlowContext#init (var) on <var:FlowContext> */
185 { /* Inline flow#FlowVisitor#current_flow_context= (self,var) on <self:FlowVisitor> */
186 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var
; /* _current_flow_context on <self:FlowVisitor> */
191 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
192 var7
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
193 if (unlikely(var7
== NULL
)) {
194 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
195 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 80);
203 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
204 var10
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
205 if (unlikely(var10
== NULL
)) {
206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
207 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
215 array__Array__add(var5
, var8
); /* Direct call array#Array#add on <var5:Array[FlowContext]>*/
218 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
219 var13
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
220 if (unlikely(var13
== NULL
)) {
221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
222 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
231 { /* Inline flow#FlowContext#is_start= (var11,var14) on <var11:FlowContext> */
232 var11
->attrs
[COLOR_flow__FlowContext___is_start
].s
= var14
; /* _is_start on <var11:FlowContext> */
238 /* method flow#FlowVisitor#init for (self: Object, ToolContext) */
239 void VIRTUAL_flow__FlowVisitor__init(val
* self
, val
* p0
) {
240 flow__FlowVisitor__init(self
, p0
); /* Direct call flow#FlowVisitor#init on <self:Object(FlowVisitor)>*/
243 /* method flow#FlowVisitor#first for (self: FlowVisitor): nullable ANode */
244 val
* flow__FlowVisitor__first(val
* self
) {
245 val
* var
/* : nullable ANode */;
246 val
* var1
/* : nullable ANode */;
247 var1
= self
->attrs
[COLOR_flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
252 /* method flow#FlowVisitor#first for (self: Object): nullable ANode */
253 val
* VIRTUAL_flow__FlowVisitor__first(val
* self
) {
254 val
* var
/* : nullable ANode */;
255 val
* var1
/* : nullable ANode */;
256 val
* var3
/* : nullable ANode */;
257 { /* Inline flow#FlowVisitor#first (self) on <self:Object(FlowVisitor)> */
258 var3
= self
->attrs
[COLOR_flow__FlowVisitor___first
].val
; /* _first on <self:Object(FlowVisitor)> */
266 /* method flow#FlowVisitor#first= for (self: FlowVisitor, nullable ANode) */
267 void flow__FlowVisitor__first_61d(val
* self
, val
* p0
) {
268 self
->attrs
[COLOR_flow__FlowVisitor___first
].val
= p0
; /* _first on <self:FlowVisitor> */
271 /* method flow#FlowVisitor#first= for (self: Object, nullable ANode) */
272 void VIRTUAL_flow__FlowVisitor__first_61d(val
* self
, val
* p0
) {
273 { /* Inline flow#FlowVisitor#first= (self,p0) on <self:Object(FlowVisitor)> */
274 self
->attrs
[COLOR_flow__FlowVisitor___first
].val
= p0
; /* _first on <self:Object(FlowVisitor)> */
279 /* method flow#FlowVisitor#visit for (self: FlowVisitor, ANode) */
280 void flow__FlowVisitor__visit(val
* self
, val
* p0
) {
281 val
* var_node
/* var node: ANode */;
282 val
* var
/* : nullable ANode */;
283 val
* var2
/* : nullable ANode */;
284 val
* var3
/* : null */;
285 short int var4
/* : Bool */;
286 short int var5
/* : Bool */;
287 val
* var_other
/* var other: nullable Object */;
288 short int var7
/* : Bool */;
289 short int var9
/* : Bool */;
290 val
* var11
/* : FlowContext */;
291 val
* var13
/* : FlowContext */;
292 val
* var14
/* : nullable ANode */;
293 val
* var16
/* : nullable ANode */;
294 val
* var17
/* : null */;
295 short int var18
/* : Bool */;
296 short int var19
/* : Bool */;
297 short int var21
/* : Bool */;
298 short int var23
/* : Bool */;
299 val
* var24
/* : FlowContext */;
300 val
* var26
/* : FlowContext */;
301 short int var28
/* : Bool */;
304 val
* var29
/* : FlowContext */;
305 val
* var31
/* : FlowContext */;
306 val
* var_flow
/* var flow: FlowContext */;
307 short int var33
/* : Bool */;
308 val
* var34
/* : FlowContext */;
309 val
* var36
/* : FlowContext */;
310 short int var37
/* : Bool */;
311 short int var38
/* : Bool */;
312 val
* var_other40
/* var other: nullable Object */;
313 short int var41
/* : Bool */;
314 short int var42
/* : Bool */;
315 short int var43
/* : Bool */;
316 short int var_
/* var : Bool */;
317 val
* var44
/* : FlowContext */;
318 val
* var46
/* : FlowContext */;
319 short int var47
/* : Bool */;
320 short int var48
/* : Bool */;
321 short int var50
/* : Bool */;
322 short int var51
/* : Bool */;
323 short int var52
/* : Bool */;
324 val
* var53
/* : FlowContext */;
325 val
* var54
/* : FlowContext */;
326 val
* var56
/* : FlowContext */;
328 val
* var57
/* : String */;
329 char* var58
/* : NativeString */;
330 long var59
/* : Int */;
331 val
* var60
/* : FlatString */;
332 val
* var62
/* : nullable ANode */;
333 val
* var64
/* : nullable ANode */;
334 short int var65
/* : Bool */;
335 short int var66
/* : Bool */;
336 short int var68
/* : Bool */;
337 short int var70
/* : Bool */;
340 { /* Inline flow#FlowVisitor#first (self) on <self:FlowVisitor> */
341 var2
= self
->attrs
[COLOR_flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
348 var4
= 1; /* is null */
350 var4
= 0; /* arg is null but recv is not */
353 { /* Inline kernel#Object#== (var,var3) on <var:nullable ANode> */
356 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ANode(ANode)> */
357 var9
= var
== var_other
;
371 { /* Inline flow#FlowVisitor#first= (self,var_node) on <self:FlowVisitor> */
372 self
->attrs
[COLOR_flow__FlowVisitor___first
].val
= var_node
; /* _first on <self:FlowVisitor> */
379 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
380 var13
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
381 if (unlikely(var13
== NULL
)) {
382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
383 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
391 { /* Inline flow#FlowContext#node (var11) on <var11:FlowContext> */
392 var16
= var11
->attrs
[COLOR_flow__FlowContext___node
].val
; /* _node on <var11:FlowContext> */
399 var18
= 1; /* is null */
401 var18
= 0; /* arg is null but recv is not */
404 { /* Inline kernel#Object#== (var14,var17) on <var14:nullable ANode> */
407 { /* Inline kernel#Object#is_same_instance (var14,var_other) on <var14:nullable ANode(ANode)> */
408 var23
= var14
== var_other
;
422 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
423 var26
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
424 if (unlikely(var26
== NULL
)) {
425 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
426 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
434 { /* Inline flow#FlowContext#node= (var24,var_node) on <var24:FlowContext> */
435 var24
->attrs
[COLOR_flow__FlowContext___node
].val
= var_node
; /* _node on <var24:FlowContext> */
442 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_flow__ANode__accept_flow_visitor
]))(var_node
, self
) /* accept_flow_visitor on <var_node:ANode>*/;
444 /* <var_node:ANode> isa AExpr */
445 cltype
= type_parser_nodes__AExpr
.color
;
446 idtype
= type_parser_nodes__AExpr
.id
;
447 if(cltype
>= var_node
->type
->table_size
) {
450 var28
= var_node
->type
->type_table
[cltype
] == idtype
;
454 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
455 var31
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
456 if (unlikely(var31
== NULL
)) {
457 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
458 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
467 { /* Inline flow#AExpr#after_flow_context= (var_node,var_flow) on <var_node:ANode(AExpr)> */
468 var_node
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
= var_flow
; /* _after_flow_context on <var_node:ANode(AExpr)> */
473 { /* Inline flow#FlowContext#when_true (var_flow) on <var_flow:FlowContext> */
474 var36
= var_flow
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_flow:FlowContext> */
475 if (unlikely(var36
== NULL
)) {
476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
477 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
485 { /* Inline kernel#Object#!= (var34,var_flow) on <var34:FlowContext> */
486 var_other40
= var_flow
;
488 var42
= ((short int (*)(val
*, val
*))(var34
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var34
, var_other40
) /* == on <var34:FlowContext>*/;
503 { /* Inline flow#FlowContext#when_false (var_flow) on <var_flow:FlowContext> */
504 var46
= var_flow
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_flow:FlowContext> */
505 if (unlikely(var46
== NULL
)) {
506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
507 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
515 { /* Inline kernel#Object#!= (var44,var_flow) on <var44:FlowContext> */
516 var_other40
= var_flow
;
518 var51
= ((short int (*)(val
*, val
*))(var44
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var44
, var_other40
) /* == on <var44:FlowContext>*/;
532 var53
= flow__FlowVisitor__make_sub_flow(self
);
536 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
537 var56
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
538 if (unlikely(var56
== NULL
)) {
539 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
540 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
552 var60
= string__NativeString__to_s_with_length(var58
, var59
);
557 { /* Inline flow#FlowContext#name= (var54,var57) on <var54:FlowContext> */
558 var54
->attrs
[COLOR_flow__FlowContext___name
].val
= var57
; /* _name on <var54:FlowContext> */
567 { /* Inline flow#FlowVisitor#first (self) on <self:FlowVisitor> */
568 var64
= self
->attrs
[COLOR_flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
574 var65
= 0; /* <var_node:ANode> cannot be null */
576 { /* Inline kernel#Object#== (var62,var_node) on <var62:nullable ANode> */
577 var_other
= var_node
;
579 { /* Inline kernel#Object#is_same_instance (var62,var_other) on <var62:nullable ANode(ANode)> */
580 var70
= var62
== var_other
;
597 /* method flow#FlowVisitor#visit for (self: Object, ANode) */
598 void VIRTUAL_flow__FlowVisitor__visit(val
* self
, val
* p0
) {
599 flow__FlowVisitor__visit(self
, p0
); /* Direct call flow#FlowVisitor#visit on <self:Object(FlowVisitor)>*/
602 /* method flow#FlowVisitor#visit_expr for (self: FlowVisitor, AExpr): FlowContext */
603 val
* flow__FlowVisitor__visit_expr(val
* self
, val
* p0
) {
604 val
* var
/* : FlowContext */;
605 val
* var_node
/* var node: AExpr */;
606 val
* var1
/* : nullable FlowContext */;
607 val
* var3
/* : nullable FlowContext */;
610 parser_nodes__Visitor__enter_visit(self
, var_node
); /* Direct call parser_nodes#Visitor#enter_visit on <self:FlowVisitor>*/
613 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
614 var3
= var_node
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
619 if (unlikely(var1
== NULL
)) {
620 PRINT_ERROR("Runtime error: %s", "Cast failed");
621 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 77);
629 /* method flow#FlowVisitor#visit_expr for (self: Object, AExpr): FlowContext */
630 val
* VIRTUAL_flow__FlowVisitor__visit_expr(val
* self
, val
* p0
) {
631 val
* var
/* : FlowContext */;
632 val
* var1
/* : FlowContext */;
633 var1
= flow__FlowVisitor__visit_expr(self
, p0
);
638 /* method flow#FlowVisitor#flows for (self: FlowVisitor): Array[FlowContext] */
639 val
* flow__FlowVisitor__flows(val
* self
) {
640 val
* var
/* : Array[FlowContext] */;
641 val
* var1
/* : Array[FlowContext] */;
642 var1
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
643 if (unlikely(var1
== NULL
)) {
644 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
645 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 80);
652 /* method flow#FlowVisitor#flows for (self: Object): Array[FlowContext] */
653 val
* VIRTUAL_flow__FlowVisitor__flows(val
* self
) {
654 val
* var
/* : Array[FlowContext] */;
655 val
* var1
/* : Array[FlowContext] */;
656 val
* var3
/* : Array[FlowContext] */;
657 { /* Inline flow#FlowVisitor#flows (self) on <self:Object(FlowVisitor)> */
658 var3
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:Object(FlowVisitor)> */
659 if (unlikely(var3
== NULL
)) {
660 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
661 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 80);
671 /* method flow#FlowVisitor#make_sub_flow for (self: FlowVisitor): FlowContext */
672 val
* flow__FlowVisitor__make_sub_flow(val
* self
) {
673 val
* var
/* : FlowContext */;
674 val
* var1
/* : FlowContext */;
675 val
* var_flow
/* var flow: FlowContext */;
676 val
* var3
/* : Array[FlowContext] */;
677 val
* var5
/* : Array[FlowContext] */;
678 val
* var6
/* : nullable ANode */;
679 val
* var8
/* : FlowContext */;
680 val
* var10
/* : FlowContext */;
681 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
683 { /* Inline flow#FlowContext#init (var1) on <var1:FlowContext> */
689 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
690 var5
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
691 if (unlikely(var5
== NULL
)) {
692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
693 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 80);
701 array__Array__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
704 var6
= parser_nodes__Visitor__current_node(self
);
707 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
708 var_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
713 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
714 var10
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
715 if (unlikely(var10
== NULL
)) {
716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
717 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
725 flow__FlowContext__add_previous(var_flow
, var8
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
728 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
729 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
738 /* method flow#FlowVisitor#make_sub_flow for (self: Object): FlowContext */
739 val
* VIRTUAL_flow__FlowVisitor__make_sub_flow(val
* self
) {
740 val
* var
/* : FlowContext */;
741 val
* var1
/* : FlowContext */;
742 var1
= flow__FlowVisitor__make_sub_flow(self
);
747 /* method flow#FlowVisitor#make_merge_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
748 val
* flow__FlowVisitor__make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
749 val
* var
/* : FlowContext */;
750 val
* var_flow1
/* var flow1: FlowContext */;
751 val
* var_flow2
/* var flow2: FlowContext */;
752 val
* var1
/* : FlowContext */;
753 val
* var_flow
/* var flow: FlowContext */;
754 val
* var3
/* : Array[FlowContext] */;
755 val
* var5
/* : Array[FlowContext] */;
756 val
* var6
/* : nullable ANode */;
759 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
761 { /* Inline flow#FlowContext#init (var1) on <var1:FlowContext> */
767 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
768 var5
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
769 if (unlikely(var5
== NULL
)) {
770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
771 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 80);
779 array__Array__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
782 var6
= parser_nodes__Visitor__current_node(self
);
785 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
786 var_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
791 flow__FlowContext__add_previous(var_flow
, var_flow1
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
794 flow__FlowContext__add_previous(var_flow
, var_flow2
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
797 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
798 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
807 /* method flow#FlowVisitor#make_merge_flow for (self: Object, FlowContext, FlowContext): FlowContext */
808 val
* VIRTUAL_flow__FlowVisitor__make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
809 val
* var
/* : FlowContext */;
810 val
* var1
/* : FlowContext */;
811 var1
= flow__FlowVisitor__make_merge_flow(self
, p0
, p1
);
816 /* method flow#FlowVisitor#make_true_false_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
817 val
* flow__FlowVisitor__make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
818 val
* var
/* : FlowContext */;
819 val
* var_true_flow
/* var true_flow: FlowContext */;
820 val
* var_false_flow
/* var false_flow: FlowContext */;
821 val
* var1
/* : FlowContext */;
822 val
* var_flow
/* var flow: FlowContext */;
823 val
* var3
/* : Array[FlowContext] */;
824 val
* var5
/* : Array[FlowContext] */;
825 val
* var6
/* : nullable ANode */;
828 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
830 { /* Inline flow#FlowContext#init (var1) on <var1:FlowContext> */
836 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
837 var5
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
838 if (unlikely(var5
== NULL
)) {
839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
840 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 80);
848 array__Array__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
851 var6
= parser_nodes__Visitor__current_node(self
);
854 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
855 var_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
860 flow__FlowContext__add_previous(var_flow
, var_true_flow
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
863 flow__FlowContext__add_previous(var_flow
, var_false_flow
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
866 { /* Inline flow#FlowContext#when_true= (var_flow,var_true_flow) on <var_flow:FlowContext> */
867 var_flow
->attrs
[COLOR_flow__FlowContext___when_true
].val
= var_true_flow
; /* _when_true on <var_flow:FlowContext> */
872 { /* Inline flow#FlowContext#when_false= (var_flow,var_false_flow) on <var_flow:FlowContext> */
873 var_flow
->attrs
[COLOR_flow__FlowContext___when_false
].val
= var_false_flow
; /* _when_false on <var_flow:FlowContext> */
878 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
879 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
888 /* method flow#FlowVisitor#make_true_false_flow for (self: Object, FlowContext, FlowContext): FlowContext */
889 val
* VIRTUAL_flow__FlowVisitor__make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
890 val
* var
/* : FlowContext */;
891 val
* var1
/* : FlowContext */;
892 var1
= flow__FlowVisitor__make_true_false_flow(self
, p0
, p1
);
897 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: FlowVisitor): FlowContext */
898 val
* flow__FlowVisitor__make_sub_true_false_flow(val
* self
) {
899 val
* var
/* : FlowContext */;
900 val
* var1
/* : FlowContext */;
901 val
* var3
/* : FlowContext */;
902 val
* var_orig_flow
/* var orig_flow: FlowContext */;
903 val
* var4
/* : FlowContext */;
904 val
* var_true_flow
/* var true_flow: FlowContext */;
905 val
* var6
/* : Array[FlowContext] */;
906 val
* var8
/* : Array[FlowContext] */;
907 val
* var9
/* : nullable ANode */;
909 val
* var11
/* : String */;
910 char* var12
/* : NativeString */;
911 long var13
/* : Int */;
912 val
* var14
/* : FlatString */;
913 val
* var16
/* : FlowContext */;
914 val
* var_false_flow
/* var false_flow: FlowContext */;
915 val
* var18
/* : Array[FlowContext] */;
916 val
* var20
/* : Array[FlowContext] */;
917 val
* var21
/* : nullable ANode */;
918 static val
* varonce23
;
919 val
* var24
/* : String */;
920 char* var25
/* : NativeString */;
921 long var26
/* : Int */;
922 val
* var27
/* : FlatString */;
923 val
* var29
/* : FlowContext */;
925 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
926 var3
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
927 if (unlikely(var3
== NULL
)) {
928 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
929 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
936 var_orig_flow
= var1
;
937 var4
= NEW_flow__FlowContext(&type_flow__FlowContext
);
939 { /* Inline flow#FlowContext#init (var4) on <var4:FlowContext> */
943 var_true_flow
= var4
;
945 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
946 var8
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
947 if (unlikely(var8
== NULL
)) {
948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
949 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 80);
957 array__Array__add(var6
, var_true_flow
); /* Direct call array#Array#add on <var6:Array[FlowContext]>*/
960 var9
= parser_nodes__Visitor__current_node(self
);
963 { /* Inline flow#FlowContext#node= (var_true_flow,var9) on <var_true_flow:FlowContext> */
964 var_true_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var9
; /* _node on <var_true_flow:FlowContext> */
969 flow__FlowContext__add_previous(var_true_flow
, var_orig_flow
); /* Direct call flow#FlowContext#add_previous on <var_true_flow:FlowContext>*/
976 var14
= string__NativeString__to_s_with_length(var12
, var13
);
981 { /* Inline flow#FlowContext#name= (var_true_flow,var11) on <var_true_flow:FlowContext> */
982 var_true_flow
->attrs
[COLOR_flow__FlowContext___name
].val
= var11
; /* _name on <var_true_flow:FlowContext> */
986 var16
= NEW_flow__FlowContext(&type_flow__FlowContext
);
988 { /* Inline flow#FlowContext#init (var16) on <var16:FlowContext> */
992 var_false_flow
= var16
;
994 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
995 var20
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
996 if (unlikely(var20
== NULL
)) {
997 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
998 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 80);
1002 RET_LABEL19
:(void)0;
1006 array__Array__add(var18
, var_false_flow
); /* Direct call array#Array#add on <var18:Array[FlowContext]>*/
1009 var21
= parser_nodes__Visitor__current_node(self
);
1012 { /* Inline flow#FlowContext#node= (var_false_flow,var21) on <var_false_flow:FlowContext> */
1013 var_false_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var21
; /* _node on <var_false_flow:FlowContext> */
1014 RET_LABEL22
:(void)0;
1018 flow__FlowContext__add_previous(var_false_flow
, var_orig_flow
); /* Direct call flow#FlowContext#add_previous on <var_false_flow:FlowContext>*/
1025 var27
= string__NativeString__to_s_with_length(var25
, var26
);
1030 { /* Inline flow#FlowContext#name= (var_false_flow,var24) on <var_false_flow:FlowContext> */
1031 var_false_flow
->attrs
[COLOR_flow__FlowContext___name
].val
= var24
; /* _name on <var_false_flow:FlowContext> */
1032 RET_LABEL28
:(void)0;
1036 var29
= flow__FlowVisitor__make_true_false_flow(self
, var_true_flow
, var_false_flow
);
1043 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: Object): FlowContext */
1044 val
* VIRTUAL_flow__FlowVisitor__make_sub_true_false_flow(val
* self
) {
1045 val
* var
/* : FlowContext */;
1046 val
* var1
/* : FlowContext */;
1047 var1
= flow__FlowVisitor__make_sub_true_false_flow(self
);
1052 /* method flow#FlowVisitor#make_unreachable_flow for (self: FlowVisitor): FlowContext */
1053 val
* flow__FlowVisitor__make_unreachable_flow(val
* self
) {
1054 val
* var
/* : FlowContext */;
1055 val
* var1
/* : FlowContext */;
1056 val
* var_flow
/* var flow: FlowContext */;
1057 val
* var3
/* : Array[FlowContext] */;
1058 val
* var5
/* : Array[FlowContext] */;
1059 val
* var6
/* : nullable ANode */;
1060 val
* var8
/* : FlowContext */;
1061 val
* var10
/* : FlowContext */;
1062 short int var11
/* : Bool */;
1063 var1
= NEW_flow__FlowContext(&type_flow__FlowContext
);
1065 { /* Inline flow#FlowContext#init (var1) on <var1:FlowContext> */
1071 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
1072 var5
= self
->attrs
[COLOR_flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
1073 if (unlikely(var5
== NULL
)) {
1074 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
1075 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 80);
1083 array__Array__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
1086 var6
= parser_nodes__Visitor__current_node(self
);
1089 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
1090 var_flow
->attrs
[COLOR_flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
1095 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
1096 var10
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
1097 if (unlikely(var10
== NULL
)) {
1098 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1099 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
1107 flow__FlowContext__add_previous(var_flow
, var8
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
1111 { /* Inline flow#FlowContext#is_marked_unreachable= (var_flow,var11) on <var_flow:FlowContext> */
1112 var_flow
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
= var11
; /* _is_marked_unreachable on <var_flow:FlowContext> */
1113 RET_LABEL12
:(void)0;
1117 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
1118 self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
1119 RET_LABEL13
:(void)0;
1127 /* method flow#FlowVisitor#make_unreachable_flow for (self: Object): FlowContext */
1128 val
* VIRTUAL_flow__FlowVisitor__make_unreachable_flow(val
* self
) {
1129 val
* var
/* : FlowContext */;
1130 val
* var1
/* : FlowContext */;
1131 var1
= flow__FlowVisitor__make_unreachable_flow(self
);
1136 /* method flow#FlowVisitor#merge_continues_to for (self: FlowVisitor, FlowContext, nullable EscapeMark) */
1137 void flow__FlowVisitor__merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
1138 val
* var_before_loop
/* var before_loop: FlowContext */;
1139 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1140 val
* var
/* : null */;
1141 short int var1
/* : Bool */;
1142 short int var2
/* : Bool */;
1143 val
* var_other
/* var other: nullable Object */;
1144 short int var4
/* : Bool */;
1145 short int var6
/* : Bool */;
1146 val
* var7
/* : Array[AContinueExpr] */;
1147 val
* var9
/* : Array[AContinueExpr] */;
1148 val
* var10
/* : ArrayIterator[nullable Object] */;
1149 short int var11
/* : Bool */;
1150 val
* var12
/* : nullable Object */;
1151 val
* var_b
/* var b: AContinueExpr */;
1152 val
* var13
/* : nullable FlowContext */;
1153 val
* var_before
/* var before: nullable FlowContext */;
1154 val
* var14
/* : null */;
1155 short int var15
/* : Bool */;
1156 short int var16
/* : Bool */;
1157 short int var18
/* : Bool */;
1158 short int var20
/* : Bool */;
1159 var_before_loop
= p0
;
1160 var_escapemark
= p1
;
1162 if (var_escapemark
== NULL
) {
1163 var1
= 1; /* is null */
1165 var1
= 0; /* arg is null but recv is not */
1168 { /* Inline kernel#Object#== (var_escapemark,var) on <var_escapemark:nullable EscapeMark> */
1171 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1172 var6
= var_escapemark
== var_other
;
1189 { /* Inline scope#EscapeMark#continues (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1190 var9
= var_escapemark
->attrs
[COLOR_scope__EscapeMark___continues
].val
; /* _continues on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1191 if (unlikely(var9
== NULL
)) {
1192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _continues");
1193 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 53);
1201 var10
= array__AbstractArrayRead__iterator(var7
);
1205 var11
= array__ArrayIterator__is_ok(var10
);
1209 var12
= array__ArrayIterator__item(var10
);
1213 var13
= flow__AContinueExpr__before_flow_context(var_b
);
1217 if (var_before
== NULL
) {
1218 var15
= 1; /* is null */
1220 var15
= 0; /* arg is null but recv is not */
1223 { /* Inline kernel#Object#== (var_before,var14) on <var_before:nullable FlowContext> */
1226 { /* Inline kernel#Object#is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1227 var20
= var_before
== var_other
;
1230 RET_LABEL19
:(void)0;
1235 RET_LABEL17
:(void)0;
1240 goto CONTINUE_label
;
1244 flow__FlowContext__add_loop(var_before_loop
, var_before
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
1246 CONTINUE_label
: (void)0;
1248 array__ArrayIterator__next(var10
); /* Direct call array#ArrayIterator#next on <var10:ArrayIterator[nullable Object]>*/
1251 BREAK_label
: (void)0;
1254 /* method flow#FlowVisitor#merge_continues_to for (self: Object, FlowContext, nullable EscapeMark) */
1255 void VIRTUAL_flow__FlowVisitor__merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
1256 flow__FlowVisitor__merge_continues_to(self
, p0
, p1
); /* Direct call flow#FlowVisitor#merge_continues_to on <self:Object(FlowVisitor)>*/
1259 /* method flow#FlowVisitor#merge_breaks for (self: FlowVisitor, nullable EscapeMark) */
1260 void flow__FlowVisitor__merge_breaks(val
* self
, val
* p0
) {
1261 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1262 val
* var
/* : null */;
1263 short int var1
/* : Bool */;
1264 short int var2
/* : Bool */;
1265 val
* var_other
/* var other: nullable Object */;
1266 short int var4
/* : Bool */;
1267 short int var6
/* : Bool */;
1268 val
* var7
/* : Array[ABreakExpr] */;
1269 val
* var9
/* : Array[ABreakExpr] */;
1270 val
* var10
/* : ArrayIterator[nullable Object] */;
1271 short int var11
/* : Bool */;
1272 val
* var12
/* : nullable Object */;
1273 val
* var_b
/* var b: ABreakExpr */;
1274 val
* var13
/* : nullable FlowContext */;
1275 val
* var_before
/* var before: nullable FlowContext */;
1276 val
* var14
/* : null */;
1277 short int var15
/* : Bool */;
1278 short int var16
/* : Bool */;
1279 short int var18
/* : Bool */;
1280 short int var20
/* : Bool */;
1281 val
* var21
/* : FlowContext */;
1282 val
* var23
/* : FlowContext */;
1283 val
* var24
/* : FlowContext */;
1284 var_escapemark
= p0
;
1286 if (var_escapemark
== NULL
) {
1287 var1
= 1; /* is null */
1289 var1
= 0; /* arg is null but recv is not */
1292 { /* Inline kernel#Object#== (var_escapemark,var) on <var_escapemark:nullable EscapeMark> */
1295 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1296 var6
= var_escapemark
== var_other
;
1313 { /* Inline scope#EscapeMark#breaks (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1314 var9
= var_escapemark
->attrs
[COLOR_scope__EscapeMark___breaks
].val
; /* _breaks on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1315 if (unlikely(var9
== NULL
)) {
1316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _breaks");
1317 PRINT_ERROR(" (%s:%d)\n", "src/scope.nit", 56);
1325 var10
= array__AbstractArrayRead__iterator(var7
);
1329 var11
= array__ArrayIterator__is_ok(var10
);
1333 var12
= array__ArrayIterator__item(var10
);
1337 var13
= flow__ABreakExpr__before_flow_context(var_b
);
1341 if (var_before
== NULL
) {
1342 var15
= 1; /* is null */
1344 var15
= 0; /* arg is null but recv is not */
1347 { /* Inline kernel#Object#== (var_before,var14) on <var_before:nullable FlowContext> */
1350 { /* Inline kernel#Object#is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1351 var20
= var_before
== var_other
;
1354 RET_LABEL19
:(void)0;
1359 RET_LABEL17
:(void)0;
1364 goto CONTINUE_label
;
1368 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
1369 var23
= self
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
1370 if (unlikely(var23
== NULL
)) {
1371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1372 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
1376 RET_LABEL22
:(void)0;
1380 var24
= flow__FlowVisitor__make_merge_flow(self
, var21
, var_before
);
1383 CONTINUE_label
: (void)0;
1385 array__ArrayIterator__next(var10
); /* Direct call array#ArrayIterator#next on <var10:ArrayIterator[nullable Object]>*/
1388 BREAK_label
: (void)0;
1391 /* method flow#FlowVisitor#merge_breaks for (self: Object, nullable EscapeMark) */
1392 void VIRTUAL_flow__FlowVisitor__merge_breaks(val
* self
, val
* p0
) {
1393 flow__FlowVisitor__merge_breaks(self
, p0
); /* Direct call flow#FlowVisitor#merge_breaks on <self:Object(FlowVisitor)>*/
1396 /* method flow#FlowContext#previous for (self: FlowContext): Array[FlowContext] */
1397 val
* flow__FlowContext__previous(val
* self
) {
1398 val
* var
/* : Array[FlowContext] */;
1399 val
* var1
/* : Array[FlowContext] */;
1400 var1
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1401 if (unlikely(var1
== NULL
)) {
1402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1403 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 192);
1410 /* method flow#FlowContext#previous for (self: Object): Array[FlowContext] */
1411 val
* VIRTUAL_flow__FlowContext__previous(val
* self
) {
1412 val
* var
/* : Array[FlowContext] */;
1413 val
* var1
/* : Array[FlowContext] */;
1414 val
* var3
/* : Array[FlowContext] */;
1415 { /* Inline flow#FlowContext#previous (self) on <self:Object(FlowContext)> */
1416 var3
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:Object(FlowContext)> */
1417 if (unlikely(var3
== NULL
)) {
1418 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1419 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 192);
1429 /* method flow#FlowContext#loops for (self: FlowContext): Array[FlowContext] */
1430 val
* flow__FlowContext__loops(val
* self
) {
1431 val
* var
/* : Array[FlowContext] */;
1432 val
* var1
/* : Array[FlowContext] */;
1433 var1
= self
->attrs
[COLOR_flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1434 if (unlikely(var1
== NULL
)) {
1435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1436 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 195);
1443 /* method flow#FlowContext#loops for (self: Object): Array[FlowContext] */
1444 val
* VIRTUAL_flow__FlowContext__loops(val
* self
) {
1445 val
* var
/* : Array[FlowContext] */;
1446 val
* var1
/* : Array[FlowContext] */;
1447 val
* var3
/* : Array[FlowContext] */;
1448 { /* Inline flow#FlowContext#loops (self) on <self:Object(FlowContext)> */
1449 var3
= self
->attrs
[COLOR_flow__FlowContext___loops
].val
; /* _loops on <self:Object(FlowContext)> */
1450 if (unlikely(var3
== NULL
)) {
1451 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1452 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 195);
1462 /* method flow#FlowContext#is_marked_unreachable for (self: FlowContext): Bool */
1463 short int flow__FlowContext__is_marked_unreachable(val
* self
) {
1464 short int var
/* : Bool */;
1465 short int var1
/* : Bool */;
1466 var1
= self
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1471 /* method flow#FlowContext#is_marked_unreachable for (self: Object): Bool */
1472 short int VIRTUAL_flow__FlowContext__is_marked_unreachable(val
* self
) {
1473 short int var
/* : Bool */;
1474 short int var1
/* : Bool */;
1475 short int var3
/* : Bool */;
1476 { /* Inline flow#FlowContext#is_marked_unreachable (self) on <self:Object(FlowContext)> */
1477 var3
= self
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:Object(FlowContext)> */
1485 /* method flow#FlowContext#is_marked_unreachable= for (self: FlowContext, Bool) */
1486 void flow__FlowContext__is_marked_unreachable_61d(val
* self
, short int p0
) {
1487 self
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
= p0
; /* _is_marked_unreachable on <self:FlowContext> */
1490 /* method flow#FlowContext#is_marked_unreachable= for (self: Object, Bool) */
1491 void VIRTUAL_flow__FlowContext__is_marked_unreachable_61d(val
* self
, short int p0
) {
1492 { /* Inline flow#FlowContext#is_marked_unreachable= (self,p0) on <self:Object(FlowContext)> */
1493 self
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
= p0
; /* _is_marked_unreachable on <self:Object(FlowContext)> */
1498 /* method flow#FlowContext#is_unreachable for (self: FlowContext): Bool */
1499 short int flow__FlowContext__is_unreachable(val
* self
) {
1500 short int var
/* : Bool */;
1501 short int var1
/* : Bool */;
1502 short int var3
/* : Bool */;
1503 short int var4
/* : Bool */;
1504 short int var5
/* : Bool */;
1505 short int var7
/* : Bool */;
1506 short int var8
/* : Bool */;
1507 val
* var9
/* : Array[FlowContext] */;
1508 val
* var11
/* : Array[FlowContext] */;
1509 long var12
/* : Int */;
1510 long var13
/* : Int */;
1511 short int var14
/* : Bool */;
1512 short int var15
/* : Bool */;
1513 short int var17
/* : Bool */;
1514 short int var18
/* : Bool */;
1515 short int var19
/* : Bool */;
1517 { /* Inline flow#FlowContext#is_marked_unreachable (self) on <self:FlowContext> */
1518 var3
= self
->attrs
[COLOR_flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1530 { /* Inline flow#FlowContext#is_start (self) on <self:FlowContext> */
1531 var7
= self
->attrs
[COLOR_flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1543 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1544 var11
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1545 if (unlikely(var11
== NULL
)) {
1546 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1547 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 192);
1551 RET_LABEL10
:(void)0;
1555 var12
= array__AbstractArrayRead__length(var9
);
1559 { /* Inline kernel#Int#== (var12,var13) on <var12:Int> */
1560 var17
= var12
== var13
;
1563 RET_LABEL16
:(void)0;
1579 /* method flow#FlowContext#is_unreachable for (self: Object): Bool */
1580 short int VIRTUAL_flow__FlowContext__is_unreachable(val
* self
) {
1581 short int var
/* : Bool */;
1582 short int var1
/* : Bool */;
1583 var1
= flow__FlowContext__is_unreachable(self
);
1588 /* method flow#FlowContext#is_already_unreachable for (self: FlowContext): Bool */
1589 short int flow__FlowContext__is_already_unreachable(val
* self
) {
1590 short int var
/* : Bool */;
1591 short int var1
/* : Bool */;
1592 var1
= self
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <self:FlowContext> */
1597 /* method flow#FlowContext#is_already_unreachable for (self: Object): Bool */
1598 short int VIRTUAL_flow__FlowContext__is_already_unreachable(val
* self
) {
1599 short int var
/* : Bool */;
1600 short int var1
/* : Bool */;
1601 short int var3
/* : Bool */;
1602 { /* Inline flow#FlowContext#is_already_unreachable (self) on <self:Object(FlowContext)> */
1603 var3
= self
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <self:Object(FlowContext)> */
1611 /* method flow#FlowContext#is_already_unreachable= for (self: FlowContext, Bool) */
1612 void flow__FlowContext__is_already_unreachable_61d(val
* self
, short int p0
) {
1613 self
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
= p0
; /* _is_already_unreachable on <self:FlowContext> */
1616 /* method flow#FlowContext#is_already_unreachable= for (self: Object, Bool) */
1617 void VIRTUAL_flow__FlowContext__is_already_unreachable_61d(val
* self
, short int p0
) {
1618 { /* Inline flow#FlowContext#is_already_unreachable= (self,p0) on <self:Object(FlowContext)> */
1619 self
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
= p0
; /* _is_already_unreachable on <self:Object(FlowContext)> */
1624 /* method flow#FlowContext#is_start for (self: FlowContext): Bool */
1625 short int flow__FlowContext__is_start(val
* self
) {
1626 short int var
/* : Bool */;
1627 short int var1
/* : Bool */;
1628 var1
= self
->attrs
[COLOR_flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1633 /* method flow#FlowContext#is_start for (self: Object): Bool */
1634 short int VIRTUAL_flow__FlowContext__is_start(val
* self
) {
1635 short int var
/* : Bool */;
1636 short int var1
/* : Bool */;
1637 short int var3
/* : Bool */;
1638 { /* Inline flow#FlowContext#is_start (self) on <self:Object(FlowContext)> */
1639 var3
= self
->attrs
[COLOR_flow__FlowContext___is_start
].s
; /* _is_start on <self:Object(FlowContext)> */
1647 /* method flow#FlowContext#is_start= for (self: FlowContext, Bool) */
1648 void flow__FlowContext__is_start_61d(val
* self
, short int p0
) {
1649 self
->attrs
[COLOR_flow__FlowContext___is_start
].s
= p0
; /* _is_start on <self:FlowContext> */
1652 /* method flow#FlowContext#is_start= for (self: Object, Bool) */
1653 void VIRTUAL_flow__FlowContext__is_start_61d(val
* self
, short int p0
) {
1654 { /* Inline flow#FlowContext#is_start= (self,p0) on <self:Object(FlowContext)> */
1655 self
->attrs
[COLOR_flow__FlowContext___is_start
].s
= p0
; /* _is_start on <self:Object(FlowContext)> */
1660 /* method flow#FlowContext#node for (self: FlowContext): nullable ANode */
1661 val
* flow__FlowContext__node(val
* self
) {
1662 val
* var
/* : nullable ANode */;
1663 val
* var1
/* : nullable ANode */;
1664 var1
= self
->attrs
[COLOR_flow__FlowContext___node
].val
; /* _node on <self:FlowContext> */
1669 /* method flow#FlowContext#node for (self: Object): nullable ANode */
1670 val
* VIRTUAL_flow__FlowContext__node(val
* self
) {
1671 val
* var
/* : nullable ANode */;
1672 val
* var1
/* : nullable ANode */;
1673 val
* var3
/* : nullable ANode */;
1674 { /* Inline flow#FlowContext#node (self) on <self:Object(FlowContext)> */
1675 var3
= self
->attrs
[COLOR_flow__FlowContext___node
].val
; /* _node on <self:Object(FlowContext)> */
1683 /* method flow#FlowContext#node= for (self: FlowContext, nullable ANode) */
1684 void flow__FlowContext__node_61d(val
* self
, val
* p0
) {
1685 self
->attrs
[COLOR_flow__FlowContext___node
].val
= p0
; /* _node on <self:FlowContext> */
1688 /* method flow#FlowContext#node= for (self: Object, nullable ANode) */
1689 void VIRTUAL_flow__FlowContext__node_61d(val
* self
, val
* p0
) {
1690 { /* Inline flow#FlowContext#node= (self,p0) on <self:Object(FlowContext)> */
1691 self
->attrs
[COLOR_flow__FlowContext___node
].val
= p0
; /* _node on <self:Object(FlowContext)> */
1696 /* method flow#FlowContext#name= for (self: FlowContext, String) */
1697 void flow__FlowContext__name_61d(val
* self
, val
* p0
) {
1698 self
->attrs
[COLOR_flow__FlowContext___name
].val
= p0
; /* _name on <self:FlowContext> */
1701 /* method flow#FlowContext#name= for (self: Object, String) */
1702 void VIRTUAL_flow__FlowContext__name_61d(val
* self
, val
* p0
) {
1703 { /* Inline flow#FlowContext#name= (self,p0) on <self:Object(FlowContext)> */
1704 self
->attrs
[COLOR_flow__FlowContext___name
].val
= p0
; /* _name on <self:Object(FlowContext)> */
1709 /* method flow#FlowContext#when_true for (self: FlowContext): FlowContext */
1710 val
* flow__FlowContext__when_true(val
* self
) {
1711 val
* var
/* : FlowContext */;
1712 val
* var1
/* : FlowContext */;
1713 var1
= self
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <self:FlowContext> */
1714 if (unlikely(var1
== NULL
)) {
1715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1716 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
1723 /* method flow#FlowContext#when_true for (self: Object): FlowContext */
1724 val
* VIRTUAL_flow__FlowContext__when_true(val
* self
) {
1725 val
* var
/* : FlowContext */;
1726 val
* var1
/* : FlowContext */;
1727 val
* var3
/* : FlowContext */;
1728 { /* Inline flow#FlowContext#when_true (self) on <self:Object(FlowContext)> */
1729 var3
= self
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <self:Object(FlowContext)> */
1730 if (unlikely(var3
== NULL
)) {
1731 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1732 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
1742 /* method flow#FlowContext#when_true= for (self: FlowContext, FlowContext) */
1743 void flow__FlowContext__when_true_61d(val
* self
, val
* p0
) {
1744 self
->attrs
[COLOR_flow__FlowContext___when_true
].val
= p0
; /* _when_true on <self:FlowContext> */
1747 /* method flow#FlowContext#when_true= for (self: Object, FlowContext) */
1748 void VIRTUAL_flow__FlowContext__when_true_61d(val
* self
, val
* p0
) {
1749 { /* Inline flow#FlowContext#when_true= (self,p0) on <self:Object(FlowContext)> */
1750 self
->attrs
[COLOR_flow__FlowContext___when_true
].val
= p0
; /* _when_true on <self:Object(FlowContext)> */
1755 /* method flow#FlowContext#when_false for (self: FlowContext): FlowContext */
1756 val
* flow__FlowContext__when_false(val
* self
) {
1757 val
* var
/* : FlowContext */;
1758 val
* var1
/* : FlowContext */;
1759 var1
= self
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <self:FlowContext> */
1760 if (unlikely(var1
== NULL
)) {
1761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
1762 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
1769 /* method flow#FlowContext#when_false for (self: Object): FlowContext */
1770 val
* VIRTUAL_flow__FlowContext__when_false(val
* self
) {
1771 val
* var
/* : FlowContext */;
1772 val
* var1
/* : FlowContext */;
1773 val
* var3
/* : FlowContext */;
1774 { /* Inline flow#FlowContext#when_false (self) on <self:Object(FlowContext)> */
1775 var3
= self
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <self:Object(FlowContext)> */
1776 if (unlikely(var3
== NULL
)) {
1777 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
1778 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
1788 /* method flow#FlowContext#when_false= for (self: FlowContext, FlowContext) */
1789 void flow__FlowContext__when_false_61d(val
* self
, val
* p0
) {
1790 self
->attrs
[COLOR_flow__FlowContext___when_false
].val
= p0
; /* _when_false on <self:FlowContext> */
1793 /* method flow#FlowContext#when_false= for (self: Object, FlowContext) */
1794 void VIRTUAL_flow__FlowContext__when_false_61d(val
* self
, val
* p0
) {
1795 { /* Inline flow#FlowContext#when_false= (self,p0) on <self:Object(FlowContext)> */
1796 self
->attrs
[COLOR_flow__FlowContext___when_false
].val
= p0
; /* _when_false on <self:Object(FlowContext)> */
1801 /* method flow#FlowContext#add_previous for (self: FlowContext, FlowContext) */
1802 void flow__FlowContext__add_previous(val
* self
, val
* p0
) {
1803 val
* var_flow
/* var flow: FlowContext */;
1804 short int var
/* : Bool */;
1805 short int var1
/* : Bool */;
1806 short int var2
/* : Bool */;
1807 short int var_
/* var : Bool */;
1808 val
* var3
/* : Array[FlowContext] */;
1809 val
* var5
/* : Array[FlowContext] */;
1810 short int var6
/* : Bool */;
1811 short int var7
/* : Bool */;
1812 val
* var8
/* : Array[FlowContext] */;
1813 val
* var10
/* : Array[FlowContext] */;
1816 var1
= flow__FlowContext__is_unreachable(var_flow
);
1822 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1823 var5
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1824 if (unlikely(var5
== NULL
)) {
1825 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1826 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 192);
1834 var6
= array__AbstractArrayRead__has(var3
, var_flow
);
1843 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1844 var10
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1845 if (unlikely(var10
== NULL
)) {
1846 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1847 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 192);
1855 array__Array__add(var8
, var_flow
); /* Direct call array#Array#add on <var8:Array[FlowContext]>*/
1861 /* method flow#FlowContext#add_previous for (self: Object, FlowContext) */
1862 void VIRTUAL_flow__FlowContext__add_previous(val
* self
, val
* p0
) {
1863 flow__FlowContext__add_previous(self
, p0
); /* Direct call flow#FlowContext#add_previous on <self:Object(FlowContext)>*/
1866 /* method flow#FlowContext#add_loop for (self: FlowContext, FlowContext) */
1867 void flow__FlowContext__add_loop(val
* self
, val
* p0
) {
1868 val
* var_flow
/* var flow: FlowContext */;
1869 short int var
/* : Bool */;
1870 short int var1
/* : Bool */;
1871 short int var2
/* : Bool */;
1872 short int var_
/* var : Bool */;
1873 val
* var3
/* : Array[FlowContext] */;
1874 val
* var5
/* : Array[FlowContext] */;
1875 short int var6
/* : Bool */;
1876 short int var7
/* : Bool */;
1877 val
* var8
/* : Array[FlowContext] */;
1878 val
* var10
/* : Array[FlowContext] */;
1881 var1
= flow__FlowContext__is_unreachable(var_flow
);
1887 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1888 var5
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1889 if (unlikely(var5
== NULL
)) {
1890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1891 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 192);
1899 var6
= array__AbstractArrayRead__has(var3
, var_flow
);
1908 { /* Inline flow#FlowContext#loops (self) on <self:FlowContext> */
1909 var10
= self
->attrs
[COLOR_flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1910 if (unlikely(var10
== NULL
)) {
1911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1912 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 195);
1920 array__Array__add(var8
, var_flow
); /* Direct call array#Array#add on <var8:Array[FlowContext]>*/
1926 /* method flow#FlowContext#add_loop for (self: Object, FlowContext) */
1927 void VIRTUAL_flow__FlowContext__add_loop(val
* self
, val
* p0
) {
1928 flow__FlowContext__add_loop(self
, p0
); /* Direct call flow#FlowContext#add_loop on <self:Object(FlowContext)>*/
1931 /* method flow#FlowContext#init for (self: FlowContext) */
1932 void flow__FlowContext__init(val
* self
) {
1935 /* method flow#FlowContext#init for (self: Object) */
1936 void VIRTUAL_flow__FlowContext__init(val
* self
) {
1937 { /* Inline flow#FlowContext#init (self) on <self:Object(FlowContext)> */
1942 /* method flow#ANode#accept_flow_visitor for (self: ANode, FlowVisitor) */
1943 void flow__ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1944 val
* var_v
/* var v: FlowVisitor */;
1947 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
1951 /* method flow#ANode#accept_flow_visitor for (self: Object, FlowVisitor) */
1952 void VIRTUAL_flow__ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1953 flow__ANode__accept_flow_visitor(self
, p0
); /* Direct call flow#ANode#accept_flow_visitor on <self:Object(ANode)>*/
1956 /* method flow#APropdef#do_flow for (self: APropdef, ToolContext) */
1957 void flow__APropdef__do_flow(val
* self
, val
* p0
) {
1958 val
* var_toolcontext
/* var toolcontext: ToolContext */;
1959 val
* var
/* : FlowVisitor */;
1960 val
* var_v
/* var v: FlowVisitor */;
1961 var_toolcontext
= p0
;
1962 var
= NEW_flow__FlowVisitor(&type_flow__FlowVisitor
);
1964 flow__FlowVisitor__init(var
, var_toolcontext
); /* Direct call flow#FlowVisitor#init on <var:FlowVisitor>*/
1968 parser_nodes__Visitor__enter_visit(var_v
, self
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
1972 /* method flow#APropdef#do_flow for (self: Object, ToolContext) */
1973 void VIRTUAL_flow__APropdef__do_flow(val
* self
, val
* p0
) {
1974 flow__APropdef__do_flow(self
, p0
); /* Direct call flow#APropdef#do_flow on <self:Object(APropdef)>*/
1977 /* method flow#APropdef#before_flow_context= for (self: APropdef, nullable FlowContext) */
1978 void flow__APropdef__before_flow_context_61d(val
* self
, val
* p0
) {
1979 self
->attrs
[COLOR_flow__APropdef___before_flow_context
].val
= p0
; /* _before_flow_context on <self:APropdef> */
1982 /* method flow#APropdef#before_flow_context= for (self: Object, nullable FlowContext) */
1983 void VIRTUAL_flow__APropdef__before_flow_context_61d(val
* self
, val
* p0
) {
1984 { /* Inline flow#APropdef#before_flow_context= (self,p0) on <self:Object(APropdef)> */
1985 self
->attrs
[COLOR_flow__APropdef___before_flow_context
].val
= p0
; /* _before_flow_context on <self:Object(APropdef)> */
1990 /* method flow#APropdef#after_flow_context= for (self: APropdef, nullable FlowContext) */
1991 void flow__APropdef__after_flow_context_61d(val
* self
, val
* p0
) {
1992 self
->attrs
[COLOR_flow__APropdef___after_flow_context
].val
= p0
; /* _after_flow_context on <self:APropdef> */
1995 /* method flow#APropdef#after_flow_context= for (self: Object, nullable FlowContext) */
1996 void VIRTUAL_flow__APropdef__after_flow_context_61d(val
* self
, val
* p0
) {
1997 { /* Inline flow#APropdef#after_flow_context= (self,p0) on <self:Object(APropdef)> */
1998 self
->attrs
[COLOR_flow__APropdef___after_flow_context
].val
= p0
; /* _after_flow_context on <self:Object(APropdef)> */
2003 /* method flow#APropdef#accept_flow_visitor for (self: APropdef, FlowVisitor) */
2004 void flow__APropdef__accept_flow_visitor(val
* self
, val
* p0
) {
2005 val
* var_v
/* var v: FlowVisitor */;
2006 val
* var
/* : FlowContext */;
2007 val
* var2
/* : FlowContext */;
2008 val
* var4
/* : FlowContext */;
2009 val
* var6
/* : FlowContext */;
2012 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2013 var2
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2014 if (unlikely(var2
== NULL
)) {
2015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2016 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
2024 { /* Inline flow#APropdef#before_flow_context= (self,var) on <self:APropdef> */
2025 self
->attrs
[COLOR_flow__APropdef___before_flow_context
].val
= var
; /* _before_flow_context on <self:APropdef> */
2030 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__APropdef__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:APropdef>*/;
2033 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2034 var6
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2035 if (unlikely(var6
== NULL
)) {
2036 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2037 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
2045 { /* Inline flow#APropdef#after_flow_context= (self,var4) on <self:APropdef> */
2046 self
->attrs
[COLOR_flow__APropdef___after_flow_context
].val
= var4
; /* _after_flow_context on <self:APropdef> */
2052 /* method flow#APropdef#accept_flow_visitor for (self: Object, FlowVisitor) */
2053 void VIRTUAL_flow__APropdef__accept_flow_visitor(val
* self
, val
* p0
) {
2054 flow__APropdef__accept_flow_visitor(self
, p0
); /* Direct call flow#APropdef#accept_flow_visitor on <self:Object(APropdef)>*/
2057 /* method flow#AExpr#after_flow_context for (self: AExpr): nullable FlowContext */
2058 val
* flow__AExpr__after_flow_context(val
* self
) {
2059 val
* var
/* : nullable FlowContext */;
2060 val
* var1
/* : nullable FlowContext */;
2061 var1
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AExpr> */
2066 /* method flow#AExpr#after_flow_context for (self: Object): nullable FlowContext */
2067 val
* VIRTUAL_flow__AExpr__after_flow_context(val
* self
) {
2068 val
* var
/* : nullable FlowContext */;
2069 val
* var1
/* : nullable FlowContext */;
2070 val
* var3
/* : nullable FlowContext */;
2071 { /* Inline flow#AExpr#after_flow_context (self) on <self:Object(AExpr)> */
2072 var3
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:Object(AExpr)> */
2080 /* method flow#AExpr#after_flow_context= for (self: AExpr, nullable FlowContext) */
2081 void flow__AExpr__after_flow_context_61d(val
* self
, val
* p0
) {
2082 self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
= p0
; /* _after_flow_context on <self:AExpr> */
2085 /* method flow#AExpr#after_flow_context= for (self: Object, nullable FlowContext) */
2086 void VIRTUAL_flow__AExpr__after_flow_context_61d(val
* self
, val
* p0
) {
2087 { /* Inline flow#AExpr#after_flow_context= (self,p0) on <self:Object(AExpr)> */
2088 self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
= p0
; /* _after_flow_context on <self:Object(AExpr)> */
2093 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: AVarAssignExpr, FlowVisitor) */
2094 void flow__AVarAssignExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2095 val
* var_v
/* var v: FlowVisitor */;
2096 val
* var
/* : FlowContext */;
2099 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AVarAssignExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AVarAssignExpr>*/;
2102 var
= flow__FlowVisitor__make_sub_flow(var_v
);
2105 { /* Inline flow#AExpr#after_flow_context= (self,var) on <self:AVarAssignExpr> */
2106 self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AVarAssignExpr> */
2112 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2113 void VIRTUAL_flow__AVarAssignExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2114 flow__AVarAssignExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AVarAssignExpr#accept_flow_visitor on <self:Object(AVarAssignExpr)>*/
2117 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: AReassignFormExpr, FlowVisitor) */
2118 void flow__AReassignFormExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2119 val
* var_v
/* var v: FlowVisitor */;
2120 val
* var
/* : FlowContext */;
2123 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AReassignFormExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReassignFormExpr>*/;
2126 var
= flow__FlowVisitor__make_sub_flow(var_v
);
2129 { /* Inline flow#AExpr#after_flow_context= (self,var) on <self:AReassignFormExpr> */
2130 self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AReassignFormExpr> */
2136 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2137 void VIRTUAL_flow__AReassignFormExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2138 flow__AReassignFormExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AReassignFormExpr#accept_flow_visitor on <self:Object(AReassignFormExpr)>*/
2141 /* method flow#ABlockExpr#accept_flow_visitor for (self: ABlockExpr, FlowVisitor) */
2142 void flow__ABlockExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2143 val
* var_v
/* var v: FlowVisitor */;
2144 val
* var
/* : ANodes[AExpr] */;
2145 val
* var2
/* : ANodes[AExpr] */;
2146 val
* var3
/* : Iterator[ANode] */;
2147 short int var4
/* : Bool */;
2148 val
* var5
/* : nullable Object */;
2149 val
* var_e
/* var e: AExpr */;
2150 val
* var6
/* : FlowContext */;
2151 val
* var8
/* : FlowContext */;
2152 short int var9
/* : Bool */;
2153 short int var10
/* : Bool */;
2154 val
* var11
/* : FlowContext */;
2155 val
* var13
/* : FlowContext */;
2156 short int var14
/* : Bool */;
2157 short int var16
/* : Bool */;
2158 short int var17
/* : Bool */;
2159 val
* var18
/* : FlowContext */;
2160 val
* var20
/* : FlowContext */;
2161 short int var21
/* : Bool */;
2162 val
* var23
/* : ToolContext */;
2163 val
* var25
/* : ToolContext */;
2164 val
* var26
/* : Location */;
2165 static val
* varonce
;
2166 val
* var27
/* : String */;
2167 char* var28
/* : NativeString */;
2168 long var29
/* : Int */;
2169 val
* var30
/* : FlatString */;
2172 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
2173 var2
= self
->attrs
[COLOR_parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
2174 if (unlikely(var2
== NULL
)) {
2175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2176 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1424);
2184 var3
= parser_nodes__ANodes__iterator(var
);
2188 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[ANode]>*/;
2192 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[ANode]>*/;
2196 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2197 var8
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2198 if (unlikely(var8
== NULL
)) {
2199 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2200 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
2208 var9
= flow__FlowContext__is_unreachable(var6
);
2213 parser_nodes__Visitor__enter_visit(var_v
, var_e
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2217 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2218 var13
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2219 if (unlikely(var13
== NULL
)) {
2220 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2221 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
2225 RET_LABEL12
:(void)0;
2229 { /* Inline flow#FlowContext#is_already_unreachable (var11) on <var11:FlowContext> */
2230 var16
= var11
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <var11:FlowContext> */
2232 RET_LABEL15
:(void)0;
2238 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2239 var20
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2240 if (unlikely(var20
== NULL
)) {
2241 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2242 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
2246 RET_LABEL19
:(void)0;
2251 { /* Inline flow#FlowContext#is_already_unreachable= (var18,var21) on <var18:FlowContext> */
2252 var18
->attrs
[COLOR_flow__FlowContext___is_already_unreachable
].s
= var21
; /* _is_already_unreachable on <var18:FlowContext> */
2253 RET_LABEL22
:(void)0;
2257 { /* Inline flow#FlowVisitor#toolcontext (var_v) on <var_v:FlowVisitor> */
2258 var25
= var_v
->attrs
[COLOR_flow__FlowVisitor___toolcontext
].val
; /* _toolcontext on <var_v:FlowVisitor> */
2259 if (unlikely(var25
== NULL
)) {
2260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2261 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 41);
2265 RET_LABEL24
:(void)0;
2269 var26
= parser_nodes__ANode__hot_location(var_e
);
2274 var28
= "Error: unreachable statement.";
2276 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2281 toolcontext__ToolContext__error(var23
, var26
, var27
); /* Direct call toolcontext#ToolContext#error on <var23:ToolContext>*/
2286 CONTINUE_label
: (void)0;
2288 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[ANode]>*/;
2291 BREAK_label
: (void)0;
2294 /* method flow#ABlockExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2295 void VIRTUAL_flow__ABlockExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2296 flow__ABlockExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#ABlockExpr#accept_flow_visitor on <self:Object(ABlockExpr)>*/
2299 /* method flow#AReturnExpr#accept_flow_visitor for (self: AReturnExpr, FlowVisitor) */
2300 void flow__AReturnExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2301 val
* var_v
/* var v: FlowVisitor */;
2302 val
* var
/* : FlowContext */;
2305 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AReturnExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReturnExpr>*/;
2308 var
= flow__FlowVisitor__make_unreachable_flow(var_v
);
2313 /* method flow#AReturnExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2314 void VIRTUAL_flow__AReturnExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2315 flow__AReturnExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AReturnExpr#accept_flow_visitor on <self:Object(AReturnExpr)>*/
2318 /* method flow#AContinueExpr#before_flow_context for (self: AContinueExpr): nullable FlowContext */
2319 val
* flow__AContinueExpr__before_flow_context(val
* self
) {
2320 val
* var
/* : nullable FlowContext */;
2321 val
* var1
/* : nullable FlowContext */;
2322 val
* var3
/* : nullable FlowContext */;
2323 val
* var_after
/* var after: nullable FlowContext */;
2324 val
* var4
/* : null */;
2325 short int var5
/* : Bool */;
2326 short int var6
/* : Bool */;
2327 val
* var_other
/* var other: nullable Object */;
2328 short int var8
/* : Bool */;
2329 short int var10
/* : Bool */;
2330 val
* var11
/* : null */;
2331 val
* var12
/* : Array[FlowContext] */;
2332 val
* var14
/* : Array[FlowContext] */;
2333 val
* var15
/* : nullable Object */;
2335 { /* Inline flow#AExpr#after_flow_context (self) on <self:AContinueExpr> */
2336 var3
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AContinueExpr> */
2343 if (var_after
== NULL
) {
2344 var5
= 1; /* is null */
2346 var5
= 0; /* arg is null but recv is not */
2349 { /* Inline kernel#Object#== (var_after,var4) on <var_after:nullable FlowContext> */
2352 { /* Inline kernel#Object#is_same_instance (var_after,var_other) on <var_after:nullable FlowContext(FlowContext)> */
2353 var10
= var_after
== var_other
;
2372 { /* Inline flow#FlowContext#previous (var_after) on <var_after:nullable FlowContext(FlowContext)> */
2373 var14
= var_after
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <var_after:nullable FlowContext(FlowContext)> */
2374 if (unlikely(var14
== NULL
)) {
2375 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
2376 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 192);
2380 RET_LABEL13
:(void)0;
2384 var15
= abstract_collection__SequenceRead__first(var12
);
2391 /* method flow#AContinueExpr#before_flow_context for (self: Object): nullable FlowContext */
2392 val
* VIRTUAL_flow__AContinueExpr__before_flow_context(val
* self
) {
2393 val
* var
/* : nullable FlowContext */;
2394 val
* var1
/* : nullable FlowContext */;
2395 var1
= flow__AContinueExpr__before_flow_context(self
);
2400 /* method flow#AContinueExpr#accept_flow_visitor for (self: AContinueExpr, FlowVisitor) */
2401 void flow__AContinueExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2402 val
* var_v
/* var v: FlowVisitor */;
2403 val
* var
/* : FlowContext */;
2406 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AContinueExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AContinueExpr>*/;
2409 var
= flow__FlowVisitor__make_unreachable_flow(var_v
);
2414 /* method flow#AContinueExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2415 void VIRTUAL_flow__AContinueExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2416 flow__AContinueExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AContinueExpr#accept_flow_visitor on <self:Object(AContinueExpr)>*/
2419 /* method flow#ABreakExpr#before_flow_context for (self: ABreakExpr): nullable FlowContext */
2420 val
* flow__ABreakExpr__before_flow_context(val
* self
) {
2421 val
* var
/* : nullable FlowContext */;
2422 val
* var1
/* : nullable FlowContext */;
2423 val
* var3
/* : nullable FlowContext */;
2424 val
* var_after
/* var after: nullable FlowContext */;
2425 val
* var4
/* : null */;
2426 short int var5
/* : Bool */;
2427 short int var6
/* : Bool */;
2428 val
* var_other
/* var other: nullable Object */;
2429 short int var8
/* : Bool */;
2430 short int var10
/* : Bool */;
2431 val
* var11
/* : null */;
2432 val
* var12
/* : Array[FlowContext] */;
2433 val
* var14
/* : Array[FlowContext] */;
2434 val
* var15
/* : nullable Object */;
2436 { /* Inline flow#AExpr#after_flow_context (self) on <self:ABreakExpr> */
2437 var3
= self
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:ABreakExpr> */
2444 if (var_after
== NULL
) {
2445 var5
= 1; /* is null */
2447 var5
= 0; /* arg is null but recv is not */
2450 { /* Inline kernel#Object#== (var_after,var4) on <var_after:nullable FlowContext> */
2453 { /* Inline kernel#Object#is_same_instance (var_after,var_other) on <var_after:nullable FlowContext(FlowContext)> */
2454 var10
= var_after
== var_other
;
2473 { /* Inline flow#FlowContext#previous (var_after) on <var_after:nullable FlowContext(FlowContext)> */
2474 var14
= var_after
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <var_after:nullable FlowContext(FlowContext)> */
2475 if (unlikely(var14
== NULL
)) {
2476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
2477 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 192);
2481 RET_LABEL13
:(void)0;
2485 var15
= abstract_collection__SequenceRead__first(var12
);
2492 /* method flow#ABreakExpr#before_flow_context for (self: Object): nullable FlowContext */
2493 val
* VIRTUAL_flow__ABreakExpr__before_flow_context(val
* self
) {
2494 val
* var
/* : nullable FlowContext */;
2495 val
* var1
/* : nullable FlowContext */;
2496 var1
= flow__ABreakExpr__before_flow_context(self
);
2501 /* method flow#ABreakExpr#accept_flow_visitor for (self: ABreakExpr, FlowVisitor) */
2502 void flow__ABreakExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2503 val
* var_v
/* var v: FlowVisitor */;
2504 val
* var
/* : FlowContext */;
2507 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ABreakExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ABreakExpr>*/;
2510 var
= flow__FlowVisitor__make_unreachable_flow(var_v
);
2515 /* method flow#ABreakExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2516 void VIRTUAL_flow__ABreakExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2517 flow__ABreakExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#ABreakExpr#accept_flow_visitor on <self:Object(ABreakExpr)>*/
2520 /* method flow#AAbortExpr#accept_flow_visitor for (self: AAbortExpr, FlowVisitor) */
2521 void flow__AAbortExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2522 val
* var_v
/* var v: FlowVisitor */;
2523 val
* var
/* : FlowContext */;
2526 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AAbortExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AAbortExpr>*/;
2529 var
= flow__FlowVisitor__make_unreachable_flow(var_v
);
2534 /* method flow#AAbortExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2535 void VIRTUAL_flow__AAbortExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2536 flow__AAbortExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AAbortExpr#accept_flow_visitor on <self:Object(AAbortExpr)>*/
2539 /* method flow#ADoExpr#accept_flow_visitor for (self: ADoExpr, FlowVisitor) */
2540 void flow__ADoExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2541 val
* var_v
/* var v: FlowVisitor */;
2542 val
* var
/* : nullable EscapeMark */;
2543 val
* var2
/* : nullable EscapeMark */;
2546 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ADoExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ADoExpr>*/;
2549 { /* Inline scope#ADoExpr#escapemark (self) on <self:ADoExpr> */
2550 var2
= self
->attrs
[COLOR_scope__ADoExpr___escapemark
].val
; /* _escapemark on <self:ADoExpr> */
2556 flow__FlowVisitor__merge_breaks(var_v
, var
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2560 /* method flow#ADoExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2561 void VIRTUAL_flow__ADoExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2562 flow__ADoExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#ADoExpr#accept_flow_visitor on <self:Object(ADoExpr)>*/
2565 /* method flow#AIfExpr#accept_flow_visitor for (self: AIfExpr, FlowVisitor) */
2566 void flow__AIfExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2567 val
* var_v
/* var v: FlowVisitor */;
2568 val
* var
/* : AExpr */;
2569 val
* var1
/* : FlowContext */;
2570 val
* var_after_expr
/* var after_expr: FlowContext */;
2571 val
* var2
/* : FlowContext */;
2572 val
* var4
/* : FlowContext */;
2573 val
* var6
/* : nullable AExpr */;
2574 val
* var7
/* : FlowContext */;
2575 val
* var9
/* : FlowContext */;
2576 val
* var_after_then
/* var after_then: FlowContext */;
2577 val
* var10
/* : FlowContext */;
2578 val
* var12
/* : FlowContext */;
2579 val
* var14
/* : nullable AExpr */;
2580 val
* var15
/* : FlowContext */;
2581 val
* var17
/* : FlowContext */;
2582 val
* var_after_else
/* var after_else: FlowContext */;
2583 val
* var18
/* : FlowContext */;
2586 var
= parser_nodes__AIfExpr__n_expr(self
);
2589 var1
= flow__FlowVisitor__visit_expr(var_v
, var
);
2591 var_after_expr
= var1
;
2593 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2594 var4
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2595 if (unlikely(var4
== NULL
)) {
2596 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2597 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
2605 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var2) on <var_v:FlowVisitor> */
2606 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var2
; /* _current_flow_context on <var_v:FlowVisitor> */
2611 var6
= parser_nodes__AIfExpr__n_then(self
);
2614 parser_nodes__Visitor__enter_visit(var_v
, var6
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2617 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2618 var9
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2619 if (unlikely(var9
== NULL
)) {
2620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2621 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
2628 var_after_then
= var7
;
2630 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2631 var12
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2632 if (unlikely(var12
== NULL
)) {
2633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2634 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
2638 RET_LABEL11
:(void)0;
2642 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var10) on <var_v:FlowVisitor> */
2643 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var10
; /* _current_flow_context on <var_v:FlowVisitor> */
2644 RET_LABEL13
:(void)0;
2648 var14
= parser_nodes__AIfExpr__n_else(self
);
2651 parser_nodes__Visitor__enter_visit(var_v
, var14
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2654 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2655 var17
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2656 if (unlikely(var17
== NULL
)) {
2657 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2658 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
2662 RET_LABEL16
:(void)0;
2665 var_after_else
= var15
;
2667 var18
= flow__FlowVisitor__make_merge_flow(var_v
, var_after_then
, var_after_else
);
2672 /* method flow#AIfExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2673 void VIRTUAL_flow__AIfExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2674 flow__AIfExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AIfExpr#accept_flow_visitor on <self:Object(AIfExpr)>*/
2677 /* method flow#AIfexprExpr#accept_flow_visitor for (self: AIfexprExpr, FlowVisitor) */
2678 void flow__AIfexprExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2679 val
* var_v
/* var v: FlowVisitor */;
2680 val
* var
/* : AExpr */;
2681 val
* var1
/* : FlowContext */;
2682 val
* var_after_expr
/* var after_expr: FlowContext */;
2683 val
* var2
/* : FlowContext */;
2684 val
* var4
/* : FlowContext */;
2685 val
* var6
/* : AExpr */;
2686 val
* var7
/* : FlowContext */;
2687 val
* var9
/* : FlowContext */;
2688 val
* var_after_then
/* var after_then: FlowContext */;
2689 val
* var10
/* : FlowContext */;
2690 val
* var12
/* : FlowContext */;
2691 val
* var14
/* : AExpr */;
2692 val
* var15
/* : FlowContext */;
2693 val
* var17
/* : FlowContext */;
2694 val
* var_after_else
/* var after_else: FlowContext */;
2695 val
* var18
/* : FlowContext */;
2698 var
= parser_nodes__AIfexprExpr__n_expr(self
);
2701 var1
= flow__FlowVisitor__visit_expr(var_v
, var
);
2703 var_after_expr
= var1
;
2705 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2706 var4
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2707 if (unlikely(var4
== NULL
)) {
2708 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2709 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
2717 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var2) on <var_v:FlowVisitor> */
2718 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var2
; /* _current_flow_context on <var_v:FlowVisitor> */
2723 var6
= parser_nodes__AIfexprExpr__n_then(self
);
2726 parser_nodes__Visitor__enter_visit(var_v
, var6
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2729 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2730 var9
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2731 if (unlikely(var9
== NULL
)) {
2732 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2733 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
2740 var_after_then
= var7
;
2742 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2743 var12
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2744 if (unlikely(var12
== NULL
)) {
2745 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2746 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
2750 RET_LABEL11
:(void)0;
2754 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var10) on <var_v:FlowVisitor> */
2755 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var10
; /* _current_flow_context on <var_v:FlowVisitor> */
2756 RET_LABEL13
:(void)0;
2760 var14
= parser_nodes__AIfexprExpr__n_else(self
);
2763 parser_nodes__Visitor__enter_visit(var_v
, var14
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2766 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2767 var17
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2768 if (unlikely(var17
== NULL
)) {
2769 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2770 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
2774 RET_LABEL16
:(void)0;
2777 var_after_else
= var15
;
2779 var18
= flow__FlowVisitor__make_merge_flow(var_v
, var_after_then
, var_after_else
);
2784 /* method flow#AIfexprExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2785 void VIRTUAL_flow__AIfexprExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2786 flow__AIfexprExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AIfexprExpr#accept_flow_visitor on <self:Object(AIfexprExpr)>*/
2789 /* method flow#AWhileExpr#accept_flow_visitor for (self: AWhileExpr, FlowVisitor) */
2790 void flow__AWhileExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2791 val
* var_v
/* var v: FlowVisitor */;
2792 val
* var
/* : FlowContext */;
2793 val
* var_before_loop
/* var before_loop: FlowContext */;
2794 val
* var1
/* : AExpr */;
2795 val
* var2
/* : FlowContext */;
2796 val
* var_after_expr
/* var after_expr: FlowContext */;
2797 val
* var3
/* : FlowContext */;
2798 val
* var5
/* : FlowContext */;
2799 val
* var7
/* : nullable AExpr */;
2800 val
* var8
/* : FlowContext */;
2801 val
* var10
/* : FlowContext */;
2802 val
* var_after_block
/* var after_block: FlowContext */;
2803 val
* var11
/* : nullable EscapeMark */;
2804 val
* var13
/* : nullable EscapeMark */;
2805 val
* var14
/* : FlowContext */;
2806 val
* var16
/* : FlowContext */;
2807 val
* var18
/* : nullable EscapeMark */;
2808 val
* var20
/* : nullable EscapeMark */;
2811 var
= flow__FlowVisitor__make_sub_flow(var_v
);
2813 var_before_loop
= var
;
2815 var1
= parser_nodes__AWhileExpr__n_expr(self
);
2818 var2
= flow__FlowVisitor__visit_expr(var_v
, var1
);
2820 var_after_expr
= var2
;
2822 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2823 var5
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2824 if (unlikely(var5
== NULL
)) {
2825 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2826 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
2834 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var3) on <var_v:FlowVisitor> */
2835 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var3
; /* _current_flow_context on <var_v:FlowVisitor> */
2840 var7
= parser_nodes__AWhileExpr__n_block(self
);
2843 parser_nodes__Visitor__enter_visit(var_v
, var7
); /* 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 var10
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2848 if (unlikely(var10
== NULL
)) {
2849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2850 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
2857 var_after_block
= var8
;
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#escapemark (self) on <self:AWhileExpr> */
2863 var13
= self
->attrs
[COLOR_scope__AWhileExpr___escapemark
].val
; /* _escapemark on <self:AWhileExpr> */
2865 RET_LABEL12
:(void)0;
2869 flow__FlowVisitor__merge_continues_to(var_v
, var_after_block
, var11
); /* 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 var16
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2874 if (unlikely(var16
== NULL
)) {
2875 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2876 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
2880 RET_LABEL15
:(void)0;
2884 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var14) on <var_v:FlowVisitor> */
2885 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var14
; /* _current_flow_context on <var_v:FlowVisitor> */
2886 RET_LABEL17
:(void)0;
2890 { /* Inline scope#AWhileExpr#escapemark (self) on <self:AWhileExpr> */
2891 var20
= self
->attrs
[COLOR_scope__AWhileExpr___escapemark
].val
; /* _escapemark on <self:AWhileExpr> */
2893 RET_LABEL19
:(void)0;
2897 flow__FlowVisitor__merge_breaks(var_v
, var18
); /* 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
* var2
/* : FlowContext */;
2913 val
* var4
/* : FlowContext */;
2914 val
* var_after_block
/* var after_block: FlowContext */;
2915 val
* var5
/* : nullable EscapeMark */;
2916 val
* var7
/* : nullable EscapeMark */;
2917 val
* var8
/* : FlowContext */;
2918 val
* var9
/* : nullable EscapeMark */;
2919 val
* var11
/* : nullable EscapeMark */;
2922 var
= flow__FlowVisitor__make_sub_flow(var_v
);
2924 var_before_loop
= var
;
2926 var1
= parser_nodes__ALoopExpr__n_block(self
);
2929 parser_nodes__Visitor__enter_visit(var_v
, var1
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2932 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2933 var4
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2934 if (unlikely(var4
== NULL
)) {
2935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2936 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
2943 var_after_block
= var2
;
2945 flow__FlowContext__add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
2948 { /* Inline scope#ALoopExpr#escapemark (self) on <self:ALoopExpr> */
2949 var7
= self
->attrs
[COLOR_scope__ALoopExpr___escapemark
].val
; /* _escapemark on <self:ALoopExpr> */
2955 flow__FlowVisitor__merge_continues_to(var_v
, var_after_block
, var5
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
2958 var8
= flow__FlowVisitor__make_unreachable_flow(var_v
);
2962 { /* Inline scope#ALoopExpr#escapemark (self) on <self:ALoopExpr> */
2963 var11
= self
->attrs
[COLOR_scope__ALoopExpr___escapemark
].val
; /* _escapemark on <self:ALoopExpr> */
2965 RET_LABEL10
:(void)0;
2969 flow__FlowVisitor__merge_breaks(var_v
, var9
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2973 /* method flow#ALoopExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
2974 void VIRTUAL_flow__ALoopExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2975 flow__ALoopExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#ALoopExpr#accept_flow_visitor on <self:Object(ALoopExpr)>*/
2978 /* method flow#AForExpr#accept_flow_visitor for (self: AForExpr, FlowVisitor) */
2979 void flow__AForExpr__accept_flow_visitor(val
* self
, val
* p0
) {
2980 val
* var_v
/* var v: FlowVisitor */;
2981 val
* var
/* : AExpr */;
2982 val
* var1
/* : FlowContext */;
2983 val
* var_before_loop
/* var before_loop: FlowContext */;
2984 val
* var2
/* : nullable AExpr */;
2985 val
* var3
/* : FlowContext */;
2986 val
* var5
/* : FlowContext */;
2987 val
* var_after_block
/* var after_block: FlowContext */;
2988 val
* var6
/* : nullable EscapeMark */;
2989 val
* var8
/* : nullable EscapeMark */;
2990 val
* var9
/* : FlowContext */;
2991 val
* var11
/* : FlowContext */;
2992 val
* var12
/* : FlowContext */;
2993 val
* var13
/* : nullable EscapeMark */;
2994 val
* var15
/* : nullable EscapeMark */;
2997 var
= parser_nodes__AForExpr__n_expr(self
);
3000 parser_nodes__Visitor__enter_visit(var_v
, var
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
3003 var1
= flow__FlowVisitor__make_sub_flow(var_v
);
3005 var_before_loop
= var1
;
3007 var2
= parser_nodes__AForExpr__n_block(self
);
3010 parser_nodes__Visitor__enter_visit(var_v
, var2
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
3013 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
3014 var5
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
3015 if (unlikely(var5
== NULL
)) {
3016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
3017 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
3024 var_after_block
= var3
;
3026 flow__FlowContext__add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
3029 { /* Inline scope#AForExpr#escapemark (self) on <self:AForExpr> */
3030 var8
= self
->attrs
[COLOR_scope__AForExpr___escapemark
].val
; /* _escapemark on <self:AForExpr> */
3036 flow__FlowVisitor__merge_continues_to(var_v
, var_after_block
, var6
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
3039 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
3040 var11
= var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
3041 if (unlikely(var11
== NULL
)) {
3042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
3043 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 39);
3047 RET_LABEL10
:(void)0;
3051 var12
= flow__FlowVisitor__make_merge_flow(var_v
, var9
, var_before_loop
);
3055 { /* Inline scope#AForExpr#escapemark (self) on <self:AForExpr> */
3056 var15
= self
->attrs
[COLOR_scope__AForExpr___escapemark
].val
; /* _escapemark on <self:AForExpr> */
3058 RET_LABEL14
:(void)0;
3062 flow__FlowVisitor__merge_breaks(var_v
, var13
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
3066 /* method flow#AForExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3067 void VIRTUAL_flow__AForExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3068 flow__AForExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AForExpr#accept_flow_visitor on <self:Object(AForExpr)>*/
3071 /* method flow#AAssertExpr#accept_flow_visitor for (self: AAssertExpr, FlowVisitor) */
3072 void flow__AAssertExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3073 val
* var_v
/* var v: FlowVisitor */;
3074 val
* var
/* : AExpr */;
3075 val
* var1
/* : FlowContext */;
3076 val
* var_after_expr
/* var after_expr: FlowContext */;
3077 val
* var2
/* : FlowContext */;
3078 val
* var4
/* : FlowContext */;
3079 val
* var6
/* : nullable AExpr */;
3080 val
* var7
/* : FlowContext */;
3081 val
* var9
/* : FlowContext */;
3084 var
= parser_nodes__AAssertExpr__n_expr(self
);
3087 var1
= flow__FlowVisitor__visit_expr(var_v
, var
);
3089 var_after_expr
= var1
;
3091 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3092 var4
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3093 if (unlikely(var4
== NULL
)) {
3094 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3095 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3103 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var2) on <var_v:FlowVisitor> */
3104 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var2
; /* _current_flow_context on <var_v:FlowVisitor> */
3109 var6
= parser_nodes__AAssertExpr__n_else(self
);
3112 parser_nodes__Visitor__enter_visit(var_v
, var6
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
3115 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3116 var9
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3117 if (unlikely(var9
== NULL
)) {
3118 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3119 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3127 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var7) on <var_v:FlowVisitor> */
3128 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var7
; /* _current_flow_context on <var_v:FlowVisitor> */
3129 RET_LABEL10
:(void)0;
3134 /* method flow#AAssertExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3135 void VIRTUAL_flow__AAssertExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3136 flow__AAssertExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AAssertExpr#accept_flow_visitor on <self:Object(AAssertExpr)>*/
3139 /* method flow#AOrExpr#accept_flow_visitor for (self: AOrExpr, FlowVisitor) */
3140 void flow__AOrExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3141 val
* var_v
/* var v: FlowVisitor */;
3142 val
* var
/* : AExpr */;
3143 val
* var1
/* : FlowContext */;
3144 val
* var_after_expr
/* var after_expr: FlowContext */;
3145 val
* var2
/* : FlowContext */;
3146 val
* var4
/* : FlowContext */;
3147 val
* var6
/* : AExpr */;
3148 val
* var7
/* : FlowContext */;
3149 val
* var_after_expr2
/* var after_expr2: FlowContext */;
3150 val
* var8
/* : FlowContext */;
3151 val
* var10
/* : FlowContext */;
3152 val
* var11
/* : FlowContext */;
3153 val
* var13
/* : FlowContext */;
3154 val
* var14
/* : FlowContext */;
3155 val
* var_merge_true
/* var merge_true: FlowContext */;
3156 static val
* varonce
;
3157 val
* var15
/* : String */;
3158 char* var16
/* : NativeString */;
3159 long var17
/* : Int */;
3160 val
* var18
/* : FlatString */;
3161 val
* var20
/* : FlowContext */;
3162 val
* var22
/* : FlowContext */;
3163 val
* var23
/* : FlowContext */;
3166 var
= parser_nodes__AOrExpr__n_expr(self
);
3169 var1
= flow__FlowVisitor__visit_expr(var_v
, var
);
3171 var_after_expr
= var1
;
3173 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3174 var4
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3175 if (unlikely(var4
== NULL
)) {
3176 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3177 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3185 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var2) on <var_v:FlowVisitor> */
3186 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var2
; /* _current_flow_context on <var_v:FlowVisitor> */
3191 var6
= parser_nodes__AOrExpr__n_expr2(self
);
3194 var7
= flow__FlowVisitor__visit_expr(var_v
, var6
);
3196 var_after_expr2
= var7
;
3198 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3199 var10
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3200 if (unlikely(var10
== NULL
)) {
3201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3202 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3210 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3211 var13
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3212 if (unlikely(var13
== NULL
)) {
3213 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3214 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3218 RET_LABEL12
:(void)0;
3222 var14
= flow__FlowVisitor__make_merge_flow(var_v
, var8
, var11
);
3224 var_merge_true
= var14
;
3230 var18
= string__NativeString__to_s_with_length(var16
, var17
);
3235 { /* Inline flow#FlowContext#name= (var_merge_true,var15) on <var_merge_true:FlowContext> */
3236 var_merge_true
->attrs
[COLOR_flow__FlowContext___name
].val
= var15
; /* _name on <var_merge_true:FlowContext> */
3237 RET_LABEL19
:(void)0;
3241 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
3242 var22
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
3243 if (unlikely(var22
== NULL
)) {
3244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3245 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3249 RET_LABEL21
:(void)0;
3253 var23
= flow__FlowVisitor__make_true_false_flow(var_v
, var_merge_true
, var20
);
3258 /* method flow#AOrExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3259 void VIRTUAL_flow__AOrExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3260 flow__AOrExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AOrExpr#accept_flow_visitor on <self:Object(AOrExpr)>*/
3263 /* method flow#AImpliesExpr#accept_flow_visitor for (self: AImpliesExpr, FlowVisitor) */
3264 void flow__AImpliesExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3265 val
* var_v
/* var v: FlowVisitor */;
3266 val
* var
/* : AExpr */;
3267 val
* var1
/* : FlowContext */;
3268 val
* var_after_expr
/* var after_expr: FlowContext */;
3269 val
* var2
/* : FlowContext */;
3270 val
* var4
/* : FlowContext */;
3271 val
* var6
/* : AExpr */;
3272 val
* var7
/* : FlowContext */;
3273 val
* var_after_expr2
/* var after_expr2: FlowContext */;
3274 val
* var8
/* : FlowContext */;
3275 val
* var10
/* : FlowContext */;
3276 val
* var11
/* : FlowContext */;
3277 val
* var13
/* : FlowContext */;
3278 val
* var14
/* : FlowContext */;
3279 val
* var_merge_true
/* var merge_true: FlowContext */;
3280 static val
* varonce
;
3281 val
* var15
/* : String */;
3282 char* var16
/* : NativeString */;
3283 long var17
/* : Int */;
3284 val
* var18
/* : FlatString */;
3285 val
* var20
/* : FlowContext */;
3286 val
* var22
/* : FlowContext */;
3287 val
* var23
/* : FlowContext */;
3290 var
= parser_nodes__AImpliesExpr__n_expr(self
);
3293 var1
= flow__FlowVisitor__visit_expr(var_v
, var
);
3295 var_after_expr
= var1
;
3297 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3298 var4
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3299 if (unlikely(var4
== NULL
)) {
3300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3301 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3309 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var2) on <var_v:FlowVisitor> */
3310 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var2
; /* _current_flow_context on <var_v:FlowVisitor> */
3315 var6
= parser_nodes__AImpliesExpr__n_expr2(self
);
3318 var7
= flow__FlowVisitor__visit_expr(var_v
, var6
);
3320 var_after_expr2
= var7
;
3322 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3323 var10
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3324 if (unlikely(var10
== NULL
)) {
3325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3326 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3334 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3335 var13
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3336 if (unlikely(var13
== NULL
)) {
3337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3338 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3342 RET_LABEL12
:(void)0;
3346 var14
= flow__FlowVisitor__make_merge_flow(var_v
, var8
, var11
);
3348 var_merge_true
= var14
;
3354 var18
= string__NativeString__to_s_with_length(var16
, var17
);
3359 { /* Inline flow#FlowContext#name= (var_merge_true,var15) on <var_merge_true:FlowContext> */
3360 var_merge_true
->attrs
[COLOR_flow__FlowContext___name
].val
= var15
; /* _name on <var_merge_true:FlowContext> */
3361 RET_LABEL19
:(void)0;
3365 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
3366 var22
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
3367 if (unlikely(var22
== NULL
)) {
3368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3369 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3373 RET_LABEL21
:(void)0;
3377 var23
= flow__FlowVisitor__make_true_false_flow(var_v
, var_merge_true
, var20
);
3382 /* method flow#AImpliesExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3383 void VIRTUAL_flow__AImpliesExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3384 flow__AImpliesExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AImpliesExpr#accept_flow_visitor on <self:Object(AImpliesExpr)>*/
3387 /* method flow#AAndExpr#accept_flow_visitor for (self: AAndExpr, FlowVisitor) */
3388 void flow__AAndExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3389 val
* var_v
/* var v: FlowVisitor */;
3390 val
* var
/* : AExpr */;
3391 val
* var1
/* : FlowContext */;
3392 val
* var_after_expr
/* var after_expr: FlowContext */;
3393 val
* var2
/* : FlowContext */;
3394 val
* var4
/* : FlowContext */;
3395 val
* var6
/* : AExpr */;
3396 val
* var7
/* : FlowContext */;
3397 val
* var_after_expr2
/* var after_expr2: FlowContext */;
3398 val
* var8
/* : FlowContext */;
3399 val
* var10
/* : FlowContext */;
3400 val
* var11
/* : FlowContext */;
3401 val
* var13
/* : FlowContext */;
3402 val
* var14
/* : FlowContext */;
3403 val
* var_merge_false
/* var merge_false: FlowContext */;
3404 static val
* varonce
;
3405 val
* var15
/* : String */;
3406 char* var16
/* : NativeString */;
3407 long var17
/* : Int */;
3408 val
* var18
/* : FlatString */;
3409 val
* var20
/* : FlowContext */;
3410 val
* var22
/* : FlowContext */;
3411 val
* var23
/* : FlowContext */;
3414 var
= parser_nodes__AAndExpr__n_expr(self
);
3417 var1
= flow__FlowVisitor__visit_expr(var_v
, var
);
3419 var_after_expr
= var1
;
3421 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3422 var4
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3423 if (unlikely(var4
== NULL
)) {
3424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3425 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3433 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var2) on <var_v:FlowVisitor> */
3434 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var2
; /* _current_flow_context on <var_v:FlowVisitor> */
3439 var6
= parser_nodes__AAndExpr__n_expr2(self
);
3442 var7
= flow__FlowVisitor__visit_expr(var_v
, var6
);
3444 var_after_expr2
= var7
;
3446 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3447 var10
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3448 if (unlikely(var10
== NULL
)) {
3449 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3450 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3458 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
3459 var13
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
3460 if (unlikely(var13
== NULL
)) {
3461 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3462 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3466 RET_LABEL12
:(void)0;
3470 var14
= flow__FlowVisitor__make_merge_flow(var_v
, var8
, var11
);
3472 var_merge_false
= var14
;
3476 var16
= "AND FALSE";
3478 var18
= string__NativeString__to_s_with_length(var16
, var17
);
3483 { /* Inline flow#FlowContext#name= (var_merge_false,var15) on <var_merge_false:FlowContext> */
3484 var_merge_false
->attrs
[COLOR_flow__FlowContext___name
].val
= var15
; /* _name on <var_merge_false:FlowContext> */
3485 RET_LABEL19
:(void)0;
3489 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3490 var22
= var_after_expr2
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3491 if (unlikely(var22
== NULL
)) {
3492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3493 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3497 RET_LABEL21
:(void)0;
3501 var23
= flow__FlowVisitor__make_true_false_flow(var_v
, var20
, var_merge_false
);
3506 /* method flow#AAndExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3507 void VIRTUAL_flow__AAndExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3508 flow__AAndExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AAndExpr#accept_flow_visitor on <self:Object(AAndExpr)>*/
3511 /* method flow#ANotExpr#accept_flow_visitor for (self: ANotExpr, FlowVisitor) */
3512 void flow__ANotExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3513 val
* var_v
/* var v: FlowVisitor */;
3514 val
* var
/* : AExpr */;
3515 val
* var1
/* : FlowContext */;
3516 val
* var_after_expr
/* var after_expr: FlowContext */;
3517 val
* var2
/* : FlowContext */;
3518 val
* var4
/* : FlowContext */;
3519 val
* var5
/* : FlowContext */;
3520 val
* var7
/* : FlowContext */;
3521 val
* var8
/* : FlowContext */;
3524 var
= parser_nodes__ANotExpr__n_expr(self
);
3527 var1
= flow__FlowVisitor__visit_expr(var_v
, var
);
3529 var_after_expr
= var1
;
3531 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3532 var4
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3533 if (unlikely(var4
== NULL
)) {
3534 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3535 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 231);
3543 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3544 var7
= var_after_expr
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3545 if (unlikely(var7
== NULL
)) {
3546 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3547 PRINT_ERROR(" (%s:%d)\n", "src/flow.nit", 228);
3555 var8
= flow__FlowVisitor__make_true_false_flow(var_v
, var2
, var5
);
3560 /* method flow#ANotExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3561 void VIRTUAL_flow__ANotExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3562 flow__ANotExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#ANotExpr#accept_flow_visitor on <self:Object(ANotExpr)>*/
3565 /* method flow#AOrElseExpr#accept_flow_visitor for (self: AOrElseExpr, FlowVisitor) */
3566 void flow__AOrElseExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3567 val
* var_v
/* var v: FlowVisitor */;
3570 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AOrElseExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AOrElseExpr>*/;
3574 /* method flow#AOrElseExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3575 void VIRTUAL_flow__AOrElseExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3576 flow__AOrElseExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AOrElseExpr#accept_flow_visitor on <self:Object(AOrElseExpr)>*/
3579 /* method flow#AEqExpr#accept_flow_visitor for (self: AEqExpr, FlowVisitor) */
3580 void flow__AEqExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3581 val
* var_v
/* var v: FlowVisitor */;
3582 val
* var
/* : FlowContext */;
3585 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AEqExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AEqExpr>*/;
3588 var
= flow__FlowVisitor__make_sub_true_false_flow(var_v
);
3593 /* method flow#AEqExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3594 void VIRTUAL_flow__AEqExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3595 flow__AEqExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AEqExpr#accept_flow_visitor on <self:Object(AEqExpr)>*/
3598 /* method flow#ANeExpr#accept_flow_visitor for (self: ANeExpr, FlowVisitor) */
3599 void flow__ANeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3600 val
* var_v
/* var v: FlowVisitor */;
3601 val
* var
/* : FlowContext */;
3604 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__ANeExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ANeExpr>*/;
3607 var
= flow__FlowVisitor__make_sub_true_false_flow(var_v
);
3612 /* method flow#ANeExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3613 void VIRTUAL_flow__ANeExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3614 flow__ANeExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#ANeExpr#accept_flow_visitor on <self:Object(ANeExpr)>*/
3617 /* method flow#AIsaExpr#accept_flow_visitor for (self: AIsaExpr, FlowVisitor) */
3618 void flow__AIsaExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3619 val
* var_v
/* var v: FlowVisitor */;
3620 val
* var
/* : FlowContext */;
3623 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_flow__AIsaExpr__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AIsaExpr>*/;
3626 var
= flow__FlowVisitor__make_sub_true_false_flow(var_v
);
3631 /* method flow#AIsaExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3632 void VIRTUAL_flow__AIsaExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3633 flow__AIsaExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AIsaExpr#accept_flow_visitor on <self:Object(AIsaExpr)>*/
3636 /* method flow#AProxyExpr#accept_flow_visitor for (self: AProxyExpr, FlowVisitor) */
3637 void flow__AProxyExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3638 val
* var_v
/* var v: FlowVisitor */;
3639 val
* var
/* : AExpr */;
3640 val
* var1
/* : FlowContext */;
3641 val
* var_after_expr
/* var after_expr: FlowContext */;
3644 var
= parser_nodes__AProxyExpr__n_expr(self
);
3647 var1
= flow__FlowVisitor__visit_expr(var_v
, var
);
3649 var_after_expr
= var1
;
3651 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var_after_expr) on <var_v:FlowVisitor> */
3652 var_v
->attrs
[COLOR_flow__FlowVisitor___current_flow_context
].val
= var_after_expr
; /* _current_flow_context on <var_v:FlowVisitor> */
3658 /* method flow#AProxyExpr#accept_flow_visitor for (self: Object, FlowVisitor) */
3659 void VIRTUAL_flow__AProxyExpr__accept_flow_visitor(val
* self
, val
* p0
) {
3660 flow__AProxyExpr__accept_flow_visitor(self
, p0
); /* Direct call flow#AProxyExpr#accept_flow_visitor on <self:Object(AProxyExpr)>*/