1 #include "nit__flow.sep.0.h"
2 /* method flow#ToolContext#flow_phase for (self: ToolContext): Phase */
3 val
* nit__flow___ToolContext___flow_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_nit__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", FILE_nit__flow
, 23);
16 /* method flow#FlowPhase#process_npropdef for (self: FlowPhase, APropdef) */
17 void nit__flow___nit__flow__FlowPhase___nit__phase__Phase__process_npropdef(val
* self
, val
* p0
) {
18 val
* var_npropdef
/* var npropdef: APropdef */;
19 val
* var
/* : ToolContext */;
20 val
* var2
/* : ToolContext */;
23 { /* Inline phase#Phase#toolcontext (self) on <self:FlowPhase> */
24 var2
= self
->attrs
[COLOR_nit__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:FlowPhase> */
25 if (unlikely(var2
== NULL
)) {
26 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
27 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase
, 200);
35 nit__flow___APropdef___do_flow(var_npropdef
, var
); /* Direct call flow#APropdef#do_flow on <var_npropdef:APropdef>*/
39 /* method flow#FlowVisitor#current_flow_context for (self: FlowVisitor): FlowContext */
40 val
* nit__flow___nit__flow__FlowVisitor___current_flow_context(val
* self
) {
41 val
* var
/* : FlowContext */;
42 val
* var1
/* : FlowContext */;
43 var1
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
44 if (unlikely(var1
== NULL
)) {
45 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
46 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
53 /* method flow#FlowVisitor#current_flow_context= for (self: FlowVisitor, FlowContext) */
54 void nit__flow___nit__flow__FlowVisitor___current_flow_context_61d(val
* self
, val
* p0
) {
55 self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= p0
; /* _current_flow_context on <self:FlowVisitor> */
58 /* method flow#FlowVisitor#toolcontext for (self: FlowVisitor): ToolContext */
59 val
* nit__flow___nit__flow__FlowVisitor___toolcontext(val
* self
) {
60 val
* var
/* : ToolContext */;
61 val
* var1
/* : ToolContext */;
62 var1
= self
->attrs
[COLOR_nit__flow__FlowVisitor___toolcontext
].val
; /* _toolcontext on <self:FlowVisitor> */
63 if (unlikely(var1
== NULL
)) {
64 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
65 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 39);
72 /* method flow#FlowVisitor#toolcontext= for (self: FlowVisitor, ToolContext) */
73 void nit__flow___nit__flow__FlowVisitor___toolcontext_61d(val
* self
, val
* p0
) {
74 self
->attrs
[COLOR_nit__flow__FlowVisitor___toolcontext
].val
= p0
; /* _toolcontext on <self:FlowVisitor> */
77 /* method flow#FlowVisitor#init for (self: FlowVisitor) */
78 void nit__flow___nit__flow__FlowVisitor___standard__kernel__Object__init(val
* self
) {
79 val
* var
/* : Array[FlowContext] */;
80 val
* var2
/* : Array[FlowContext] */;
81 val
* var3
/* : FlowContext */;
82 val
* var5
/* : FlowContext */;
83 val
* var6
/* : FlowContext */;
84 val
* var8
/* : FlowContext */;
86 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nit__flow___nit__flow__FlowVisitor___standard__kernel__Object__init
]))(self
); /* init on <self:FlowVisitor>*/
89 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
90 var2
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
91 if (unlikely(var2
== NULL
)) {
92 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
93 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
101 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
102 var5
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
103 if (unlikely(var5
== NULL
)) {
104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
105 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
113 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var
, var3
); /* Direct call array#Array#add on <var:Array[FlowContext]>*/
116 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
117 var8
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
118 if (unlikely(var8
== NULL
)) {
119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
120 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
128 { /* Inline flow#FlowContext#is_start= (var6,1) on <var6:FlowContext> */
129 var6
->attrs
[COLOR_nit__flow__FlowContext___is_start
].s
= 1; /* _is_start on <var6:FlowContext> */
135 /* method flow#FlowVisitor#first for (self: FlowVisitor): nullable ANode */
136 val
* nit__flow___nit__flow__FlowVisitor___first(val
* self
) {
137 val
* var
/* : nullable ANode */;
138 val
* var1
/* : nullable ANode */;
139 var1
= self
->attrs
[COLOR_nit__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
144 /* method flow#FlowVisitor#first= for (self: FlowVisitor, nullable ANode) */
145 void nit__flow___nit__flow__FlowVisitor___first_61d(val
* self
, val
* p0
) {
146 self
->attrs
[COLOR_nit__flow__FlowVisitor___first
].val
= p0
; /* _first on <self:FlowVisitor> */
149 /* method flow#FlowVisitor#visit for (self: FlowVisitor, ANode) */
150 void nit__flow___nit__flow__FlowVisitor___nit__parser_nodes__Visitor__visit(val
* self
, val
* p0
) {
151 val
* var_node
/* var node: ANode */;
152 val
* var
/* : nullable ANode */;
153 val
* var2
/* : nullable ANode */;
154 short int var3
/* : Bool */;
155 short int var4
/* : Bool */;
156 val
* var_other
/* var other: nullable Object */;
157 short int var6
/* : Bool */;
158 short int var8
/* : Bool */;
159 val
* var10
/* : FlowContext */;
160 val
* var12
/* : FlowContext */;
161 val
* var13
/* : nullable ANode */;
162 val
* var15
/* : nullable ANode */;
163 short int var16
/* : Bool */;
164 short int var17
/* : Bool */;
165 short int var19
/* : Bool */;
166 short int var21
/* : Bool */;
167 val
* var22
/* : FlowContext */;
168 val
* var24
/* : FlowContext */;
169 short int var26
/* : Bool */;
172 val
* var27
/* : FlowContext */;
173 val
* var29
/* : FlowContext */;
174 val
* var_flow
/* var flow: FlowContext */;
175 short int var31
/* : Bool */;
176 val
* var32
/* : FlowContext */;
177 val
* var34
/* : FlowContext */;
178 short int var35
/* : Bool */;
179 val
* var_other37
/* var other: nullable Object */;
180 short int var38
/* : Bool */;
181 short int var39
/* : Bool */;
182 short int var_
/* var : Bool */;
183 val
* var40
/* : FlowContext */;
184 val
* var42
/* : FlowContext */;
185 short int var43
/* : Bool */;
186 short int var45
/* : Bool */;
187 short int var46
/* : Bool */;
188 val
* var47
/* : FlowContext */;
189 val
* var48
/* : FlowContext */;
190 val
* var50
/* : FlowContext */;
192 val
* var51
/* : String */;
193 char* var52
/* : NativeString */;
194 val
* var53
/* : FlatString */;
195 val
* var55
/* : nullable ANode */;
196 val
* var57
/* : nullable ANode */;
197 short int var58
/* : Bool */;
198 short int var59
/* : Bool */;
199 short int var61
/* : Bool */;
200 short int var63
/* : Bool */;
203 { /* Inline flow#FlowVisitor#first (self) on <self:FlowVisitor> */
204 var2
= self
->attrs
[COLOR_nit__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
210 var3
= 1; /* is null */
212 var3
= 0; /* arg is null but recv is not */
215 { /* Inline kernel#Object#== (var,((val*)NULL)) on <var:nullable ANode> */
216 var_other
= ((val
*)NULL
);
218 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ANode(ANode)> */
219 var8
= var
== var_other
;
233 { /* Inline flow#FlowVisitor#first= (self,var_node) on <self:FlowVisitor> */
234 self
->attrs
[COLOR_nit__flow__FlowVisitor___first
].val
= var_node
; /* _first on <self:FlowVisitor> */
241 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
242 var12
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
243 if (unlikely(var12
== NULL
)) {
244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
245 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
253 { /* Inline flow#FlowContext#node (var10) on <var10:FlowContext> */
254 var15
= var10
->attrs
[COLOR_nit__flow__FlowContext___node
].val
; /* _node on <var10:FlowContext> */
260 var16
= 1; /* is null */
262 var16
= 0; /* arg is null but recv is not */
265 { /* Inline kernel#Object#== (var13,((val*)NULL)) on <var13:nullable ANode> */
266 var_other
= ((val
*)NULL
);
268 { /* Inline kernel#Object#is_same_instance (var13,var_other) on <var13:nullable ANode(ANode)> */
269 var21
= var13
== var_other
;
283 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
284 var24
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
285 if (unlikely(var24
== NULL
)) {
286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
287 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
295 { /* Inline flow#FlowContext#node= (var22,var_node) on <var22:FlowContext> */
296 var22
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var_node
; /* _node on <var22:FlowContext> */
303 ((void(*)(val
* self
, val
* p0
))(var_node
->class->vft
[COLOR_nit__flow__ANode__accept_flow_visitor
]))(var_node
, self
); /* accept_flow_visitor on <var_node:ANode>*/
305 /* <var_node:ANode> isa AExpr */
306 cltype
= type_nit__AExpr
.color
;
307 idtype
= type_nit__AExpr
.id
;
308 if(cltype
>= var_node
->type
->table_size
) {
311 var26
= var_node
->type
->type_table
[cltype
] == idtype
;
315 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
316 var29
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
317 if (unlikely(var29
== NULL
)) {
318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
319 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
328 { /* Inline flow#AExpr#after_flow_context= (var_node,var_flow) on <var_node:ANode(AExpr)> */
329 var_node
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
= var_flow
; /* _after_flow_context on <var_node:ANode(AExpr)> */
334 { /* Inline flow#FlowContext#when_true (var_flow) on <var_flow:FlowContext> */
335 var34
= var_flow
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_flow:FlowContext> */
336 if (unlikely(var34
== NULL
)) {
337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
338 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
346 { /* Inline kernel#Object#!= (var32,var_flow) on <var32:FlowContext> */
347 var_other37
= var_flow
;
349 var38
= ((short int(*)(val
* self
, val
* p0
))(var32
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var32
, var_other37
); /* == on <var32:FlowContext>*/
362 { /* Inline flow#FlowContext#when_false (var_flow) on <var_flow:FlowContext> */
363 var42
= var_flow
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_flow:FlowContext> */
364 if (unlikely(var42
== NULL
)) {
365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
366 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
374 { /* Inline kernel#Object#!= (var40,var_flow) on <var40:FlowContext> */
375 var_other37
= var_flow
;
377 var45
= ((short int(*)(val
* self
, val
* p0
))(var40
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var40
, var_other37
); /* == on <var40:FlowContext>*/
389 var47
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(self
);
392 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
393 var50
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
394 if (unlikely(var50
== NULL
)) {
395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
396 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
403 if (likely(varonce
!=NULL
)) {
407 var53
= standard___standard__NativeString___to_s_with_length(var52
, 7l);
412 { /* Inline flow#FlowContext#name= (var48,var51) on <var48:FlowContext> */
413 var48
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var51
; /* _name on <var48:FlowContext> */
422 { /* Inline flow#FlowVisitor#first (self) on <self:FlowVisitor> */
423 var57
= self
->attrs
[COLOR_nit__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
429 var58
= 0; /* <var_node:ANode> cannot be null */
431 { /* Inline kernel#Object#== (var55,var_node) on <var55:nullable ANode> */
432 var_other
= var_node
;
434 { /* Inline kernel#Object#is_same_instance (var55,var_other) on <var55:nullable ANode(ANode)> */
435 var63
= var55
== var_other
;
452 /* method flow#FlowVisitor#visit_expr for (self: FlowVisitor, AExpr): FlowContext */
453 val
* nit__flow___nit__flow__FlowVisitor___visit_expr(val
* self
, val
* p0
) {
454 val
* var
/* : FlowContext */;
455 val
* var_node
/* var node: AExpr */;
456 val
* var1
/* : nullable FlowContext */;
457 val
* var3
/* : nullable FlowContext */;
460 nit___nit__Visitor___enter_visit(self
, var_node
); /* Direct call parser_nodes#Visitor#enter_visit on <self:FlowVisitor>*/
463 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
464 var3
= var_node
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
469 if (unlikely(var1
== NULL
)) {
470 PRINT_ERROR("Runtime error: %s", "Cast failed");
471 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 73);
479 /* method flow#FlowVisitor#flows for (self: FlowVisitor): Array[FlowContext] */
480 val
* nit__flow___nit__flow__FlowVisitor___flows(val
* self
) {
481 val
* var
/* : Array[FlowContext] */;
482 val
* var1
/* : Array[FlowContext] */;
483 var1
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
484 if (unlikely(var1
== NULL
)) {
485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
486 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
493 /* method flow#FlowVisitor#make_sub_flow for (self: FlowVisitor): FlowContext */
494 val
* nit__flow___nit__flow__FlowVisitor___make_sub_flow(val
* self
) {
495 val
* var
/* : FlowContext */;
496 val
* var1
/* : FlowContext */;
497 val
* var_flow
/* var flow: FlowContext */;
498 val
* var3
/* : Array[FlowContext] */;
499 val
* var5
/* : Array[FlowContext] */;
500 val
* var6
/* : nullable ANode */;
501 val
* var8
/* : nullable ANode */;
502 val
* var10
/* : FlowContext */;
503 val
* var12
/* : FlowContext */;
504 var1
= NEW_nit__FlowContext(&type_nit__FlowContext
);
506 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
512 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
513 var5
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
514 if (unlikely(var5
== NULL
)) {
515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
516 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
524 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
527 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
528 var8
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
534 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
535 var_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
540 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
541 var12
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
542 if (unlikely(var12
== NULL
)) {
543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
544 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
552 nit___nit__FlowContext___add_previous(var_flow
, var10
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
555 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
556 self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
565 /* method flow#FlowVisitor#make_merge_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
566 val
* nit__flow___nit__flow__FlowVisitor___make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
567 val
* var
/* : FlowContext */;
568 val
* var_flow1
/* var flow1: FlowContext */;
569 val
* var_flow2
/* var flow2: FlowContext */;
570 val
* var1
/* : FlowContext */;
571 val
* var_flow
/* var flow: FlowContext */;
572 val
* var3
/* : Array[FlowContext] */;
573 val
* var5
/* : Array[FlowContext] */;
574 val
* var6
/* : nullable ANode */;
575 val
* var8
/* : nullable ANode */;
578 var1
= NEW_nit__FlowContext(&type_nit__FlowContext
);
580 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
586 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
587 var5
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
588 if (unlikely(var5
== NULL
)) {
589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
590 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
598 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
601 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
602 var8
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
608 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
609 var_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
614 nit___nit__FlowContext___add_previous(var_flow
, var_flow1
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
617 nit___nit__FlowContext___add_previous(var_flow
, var_flow2
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
620 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
621 self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
630 /* method flow#FlowVisitor#make_true_false_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
631 val
* nit__flow___nit__flow__FlowVisitor___make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
632 val
* var
/* : FlowContext */;
633 val
* var_true_flow
/* var true_flow: FlowContext */;
634 val
* var_false_flow
/* var false_flow: FlowContext */;
635 val
* var1
/* : FlowContext */;
636 val
* var_flow
/* var flow: FlowContext */;
637 val
* var3
/* : Array[FlowContext] */;
638 val
* var5
/* : Array[FlowContext] */;
639 val
* var6
/* : nullable ANode */;
640 val
* var8
/* : nullable ANode */;
643 var1
= NEW_nit__FlowContext(&type_nit__FlowContext
);
645 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
651 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
652 var5
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
653 if (unlikely(var5
== NULL
)) {
654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
655 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
663 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
666 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
667 var8
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
673 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
674 var_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
679 nit___nit__FlowContext___add_previous(var_flow
, var_true_flow
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
682 nit___nit__FlowContext___add_previous(var_flow
, var_false_flow
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
685 { /* Inline flow#FlowContext#when_true= (var_flow,var_true_flow) on <var_flow:FlowContext> */
686 var_flow
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
= var_true_flow
; /* _when_true on <var_flow:FlowContext> */
691 { /* Inline flow#FlowContext#when_false= (var_flow,var_false_flow) on <var_flow:FlowContext> */
692 var_flow
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
= var_false_flow
; /* _when_false on <var_flow:FlowContext> */
697 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
698 self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
707 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: FlowVisitor): FlowContext */
708 val
* nit__flow___nit__flow__FlowVisitor___make_sub_true_false_flow(val
* self
) {
709 val
* var
/* : FlowContext */;
710 val
* var1
/* : FlowContext */;
711 val
* var3
/* : FlowContext */;
712 val
* var_orig_flow
/* var orig_flow: FlowContext */;
713 val
* var4
/* : FlowContext */;
714 val
* var_true_flow
/* var true_flow: FlowContext */;
715 val
* var6
/* : Array[FlowContext] */;
716 val
* var8
/* : Array[FlowContext] */;
717 val
* var9
/* : nullable ANode */;
718 val
* var11
/* : nullable ANode */;
720 val
* var13
/* : String */;
721 char* var14
/* : NativeString */;
722 val
* var15
/* : FlatString */;
723 val
* var17
/* : FlowContext */;
724 val
* var_false_flow
/* var false_flow: FlowContext */;
725 val
* var19
/* : Array[FlowContext] */;
726 val
* var21
/* : Array[FlowContext] */;
727 val
* var22
/* : nullable ANode */;
728 val
* var24
/* : nullable ANode */;
729 static val
* varonce26
;
730 val
* var27
/* : String */;
731 char* var28
/* : NativeString */;
732 val
* var29
/* : FlatString */;
733 val
* var31
/* : FlowContext */;
735 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
736 var3
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
737 if (unlikely(var3
== NULL
)) {
738 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
739 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
746 var_orig_flow
= var1
;
747 var4
= NEW_nit__FlowContext(&type_nit__FlowContext
);
749 { /* Inline kernel#Object#init (var4) on <var4:FlowContext> */
753 var_true_flow
= var4
;
755 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
756 var8
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
757 if (unlikely(var8
== NULL
)) {
758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
759 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
767 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var6
, var_true_flow
); /* Direct call array#Array#add on <var6:Array[FlowContext]>*/
770 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
771 var11
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
777 { /* Inline flow#FlowContext#node= (var_true_flow,var9) on <var_true_flow:FlowContext> */
778 var_true_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var9
; /* _node on <var_true_flow:FlowContext> */
783 nit___nit__FlowContext___add_previous(var_true_flow
, var_orig_flow
); /* Direct call flow#FlowContext#add_previous on <var_true_flow:FlowContext>*/
785 if (likely(varonce
!=NULL
)) {
789 var15
= standard___standard__NativeString___to_s_with_length(var14
, 4l);
794 { /* Inline flow#FlowContext#name= (var_true_flow,var13) on <var_true_flow:FlowContext> */
795 var_true_flow
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var13
; /* _name on <var_true_flow:FlowContext> */
799 var17
= NEW_nit__FlowContext(&type_nit__FlowContext
);
801 { /* Inline kernel#Object#init (var17) on <var17:FlowContext> */
805 var_false_flow
= var17
;
807 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
808 var21
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
809 if (unlikely(var21
== NULL
)) {
810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
811 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
819 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var19
, var_false_flow
); /* Direct call array#Array#add on <var19:Array[FlowContext]>*/
822 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
823 var24
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
829 { /* Inline flow#FlowContext#node= (var_false_flow,var22) on <var_false_flow:FlowContext> */
830 var_false_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var22
; /* _node on <var_false_flow:FlowContext> */
835 nit___nit__FlowContext___add_previous(var_false_flow
, var_orig_flow
); /* Direct call flow#FlowContext#add_previous on <var_false_flow:FlowContext>*/
837 if (likely(varonce26
!=NULL
)) {
841 var29
= standard___standard__NativeString___to_s_with_length(var28
, 5l);
846 { /* Inline flow#FlowContext#name= (var_false_flow,var27) on <var_false_flow:FlowContext> */
847 var_false_flow
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var27
; /* _name on <var_false_flow:FlowContext> */
852 var31
= nit__flow___nit__flow__FlowVisitor___make_true_false_flow(self
, var_true_flow
, var_false_flow
);
859 /* method flow#FlowVisitor#make_unreachable_flow for (self: FlowVisitor): FlowContext */
860 val
* nit__flow___nit__flow__FlowVisitor___make_unreachable_flow(val
* self
) {
861 val
* var
/* : FlowContext */;
862 val
* var1
/* : FlowContext */;
863 val
* var_flow
/* var flow: FlowContext */;
864 val
* var3
/* : Array[FlowContext] */;
865 val
* var5
/* : Array[FlowContext] */;
866 val
* var6
/* : nullable ANode */;
867 val
* var8
/* : nullable ANode */;
868 val
* var10
/* : FlowContext */;
869 val
* var12
/* : FlowContext */;
870 var1
= NEW_nit__FlowContext(&type_nit__FlowContext
);
872 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
878 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
879 var5
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
880 if (unlikely(var5
== NULL
)) {
881 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
882 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
890 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
893 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
894 var8
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
900 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
901 var_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
906 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
907 var12
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
908 if (unlikely(var12
== NULL
)) {
909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
910 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
918 nit___nit__FlowContext___add_previous(var_flow
, var10
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
921 { /* Inline flow#FlowContext#is_marked_unreachable= (var_flow,1) on <var_flow:FlowContext> */
922 var_flow
->attrs
[COLOR_nit__flow__FlowContext___is_marked_unreachable
].s
= 1; /* _is_marked_unreachable on <var_flow:FlowContext> */
927 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
928 self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
937 /* method flow#FlowVisitor#merge_continues_to for (self: FlowVisitor, FlowContext, nullable EscapeMark) */
938 void nit__flow___nit__flow__FlowVisitor___merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
939 val
* var_before_loop
/* var before_loop: FlowContext */;
940 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
941 short int var
/* : Bool */;
942 short int var1
/* : Bool */;
943 val
* var_other
/* var other: nullable Object */;
944 short int var3
/* : Bool */;
945 short int var5
/* : Bool */;
946 val
* var6
/* : Array[AEscapeExpr] */;
947 val
* var8
/* : Array[AEscapeExpr] */;
948 val
* var_
/* var : Array[AEscapeExpr] */;
949 val
* var9
/* : ArrayIterator[nullable Object] */;
950 val
* var_10
/* var : ArrayIterator[AEscapeExpr] */;
951 short int var11
/* : Bool */;
952 val
* var12
/* : nullable Object */;
953 val
* var_b
/* var b: AEscapeExpr */;
954 val
* var13
/* : nullable FlowContext */;
955 val
* var_before
/* var before: nullable FlowContext */;
956 short int var14
/* : Bool */;
957 short int var15
/* : Bool */;
958 short int var17
/* : Bool */;
959 short int var19
/* : Bool */;
960 var_before_loop
= p0
;
962 if (var_escapemark
== NULL
) {
963 var
= 1; /* is null */
965 var
= 0; /* arg is null but recv is not */
968 { /* Inline kernel#Object#== (var_escapemark,((val*)NULL)) on <var_escapemark:nullable EscapeMark> */
969 var_other
= ((val
*)NULL
);
971 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
972 var5
= var_escapemark
== var_other
;
989 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
990 var8
= var_escapemark
->attrs
[COLOR_nit__scope__EscapeMark___escapes
].val
; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
991 if (unlikely(var8
== NULL
)) {
992 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
993 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope
, 58);
1002 var9
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1007 var11
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_10
);
1011 var12
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_10
);
1015 var13
= nit__flow___AEscapeExpr___before_flow_context(var_b
);
1018 if (var_before
== NULL
) {
1019 var14
= 1; /* is null */
1021 var14
= 0; /* arg is null but recv is not */
1024 { /* Inline kernel#Object#== (var_before,((val*)NULL)) on <var_before:nullable FlowContext> */
1025 var_other
= ((val
*)NULL
);
1027 { /* Inline kernel#Object#is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1028 var19
= var_before
== var_other
;
1031 RET_LABEL18
:(void)0;
1036 RET_LABEL16
:(void)0;
1045 nit___nit__FlowContext___add_loop(var_before_loop
, var_before
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
1047 BREAK_label
: (void)0;
1049 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_10
); /* Direct call array#ArrayIterator#next on <var_10:ArrayIterator[AEscapeExpr]>*/
1055 BREAK_label20
: (void)0;
1057 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_10
); /* Direct call array#ArrayIterator#finish on <var_10:ArrayIterator[AEscapeExpr]>*/
1061 /* method flow#FlowVisitor#merge_breaks for (self: FlowVisitor, nullable EscapeMark) */
1062 void nit__flow___nit__flow__FlowVisitor___merge_breaks(val
* self
, val
* p0
) {
1063 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1064 short int var
/* : Bool */;
1065 short int var1
/* : Bool */;
1066 val
* var_other
/* var other: nullable Object */;
1067 short int var3
/* : Bool */;
1068 short int var5
/* : Bool */;
1069 val
* var6
/* : Array[AEscapeExpr] */;
1070 val
* var8
/* : Array[AEscapeExpr] */;
1071 val
* var_
/* var : Array[AEscapeExpr] */;
1072 val
* var9
/* : ArrayIterator[nullable Object] */;
1073 val
* var_10
/* var : ArrayIterator[AEscapeExpr] */;
1074 short int var11
/* : Bool */;
1075 val
* var12
/* : nullable Object */;
1076 val
* var_b
/* var b: AEscapeExpr */;
1077 val
* var13
/* : nullable FlowContext */;
1078 val
* var_before
/* var before: nullable FlowContext */;
1079 short int var14
/* : Bool */;
1080 short int var15
/* : Bool */;
1081 short int var17
/* : Bool */;
1082 short int var19
/* : Bool */;
1083 val
* var20
/* : FlowContext */;
1084 val
* var22
/* : FlowContext */;
1085 val
* var23
/* : FlowContext */;
1086 var_escapemark
= p0
;
1087 if (var_escapemark
== NULL
) {
1088 var
= 1; /* is null */
1090 var
= 0; /* arg is null but recv is not */
1093 { /* Inline kernel#Object#== (var_escapemark,((val*)NULL)) on <var_escapemark:nullable EscapeMark> */
1094 var_other
= ((val
*)NULL
);
1096 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1097 var5
= var_escapemark
== var_other
;
1114 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1115 var8
= var_escapemark
->attrs
[COLOR_nit__scope__EscapeMark___escapes
].val
; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1116 if (unlikely(var8
== NULL
)) {
1117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
1118 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope
, 58);
1127 var9
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1132 var11
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_10
);
1136 var12
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_10
);
1140 var13
= nit__flow___AEscapeExpr___before_flow_context(var_b
);
1143 if (var_before
== NULL
) {
1144 var14
= 1; /* is null */
1146 var14
= 0; /* arg is null but recv is not */
1149 { /* Inline kernel#Object#== (var_before,((val*)NULL)) on <var_before:nullable FlowContext> */
1150 var_other
= ((val
*)NULL
);
1152 { /* Inline kernel#Object#is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1153 var19
= var_before
== var_other
;
1156 RET_LABEL18
:(void)0;
1161 RET_LABEL16
:(void)0;
1170 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
1171 var22
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
1172 if (unlikely(var22
== NULL
)) {
1173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1174 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1178 RET_LABEL21
:(void)0;
1182 var23
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(self
, var20
, var_before
);
1184 BREAK_label
: (void)0;
1186 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_10
); /* Direct call array#ArrayIterator#next on <var_10:ArrayIterator[AEscapeExpr]>*/
1192 BREAK_label24
: (void)0;
1194 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_10
); /* Direct call array#ArrayIterator#finish on <var_10:ArrayIterator[AEscapeExpr]>*/
1198 /* method flow#FlowContext#previous for (self: FlowContext): Array[FlowContext] */
1199 val
* nit___nit__FlowContext___previous(val
* self
) {
1200 val
* var
/* : Array[FlowContext] */;
1201 val
* var1
/* : Array[FlowContext] */;
1202 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1203 if (unlikely(var1
== NULL
)) {
1204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1205 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 189);
1212 /* method flow#FlowContext#loops for (self: FlowContext): Array[FlowContext] */
1213 val
* nit___nit__FlowContext___loops(val
* self
) {
1214 val
* var
/* : Array[FlowContext] */;
1215 val
* var1
/* : Array[FlowContext] */;
1216 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1217 if (unlikely(var1
== NULL
)) {
1218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1219 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 192);
1226 /* method flow#FlowContext#is_marked_unreachable for (self: FlowContext): Bool */
1227 short int nit___nit__FlowContext___is_marked_unreachable(val
* self
) {
1228 short int var
/* : Bool */;
1229 short int var1
/* : Bool */;
1230 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1235 /* method flow#FlowContext#is_marked_unreachable= for (self: FlowContext, Bool) */
1236 void nit___nit__FlowContext___is_marked_unreachable_61d(val
* self
, short int p0
) {
1237 self
->attrs
[COLOR_nit__flow__FlowContext___is_marked_unreachable
].s
= p0
; /* _is_marked_unreachable on <self:FlowContext> */
1240 /* method flow#FlowContext#is_unreachable for (self: FlowContext): Bool */
1241 short int nit___nit__FlowContext___is_unreachable(val
* self
) {
1242 short int var
/* : Bool */;
1243 short int var1
/* : Bool */;
1244 short int var3
/* : Bool */;
1245 short int var4
/* : Bool */;
1246 short int var6
/* : Bool */;
1247 val
* var7
/* : Array[FlowContext] */;
1248 val
* var9
/* : Array[FlowContext] */;
1249 long var10
/* : Int */;
1250 long var12
/* : Int */;
1251 short int var13
/* : Bool */;
1252 short int var15
/* : Bool */;
1254 { /* Inline flow#FlowContext#is_marked_unreachable (self) on <self:FlowContext> */
1255 var3
= self
->attrs
[COLOR_nit__flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1266 { /* Inline flow#FlowContext#is_start (self) on <self:FlowContext> */
1267 var6
= self
->attrs
[COLOR_nit__flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1278 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1279 var9
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1280 if (unlikely(var9
== NULL
)) {
1281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1282 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 189);
1290 { /* Inline array#AbstractArrayRead#length (var7) on <var7:Array[FlowContext]> */
1291 var12
= var7
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var7:Array[FlowContext]> */
1293 RET_LABEL11
:(void)0;
1297 { /* Inline kernel#Int#== (var10,0l) on <var10:Int> */
1298 var15
= var10
== 0l;
1301 RET_LABEL14
:(void)0;
1314 /* method flow#FlowContext#is_already_unreachable for (self: FlowContext): Bool */
1315 short int nit___nit__FlowContext___is_already_unreachable(val
* self
) {
1316 short int var
/* : Bool */;
1317 short int var1
/* : Bool */;
1318 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <self:FlowContext> */
1323 /* method flow#FlowContext#is_already_unreachable= for (self: FlowContext, Bool) */
1324 void nit___nit__FlowContext___is_already_unreachable_61d(val
* self
, short int p0
) {
1325 self
->attrs
[COLOR_nit__flow__FlowContext___is_already_unreachable
].s
= p0
; /* _is_already_unreachable on <self:FlowContext> */
1328 /* method flow#FlowContext#is_start for (self: FlowContext): Bool */
1329 short int nit___nit__FlowContext___is_start(val
* self
) {
1330 short int var
/* : Bool */;
1331 short int var1
/* : Bool */;
1332 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1337 /* method flow#FlowContext#is_start= for (self: FlowContext, Bool) */
1338 void nit___nit__FlowContext___is_start_61d(val
* self
, short int p0
) {
1339 self
->attrs
[COLOR_nit__flow__FlowContext___is_start
].s
= p0
; /* _is_start on <self:FlowContext> */
1342 /* method flow#FlowContext#node for (self: FlowContext): nullable ANode */
1343 val
* nit___nit__FlowContext___node(val
* self
) {
1344 val
* var
/* : nullable ANode */;
1345 val
* var1
/* : nullable ANode */;
1346 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___node
].val
; /* _node on <self:FlowContext> */
1351 /* method flow#FlowContext#node= for (self: FlowContext, nullable ANode) */
1352 void nit___nit__FlowContext___node_61d(val
* self
, val
* p0
) {
1353 self
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= p0
; /* _node on <self:FlowContext> */
1356 /* method flow#FlowContext#name= for (self: FlowContext, String) */
1357 void nit___nit__FlowContext___name_61d(val
* self
, val
* p0
) {
1358 self
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= p0
; /* _name on <self:FlowContext> */
1361 /* method flow#FlowContext#when_true for (self: FlowContext): FlowContext */
1362 val
* nit___nit__FlowContext___when_true(val
* self
) {
1363 val
* var
/* : FlowContext */;
1364 val
* var1
/* : FlowContext */;
1365 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <self:FlowContext> */
1366 if (unlikely(var1
== NULL
)) {
1367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1368 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
1375 /* method flow#FlowContext#when_true= for (self: FlowContext, FlowContext) */
1376 void nit___nit__FlowContext___when_true_61d(val
* self
, val
* p0
) {
1377 self
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
= p0
; /* _when_true on <self:FlowContext> */
1380 /* method flow#FlowContext#when_false for (self: FlowContext): FlowContext */
1381 val
* nit___nit__FlowContext___when_false(val
* self
) {
1382 val
* var
/* : FlowContext */;
1383 val
* var1
/* : FlowContext */;
1384 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <self:FlowContext> */
1385 if (unlikely(var1
== NULL
)) {
1386 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
1387 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
1394 /* method flow#FlowContext#when_false= for (self: FlowContext, FlowContext) */
1395 void nit___nit__FlowContext___when_false_61d(val
* self
, val
* p0
) {
1396 self
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
= p0
; /* _when_false on <self:FlowContext> */
1399 /* method flow#FlowContext#add_previous for (self: FlowContext, FlowContext) */
1400 void nit___nit__FlowContext___add_previous(val
* self
, val
* p0
) {
1401 val
* var_flow
/* var flow: FlowContext */;
1402 short int var
/* : Bool */;
1403 short int var1
/* : Bool */;
1404 short int var2
/* : Bool */;
1405 short int var_
/* var : Bool */;
1406 val
* var3
/* : Array[FlowContext] */;
1407 val
* var5
/* : Array[FlowContext] */;
1408 short int var6
/* : Bool */;
1409 short int var7
/* : Bool */;
1410 val
* var8
/* : Array[FlowContext] */;
1411 val
* var10
/* : Array[FlowContext] */;
1414 var1
= nit___nit__FlowContext___is_unreachable(var_flow
);
1420 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1421 var5
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1422 if (unlikely(var5
== NULL
)) {
1423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1424 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 189);
1432 var6
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var3
, var_flow
);
1441 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1442 var10
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1443 if (unlikely(var10
== NULL
)) {
1444 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1445 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 189);
1453 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var8
, var_flow
); /* Direct call array#Array#add on <var8:Array[FlowContext]>*/
1459 /* method flow#FlowContext#add_loop for (self: FlowContext, FlowContext) */
1460 void nit___nit__FlowContext___add_loop(val
* self
, val
* p0
) {
1461 val
* var_flow
/* var flow: FlowContext */;
1462 short int var
/* : Bool */;
1463 short int var1
/* : Bool */;
1464 short int var2
/* : Bool */;
1465 short int var_
/* var : Bool */;
1466 val
* var3
/* : Array[FlowContext] */;
1467 val
* var5
/* : Array[FlowContext] */;
1468 short int var6
/* : Bool */;
1469 short int var7
/* : Bool */;
1470 val
* var8
/* : Array[FlowContext] */;
1471 val
* var10
/* : Array[FlowContext] */;
1474 var1
= nit___nit__FlowContext___is_unreachable(var_flow
);
1480 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1481 var5
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1482 if (unlikely(var5
== NULL
)) {
1483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1484 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 189);
1492 var6
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var3
, var_flow
);
1501 { /* Inline flow#FlowContext#loops (self) on <self:FlowContext> */
1502 var10
= self
->attrs
[COLOR_nit__flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1503 if (unlikely(var10
== NULL
)) {
1504 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1505 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 192);
1513 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var8
, var_flow
); /* Direct call array#Array#add on <var8:Array[FlowContext]>*/
1519 /* method flow#ANode#accept_flow_visitor for (self: ANode, FlowVisitor) */
1520 void nit__flow___ANode___accept_flow_visitor(val
* self
, val
* p0
) {
1521 val
* var_v
/* var v: FlowVisitor */;
1524 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__parser_nodes__ANode__visit_all
]))(self
, var_v
); /* visit_all on <self:ANode>*/
1528 /* method flow#APropdef#do_flow for (self: APropdef, ToolContext) */
1529 void nit__flow___APropdef___do_flow(val
* self
, val
* p0
) {
1530 val
* var_toolcontext
/* var toolcontext: ToolContext */;
1531 val
* var
/* : FlowVisitor */;
1532 val
* var_v
/* var v: FlowVisitor */;
1533 var_toolcontext
= p0
;
1534 var
= NEW_nit__flow__FlowVisitor(&type_nit__flow__FlowVisitor
);
1536 ((void(*)(val
* self
, val
* p0
))(var
->class->vft
[COLOR_nit__flow__FlowVisitor__toolcontext_61d
]))(var
, var_toolcontext
); /* toolcontext= on <var:FlowVisitor>*/
1539 ((void(*)(val
* self
))(var
->class->vft
[COLOR_standard__kernel__Object__init
]))(var
); /* init on <var:FlowVisitor>*/
1543 nit___nit__Visitor___enter_visit(var_v
, self
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
1547 /* method flow#APropdef#before_flow_context= for (self: APropdef, nullable FlowContext) */
1548 void nit__flow___APropdef___before_flow_context_61d(val
* self
, val
* p0
) {
1549 self
->attrs
[COLOR_nit__flow__APropdef___before_flow_context
].val
= p0
; /* _before_flow_context on <self:APropdef> */
1552 /* method flow#APropdef#after_flow_context= for (self: APropdef, nullable FlowContext) */
1553 void nit__flow___APropdef___after_flow_context_61d(val
* self
, val
* p0
) {
1554 self
->attrs
[COLOR_nit__flow__APropdef___after_flow_context
].val
= p0
; /* _after_flow_context on <self:APropdef> */
1557 /* method flow#APropdef#accept_flow_visitor for (self: APropdef, FlowVisitor) */
1558 void nit__flow___APropdef___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1559 val
* var_v
/* var v: FlowVisitor */;
1560 val
* var
/* : FlowContext */;
1561 val
* var2
/* : FlowContext */;
1562 val
* var4
/* : FlowContext */;
1563 val
* var6
/* : FlowContext */;
1566 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1567 var2
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1568 if (unlikely(var2
== NULL
)) {
1569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1570 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1578 { /* Inline flow#APropdef#before_flow_context= (self,var) on <self:APropdef> */
1579 self
->attrs
[COLOR_nit__flow__APropdef___before_flow_context
].val
= var
; /* _before_flow_context on <self:APropdef> */
1584 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___APropdef___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:APropdef>*/
1587 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1588 var6
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1589 if (unlikely(var6
== NULL
)) {
1590 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1591 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1599 { /* Inline flow#APropdef#after_flow_context= (self,var4) on <self:APropdef> */
1600 self
->attrs
[COLOR_nit__flow__APropdef___after_flow_context
].val
= var4
; /* _after_flow_context on <self:APropdef> */
1606 /* method flow#AExpr#after_flow_context for (self: AExpr): nullable FlowContext */
1607 val
* nit__flow___AExpr___after_flow_context(val
* self
) {
1608 val
* var
/* : nullable FlowContext */;
1609 val
* var1
/* : nullable FlowContext */;
1610 var1
= self
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AExpr> */
1615 /* method flow#AExpr#after_flow_context= for (self: AExpr, nullable FlowContext) */
1616 void nit__flow___AExpr___after_flow_context_61d(val
* self
, val
* p0
) {
1617 self
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
= p0
; /* _after_flow_context on <self:AExpr> */
1620 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: AVarAssignExpr, FlowVisitor) */
1621 void nit__flow___AVarAssignExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1622 val
* var_v
/* var v: FlowVisitor */;
1623 val
* var
/* : FlowContext */;
1626 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AVarAssignExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AVarAssignExpr>*/
1629 var
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(var_v
);
1632 { /* Inline flow#AExpr#after_flow_context= (self,var) on <self:AVarAssignExpr> */
1633 self
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AVarAssignExpr> */
1639 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: AReassignFormExpr, FlowVisitor) */
1640 void nit__flow___AReassignFormExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1641 val
* var_v
/* var v: FlowVisitor */;
1642 val
* var
/* : FlowContext */;
1645 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AReassignFormExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AReassignFormExpr>*/
1648 var
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(var_v
);
1651 { /* Inline flow#AExpr#after_flow_context= (self,var) on <self:AReassignFormExpr> */
1652 self
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AReassignFormExpr> */
1658 /* method flow#ABlockExpr#accept_flow_visitor for (self: ABlockExpr, FlowVisitor) */
1659 void nit__flow___ABlockExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1660 val
* var_v
/* var v: FlowVisitor */;
1661 val
* var
/* : ANodes[AExpr] */;
1662 val
* var2
/* : ANodes[AExpr] */;
1663 val
* var_
/* var : ANodes[AExpr] */;
1664 val
* var3
/* : Iterator[ANode] */;
1665 val
* var_4
/* var : Iterator[AExpr] */;
1666 short int var5
/* : Bool */;
1667 val
* var6
/* : nullable Object */;
1668 val
* var_e
/* var e: AExpr */;
1669 val
* var7
/* : FlowContext */;
1670 val
* var9
/* : FlowContext */;
1671 short int var10
/* : Bool */;
1672 short int var11
/* : Bool */;
1673 val
* var12
/* : FlowContext */;
1674 val
* var14
/* : FlowContext */;
1675 short int var15
/* : Bool */;
1676 short int var17
/* : Bool */;
1677 short int var18
/* : Bool */;
1678 val
* var19
/* : FlowContext */;
1679 val
* var21
/* : FlowContext */;
1680 val
* var23
/* : ToolContext */;
1681 val
* var25
/* : ToolContext */;
1682 val
* var26
/* : Location */;
1683 static val
* varonce
;
1684 val
* var27
/* : String */;
1685 char* var28
/* : NativeString */;
1686 val
* var29
/* : FlatString */;
1687 val
* var30
/* : Message */;
1690 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
1691 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
1692 if (unlikely(var2
== NULL
)) {
1693 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1694 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1758);
1703 var3
= nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_
);
1708 var5
= ((short int(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_4
); /* is_ok on <var_4:Iterator[AExpr]>*/
1712 var6
= ((val
*(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_4
); /* item on <var_4:Iterator[AExpr]>*/
1716 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1717 var9
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1718 if (unlikely(var9
== NULL
)) {
1719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1720 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1728 var10
= nit___nit__FlowContext___is_unreachable(var7
);
1733 nit___nit__Visitor___enter_visit(var_v
, var_e
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
1737 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1738 var14
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1739 if (unlikely(var14
== NULL
)) {
1740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1741 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1745 RET_LABEL13
:(void)0;
1749 { /* Inline flow#FlowContext#is_already_unreachable (var12) on <var12:FlowContext> */
1750 var17
= var12
->attrs
[COLOR_nit__flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <var12:FlowContext> */
1752 RET_LABEL16
:(void)0;
1758 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1759 var21
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1760 if (unlikely(var21
== NULL
)) {
1761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1762 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1766 RET_LABEL20
:(void)0;
1770 { /* Inline flow#FlowContext#is_already_unreachable= (var19,1) on <var19:FlowContext> */
1771 var19
->attrs
[COLOR_nit__flow__FlowContext___is_already_unreachable
].s
= 1; /* _is_already_unreachable on <var19:FlowContext> */
1772 RET_LABEL22
:(void)0;
1776 { /* Inline flow#FlowVisitor#toolcontext (var_v) on <var_v:FlowVisitor> */
1777 var25
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___toolcontext
].val
; /* _toolcontext on <var_v:FlowVisitor> */
1778 if (unlikely(var25
== NULL
)) {
1779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1780 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 39);
1784 RET_LABEL24
:(void)0;
1788 var26
= nit___nit__ANode___hot_location(var_e
);
1790 if (likely(varonce
!=NULL
)) {
1793 var28
= "Error: unreachable statement.";
1794 var29
= standard___standard__NativeString___to_s_with_length(var28
, 29l);
1799 var30
= nit___nit__ToolContext___error(var23
, var26
, var27
);
1805 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_4
); /* next on <var_4:Iterator[AExpr]>*/
1811 BREAK_label
: (void)0;
1813 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_4
); /* finish on <var_4:Iterator[AExpr]>*/
1817 /* method flow#AReturnExpr#accept_flow_visitor for (self: AReturnExpr, FlowVisitor) */
1818 void nit__flow___AReturnExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1819 val
* var_v
/* var v: FlowVisitor */;
1820 val
* var
/* : FlowContext */;
1823 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AReturnExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AReturnExpr>*/
1826 var
= nit__flow___nit__flow__FlowVisitor___make_unreachable_flow(var_v
);
1830 /* method flow#AEscapeExpr#before_flow_context for (self: AEscapeExpr): nullable FlowContext */
1831 val
* nit__flow___AEscapeExpr___before_flow_context(val
* self
) {
1832 val
* var
/* : nullable FlowContext */;
1833 val
* var1
/* : nullable FlowContext */;
1834 val
* var3
/* : nullable FlowContext */;
1835 val
* var_after
/* var after: nullable FlowContext */;
1836 short int var4
/* : Bool */;
1837 short int var5
/* : Bool */;
1838 val
* var_other
/* var other: nullable Object */;
1839 short int var7
/* : Bool */;
1840 short int var9
/* : Bool */;
1841 val
* var10
/* : Array[FlowContext] */;
1842 val
* var12
/* : Array[FlowContext] */;
1843 val
* var13
/* : nullable Object */;
1845 { /* Inline flow#AExpr#after_flow_context (self) on <self:AEscapeExpr> */
1846 var3
= self
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AEscapeExpr> */
1852 if (var_after
== NULL
) {
1853 var4
= 1; /* is null */
1855 var4
= 0; /* arg is null but recv is not */
1858 { /* Inline kernel#Object#== (var_after,((val*)NULL)) on <var_after:nullable FlowContext> */
1859 var_other
= ((val
*)NULL
);
1861 { /* Inline kernel#Object#is_same_instance (var_after,var_other) on <var_after:nullable FlowContext(FlowContext)> */
1862 var9
= var_after
== var_other
;
1880 { /* Inline flow#FlowContext#previous (var_after) on <var_after:nullable FlowContext(FlowContext)> */
1881 var12
= var_after
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <var_after:nullable FlowContext(FlowContext)> */
1882 if (unlikely(var12
== NULL
)) {
1883 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1884 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 189);
1888 RET_LABEL11
:(void)0;
1892 var13
= standard___standard__SequenceRead___Collection__first(var10
);
1899 /* method flow#AEscapeExpr#accept_flow_visitor for (self: AEscapeExpr, FlowVisitor) */
1900 void nit__flow___AEscapeExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1901 val
* var_v
/* var v: FlowVisitor */;
1902 val
* var
/* : FlowContext */;
1905 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AEscapeExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AEscapeExpr>*/
1908 var
= nit__flow___nit__flow__FlowVisitor___make_unreachable_flow(var_v
);
1912 /* method flow#AAbortExpr#accept_flow_visitor for (self: AAbortExpr, FlowVisitor) */
1913 void nit__flow___AAbortExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1914 val
* var_v
/* var v: FlowVisitor */;
1915 val
* var
/* : FlowContext */;
1918 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AAbortExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AAbortExpr>*/
1921 var
= nit__flow___nit__flow__FlowVisitor___make_unreachable_flow(var_v
);
1925 /* method flow#ADoExpr#accept_flow_visitor for (self: ADoExpr, FlowVisitor) */
1926 void nit__flow___ADoExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1927 val
* var_v
/* var v: FlowVisitor */;
1928 val
* var
/* : nullable EscapeMark */;
1929 val
* var2
/* : nullable EscapeMark */;
1932 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___ADoExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:ADoExpr>*/
1935 { /* Inline scope#ADoExpr#break_mark (self) on <self:ADoExpr> */
1936 var2
= self
->attrs
[COLOR_nit__scope__ADoExpr___break_mark
].val
; /* _break_mark on <self:ADoExpr> */
1942 nit__flow___nit__flow__FlowVisitor___merge_breaks(var_v
, var
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
1946 /* method flow#AIfExpr#accept_flow_visitor for (self: AIfExpr, FlowVisitor) */
1947 void nit__flow___AIfExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1948 val
* var_v
/* var v: FlowVisitor */;
1949 val
* var
/* : AExpr */;
1950 val
* var2
/* : AExpr */;
1951 val
* var3
/* : FlowContext */;
1952 val
* var_after_expr
/* var after_expr: FlowContext */;
1953 val
* var4
/* : FlowContext */;
1954 val
* var6
/* : FlowContext */;
1955 val
* var8
/* : nullable AExpr */;
1956 val
* var10
/* : nullable AExpr */;
1957 val
* var11
/* : FlowContext */;
1958 val
* var13
/* : FlowContext */;
1959 val
* var_after_then
/* var after_then: FlowContext */;
1960 val
* var14
/* : FlowContext */;
1961 val
* var16
/* : FlowContext */;
1962 val
* var18
/* : nullable AExpr */;
1963 val
* var20
/* : nullable AExpr */;
1964 val
* var21
/* : FlowContext */;
1965 val
* var23
/* : FlowContext */;
1966 val
* var_after_else
/* var after_else: FlowContext */;
1967 val
* var24
/* : FlowContext */;
1970 { /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
1971 var2
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_expr
].val
; /* _n_expr on <self:AIfExpr> */
1972 if (unlikely(var2
== NULL
)) {
1973 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1974 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1857);
1982 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
1984 var_after_expr
= var3
;
1986 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
1987 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
1988 if (unlikely(var6
== NULL
)) {
1989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1990 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
1998 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
1999 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2004 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
2005 var10
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_then
].val
; /* _n_then on <self:AIfExpr> */
2011 nit___nit__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2014 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2015 var13
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2016 if (unlikely(var13
== NULL
)) {
2017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2018 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2022 RET_LABEL12
:(void)0;
2025 var_after_then
= var11
;
2027 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2028 var16
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2029 if (unlikely(var16
== NULL
)) {
2030 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2031 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2035 RET_LABEL15
:(void)0;
2039 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var14) on <var_v:FlowVisitor> */
2040 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var14
; /* _current_flow_context on <var_v:FlowVisitor> */
2041 RET_LABEL17
:(void)0;
2045 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
2046 var20
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_else
].val
; /* _n_else on <self:AIfExpr> */
2048 RET_LABEL19
:(void)0;
2052 nit___nit__Visitor___enter_visit(var_v
, var18
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2055 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2056 var23
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2057 if (unlikely(var23
== NULL
)) {
2058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2059 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2063 RET_LABEL22
:(void)0;
2066 var_after_else
= var21
;
2068 var24
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var_after_then
, var_after_else
);
2072 /* method flow#AIfexprExpr#accept_flow_visitor for (self: AIfexprExpr, FlowVisitor) */
2073 void nit__flow___AIfexprExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2074 val
* var_v
/* var v: FlowVisitor */;
2075 val
* var
/* : AExpr */;
2076 val
* var2
/* : AExpr */;
2077 val
* var3
/* : FlowContext */;
2078 val
* var_after_expr
/* var after_expr: FlowContext */;
2079 val
* var4
/* : FlowContext */;
2080 val
* var6
/* : FlowContext */;
2081 val
* var8
/* : AExpr */;
2082 val
* var10
/* : AExpr */;
2083 val
* var11
/* : FlowContext */;
2084 val
* var13
/* : FlowContext */;
2085 val
* var_after_then
/* var after_then: FlowContext */;
2086 val
* var14
/* : FlowContext */;
2087 val
* var16
/* : FlowContext */;
2088 val
* var18
/* : AExpr */;
2089 val
* var20
/* : AExpr */;
2090 val
* var21
/* : FlowContext */;
2091 val
* var23
/* : FlowContext */;
2092 val
* var_after_else
/* var after_else: FlowContext */;
2093 val
* var24
/* : FlowContext */;
2096 { /* Inline parser_nodes#AIfexprExpr#n_expr (self) on <self:AIfexprExpr> */
2097 var2
= self
->attrs
[COLOR_nit__parser_nodes__AIfexprExpr___n_expr
].val
; /* _n_expr on <self:AIfexprExpr> */
2098 if (unlikely(var2
== NULL
)) {
2099 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2100 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1880);
2108 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
2110 var_after_expr
= var3
;
2112 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2113 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2114 if (unlikely(var6
== NULL
)) {
2115 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2116 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2124 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2125 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2130 { /* Inline parser_nodes#AIfexprExpr#n_then (self) on <self:AIfexprExpr> */
2131 var10
= self
->attrs
[COLOR_nit__parser_nodes__AIfexprExpr___n_then
].val
; /* _n_then on <self:AIfexprExpr> */
2132 if (unlikely(var10
== NULL
)) {
2133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
2134 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1886);
2142 nit___nit__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2145 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2146 var13
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2147 if (unlikely(var13
== NULL
)) {
2148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2149 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2153 RET_LABEL12
:(void)0;
2156 var_after_then
= var11
;
2158 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2159 var16
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2160 if (unlikely(var16
== NULL
)) {
2161 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2162 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2166 RET_LABEL15
:(void)0;
2170 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var14) on <var_v:FlowVisitor> */
2171 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var14
; /* _current_flow_context on <var_v:FlowVisitor> */
2172 RET_LABEL17
:(void)0;
2176 { /* Inline parser_nodes#AIfexprExpr#n_else (self) on <self:AIfexprExpr> */
2177 var20
= self
->attrs
[COLOR_nit__parser_nodes__AIfexprExpr___n_else
].val
; /* _n_else on <self:AIfexprExpr> */
2178 if (unlikely(var20
== NULL
)) {
2179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
2180 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1892);
2184 RET_LABEL19
:(void)0;
2188 nit___nit__Visitor___enter_visit(var_v
, var18
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2191 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2192 var23
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2193 if (unlikely(var23
== NULL
)) {
2194 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2195 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2199 RET_LABEL22
:(void)0;
2202 var_after_else
= var21
;
2204 var24
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var_after_then
, var_after_else
);
2208 /* method flow#AWhileExpr#accept_flow_visitor for (self: AWhileExpr, FlowVisitor) */
2209 void nit__flow___AWhileExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2210 val
* var_v
/* var v: FlowVisitor */;
2211 val
* var
/* : FlowContext */;
2212 val
* var_before_loop
/* var before_loop: FlowContext */;
2213 val
* var1
/* : AExpr */;
2214 val
* var3
/* : AExpr */;
2215 val
* var4
/* : FlowContext */;
2216 val
* var_after_expr
/* var after_expr: FlowContext */;
2217 val
* var5
/* : FlowContext */;
2218 val
* var7
/* : FlowContext */;
2219 val
* var9
/* : nullable AExpr */;
2220 val
* var11
/* : nullable AExpr */;
2221 val
* var12
/* : FlowContext */;
2222 val
* var14
/* : FlowContext */;
2223 val
* var_after_block
/* var after_block: FlowContext */;
2224 val
* var15
/* : nullable EscapeMark */;
2225 val
* var17
/* : nullable EscapeMark */;
2226 val
* var18
/* : FlowContext */;
2227 val
* var20
/* : FlowContext */;
2228 val
* var22
/* : nullable EscapeMark */;
2229 val
* var24
/* : nullable EscapeMark */;
2232 var
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(var_v
);
2234 var_before_loop
= var
;
2236 { /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
2237 var3
= self
->attrs
[COLOR_nit__parser_nodes__AWhileExpr___n_expr
].val
; /* _n_expr on <self:AWhileExpr> */
2238 if (unlikely(var3
== NULL
)) {
2239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2240 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1904);
2248 var4
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var1
);
2250 var_after_expr
= var4
;
2252 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2253 var7
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2254 if (unlikely(var7
== NULL
)) {
2255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2256 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2264 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var5) on <var_v:FlowVisitor> */
2265 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var5
; /* _current_flow_context on <var_v:FlowVisitor> */
2270 { /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
2271 var11
= self
->attrs
[COLOR_nit__parser_nodes__AWhileExpr___n_block
].val
; /* _n_block on <self:AWhileExpr> */
2273 RET_LABEL10
:(void)0;
2277 nit___nit__Visitor___enter_visit(var_v
, var9
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2280 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2281 var14
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2282 if (unlikely(var14
== NULL
)) {
2283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2284 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2288 RET_LABEL13
:(void)0;
2291 var_after_block
= var12
;
2293 nit___nit__FlowContext___add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
2296 { /* Inline scope#AWhileExpr#continue_mark (self) on <self:AWhileExpr> */
2297 var17
= self
->attrs
[COLOR_nit__scope__AWhileExpr___continue_mark
].val
; /* _continue_mark on <self:AWhileExpr> */
2299 RET_LABEL16
:(void)0;
2303 nit__flow___nit__flow__FlowVisitor___merge_continues_to(var_v
, var_before_loop
, var15
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
2306 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2307 var20
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2308 if (unlikely(var20
== NULL
)) {
2309 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2310 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2314 RET_LABEL19
:(void)0;
2318 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var18) on <var_v:FlowVisitor> */
2319 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var18
; /* _current_flow_context on <var_v:FlowVisitor> */
2320 RET_LABEL21
:(void)0;
2324 { /* Inline scope#AWhileExpr#break_mark (self) on <self:AWhileExpr> */
2325 var24
= self
->attrs
[COLOR_nit__scope__AWhileExpr___break_mark
].val
; /* _break_mark on <self:AWhileExpr> */
2327 RET_LABEL23
:(void)0;
2331 nit__flow___nit__flow__FlowVisitor___merge_breaks(var_v
, var22
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2335 /* method flow#ALoopExpr#accept_flow_visitor for (self: ALoopExpr, FlowVisitor) */
2336 void nit__flow___ALoopExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2337 val
* var_v
/* var v: FlowVisitor */;
2338 val
* var
/* : FlowContext */;
2339 val
* var_before_loop
/* var before_loop: FlowContext */;
2340 val
* var1
/* : nullable AExpr */;
2341 val
* var3
/* : nullable AExpr */;
2342 val
* var4
/* : FlowContext */;
2343 val
* var6
/* : FlowContext */;
2344 val
* var_after_block
/* var after_block: FlowContext */;
2345 val
* var7
/* : nullable EscapeMark */;
2346 val
* var9
/* : nullable EscapeMark */;
2347 val
* var10
/* : FlowContext */;
2348 val
* var11
/* : nullable EscapeMark */;
2349 val
* var13
/* : nullable EscapeMark */;
2352 var
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(var_v
);
2354 var_before_loop
= var
;
2356 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
2357 var3
= self
->attrs
[COLOR_nit__parser_nodes__ALoopExpr___n_block
].val
; /* _n_block on <self:ALoopExpr> */
2363 nit___nit__Visitor___enter_visit(var_v
, var1
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2366 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2367 var6
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2368 if (unlikely(var6
== NULL
)) {
2369 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2370 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2377 var_after_block
= var4
;
2379 nit___nit__FlowContext___add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
2382 { /* Inline scope#ALoopExpr#continue_mark (self) on <self:ALoopExpr> */
2383 var9
= self
->attrs
[COLOR_nit__scope__ALoopExpr___continue_mark
].val
; /* _continue_mark on <self:ALoopExpr> */
2389 nit__flow___nit__flow__FlowVisitor___merge_continues_to(var_v
, var_before_loop
, var7
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
2392 var10
= nit__flow___nit__flow__FlowVisitor___make_unreachable_flow(var_v
);
2395 { /* Inline scope#ALoopExpr#break_mark (self) on <self:ALoopExpr> */
2396 var13
= self
->attrs
[COLOR_nit__scope__ALoopExpr___break_mark
].val
; /* _break_mark on <self:ALoopExpr> */
2398 RET_LABEL12
:(void)0;
2402 nit__flow___nit__flow__FlowVisitor___merge_breaks(var_v
, var11
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2406 /* method flow#AForExpr#accept_flow_visitor for (self: AForExpr, FlowVisitor) */
2407 void nit__flow___AForExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2408 val
* var_v
/* var v: FlowVisitor */;
2409 val
* var
/* : AExpr */;
2410 val
* var2
/* : AExpr */;
2411 val
* var3
/* : FlowContext */;
2412 val
* var_before_loop
/* var before_loop: FlowContext */;
2413 val
* var4
/* : nullable AExpr */;
2414 val
* var6
/* : nullable AExpr */;
2415 val
* var7
/* : FlowContext */;
2416 val
* var9
/* : FlowContext */;
2417 val
* var_after_block
/* var after_block: FlowContext */;
2418 val
* var10
/* : nullable EscapeMark */;
2419 val
* var12
/* : nullable EscapeMark */;
2420 val
* var13
/* : FlowContext */;
2421 val
* var15
/* : FlowContext */;
2422 val
* var16
/* : FlowContext */;
2423 val
* var17
/* : nullable EscapeMark */;
2424 val
* var19
/* : nullable EscapeMark */;
2427 { /* Inline parser_nodes#AForExpr#n_expr (self) on <self:AForExpr> */
2428 var2
= self
->attrs
[COLOR_nit__parser_nodes__AForExpr___n_expr
].val
; /* _n_expr on <self:AForExpr> */
2429 if (unlikely(var2
== NULL
)) {
2430 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2431 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1940);
2439 nit___nit__Visitor___enter_visit(var_v
, var
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2442 var3
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(var_v
);
2444 var_before_loop
= var3
;
2446 { /* Inline parser_nodes#AForExpr#n_block (self) on <self:AForExpr> */
2447 var6
= self
->attrs
[COLOR_nit__parser_nodes__AForExpr___n_block
].val
; /* _n_block on <self:AForExpr> */
2453 nit___nit__Visitor___enter_visit(var_v
, var4
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2456 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2457 var9
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2458 if (unlikely(var9
== NULL
)) {
2459 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2460 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2467 var_after_block
= var7
;
2469 nit___nit__FlowContext___add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
2472 { /* Inline scope#AForExpr#continue_mark (self) on <self:AForExpr> */
2473 var12
= self
->attrs
[COLOR_nit__scope__AForExpr___continue_mark
].val
; /* _continue_mark on <self:AForExpr> */
2475 RET_LABEL11
:(void)0;
2479 nit__flow___nit__flow__FlowVisitor___merge_continues_to(var_v
, var_before_loop
, var10
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
2482 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2483 var15
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2484 if (unlikely(var15
== NULL
)) {
2485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2486 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2490 RET_LABEL14
:(void)0;
2494 var16
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var13
, var_before_loop
);
2497 { /* Inline scope#AForExpr#break_mark (self) on <self:AForExpr> */
2498 var19
= self
->attrs
[COLOR_nit__scope__AForExpr___break_mark
].val
; /* _break_mark on <self:AForExpr> */
2500 RET_LABEL18
:(void)0;
2504 nit__flow___nit__flow__FlowVisitor___merge_breaks(var_v
, var17
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2508 /* method flow#AWithExpr#accept_flow_visitor for (self: AWithExpr, FlowVisitor) */
2509 void nit__flow___AWithExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2510 val
* var_v
/* var v: FlowVisitor */;
2511 val
* var
/* : nullable EscapeMark */;
2512 val
* var2
/* : nullable EscapeMark */;
2515 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AWithExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AWithExpr>*/
2518 { /* Inline scope#AWithExpr#break_mark (self) on <self:AWithExpr> */
2519 var2
= self
->attrs
[COLOR_nit__scope__AWithExpr___break_mark
].val
; /* _break_mark on <self:AWithExpr> */
2525 nit__flow___nit__flow__FlowVisitor___merge_breaks(var_v
, var
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2529 /* method flow#AAssertExpr#accept_flow_visitor for (self: AAssertExpr, FlowVisitor) */
2530 void nit__flow___AAssertExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2531 val
* var_v
/* var v: FlowVisitor */;
2532 val
* var
/* : AExpr */;
2533 val
* var2
/* : AExpr */;
2534 val
* var3
/* : FlowContext */;
2535 val
* var_after_expr
/* var after_expr: FlowContext */;
2536 val
* var4
/* : FlowContext */;
2537 val
* var6
/* : FlowContext */;
2538 val
* var8
/* : nullable AExpr */;
2539 val
* var10
/* : nullable AExpr */;
2540 val
* var11
/* : FlowContext */;
2541 val
* var13
/* : FlowContext */;
2544 { /* Inline parser_nodes#AAssertExpr#n_expr (self) on <self:AAssertExpr> */
2545 var2
= self
->attrs
[COLOR_nit__parser_nodes__AAssertExpr___n_expr
].val
; /* _n_expr on <self:AAssertExpr> */
2546 if (unlikely(var2
== NULL
)) {
2547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2548 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1978);
2556 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
2558 var_after_expr
= var3
;
2560 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2561 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2562 if (unlikely(var6
== NULL
)) {
2563 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2564 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2572 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2573 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2578 { /* Inline parser_nodes#AAssertExpr#n_else (self) on <self:AAssertExpr> */
2579 var10
= self
->attrs
[COLOR_nit__parser_nodes__AAssertExpr___n_else
].val
; /* _n_else on <self:AAssertExpr> */
2585 nit___nit__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2588 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2589 var13
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2590 if (unlikely(var13
== NULL
)) {
2591 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2592 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2596 RET_LABEL12
:(void)0;
2600 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var11) on <var_v:FlowVisitor> */
2601 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var11
; /* _current_flow_context on <var_v:FlowVisitor> */
2602 RET_LABEL14
:(void)0;
2607 /* method flow#AOrExpr#accept_flow_visitor for (self: AOrExpr, FlowVisitor) */
2608 void nit__flow___AOrExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2609 val
* var_v
/* var v: FlowVisitor */;
2610 val
* var
/* : AExpr */;
2611 val
* var2
/* : AExpr */;
2612 val
* var3
/* : FlowContext */;
2613 val
* var_after_expr
/* var after_expr: FlowContext */;
2614 val
* var4
/* : FlowContext */;
2615 val
* var6
/* : FlowContext */;
2616 val
* var8
/* : AExpr */;
2617 val
* var10
/* : AExpr */;
2618 val
* var11
/* : FlowContext */;
2619 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2620 val
* var12
/* : FlowContext */;
2621 val
* var14
/* : FlowContext */;
2622 val
* var15
/* : FlowContext */;
2623 val
* var17
/* : FlowContext */;
2624 val
* var18
/* : FlowContext */;
2625 val
* var_merge_true
/* var merge_true: FlowContext */;
2626 static val
* varonce
;
2627 val
* var19
/* : String */;
2628 char* var20
/* : NativeString */;
2629 val
* var21
/* : FlatString */;
2630 val
* var23
/* : FlowContext */;
2631 val
* var25
/* : FlowContext */;
2632 val
* var26
/* : FlowContext */;
2635 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AOrExpr> */
2636 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AOrExpr> */
2637 if (unlikely(var2
== NULL
)) {
2638 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2639 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2053);
2647 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
2649 var_after_expr
= var3
;
2651 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2652 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2653 if (unlikely(var6
== NULL
)) {
2654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2655 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2663 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2664 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2669 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AOrExpr> */
2670 var10
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AOrExpr> */
2671 if (unlikely(var10
== NULL
)) {
2672 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2673 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2059);
2681 var11
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var8
);
2683 var_after_expr2
= var11
;
2685 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2686 var14
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2687 if (unlikely(var14
== NULL
)) {
2688 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2689 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2693 RET_LABEL13
:(void)0;
2697 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
2698 var17
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
2699 if (unlikely(var17
== NULL
)) {
2700 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2701 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2705 RET_LABEL16
:(void)0;
2709 var18
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
2711 var_merge_true
= var18
;
2712 if (likely(varonce
!=NULL
)) {
2716 var21
= standard___standard__NativeString___to_s_with_length(var20
, 7l);
2721 { /* Inline flow#FlowContext#name= (var_merge_true,var19) on <var_merge_true:FlowContext> */
2722 var_merge_true
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_true:FlowContext> */
2723 RET_LABEL22
:(void)0;
2727 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
2728 var25
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
2729 if (unlikely(var25
== NULL
)) {
2730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2731 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2735 RET_LABEL24
:(void)0;
2739 var26
= nit__flow___nit__flow__FlowVisitor___make_true_false_flow(var_v
, var_merge_true
, var23
);
2743 /* method flow#AImpliesExpr#accept_flow_visitor for (self: AImpliesExpr, FlowVisitor) */
2744 void nit__flow___AImpliesExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2745 val
* var_v
/* var v: FlowVisitor */;
2746 val
* var
/* : AExpr */;
2747 val
* var2
/* : AExpr */;
2748 val
* var3
/* : FlowContext */;
2749 val
* var_after_expr
/* var after_expr: FlowContext */;
2750 val
* var4
/* : FlowContext */;
2751 val
* var6
/* : FlowContext */;
2752 val
* var8
/* : AExpr */;
2753 val
* var10
/* : AExpr */;
2754 val
* var11
/* : FlowContext */;
2755 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2756 val
* var12
/* : FlowContext */;
2757 val
* var14
/* : FlowContext */;
2758 val
* var15
/* : FlowContext */;
2759 val
* var17
/* : FlowContext */;
2760 val
* var18
/* : FlowContext */;
2761 val
* var_merge_true
/* var merge_true: FlowContext */;
2762 static val
* varonce
;
2763 val
* var19
/* : String */;
2764 char* var20
/* : NativeString */;
2765 val
* var21
/* : FlatString */;
2766 val
* var23
/* : FlowContext */;
2767 val
* var25
/* : FlowContext */;
2768 val
* var26
/* : FlowContext */;
2771 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AImpliesExpr> */
2772 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AImpliesExpr> */
2773 if (unlikely(var2
== NULL
)) {
2774 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2775 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2053);
2783 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
2785 var_after_expr
= var3
;
2787 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2788 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2789 if (unlikely(var6
== NULL
)) {
2790 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2791 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2799 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2800 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2805 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AImpliesExpr> */
2806 var10
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AImpliesExpr> */
2807 if (unlikely(var10
== NULL
)) {
2808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2809 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2059);
2817 var11
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var8
);
2819 var_after_expr2
= var11
;
2821 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2822 var14
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2823 if (unlikely(var14
== NULL
)) {
2824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2825 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2829 RET_LABEL13
:(void)0;
2833 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
2834 var17
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
2835 if (unlikely(var17
== NULL
)) {
2836 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2837 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2841 RET_LABEL16
:(void)0;
2845 var18
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
2847 var_merge_true
= var18
;
2848 if (likely(varonce
!=NULL
)) {
2852 var21
= standard___standard__NativeString___to_s_with_length(var20
, 7l);
2857 { /* Inline flow#FlowContext#name= (var_merge_true,var19) on <var_merge_true:FlowContext> */
2858 var_merge_true
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_true:FlowContext> */
2859 RET_LABEL22
:(void)0;
2863 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
2864 var25
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
2865 if (unlikely(var25
== NULL
)) {
2866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2867 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2871 RET_LABEL24
:(void)0;
2875 var26
= nit__flow___nit__flow__FlowVisitor___make_true_false_flow(var_v
, var_merge_true
, var23
);
2879 /* method flow#AAndExpr#accept_flow_visitor for (self: AAndExpr, FlowVisitor) */
2880 void nit__flow___AAndExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2881 val
* var_v
/* var v: FlowVisitor */;
2882 val
* var
/* : AExpr */;
2883 val
* var2
/* : AExpr */;
2884 val
* var3
/* : FlowContext */;
2885 val
* var_after_expr
/* var after_expr: FlowContext */;
2886 val
* var4
/* : FlowContext */;
2887 val
* var6
/* : FlowContext */;
2888 val
* var8
/* : AExpr */;
2889 val
* var10
/* : AExpr */;
2890 val
* var11
/* : FlowContext */;
2891 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2892 val
* var12
/* : FlowContext */;
2893 val
* var14
/* : FlowContext */;
2894 val
* var15
/* : FlowContext */;
2895 val
* var17
/* : FlowContext */;
2896 val
* var18
/* : FlowContext */;
2897 val
* var_merge_false
/* var merge_false: FlowContext */;
2898 static val
* varonce
;
2899 val
* var19
/* : String */;
2900 char* var20
/* : NativeString */;
2901 val
* var21
/* : FlatString */;
2902 val
* var23
/* : FlowContext */;
2903 val
* var25
/* : FlowContext */;
2904 val
* var26
/* : FlowContext */;
2907 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AAndExpr> */
2908 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AAndExpr> */
2909 if (unlikely(var2
== NULL
)) {
2910 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2911 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2053);
2919 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
2921 var_after_expr
= var3
;
2923 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2924 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2925 if (unlikely(var6
== NULL
)) {
2926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2927 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2935 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2936 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2941 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AAndExpr> */
2942 var10
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AAndExpr> */
2943 if (unlikely(var10
== NULL
)) {
2944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2945 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2059);
2953 var11
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var8
);
2955 var_after_expr2
= var11
;
2957 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2958 var14
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2959 if (unlikely(var14
== NULL
)) {
2960 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2961 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2965 RET_LABEL13
:(void)0;
2969 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
2970 var17
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
2971 if (unlikely(var17
== NULL
)) {
2972 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2973 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2977 RET_LABEL16
:(void)0;
2981 var18
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
2983 var_merge_false
= var18
;
2984 if (likely(varonce
!=NULL
)) {
2987 var20
= "AND FALSE";
2988 var21
= standard___standard__NativeString___to_s_with_length(var20
, 9l);
2993 { /* Inline flow#FlowContext#name= (var_merge_false,var19) on <var_merge_false:FlowContext> */
2994 var_merge_false
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_false:FlowContext> */
2995 RET_LABEL22
:(void)0;
2999 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3000 var25
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3001 if (unlikely(var25
== NULL
)) {
3002 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3003 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
3007 RET_LABEL24
:(void)0;
3011 var26
= nit__flow___nit__flow__FlowVisitor___make_true_false_flow(var_v
, var23
, var_merge_false
);
3015 /* method flow#ANotExpr#accept_flow_visitor for (self: ANotExpr, FlowVisitor) */
3016 void nit__flow___ANotExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3017 val
* var_v
/* var v: FlowVisitor */;
3018 val
* var
/* : AExpr */;
3019 val
* var2
/* : AExpr */;
3020 val
* var3
/* : FlowContext */;
3021 val
* var_after_expr
/* var after_expr: FlowContext */;
3022 val
* var4
/* : FlowContext */;
3023 val
* var6
/* : FlowContext */;
3024 val
* var7
/* : FlowContext */;
3025 val
* var9
/* : FlowContext */;
3026 val
* var10
/* : FlowContext */;
3029 { /* Inline parser_nodes#ANotExpr#n_expr (self) on <self:ANotExpr> */
3030 var2
= self
->attrs
[COLOR_nit__parser_nodes__ANotExpr___n_expr
].val
; /* _n_expr on <self:ANotExpr> */
3031 if (unlikely(var2
== NULL
)) {
3032 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3033 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2093);
3041 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
3043 var_after_expr
= var3
;
3045 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3046 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3047 if (unlikely(var6
== NULL
)) {
3048 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3049 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
3057 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3058 var9
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3059 if (unlikely(var9
== NULL
)) {
3060 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3061 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
3069 var10
= nit__flow___nit__flow__FlowVisitor___make_true_false_flow(var_v
, var4
, var7
);
3073 /* method flow#AOrElseExpr#accept_flow_visitor for (self: AOrElseExpr, FlowVisitor) */
3074 void nit__flow___AOrElseExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3075 val
* var_v
/* var v: FlowVisitor */;
3078 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AOrElseExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AOrElseExpr>*/
3082 /* method flow#AEqExpr#accept_flow_visitor for (self: AEqExpr, FlowVisitor) */
3083 void nit__flow___AEqExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3084 val
* var_v
/* var v: FlowVisitor */;
3085 val
* var
/* : FlowContext */;
3088 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AEqExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AEqExpr>*/
3091 var
= nit__flow___nit__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3095 /* method flow#ANeExpr#accept_flow_visitor for (self: ANeExpr, FlowVisitor) */
3096 void nit__flow___ANeExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3097 val
* var_v
/* var v: FlowVisitor */;
3098 val
* var
/* : FlowContext */;
3101 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___ANeExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:ANeExpr>*/
3104 var
= nit__flow___nit__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3108 /* method flow#AIsaExpr#accept_flow_visitor for (self: AIsaExpr, FlowVisitor) */
3109 void nit__flow___AIsaExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3110 val
* var_v
/* var v: FlowVisitor */;
3111 val
* var
/* : FlowContext */;
3114 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AIsaExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AIsaExpr>*/
3117 var
= nit__flow___nit__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3121 /* method flow#AParExpr#accept_flow_visitor for (self: AParExpr, FlowVisitor) */
3122 void nit__flow___AParExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3123 val
* var_v
/* var v: FlowVisitor */;
3124 val
* var
/* : AExpr */;
3125 val
* var2
/* : AExpr */;
3126 val
* var3
/* : FlowContext */;
3127 val
* var_after_expr
/* var after_expr: FlowContext */;
3130 { /* Inline parser_nodes#AParExpr#n_expr (self) on <self:AParExpr> */
3131 var2
= self
->attrs
[COLOR_nit__parser_nodes__AParExpr___n_expr
].val
; /* _n_expr on <self:AParExpr> */
3132 if (unlikely(var2
== NULL
)) {
3133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3134 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2637);
3142 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
3144 var_after_expr
= var3
;
3146 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var_after_expr) on <var_v:FlowVisitor> */
3147 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_after_expr
; /* _current_flow_context on <var_v:FlowVisitor> */
3153 /* method flow#AOnceExpr#accept_flow_visitor for (self: AOnceExpr, FlowVisitor) */
3154 void nit__flow___AOnceExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3155 val
* var_v
/* var v: FlowVisitor */;
3156 val
* var
/* : AExpr */;
3157 val
* var2
/* : AExpr */;
3158 val
* var3
/* : FlowContext */;
3159 val
* var_after_expr
/* var after_expr: FlowContext */;
3162 { /* Inline parser_nodes#AOnceExpr#n_expr (self) on <self:AOnceExpr> */
3163 var2
= self
->attrs
[COLOR_nit__parser_nodes__AOnceExpr___n_expr
].val
; /* _n_expr on <self:AOnceExpr> */
3164 if (unlikely(var2
== NULL
)) {
3165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3166 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2017);
3174 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
3176 var_after_expr
= var3
;
3178 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var_after_expr) on <var_v:FlowVisitor> */
3179 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_after_expr
; /* _current_flow_context on <var_v:FlowVisitor> */