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
, 201);
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 */;
85 short int var9
/* : Bool */;
87 ((void (*)(val
* self
))(self
->class->vft
[COLOR_nit__flow___nit__flow__FlowVisitor___standard__kernel__Object__init
]))(self
) /* init on <self:FlowVisitor>*/;
90 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
91 var2
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
92 if (unlikely(var2
== NULL
)) {
93 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
94 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
102 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
103 var5
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
104 if (unlikely(var5
== NULL
)) {
105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
106 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
114 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var
, var3
); /* Direct call array#Array#add on <var:Array[FlowContext]>*/
117 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
118 var8
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
119 if (unlikely(var8
== NULL
)) {
120 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
121 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
130 { /* Inline flow#FlowContext#is_start= (var6,var9) on <var6:FlowContext> */
131 var6
->attrs
[COLOR_nit__flow__FlowContext___is_start
].s
= var9
; /* _is_start on <var6:FlowContext> */
137 /* method flow#FlowVisitor#first for (self: FlowVisitor): nullable ANode */
138 val
* nit__flow___nit__flow__FlowVisitor___first(val
* self
) {
139 val
* var
/* : nullable ANode */;
140 val
* var1
/* : nullable ANode */;
141 var1
= self
->attrs
[COLOR_nit__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
146 /* method flow#FlowVisitor#first= for (self: FlowVisitor, nullable ANode) */
147 void nit__flow___nit__flow__FlowVisitor___first_61d(val
* self
, val
* p0
) {
148 self
->attrs
[COLOR_nit__flow__FlowVisitor___first
].val
= p0
; /* _first on <self:FlowVisitor> */
151 /* method flow#FlowVisitor#visit for (self: FlowVisitor, ANode) */
152 void nit__flow___nit__flow__FlowVisitor___nit__parser_nodes__Visitor__visit(val
* self
, val
* p0
) {
153 val
* var_node
/* var node: ANode */;
154 val
* var
/* : nullable ANode */;
155 val
* var2
/* : nullable ANode */;
156 val
* var3
/* : null */;
157 short int var4
/* : Bool */;
158 short int var5
/* : Bool */;
159 val
* var_other
/* var other: nullable Object */;
160 short int var7
/* : Bool */;
161 short int var9
/* : Bool */;
162 val
* var11
/* : FlowContext */;
163 val
* var13
/* : FlowContext */;
164 val
* var14
/* : nullable ANode */;
165 val
* var16
/* : nullable ANode */;
166 val
* var17
/* : null */;
167 short int var18
/* : Bool */;
168 short int var19
/* : Bool */;
169 short int var21
/* : Bool */;
170 short int var23
/* : Bool */;
171 val
* var24
/* : FlowContext */;
172 val
* var26
/* : FlowContext */;
173 short int var28
/* : Bool */;
176 val
* var29
/* : FlowContext */;
177 val
* var31
/* : FlowContext */;
178 val
* var_flow
/* var flow: FlowContext */;
179 short int var33
/* : Bool */;
180 val
* var34
/* : FlowContext */;
181 val
* var36
/* : FlowContext */;
182 short int var37
/* : Bool */;
183 val
* var_other39
/* var other: nullable Object */;
184 short int var40
/* : Bool */;
185 short int var41
/* : Bool */;
186 short int var_
/* var : Bool */;
187 val
* var42
/* : FlowContext */;
188 val
* var44
/* : FlowContext */;
189 short int var45
/* : Bool */;
190 short int var47
/* : Bool */;
191 short int var48
/* : Bool */;
192 val
* var49
/* : FlowContext */;
193 val
* var50
/* : FlowContext */;
194 val
* var52
/* : FlowContext */;
196 val
* var53
/* : String */;
197 char* var54
/* : NativeString */;
198 long var55
/* : Int */;
199 val
* var56
/* : FlatString */;
200 val
* var58
/* : nullable ANode */;
201 val
* var60
/* : nullable ANode */;
202 short int var61
/* : Bool */;
203 short int var62
/* : Bool */;
204 short int var64
/* : Bool */;
205 short int var66
/* : Bool */;
208 { /* Inline flow#FlowVisitor#first (self) on <self:FlowVisitor> */
209 var2
= self
->attrs
[COLOR_nit__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
216 var4
= 1; /* is null */
218 var4
= 0; /* arg is null but recv is not */
221 { /* Inline kernel#Object#== (var,var3) on <var:nullable ANode> */
224 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ANode(ANode)> */
225 var9
= var
== var_other
;
239 { /* Inline flow#FlowVisitor#first= (self,var_node) on <self:FlowVisitor> */
240 self
->attrs
[COLOR_nit__flow__FlowVisitor___first
].val
= var_node
; /* _first on <self:FlowVisitor> */
247 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
248 var13
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
249 if (unlikely(var13
== NULL
)) {
250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
251 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
259 { /* Inline flow#FlowContext#node (var11) on <var11:FlowContext> */
260 var16
= var11
->attrs
[COLOR_nit__flow__FlowContext___node
].val
; /* _node on <var11:FlowContext> */
267 var18
= 1; /* is null */
269 var18
= 0; /* arg is null but recv is not */
272 { /* Inline kernel#Object#== (var14,var17) on <var14:nullable ANode> */
275 { /* Inline kernel#Object#is_same_instance (var14,var_other) on <var14:nullable ANode(ANode)> */
276 var23
= var14
== var_other
;
290 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
291 var26
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
292 if (unlikely(var26
== NULL
)) {
293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
294 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
302 { /* Inline flow#FlowContext#node= (var24,var_node) on <var24:FlowContext> */
303 var24
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var_node
; /* _node on <var24:FlowContext> */
310 ((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>*/;
312 /* <var_node:ANode> isa AExpr */
313 cltype
= type_nit__AExpr
.color
;
314 idtype
= type_nit__AExpr
.id
;
315 if(cltype
>= var_node
->type
->table_size
) {
318 var28
= var_node
->type
->type_table
[cltype
] == idtype
;
322 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
323 var31
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
324 if (unlikely(var31
== NULL
)) {
325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
326 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
335 { /* Inline flow#AExpr#after_flow_context= (var_node,var_flow) on <var_node:ANode(AExpr)> */
336 var_node
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
= var_flow
; /* _after_flow_context on <var_node:ANode(AExpr)> */
341 { /* Inline flow#FlowContext#when_true (var_flow) on <var_flow:FlowContext> */
342 var36
= var_flow
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_flow:FlowContext> */
343 if (unlikely(var36
== NULL
)) {
344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
345 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
353 { /* Inline kernel#Object#!= (var34,var_flow) on <var34:FlowContext> */
354 var_other39
= var_flow
;
356 var40
= ((short int (*)(val
* self
, val
* p0
))(var34
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var34
, var_other39
) /* == on <var34:FlowContext>*/;
369 { /* Inline flow#FlowContext#when_false (var_flow) on <var_flow:FlowContext> */
370 var44
= var_flow
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_flow:FlowContext> */
371 if (unlikely(var44
== NULL
)) {
372 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
373 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
381 { /* Inline kernel#Object#!= (var42,var_flow) on <var42:FlowContext> */
382 var_other39
= var_flow
;
384 var47
= ((short int (*)(val
* self
, val
* p0
))(var42
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var42
, var_other39
) /* == on <var42:FlowContext>*/;
396 var49
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(self
);
399 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
400 var52
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
401 if (unlikely(var52
== NULL
)) {
402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
403 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
415 var56
= standard___standard__NativeString___to_s_with_length(var54
, var55
);
420 { /* Inline flow#FlowContext#name= (var50,var53) on <var50:FlowContext> */
421 var50
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var53
; /* _name on <var50:FlowContext> */
430 { /* Inline flow#FlowVisitor#first (self) on <self:FlowVisitor> */
431 var60
= self
->attrs
[COLOR_nit__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
437 var61
= 0; /* <var_node:ANode> cannot be null */
439 { /* Inline kernel#Object#== (var58,var_node) on <var58:nullable ANode> */
440 var_other
= var_node
;
442 { /* Inline kernel#Object#is_same_instance (var58,var_other) on <var58:nullable ANode(ANode)> */
443 var66
= var58
== var_other
;
460 /* method flow#FlowVisitor#visit_expr for (self: FlowVisitor, AExpr): FlowContext */
461 val
* nit__flow___nit__flow__FlowVisitor___visit_expr(val
* self
, val
* p0
) {
462 val
* var
/* : FlowContext */;
463 val
* var_node
/* var node: AExpr */;
464 val
* var1
/* : nullable FlowContext */;
465 val
* var3
/* : nullable FlowContext */;
468 nit___nit__Visitor___enter_visit(self
, var_node
); /* Direct call parser_nodes#Visitor#enter_visit on <self:FlowVisitor>*/
471 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
472 var3
= var_node
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
477 if (unlikely(var1
== NULL
)) {
478 PRINT_ERROR("Runtime error: %s", "Cast failed");
479 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 73);
487 /* method flow#FlowVisitor#flows for (self: FlowVisitor): Array[FlowContext] */
488 val
* nit__flow___nit__flow__FlowVisitor___flows(val
* self
) {
489 val
* var
/* : Array[FlowContext] */;
490 val
* var1
/* : Array[FlowContext] */;
491 var1
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
492 if (unlikely(var1
== NULL
)) {
493 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
494 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
501 /* method flow#FlowVisitor#make_sub_flow for (self: FlowVisitor): FlowContext */
502 val
* nit__flow___nit__flow__FlowVisitor___make_sub_flow(val
* self
) {
503 val
* var
/* : FlowContext */;
504 val
* var1
/* : FlowContext */;
505 val
* var_flow
/* var flow: FlowContext */;
506 val
* var3
/* : Array[FlowContext] */;
507 val
* var5
/* : Array[FlowContext] */;
508 val
* var6
/* : nullable ANode */;
509 val
* var8
/* : nullable ANode */;
510 val
* var10
/* : FlowContext */;
511 val
* var12
/* : FlowContext */;
512 var1
= NEW_nit__FlowContext(&type_nit__FlowContext
);
514 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
520 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
521 var5
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
522 if (unlikely(var5
== NULL
)) {
523 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
524 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
532 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
535 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
536 var8
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
542 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
543 var_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
548 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
549 var12
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
550 if (unlikely(var12
== NULL
)) {
551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
552 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
560 nit___nit__FlowContext___add_previous(var_flow
, var10
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
563 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
564 self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
573 /* method flow#FlowVisitor#make_merge_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
574 val
* nit__flow___nit__flow__FlowVisitor___make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
575 val
* var
/* : FlowContext */;
576 val
* var_flow1
/* var flow1: FlowContext */;
577 val
* var_flow2
/* var flow2: FlowContext */;
578 val
* var1
/* : FlowContext */;
579 val
* var_flow
/* var flow: FlowContext */;
580 val
* var3
/* : Array[FlowContext] */;
581 val
* var5
/* : Array[FlowContext] */;
582 val
* var6
/* : nullable ANode */;
583 val
* var8
/* : nullable ANode */;
586 var1
= NEW_nit__FlowContext(&type_nit__FlowContext
);
588 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
594 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
595 var5
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
596 if (unlikely(var5
== NULL
)) {
597 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
598 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
606 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
609 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
610 var8
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
616 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
617 var_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
622 nit___nit__FlowContext___add_previous(var_flow
, var_flow1
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
625 nit___nit__FlowContext___add_previous(var_flow
, var_flow2
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
628 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
629 self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
638 /* method flow#FlowVisitor#make_true_false_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
639 val
* nit__flow___nit__flow__FlowVisitor___make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
640 val
* var
/* : FlowContext */;
641 val
* var_true_flow
/* var true_flow: FlowContext */;
642 val
* var_false_flow
/* var false_flow: FlowContext */;
643 val
* var1
/* : FlowContext */;
644 val
* var_flow
/* var flow: FlowContext */;
645 val
* var3
/* : Array[FlowContext] */;
646 val
* var5
/* : Array[FlowContext] */;
647 val
* var6
/* : nullable ANode */;
648 val
* var8
/* : nullable ANode */;
651 var1
= NEW_nit__FlowContext(&type_nit__FlowContext
);
653 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
659 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
660 var5
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
661 if (unlikely(var5
== NULL
)) {
662 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
663 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
671 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
674 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
675 var8
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
681 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
682 var_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
687 nit___nit__FlowContext___add_previous(var_flow
, var_true_flow
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
690 nit___nit__FlowContext___add_previous(var_flow
, var_false_flow
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
693 { /* Inline flow#FlowContext#when_true= (var_flow,var_true_flow) on <var_flow:FlowContext> */
694 var_flow
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
= var_true_flow
; /* _when_true on <var_flow:FlowContext> */
699 { /* Inline flow#FlowContext#when_false= (var_flow,var_false_flow) on <var_flow:FlowContext> */
700 var_flow
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
= var_false_flow
; /* _when_false on <var_flow:FlowContext> */
705 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
706 self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
715 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: FlowVisitor): FlowContext */
716 val
* nit__flow___nit__flow__FlowVisitor___make_sub_true_false_flow(val
* self
) {
717 val
* var
/* : FlowContext */;
718 val
* var1
/* : FlowContext */;
719 val
* var3
/* : FlowContext */;
720 val
* var_orig_flow
/* var orig_flow: FlowContext */;
721 val
* var4
/* : FlowContext */;
722 val
* var_true_flow
/* var true_flow: FlowContext */;
723 val
* var6
/* : Array[FlowContext] */;
724 val
* var8
/* : Array[FlowContext] */;
725 val
* var9
/* : nullable ANode */;
726 val
* var11
/* : nullable ANode */;
728 val
* var13
/* : String */;
729 char* var14
/* : NativeString */;
730 long var15
/* : Int */;
731 val
* var16
/* : FlatString */;
732 val
* var18
/* : FlowContext */;
733 val
* var_false_flow
/* var false_flow: FlowContext */;
734 val
* var20
/* : Array[FlowContext] */;
735 val
* var22
/* : Array[FlowContext] */;
736 val
* var23
/* : nullable ANode */;
737 val
* var25
/* : nullable ANode */;
738 static val
* varonce27
;
739 val
* var28
/* : String */;
740 char* var29
/* : NativeString */;
741 long var30
/* : Int */;
742 val
* var31
/* : FlatString */;
743 val
* var33
/* : FlowContext */;
745 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
746 var3
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
747 if (unlikely(var3
== NULL
)) {
748 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
749 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
756 var_orig_flow
= var1
;
757 var4
= NEW_nit__FlowContext(&type_nit__FlowContext
);
759 { /* Inline kernel#Object#init (var4) on <var4:FlowContext> */
763 var_true_flow
= var4
;
765 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
766 var8
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
767 if (unlikely(var8
== NULL
)) {
768 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
769 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
777 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var6
, var_true_flow
); /* Direct call array#Array#add on <var6:Array[FlowContext]>*/
780 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
781 var11
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
787 { /* Inline flow#FlowContext#node= (var_true_flow,var9) on <var_true_flow:FlowContext> */
788 var_true_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var9
; /* _node on <var_true_flow:FlowContext> */
793 nit___nit__FlowContext___add_previous(var_true_flow
, var_orig_flow
); /* Direct call flow#FlowContext#add_previous on <var_true_flow:FlowContext>*/
800 var16
= standard___standard__NativeString___to_s_with_length(var14
, var15
);
805 { /* Inline flow#FlowContext#name= (var_true_flow,var13) on <var_true_flow:FlowContext> */
806 var_true_flow
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var13
; /* _name on <var_true_flow:FlowContext> */
810 var18
= NEW_nit__FlowContext(&type_nit__FlowContext
);
812 { /* Inline kernel#Object#init (var18) on <var18:FlowContext> */
816 var_false_flow
= var18
;
818 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
819 var22
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
820 if (unlikely(var22
== NULL
)) {
821 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
822 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
830 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var20
, var_false_flow
); /* Direct call array#Array#add on <var20:Array[FlowContext]>*/
833 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
834 var25
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
840 { /* Inline flow#FlowContext#node= (var_false_flow,var23) on <var_false_flow:FlowContext> */
841 var_false_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var23
; /* _node on <var_false_flow:FlowContext> */
846 nit___nit__FlowContext___add_previous(var_false_flow
, var_orig_flow
); /* Direct call flow#FlowContext#add_previous on <var_false_flow:FlowContext>*/
853 var31
= standard___standard__NativeString___to_s_with_length(var29
, var30
);
858 { /* Inline flow#FlowContext#name= (var_false_flow,var28) on <var_false_flow:FlowContext> */
859 var_false_flow
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var28
; /* _name on <var_false_flow:FlowContext> */
864 var33
= nit__flow___nit__flow__FlowVisitor___make_true_false_flow(self
, var_true_flow
, var_false_flow
);
871 /* method flow#FlowVisitor#make_unreachable_flow for (self: FlowVisitor): FlowContext */
872 val
* nit__flow___nit__flow__FlowVisitor___make_unreachable_flow(val
* self
) {
873 val
* var
/* : FlowContext */;
874 val
* var1
/* : FlowContext */;
875 val
* var_flow
/* var flow: FlowContext */;
876 val
* var3
/* : Array[FlowContext] */;
877 val
* var5
/* : Array[FlowContext] */;
878 val
* var6
/* : nullable ANode */;
879 val
* var8
/* : nullable ANode */;
880 val
* var10
/* : FlowContext */;
881 val
* var12
/* : FlowContext */;
882 short int var13
/* : Bool */;
883 var1
= NEW_nit__FlowContext(&type_nit__FlowContext
);
885 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
891 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
892 var5
= self
->attrs
[COLOR_nit__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
893 if (unlikely(var5
== NULL
)) {
894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 76);
903 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
906 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
907 var8
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
913 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
914 var_flow
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
919 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
920 var12
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
921 if (unlikely(var12
== NULL
)) {
922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
923 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
931 nit___nit__FlowContext___add_previous(var_flow
, var10
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
935 { /* Inline flow#FlowContext#is_marked_unreachable= (var_flow,var13) on <var_flow:FlowContext> */
936 var_flow
->attrs
[COLOR_nit__flow__FlowContext___is_marked_unreachable
].s
= var13
; /* _is_marked_unreachable on <var_flow:FlowContext> */
941 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
942 self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
951 /* method flow#FlowVisitor#merge_continues_to for (self: FlowVisitor, FlowContext, nullable EscapeMark) */
952 void nit__flow___nit__flow__FlowVisitor___merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
953 val
* var_before_loop
/* var before_loop: FlowContext */;
954 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
955 val
* var
/* : null */;
956 short int var1
/* : Bool */;
957 short int var2
/* : Bool */;
958 val
* var_other
/* var other: nullable Object */;
959 short int var4
/* : Bool */;
960 short int var6
/* : Bool */;
961 val
* var7
/* : Array[AEscapeExpr] */;
962 val
* var9
/* : Array[AEscapeExpr] */;
963 val
* var_
/* var : Array[AEscapeExpr] */;
964 val
* var10
/* : ArrayIterator[nullable Object] */;
965 val
* var_11
/* var : ArrayIterator[AEscapeExpr] */;
966 short int var12
/* : Bool */;
967 val
* var13
/* : nullable Object */;
968 val
* var_b
/* var b: AEscapeExpr */;
969 val
* var14
/* : nullable FlowContext */;
970 val
* var_before
/* var before: nullable FlowContext */;
971 val
* var15
/* : null */;
972 short int var16
/* : Bool */;
973 short int var17
/* : Bool */;
974 short int var19
/* : Bool */;
975 short int var21
/* : Bool */;
976 var_before_loop
= p0
;
979 if (var_escapemark
== NULL
) {
980 var1
= 1; /* is null */
982 var1
= 0; /* arg is null but recv is not */
985 { /* Inline kernel#Object#== (var_escapemark,var) on <var_escapemark:nullable EscapeMark> */
988 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
989 var6
= var_escapemark
== var_other
;
1006 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1007 var9
= var_escapemark
->attrs
[COLOR_nit__scope__EscapeMark___escapes
].val
; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1008 if (unlikely(var9
== NULL
)) {
1009 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
1010 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope
, 58);
1019 var10
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1024 var12
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_11
);
1028 var13
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_11
);
1032 var14
= nit__flow___AEscapeExpr___before_flow_context(var_b
);
1036 if (var_before
== NULL
) {
1037 var16
= 1; /* is null */
1039 var16
= 0; /* arg is null but recv is not */
1042 { /* Inline kernel#Object#== (var_before,var15) on <var_before:nullable FlowContext> */
1045 { /* Inline kernel#Object#is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1046 var21
= var_before
== var_other
;
1049 RET_LABEL20
:(void)0;
1054 RET_LABEL18
:(void)0;
1063 nit___nit__FlowContext___add_loop(var_before_loop
, var_before
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
1065 BREAK_label
: (void)0;
1067 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[AEscapeExpr]>*/
1073 BREAK_label22
: (void)0;
1075 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[AEscapeExpr]> */
1076 RET_LABEL23
:(void)0;
1081 /* method flow#FlowVisitor#merge_breaks for (self: FlowVisitor, nullable EscapeMark) */
1082 void nit__flow___nit__flow__FlowVisitor___merge_breaks(val
* self
, val
* p0
) {
1083 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1084 val
* var
/* : null */;
1085 short int var1
/* : Bool */;
1086 short int var2
/* : Bool */;
1087 val
* var_other
/* var other: nullable Object */;
1088 short int var4
/* : Bool */;
1089 short int var6
/* : Bool */;
1090 val
* var7
/* : Array[AEscapeExpr] */;
1091 val
* var9
/* : Array[AEscapeExpr] */;
1092 val
* var_
/* var : Array[AEscapeExpr] */;
1093 val
* var10
/* : ArrayIterator[nullable Object] */;
1094 val
* var_11
/* var : ArrayIterator[AEscapeExpr] */;
1095 short int var12
/* : Bool */;
1096 val
* var13
/* : nullable Object */;
1097 val
* var_b
/* var b: AEscapeExpr */;
1098 val
* var14
/* : nullable FlowContext */;
1099 val
* var_before
/* var before: nullable FlowContext */;
1100 val
* var15
/* : null */;
1101 short int var16
/* : Bool */;
1102 short int var17
/* : Bool */;
1103 short int var19
/* : Bool */;
1104 short int var21
/* : Bool */;
1105 val
* var22
/* : FlowContext */;
1106 val
* var24
/* : FlowContext */;
1107 val
* var25
/* : FlowContext */;
1108 var_escapemark
= p0
;
1110 if (var_escapemark
== NULL
) {
1111 var1
= 1; /* is null */
1113 var1
= 0; /* arg is null but recv is not */
1116 { /* Inline kernel#Object#== (var_escapemark,var) on <var_escapemark:nullable EscapeMark> */
1119 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1120 var6
= var_escapemark
== var_other
;
1137 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1138 var9
= var_escapemark
->attrs
[COLOR_nit__scope__EscapeMark___escapes
].val
; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1139 if (unlikely(var9
== NULL
)) {
1140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
1141 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope
, 58);
1150 var10
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1155 var12
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_11
);
1159 var13
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_11
);
1163 var14
= nit__flow___AEscapeExpr___before_flow_context(var_b
);
1167 if (var_before
== NULL
) {
1168 var16
= 1; /* is null */
1170 var16
= 0; /* arg is null but recv is not */
1173 { /* Inline kernel#Object#== (var_before,var15) on <var_before:nullable FlowContext> */
1176 { /* Inline kernel#Object#is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1177 var21
= var_before
== var_other
;
1180 RET_LABEL20
:(void)0;
1185 RET_LABEL18
:(void)0;
1194 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
1195 var24
= self
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
1196 if (unlikely(var24
== NULL
)) {
1197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1198 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1202 RET_LABEL23
:(void)0;
1206 var25
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(self
, var22
, var_before
);
1208 BREAK_label
: (void)0;
1210 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[AEscapeExpr]>*/
1216 BREAK_label26
: (void)0;
1218 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[AEscapeExpr]> */
1219 RET_LABEL27
:(void)0;
1224 /* method flow#FlowContext#previous for (self: FlowContext): Array[FlowContext] */
1225 val
* nit___nit__FlowContext___previous(val
* self
) {
1226 val
* var
/* : Array[FlowContext] */;
1227 val
* var1
/* : Array[FlowContext] */;
1228 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1229 if (unlikely(var1
== NULL
)) {
1230 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1231 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 188);
1238 /* method flow#FlowContext#loops for (self: FlowContext): Array[FlowContext] */
1239 val
* nit___nit__FlowContext___loops(val
* self
) {
1240 val
* var
/* : Array[FlowContext] */;
1241 val
* var1
/* : Array[FlowContext] */;
1242 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1243 if (unlikely(var1
== NULL
)) {
1244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1245 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 191);
1252 /* method flow#FlowContext#is_marked_unreachable for (self: FlowContext): Bool */
1253 short int nit___nit__FlowContext___is_marked_unreachable(val
* self
) {
1254 short int var
/* : Bool */;
1255 short int var1
/* : Bool */;
1256 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1261 /* method flow#FlowContext#is_marked_unreachable= for (self: FlowContext, Bool) */
1262 void nit___nit__FlowContext___is_marked_unreachable_61d(val
* self
, short int p0
) {
1263 self
->attrs
[COLOR_nit__flow__FlowContext___is_marked_unreachable
].s
= p0
; /* _is_marked_unreachable on <self:FlowContext> */
1266 /* method flow#FlowContext#is_unreachable for (self: FlowContext): Bool */
1267 short int nit___nit__FlowContext___is_unreachable(val
* self
) {
1268 short int var
/* : Bool */;
1269 short int var1
/* : Bool */;
1270 short int var3
/* : Bool */;
1271 short int var4
/* : Bool */;
1272 short int var5
/* : Bool */;
1273 short int var7
/* : Bool */;
1274 short int var8
/* : Bool */;
1275 val
* var9
/* : Array[FlowContext] */;
1276 val
* var11
/* : Array[FlowContext] */;
1277 long var12
/* : Int */;
1278 long var14
/* : Int */;
1279 long var15
/* : Int */;
1280 short int var16
/* : Bool */;
1281 short int var18
/* : Bool */;
1282 short int var19
/* : Bool */;
1283 short int var20
/* : Bool */;
1285 { /* Inline flow#FlowContext#is_marked_unreachable (self) on <self:FlowContext> */
1286 var3
= self
->attrs
[COLOR_nit__flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1298 { /* Inline flow#FlowContext#is_start (self) on <self:FlowContext> */
1299 var7
= self
->attrs
[COLOR_nit__flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1311 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1312 var11
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1313 if (unlikely(var11
== NULL
)) {
1314 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1315 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 188);
1319 RET_LABEL10
:(void)0;
1323 { /* Inline array#AbstractArrayRead#length (var9) on <var9:Array[FlowContext]> */
1324 var14
= var9
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var9:Array[FlowContext]> */
1326 RET_LABEL13
:(void)0;
1331 { /* Inline kernel#Int#== (var12,var15) on <var12:Int> */
1332 var18
= var12
== var15
;
1335 RET_LABEL17
:(void)0;
1350 /* method flow#FlowContext#is_already_unreachable for (self: FlowContext): Bool */
1351 short int nit___nit__FlowContext___is_already_unreachable(val
* self
) {
1352 short int var
/* : Bool */;
1353 short int var1
/* : Bool */;
1354 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <self:FlowContext> */
1359 /* method flow#FlowContext#is_already_unreachable= for (self: FlowContext, Bool) */
1360 void nit___nit__FlowContext___is_already_unreachable_61d(val
* self
, short int p0
) {
1361 self
->attrs
[COLOR_nit__flow__FlowContext___is_already_unreachable
].s
= p0
; /* _is_already_unreachable on <self:FlowContext> */
1364 /* method flow#FlowContext#is_start for (self: FlowContext): Bool */
1365 short int nit___nit__FlowContext___is_start(val
* self
) {
1366 short int var
/* : Bool */;
1367 short int var1
/* : Bool */;
1368 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1373 /* method flow#FlowContext#is_start= for (self: FlowContext, Bool) */
1374 void nit___nit__FlowContext___is_start_61d(val
* self
, short int p0
) {
1375 self
->attrs
[COLOR_nit__flow__FlowContext___is_start
].s
= p0
; /* _is_start on <self:FlowContext> */
1378 /* method flow#FlowContext#node for (self: FlowContext): nullable ANode */
1379 val
* nit___nit__FlowContext___node(val
* self
) {
1380 val
* var
/* : nullable ANode */;
1381 val
* var1
/* : nullable ANode */;
1382 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___node
].val
; /* _node on <self:FlowContext> */
1387 /* method flow#FlowContext#node= for (self: FlowContext, nullable ANode) */
1388 void nit___nit__FlowContext___node_61d(val
* self
, val
* p0
) {
1389 self
->attrs
[COLOR_nit__flow__FlowContext___node
].val
= p0
; /* _node on <self:FlowContext> */
1392 /* method flow#FlowContext#name= for (self: FlowContext, String) */
1393 void nit___nit__FlowContext___name_61d(val
* self
, val
* p0
) {
1394 self
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= p0
; /* _name on <self:FlowContext> */
1397 /* method flow#FlowContext#when_true for (self: FlowContext): FlowContext */
1398 val
* nit___nit__FlowContext___when_true(val
* self
) {
1399 val
* var
/* : FlowContext */;
1400 val
* var1
/* : FlowContext */;
1401 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <self:FlowContext> */
1402 if (unlikely(var1
== NULL
)) {
1403 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1404 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
1411 /* method flow#FlowContext#when_true= for (self: FlowContext, FlowContext) */
1412 void nit___nit__FlowContext___when_true_61d(val
* self
, val
* p0
) {
1413 self
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
= p0
; /* _when_true on <self:FlowContext> */
1416 /* method flow#FlowContext#when_false for (self: FlowContext): FlowContext */
1417 val
* nit___nit__FlowContext___when_false(val
* self
) {
1418 val
* var
/* : FlowContext */;
1419 val
* var1
/* : FlowContext */;
1420 var1
= self
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <self:FlowContext> */
1421 if (unlikely(var1
== NULL
)) {
1422 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
1423 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
1430 /* method flow#FlowContext#when_false= for (self: FlowContext, FlowContext) */
1431 void nit___nit__FlowContext___when_false_61d(val
* self
, val
* p0
) {
1432 self
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
= p0
; /* _when_false on <self:FlowContext> */
1435 /* method flow#FlowContext#add_previous for (self: FlowContext, FlowContext) */
1436 void nit___nit__FlowContext___add_previous(val
* self
, val
* p0
) {
1437 val
* var_flow
/* var flow: FlowContext */;
1438 short int var
/* : Bool */;
1439 short int var1
/* : Bool */;
1440 short int var2
/* : Bool */;
1441 short int var_
/* var : Bool */;
1442 val
* var3
/* : Array[FlowContext] */;
1443 val
* var5
/* : Array[FlowContext] */;
1444 short int var6
/* : Bool */;
1445 short int var7
/* : Bool */;
1446 val
* var8
/* : Array[FlowContext] */;
1447 val
* var10
/* : Array[FlowContext] */;
1450 var1
= nit___nit__FlowContext___is_unreachable(var_flow
);
1456 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1457 var5
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1458 if (unlikely(var5
== NULL
)) {
1459 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1460 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 188);
1468 var6
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var3
, var_flow
);
1477 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1478 var10
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1479 if (unlikely(var10
== NULL
)) {
1480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1481 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 188);
1489 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var8
, var_flow
); /* Direct call array#Array#add on <var8:Array[FlowContext]>*/
1495 /* method flow#FlowContext#add_loop for (self: FlowContext, FlowContext) */
1496 void nit___nit__FlowContext___add_loop(val
* self
, val
* p0
) {
1497 val
* var_flow
/* var flow: FlowContext */;
1498 short int var
/* : Bool */;
1499 short int var1
/* : Bool */;
1500 short int var2
/* : Bool */;
1501 short int var_
/* var : Bool */;
1502 val
* var3
/* : Array[FlowContext] */;
1503 val
* var5
/* : Array[FlowContext] */;
1504 short int var6
/* : Bool */;
1505 short int var7
/* : Bool */;
1506 val
* var8
/* : Array[FlowContext] */;
1507 val
* var10
/* : Array[FlowContext] */;
1510 var1
= nit___nit__FlowContext___is_unreachable(var_flow
);
1516 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1517 var5
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1518 if (unlikely(var5
== NULL
)) {
1519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1520 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 188);
1528 var6
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var3
, var_flow
);
1537 { /* Inline flow#FlowContext#loops (self) on <self:FlowContext> */
1538 var10
= self
->attrs
[COLOR_nit__flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1539 if (unlikely(var10
== NULL
)) {
1540 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1541 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 191);
1549 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var8
, var_flow
); /* Direct call array#Array#add on <var8:Array[FlowContext]>*/
1555 /* method flow#ANode#accept_flow_visitor for (self: ANode, FlowVisitor) */
1556 void nit__flow___ANode___accept_flow_visitor(val
* self
, val
* p0
) {
1557 val
* var_v
/* var v: FlowVisitor */;
1560 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__parser_nodes__ANode__visit_all
]))(self
, var_v
) /* visit_all on <self:ANode>*/;
1564 /* method flow#APropdef#do_flow for (self: APropdef, ToolContext) */
1565 void nit__flow___APropdef___do_flow(val
* self
, val
* p0
) {
1566 val
* var_toolcontext
/* var toolcontext: ToolContext */;
1567 val
* var
/* : FlowVisitor */;
1568 val
* var_v
/* var v: FlowVisitor */;
1569 var_toolcontext
= p0
;
1570 var
= NEW_nit__flow__FlowVisitor(&type_nit__flow__FlowVisitor
);
1572 ((void (*)(val
* self
, val
* p0
))(var
->class->vft
[COLOR_nit__flow__FlowVisitor__toolcontext_61d
]))(var
, var_toolcontext
) /* toolcontext= on <var:FlowVisitor>*/;
1575 ((void (*)(val
* self
))(var
->class->vft
[COLOR_standard__kernel__Object__init
]))(var
) /* init on <var:FlowVisitor>*/;
1579 nit___nit__Visitor___enter_visit(var_v
, self
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
1583 /* method flow#APropdef#before_flow_context= for (self: APropdef, nullable FlowContext) */
1584 void nit__flow___APropdef___before_flow_context_61d(val
* self
, val
* p0
) {
1585 self
->attrs
[COLOR_nit__flow__APropdef___before_flow_context
].val
= p0
; /* _before_flow_context on <self:APropdef> */
1588 /* method flow#APropdef#after_flow_context= for (self: APropdef, nullable FlowContext) */
1589 void nit__flow___APropdef___after_flow_context_61d(val
* self
, val
* p0
) {
1590 self
->attrs
[COLOR_nit__flow__APropdef___after_flow_context
].val
= p0
; /* _after_flow_context on <self:APropdef> */
1593 /* method flow#APropdef#accept_flow_visitor for (self: APropdef, FlowVisitor) */
1594 void nit__flow___APropdef___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1595 val
* var_v
/* var v: FlowVisitor */;
1596 val
* var
/* : FlowContext */;
1597 val
* var2
/* : FlowContext */;
1598 val
* var4
/* : FlowContext */;
1599 val
* var6
/* : FlowContext */;
1602 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1603 var2
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1604 if (unlikely(var2
== NULL
)) {
1605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1606 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1614 { /* Inline flow#APropdef#before_flow_context= (self,var) on <self:APropdef> */
1615 self
->attrs
[COLOR_nit__flow__APropdef___before_flow_context
].val
= var
; /* _before_flow_context on <self:APropdef> */
1620 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___APropdef___ANode__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:APropdef>*/;
1623 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1624 var6
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1625 if (unlikely(var6
== NULL
)) {
1626 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1627 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1635 { /* Inline flow#APropdef#after_flow_context= (self,var4) on <self:APropdef> */
1636 self
->attrs
[COLOR_nit__flow__APropdef___after_flow_context
].val
= var4
; /* _after_flow_context on <self:APropdef> */
1642 /* method flow#AExpr#after_flow_context for (self: AExpr): nullable FlowContext */
1643 val
* nit__flow___AExpr___after_flow_context(val
* self
) {
1644 val
* var
/* : nullable FlowContext */;
1645 val
* var1
/* : nullable FlowContext */;
1646 var1
= self
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AExpr> */
1651 /* method flow#AExpr#after_flow_context= for (self: AExpr, nullable FlowContext) */
1652 void nit__flow___AExpr___after_flow_context_61d(val
* self
, val
* p0
) {
1653 self
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
= p0
; /* _after_flow_context on <self:AExpr> */
1656 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: AVarAssignExpr, FlowVisitor) */
1657 void nit__flow___AVarAssignExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1658 val
* var_v
/* var v: FlowVisitor */;
1659 val
* var
/* : FlowContext */;
1662 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AVarAssignExpr___ANode__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AVarAssignExpr>*/;
1665 var
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(var_v
);
1668 { /* Inline flow#AExpr#after_flow_context= (self,var) on <self:AVarAssignExpr> */
1669 self
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AVarAssignExpr> */
1675 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: AReassignFormExpr, FlowVisitor) */
1676 void nit__flow___AReassignFormExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1677 val
* var_v
/* var v: FlowVisitor */;
1678 val
* var
/* : FlowContext */;
1681 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AReassignFormExpr___ANode__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReassignFormExpr>*/;
1684 var
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(var_v
);
1687 { /* Inline flow#AExpr#after_flow_context= (self,var) on <self:AReassignFormExpr> */
1688 self
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AReassignFormExpr> */
1694 /* method flow#ABlockExpr#accept_flow_visitor for (self: ABlockExpr, FlowVisitor) */
1695 void nit__flow___ABlockExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1696 val
* var_v
/* var v: FlowVisitor */;
1697 val
* var
/* : ANodes[AExpr] */;
1698 val
* var2
/* : ANodes[AExpr] */;
1699 val
* var_
/* var : ANodes[AExpr] */;
1700 val
* var3
/* : Iterator[ANode] */;
1701 val
* var_4
/* var : Iterator[AExpr] */;
1702 short int var5
/* : Bool */;
1703 val
* var6
/* : nullable Object */;
1704 val
* var_e
/* var e: AExpr */;
1705 val
* var7
/* : FlowContext */;
1706 val
* var9
/* : FlowContext */;
1707 short int var10
/* : Bool */;
1708 short int var11
/* : Bool */;
1709 val
* var12
/* : FlowContext */;
1710 val
* var14
/* : FlowContext */;
1711 short int var15
/* : Bool */;
1712 short int var17
/* : Bool */;
1713 short int var18
/* : Bool */;
1714 val
* var19
/* : FlowContext */;
1715 val
* var21
/* : FlowContext */;
1716 short int var22
/* : Bool */;
1717 val
* var24
/* : ToolContext */;
1718 val
* var26
/* : ToolContext */;
1719 val
* var27
/* : Location */;
1720 static val
* varonce
;
1721 val
* var28
/* : String */;
1722 char* var29
/* : NativeString */;
1723 long var30
/* : Int */;
1724 val
* var31
/* : FlatString */;
1727 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
1728 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
1729 if (unlikely(var2
== NULL
)) {
1730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1731 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1565);
1740 var3
= nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_
);
1745 var5
= ((short int (*)(val
* self
))(var_4
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_4
) /* is_ok on <var_4:Iterator[AExpr]>*/;
1749 var6
= ((val
* (*)(val
* self
))(var_4
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_4
) /* item on <var_4:Iterator[AExpr]>*/;
1753 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1754 var9
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1755 if (unlikely(var9
== NULL
)) {
1756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1757 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1765 var10
= nit___nit__FlowContext___is_unreachable(var7
);
1770 nit___nit__Visitor___enter_visit(var_v
, var_e
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
1774 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1775 var14
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1776 if (unlikely(var14
== NULL
)) {
1777 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1778 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1782 RET_LABEL13
:(void)0;
1786 { /* Inline flow#FlowContext#is_already_unreachable (var12) on <var12:FlowContext> */
1787 var17
= var12
->attrs
[COLOR_nit__flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <var12:FlowContext> */
1789 RET_LABEL16
:(void)0;
1795 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1796 var21
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1797 if (unlikely(var21
== NULL
)) {
1798 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1799 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
1803 RET_LABEL20
:(void)0;
1808 { /* Inline flow#FlowContext#is_already_unreachable= (var19,var22) on <var19:FlowContext> */
1809 var19
->attrs
[COLOR_nit__flow__FlowContext___is_already_unreachable
].s
= var22
; /* _is_already_unreachable on <var19:FlowContext> */
1810 RET_LABEL23
:(void)0;
1814 { /* Inline flow#FlowVisitor#toolcontext (var_v) on <var_v:FlowVisitor> */
1815 var26
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___toolcontext
].val
; /* _toolcontext on <var_v:FlowVisitor> */
1816 if (unlikely(var26
== NULL
)) {
1817 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1818 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 39);
1822 RET_LABEL25
:(void)0;
1826 var27
= nit___nit__ANode___hot_location(var_e
);
1831 var29
= "Error: unreachable statement.";
1833 var31
= standard___standard__NativeString___to_s_with_length(var29
, var30
);
1838 nit___nit__ToolContext___error(var24
, var27
, var28
); /* Direct call toolcontext#ToolContext#error on <var24:ToolContext>*/
1844 ((void (*)(val
* self
))(var_4
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_4
) /* next on <var_4:Iterator[AExpr]>*/;
1850 BREAK_label
: (void)0;
1852 { /* Inline abstract_collection#Iterator#finish (var_4) on <var_4:Iterator[AExpr]> */
1853 RET_LABEL32
:(void)0;
1858 /* method flow#AReturnExpr#accept_flow_visitor for (self: AReturnExpr, FlowVisitor) */
1859 void nit__flow___AReturnExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1860 val
* var_v
/* var v: FlowVisitor */;
1861 val
* var
/* : FlowContext */;
1864 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AReturnExpr___ANode__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AReturnExpr>*/;
1867 var
= nit__flow___nit__flow__FlowVisitor___make_unreachable_flow(var_v
);
1871 /* method flow#AEscapeExpr#before_flow_context for (self: AEscapeExpr): nullable FlowContext */
1872 val
* nit__flow___AEscapeExpr___before_flow_context(val
* self
) {
1873 val
* var
/* : nullable FlowContext */;
1874 val
* var1
/* : nullable FlowContext */;
1875 val
* var3
/* : nullable FlowContext */;
1876 val
* var_after
/* var after: nullable FlowContext */;
1877 val
* var4
/* : null */;
1878 short int var5
/* : Bool */;
1879 short int var6
/* : Bool */;
1880 val
* var_other
/* var other: nullable Object */;
1881 short int var8
/* : Bool */;
1882 short int var10
/* : Bool */;
1883 val
* var11
/* : null */;
1884 val
* var12
/* : Array[FlowContext] */;
1885 val
* var14
/* : Array[FlowContext] */;
1886 val
* var15
/* : nullable Object */;
1888 { /* Inline flow#AExpr#after_flow_context (self) on <self:AEscapeExpr> */
1889 var3
= self
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AEscapeExpr> */
1896 if (var_after
== NULL
) {
1897 var5
= 1; /* is null */
1899 var5
= 0; /* arg is null but recv is not */
1902 { /* Inline kernel#Object#== (var_after,var4) on <var_after:nullable FlowContext> */
1905 { /* Inline kernel#Object#is_same_instance (var_after,var_other) on <var_after:nullable FlowContext(FlowContext)> */
1906 var10
= var_after
== var_other
;
1925 { /* Inline flow#FlowContext#previous (var_after) on <var_after:nullable FlowContext(FlowContext)> */
1926 var14
= var_after
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <var_after:nullable FlowContext(FlowContext)> */
1927 if (unlikely(var14
== NULL
)) {
1928 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1929 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 188);
1933 RET_LABEL13
:(void)0;
1937 var15
= standard___standard__SequenceRead___Collection__first(var12
);
1944 /* method flow#AEscapeExpr#accept_flow_visitor for (self: AEscapeExpr, FlowVisitor) */
1945 void nit__flow___AEscapeExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1946 val
* var_v
/* var v: FlowVisitor */;
1947 val
* var
/* : FlowContext */;
1950 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AEscapeExpr___ANode__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AEscapeExpr>*/;
1953 var
= nit__flow___nit__flow__FlowVisitor___make_unreachable_flow(var_v
);
1957 /* method flow#AAbortExpr#accept_flow_visitor for (self: AAbortExpr, FlowVisitor) */
1958 void nit__flow___AAbortExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1959 val
* var_v
/* var v: FlowVisitor */;
1960 val
* var
/* : FlowContext */;
1963 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AAbortExpr___ANode__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AAbortExpr>*/;
1966 var
= nit__flow___nit__flow__FlowVisitor___make_unreachable_flow(var_v
);
1970 /* method flow#ADoExpr#accept_flow_visitor for (self: ADoExpr, FlowVisitor) */
1971 void nit__flow___ADoExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1972 val
* var_v
/* var v: FlowVisitor */;
1973 val
* var
/* : nullable EscapeMark */;
1974 val
* var2
/* : nullable EscapeMark */;
1977 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___ADoExpr___ANode__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ADoExpr>*/;
1980 { /* Inline scope#ADoExpr#break_mark (self) on <self:ADoExpr> */
1981 var2
= self
->attrs
[COLOR_nit__scope__ADoExpr___break_mark
].val
; /* _break_mark on <self:ADoExpr> */
1987 nit__flow___nit__flow__FlowVisitor___merge_breaks(var_v
, var
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
1991 /* method flow#AIfExpr#accept_flow_visitor for (self: AIfExpr, FlowVisitor) */
1992 void nit__flow___AIfExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1993 val
* var_v
/* var v: FlowVisitor */;
1994 val
* var
/* : AExpr */;
1995 val
* var2
/* : AExpr */;
1996 val
* var3
/* : FlowContext */;
1997 val
* var_after_expr
/* var after_expr: FlowContext */;
1998 val
* var4
/* : FlowContext */;
1999 val
* var6
/* : FlowContext */;
2000 val
* var8
/* : nullable AExpr */;
2001 val
* var10
/* : nullable AExpr */;
2002 val
* var11
/* : FlowContext */;
2003 val
* var13
/* : FlowContext */;
2004 val
* var_after_then
/* var after_then: FlowContext */;
2005 val
* var14
/* : FlowContext */;
2006 val
* var16
/* : FlowContext */;
2007 val
* var18
/* : nullable AExpr */;
2008 val
* var20
/* : nullable AExpr */;
2009 val
* var21
/* : FlowContext */;
2010 val
* var23
/* : FlowContext */;
2011 val
* var_after_else
/* var after_else: FlowContext */;
2012 val
* var24
/* : FlowContext */;
2015 { /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
2016 var2
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_expr
].val
; /* _n_expr on <self:AIfExpr> */
2017 if (unlikely(var2
== NULL
)) {
2018 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2019 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1664);
2027 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
2029 var_after_expr
= var3
;
2031 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2032 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2033 if (unlikely(var6
== NULL
)) {
2034 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2035 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
2043 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2044 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2049 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
2050 var10
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_then
].val
; /* _n_then on <self:AIfExpr> */
2056 nit___nit__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2059 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2060 var13
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2061 if (unlikely(var13
== NULL
)) {
2062 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2063 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2067 RET_LABEL12
:(void)0;
2070 var_after_then
= var11
;
2072 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2073 var16
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2074 if (unlikely(var16
== NULL
)) {
2075 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2076 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
2080 RET_LABEL15
:(void)0;
2084 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var14) on <var_v:FlowVisitor> */
2085 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var14
; /* _current_flow_context on <var_v:FlowVisitor> */
2086 RET_LABEL17
:(void)0;
2090 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
2091 var20
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_else
].val
; /* _n_else on <self:AIfExpr> */
2093 RET_LABEL19
:(void)0;
2097 nit___nit__Visitor___enter_visit(var_v
, var18
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2100 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2101 var23
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2102 if (unlikely(var23
== NULL
)) {
2103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2104 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2108 RET_LABEL22
:(void)0;
2111 var_after_else
= var21
;
2113 var24
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var_after_then
, var_after_else
);
2117 /* method flow#AIfexprExpr#accept_flow_visitor for (self: AIfexprExpr, FlowVisitor) */
2118 void nit__flow___AIfexprExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2119 val
* var_v
/* var v: FlowVisitor */;
2120 val
* var
/* : AExpr */;
2121 val
* var2
/* : AExpr */;
2122 val
* var3
/* : FlowContext */;
2123 val
* var_after_expr
/* var after_expr: FlowContext */;
2124 val
* var4
/* : FlowContext */;
2125 val
* var6
/* : FlowContext */;
2126 val
* var8
/* : AExpr */;
2127 val
* var10
/* : AExpr */;
2128 val
* var11
/* : FlowContext */;
2129 val
* var13
/* : FlowContext */;
2130 val
* var_after_then
/* var after_then: FlowContext */;
2131 val
* var14
/* : FlowContext */;
2132 val
* var16
/* : FlowContext */;
2133 val
* var18
/* : AExpr */;
2134 val
* var20
/* : AExpr */;
2135 val
* var21
/* : FlowContext */;
2136 val
* var23
/* : FlowContext */;
2137 val
* var_after_else
/* var after_else: FlowContext */;
2138 val
* var24
/* : FlowContext */;
2141 { /* Inline parser_nodes#AIfexprExpr#n_expr (self) on <self:AIfexprExpr> */
2142 var2
= self
->attrs
[COLOR_nit__parser_nodes__AIfexprExpr___n_expr
].val
; /* _n_expr on <self:AIfexprExpr> */
2143 if (unlikely(var2
== NULL
)) {
2144 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2145 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1681);
2153 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
2155 var_after_expr
= var3
;
2157 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2158 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2159 if (unlikely(var6
== NULL
)) {
2160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2161 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
2169 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2170 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2175 { /* Inline parser_nodes#AIfexprExpr#n_then (self) on <self:AIfexprExpr> */
2176 var10
= self
->attrs
[COLOR_nit__parser_nodes__AIfexprExpr___n_then
].val
; /* _n_then on <self:AIfexprExpr> */
2177 if (unlikely(var10
== NULL
)) {
2178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
2179 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1687);
2187 nit___nit__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2190 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2191 var13
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2192 if (unlikely(var13
== NULL
)) {
2193 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2194 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2198 RET_LABEL12
:(void)0;
2201 var_after_then
= var11
;
2203 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2204 var16
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2205 if (unlikely(var16
== NULL
)) {
2206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2207 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
2211 RET_LABEL15
:(void)0;
2215 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var14) on <var_v:FlowVisitor> */
2216 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var14
; /* _current_flow_context on <var_v:FlowVisitor> */
2217 RET_LABEL17
:(void)0;
2221 { /* Inline parser_nodes#AIfexprExpr#n_else (self) on <self:AIfexprExpr> */
2222 var20
= self
->attrs
[COLOR_nit__parser_nodes__AIfexprExpr___n_else
].val
; /* _n_else on <self:AIfexprExpr> */
2223 if (unlikely(var20
== NULL
)) {
2224 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
2225 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1693);
2229 RET_LABEL19
:(void)0;
2233 nit___nit__Visitor___enter_visit(var_v
, var18
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2236 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2237 var23
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2238 if (unlikely(var23
== NULL
)) {
2239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2240 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2244 RET_LABEL22
:(void)0;
2247 var_after_else
= var21
;
2249 var24
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var_after_then
, var_after_else
);
2253 /* method flow#AWhileExpr#accept_flow_visitor for (self: AWhileExpr, FlowVisitor) */
2254 void nit__flow___AWhileExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2255 val
* var_v
/* var v: FlowVisitor */;
2256 val
* var
/* : FlowContext */;
2257 val
* var_before_loop
/* var before_loop: FlowContext */;
2258 val
* var1
/* : AExpr */;
2259 val
* var3
/* : AExpr */;
2260 val
* var4
/* : FlowContext */;
2261 val
* var_after_expr
/* var after_expr: FlowContext */;
2262 val
* var5
/* : FlowContext */;
2263 val
* var7
/* : FlowContext */;
2264 val
* var9
/* : nullable AExpr */;
2265 val
* var11
/* : nullable AExpr */;
2266 val
* var12
/* : FlowContext */;
2267 val
* var14
/* : FlowContext */;
2268 val
* var_after_block
/* var after_block: FlowContext */;
2269 val
* var15
/* : nullable EscapeMark */;
2270 val
* var17
/* : nullable EscapeMark */;
2271 val
* var18
/* : FlowContext */;
2272 val
* var20
/* : FlowContext */;
2273 val
* var22
/* : nullable EscapeMark */;
2274 val
* var24
/* : nullable EscapeMark */;
2277 var
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(var_v
);
2279 var_before_loop
= var
;
2281 { /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
2282 var3
= self
->attrs
[COLOR_nit__parser_nodes__AWhileExpr___n_expr
].val
; /* _n_expr on <self:AWhileExpr> */
2283 if (unlikely(var3
== NULL
)) {
2284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2285 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1705);
2293 var4
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var1
);
2295 var_after_expr
= var4
;
2297 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2298 var7
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2299 if (unlikely(var7
== NULL
)) {
2300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2301 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
2309 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var5) on <var_v:FlowVisitor> */
2310 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var5
; /* _current_flow_context on <var_v:FlowVisitor> */
2315 { /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
2316 var11
= self
->attrs
[COLOR_nit__parser_nodes__AWhileExpr___n_block
].val
; /* _n_block on <self:AWhileExpr> */
2318 RET_LABEL10
:(void)0;
2322 nit___nit__Visitor___enter_visit(var_v
, var9
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2325 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2326 var14
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2327 if (unlikely(var14
== NULL
)) {
2328 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2329 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2333 RET_LABEL13
:(void)0;
2336 var_after_block
= var12
;
2338 nit___nit__FlowContext___add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
2341 { /* Inline scope#AWhileExpr#continue_mark (self) on <self:AWhileExpr> */
2342 var17
= self
->attrs
[COLOR_nit__scope__AWhileExpr___continue_mark
].val
; /* _continue_mark on <self:AWhileExpr> */
2344 RET_LABEL16
:(void)0;
2348 nit__flow___nit__flow__FlowVisitor___merge_continues_to(var_v
, var_after_block
, var15
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
2351 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2352 var20
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2353 if (unlikely(var20
== NULL
)) {
2354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2355 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
2359 RET_LABEL19
:(void)0;
2363 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var18) on <var_v:FlowVisitor> */
2364 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var18
; /* _current_flow_context on <var_v:FlowVisitor> */
2365 RET_LABEL21
:(void)0;
2369 { /* Inline scope#AWhileExpr#break_mark (self) on <self:AWhileExpr> */
2370 var24
= self
->attrs
[COLOR_nit__scope__AWhileExpr___break_mark
].val
; /* _break_mark on <self:AWhileExpr> */
2372 RET_LABEL23
:(void)0;
2376 nit__flow___nit__flow__FlowVisitor___merge_breaks(var_v
, var22
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2380 /* method flow#ALoopExpr#accept_flow_visitor for (self: ALoopExpr, FlowVisitor) */
2381 void nit__flow___ALoopExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2382 val
* var_v
/* var v: FlowVisitor */;
2383 val
* var
/* : FlowContext */;
2384 val
* var_before_loop
/* var before_loop: FlowContext */;
2385 val
* var1
/* : nullable AExpr */;
2386 val
* var3
/* : nullable AExpr */;
2387 val
* var4
/* : FlowContext */;
2388 val
* var6
/* : FlowContext */;
2389 val
* var_after_block
/* var after_block: FlowContext */;
2390 val
* var7
/* : nullable EscapeMark */;
2391 val
* var9
/* : nullable EscapeMark */;
2392 val
* var10
/* : FlowContext */;
2393 val
* var11
/* : nullable EscapeMark */;
2394 val
* var13
/* : nullable EscapeMark */;
2397 var
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(var_v
);
2399 var_before_loop
= var
;
2401 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
2402 var3
= self
->attrs
[COLOR_nit__parser_nodes__ALoopExpr___n_block
].val
; /* _n_block on <self:ALoopExpr> */
2408 nit___nit__Visitor___enter_visit(var_v
, var1
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2411 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2412 var6
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2413 if (unlikely(var6
== NULL
)) {
2414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2415 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2422 var_after_block
= var4
;
2424 nit___nit__FlowContext___add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
2427 { /* Inline scope#ALoopExpr#continue_mark (self) on <self:ALoopExpr> */
2428 var9
= self
->attrs
[COLOR_nit__scope__ALoopExpr___continue_mark
].val
; /* _continue_mark on <self:ALoopExpr> */
2434 nit__flow___nit__flow__FlowVisitor___merge_continues_to(var_v
, var_after_block
, var7
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
2437 var10
= nit__flow___nit__flow__FlowVisitor___make_unreachable_flow(var_v
);
2440 { /* Inline scope#ALoopExpr#break_mark (self) on <self:ALoopExpr> */
2441 var13
= self
->attrs
[COLOR_nit__scope__ALoopExpr___break_mark
].val
; /* _break_mark on <self:ALoopExpr> */
2443 RET_LABEL12
:(void)0;
2447 nit__flow___nit__flow__FlowVisitor___merge_breaks(var_v
, var11
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2451 /* method flow#AForExpr#accept_flow_visitor for (self: AForExpr, FlowVisitor) */
2452 void nit__flow___AForExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2453 val
* var_v
/* var v: FlowVisitor */;
2454 val
* var
/* : AExpr */;
2455 val
* var2
/* : AExpr */;
2456 val
* var3
/* : FlowContext */;
2457 val
* var_before_loop
/* var before_loop: FlowContext */;
2458 val
* var4
/* : nullable AExpr */;
2459 val
* var6
/* : nullable AExpr */;
2460 val
* var7
/* : FlowContext */;
2461 val
* var9
/* : FlowContext */;
2462 val
* var_after_block
/* var after_block: FlowContext */;
2463 val
* var10
/* : nullable EscapeMark */;
2464 val
* var12
/* : nullable EscapeMark */;
2465 val
* var13
/* : FlowContext */;
2466 val
* var15
/* : FlowContext */;
2467 val
* var16
/* : FlowContext */;
2468 val
* var17
/* : nullable EscapeMark */;
2469 val
* var19
/* : nullable EscapeMark */;
2472 { /* Inline parser_nodes#AForExpr#n_expr (self) on <self:AForExpr> */
2473 var2
= self
->attrs
[COLOR_nit__parser_nodes__AForExpr___n_expr
].val
; /* _n_expr on <self:AForExpr> */
2474 if (unlikely(var2
== NULL
)) {
2475 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2476 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1738);
2484 nit___nit__Visitor___enter_visit(var_v
, var
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2487 var3
= nit__flow___nit__flow__FlowVisitor___make_sub_flow(var_v
);
2489 var_before_loop
= var3
;
2491 { /* Inline parser_nodes#AForExpr#n_block (self) on <self:AForExpr> */
2492 var6
= self
->attrs
[COLOR_nit__parser_nodes__AForExpr___n_block
].val
; /* _n_block on <self:AForExpr> */
2498 nit___nit__Visitor___enter_visit(var_v
, var4
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2501 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2502 var9
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2503 if (unlikely(var9
== NULL
)) {
2504 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2505 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2512 var_after_block
= var7
;
2514 nit___nit__FlowContext___add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
2517 { /* Inline scope#AForExpr#continue_mark (self) on <self:AForExpr> */
2518 var12
= self
->attrs
[COLOR_nit__scope__AForExpr___continue_mark
].val
; /* _continue_mark on <self:AForExpr> */
2520 RET_LABEL11
:(void)0;
2524 nit__flow___nit__flow__FlowVisitor___merge_continues_to(var_v
, var_after_block
, var10
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
2527 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2528 var15
= var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2529 if (unlikely(var15
== NULL
)) {
2530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2531 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 37);
2535 RET_LABEL14
:(void)0;
2539 var16
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var13
, var_before_loop
);
2542 { /* Inline scope#AForExpr#break_mark (self) on <self:AForExpr> */
2543 var19
= self
->attrs
[COLOR_nit__scope__AForExpr___break_mark
].val
; /* _break_mark on <self:AForExpr> */
2545 RET_LABEL18
:(void)0;
2549 nit__flow___nit__flow__FlowVisitor___merge_breaks(var_v
, var17
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2553 /* method flow#AAssertExpr#accept_flow_visitor for (self: AAssertExpr, FlowVisitor) */
2554 void nit__flow___AAssertExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2555 val
* var_v
/* var v: FlowVisitor */;
2556 val
* var
/* : AExpr */;
2557 val
* var2
/* : AExpr */;
2558 val
* var3
/* : FlowContext */;
2559 val
* var_after_expr
/* var after_expr: FlowContext */;
2560 val
* var4
/* : FlowContext */;
2561 val
* var6
/* : FlowContext */;
2562 val
* var8
/* : nullable AExpr */;
2563 val
* var10
/* : nullable AExpr */;
2564 val
* var11
/* : FlowContext */;
2565 val
* var13
/* : FlowContext */;
2568 { /* Inline parser_nodes#AAssertExpr#n_expr (self) on <self:AAssertExpr> */
2569 var2
= self
->attrs
[COLOR_nit__parser_nodes__AAssertExpr___n_expr
].val
; /* _n_expr on <self:AAssertExpr> */
2570 if (unlikely(var2
== NULL
)) {
2571 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2572 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1758);
2580 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
2582 var_after_expr
= var3
;
2584 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2585 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2586 if (unlikely(var6
== NULL
)) {
2587 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2588 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
2596 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2597 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2602 { /* Inline parser_nodes#AAssertExpr#n_else (self) on <self:AAssertExpr> */
2603 var10
= self
->attrs
[COLOR_nit__parser_nodes__AAssertExpr___n_else
].val
; /* _n_else on <self:AAssertExpr> */
2609 nit___nit__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2612 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2613 var13
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2614 if (unlikely(var13
== NULL
)) {
2615 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2616 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
2620 RET_LABEL12
:(void)0;
2624 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var11) on <var_v:FlowVisitor> */
2625 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var11
; /* _current_flow_context on <var_v:FlowVisitor> */
2626 RET_LABEL14
:(void)0;
2631 /* method flow#AOrExpr#accept_flow_visitor for (self: AOrExpr, FlowVisitor) */
2632 void nit__flow___AOrExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2633 val
* var_v
/* var v: FlowVisitor */;
2634 val
* var
/* : AExpr */;
2635 val
* var2
/* : AExpr */;
2636 val
* var3
/* : FlowContext */;
2637 val
* var_after_expr
/* var after_expr: FlowContext */;
2638 val
* var4
/* : FlowContext */;
2639 val
* var6
/* : FlowContext */;
2640 val
* var8
/* : AExpr */;
2641 val
* var10
/* : AExpr */;
2642 val
* var11
/* : FlowContext */;
2643 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2644 val
* var12
/* : FlowContext */;
2645 val
* var14
/* : FlowContext */;
2646 val
* var15
/* : FlowContext */;
2647 val
* var17
/* : FlowContext */;
2648 val
* var18
/* : FlowContext */;
2649 val
* var_merge_true
/* var merge_true: FlowContext */;
2650 static val
* varonce
;
2651 val
* var19
/* : String */;
2652 char* var20
/* : NativeString */;
2653 long var21
/* : Int */;
2654 val
* var22
/* : FlatString */;
2655 val
* var24
/* : FlowContext */;
2656 val
* var26
/* : FlowContext */;
2657 val
* var27
/* : FlowContext */;
2660 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AOrExpr> */
2661 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AOrExpr> */
2662 if (unlikely(var2
== NULL
)) {
2663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2664 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1823);
2672 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
2674 var_after_expr
= var3
;
2676 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2677 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2678 if (unlikely(var6
== NULL
)) {
2679 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2680 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
2688 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2689 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2694 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AOrExpr> */
2695 var10
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AOrExpr> */
2696 if (unlikely(var10
== NULL
)) {
2697 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2698 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1826);
2706 var11
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var8
);
2708 var_after_expr2
= var11
;
2710 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2711 var14
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2712 if (unlikely(var14
== NULL
)) {
2713 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2714 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
2718 RET_LABEL13
:(void)0;
2722 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
2723 var17
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
2724 if (unlikely(var17
== NULL
)) {
2725 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2726 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
2730 RET_LABEL16
:(void)0;
2734 var18
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
2736 var_merge_true
= var18
;
2742 var22
= standard___standard__NativeString___to_s_with_length(var20
, var21
);
2747 { /* Inline flow#FlowContext#name= (var_merge_true,var19) on <var_merge_true:FlowContext> */
2748 var_merge_true
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_true:FlowContext> */
2749 RET_LABEL23
:(void)0;
2753 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
2754 var26
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
2755 if (unlikely(var26
== NULL
)) {
2756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2757 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
2761 RET_LABEL25
:(void)0;
2765 var27
= nit__flow___nit__flow__FlowVisitor___make_true_false_flow(var_v
, var_merge_true
, var24
);
2769 /* method flow#AImpliesExpr#accept_flow_visitor for (self: AImpliesExpr, FlowVisitor) */
2770 void nit__flow___AImpliesExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2771 val
* var_v
/* var v: FlowVisitor */;
2772 val
* var
/* : AExpr */;
2773 val
* var2
/* : AExpr */;
2774 val
* var3
/* : FlowContext */;
2775 val
* var_after_expr
/* var after_expr: FlowContext */;
2776 val
* var4
/* : FlowContext */;
2777 val
* var6
/* : FlowContext */;
2778 val
* var8
/* : AExpr */;
2779 val
* var10
/* : AExpr */;
2780 val
* var11
/* : FlowContext */;
2781 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2782 val
* var12
/* : FlowContext */;
2783 val
* var14
/* : FlowContext */;
2784 val
* var15
/* : FlowContext */;
2785 val
* var17
/* : FlowContext */;
2786 val
* var18
/* : FlowContext */;
2787 val
* var_merge_true
/* var merge_true: FlowContext */;
2788 static val
* varonce
;
2789 val
* var19
/* : String */;
2790 char* var20
/* : NativeString */;
2791 long var21
/* : Int */;
2792 val
* var22
/* : FlatString */;
2793 val
* var24
/* : FlowContext */;
2794 val
* var26
/* : FlowContext */;
2795 val
* var27
/* : FlowContext */;
2798 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AImpliesExpr> */
2799 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AImpliesExpr> */
2800 if (unlikely(var2
== NULL
)) {
2801 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2802 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1823);
2810 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
2812 var_after_expr
= var3
;
2814 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2815 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2816 if (unlikely(var6
== NULL
)) {
2817 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2818 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
2826 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2827 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2832 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AImpliesExpr> */
2833 var10
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AImpliesExpr> */
2834 if (unlikely(var10
== NULL
)) {
2835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2836 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1826);
2844 var11
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var8
);
2846 var_after_expr2
= var11
;
2848 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2849 var14
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2850 if (unlikely(var14
== NULL
)) {
2851 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2852 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
2856 RET_LABEL13
:(void)0;
2860 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
2861 var17
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
2862 if (unlikely(var17
== NULL
)) {
2863 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2864 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
2868 RET_LABEL16
:(void)0;
2872 var18
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
2874 var_merge_true
= var18
;
2880 var22
= standard___standard__NativeString___to_s_with_length(var20
, var21
);
2885 { /* Inline flow#FlowContext#name= (var_merge_true,var19) on <var_merge_true:FlowContext> */
2886 var_merge_true
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_true:FlowContext> */
2887 RET_LABEL23
:(void)0;
2891 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
2892 var26
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
2893 if (unlikely(var26
== NULL
)) {
2894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
2899 RET_LABEL25
:(void)0;
2903 var27
= nit__flow___nit__flow__FlowVisitor___make_true_false_flow(var_v
, var_merge_true
, var24
);
2907 /* method flow#AAndExpr#accept_flow_visitor for (self: AAndExpr, FlowVisitor) */
2908 void nit__flow___AAndExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2909 val
* var_v
/* var v: FlowVisitor */;
2910 val
* var
/* : AExpr */;
2911 val
* var2
/* : AExpr */;
2912 val
* var3
/* : FlowContext */;
2913 val
* var_after_expr
/* var after_expr: FlowContext */;
2914 val
* var4
/* : FlowContext */;
2915 val
* var6
/* : FlowContext */;
2916 val
* var8
/* : AExpr */;
2917 val
* var10
/* : AExpr */;
2918 val
* var11
/* : FlowContext */;
2919 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2920 val
* var12
/* : FlowContext */;
2921 val
* var14
/* : FlowContext */;
2922 val
* var15
/* : FlowContext */;
2923 val
* var17
/* : FlowContext */;
2924 val
* var18
/* : FlowContext */;
2925 val
* var_merge_false
/* var merge_false: FlowContext */;
2926 static val
* varonce
;
2927 val
* var19
/* : String */;
2928 char* var20
/* : NativeString */;
2929 long var21
/* : Int */;
2930 val
* var22
/* : FlatString */;
2931 val
* var24
/* : FlowContext */;
2932 val
* var26
/* : FlowContext */;
2933 val
* var27
/* : FlowContext */;
2936 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AAndExpr> */
2937 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AAndExpr> */
2938 if (unlikely(var2
== NULL
)) {
2939 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2940 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1823);
2948 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
2950 var_after_expr
= var3
;
2952 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2953 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2954 if (unlikely(var6
== NULL
)) {
2955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2956 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
2964 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2965 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2970 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AAndExpr> */
2971 var10
= self
->attrs
[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AAndExpr> */
2972 if (unlikely(var10
== NULL
)) {
2973 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2974 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1826);
2982 var11
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var8
);
2984 var_after_expr2
= var11
;
2986 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2987 var14
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2988 if (unlikely(var14
== NULL
)) {
2989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2990 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
2994 RET_LABEL13
:(void)0;
2998 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
2999 var17
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
3000 if (unlikely(var17
== NULL
)) {
3001 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3002 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
3006 RET_LABEL16
:(void)0;
3010 var18
= nit__flow___nit__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
3012 var_merge_false
= var18
;
3016 var20
= "AND FALSE";
3018 var22
= standard___standard__NativeString___to_s_with_length(var20
, var21
);
3023 { /* Inline flow#FlowContext#name= (var_merge_false,var19) on <var_merge_false:FlowContext> */
3024 var_merge_false
->attrs
[COLOR_nit__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_false:FlowContext> */
3025 RET_LABEL23
:(void)0;
3029 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3030 var26
= var_after_expr2
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3031 if (unlikely(var26
== NULL
)) {
3032 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3033 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
3037 RET_LABEL25
:(void)0;
3041 var27
= nit__flow___nit__flow__FlowVisitor___make_true_false_flow(var_v
, var24
, var_merge_false
);
3045 /* method flow#ANotExpr#accept_flow_visitor for (self: ANotExpr, FlowVisitor) */
3046 void nit__flow___ANotExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3047 val
* var_v
/* var v: FlowVisitor */;
3048 val
* var
/* : AExpr */;
3049 val
* var2
/* : AExpr */;
3050 val
* var3
/* : FlowContext */;
3051 val
* var_after_expr
/* var after_expr: FlowContext */;
3052 val
* var4
/* : FlowContext */;
3053 val
* var6
/* : FlowContext */;
3054 val
* var7
/* : FlowContext */;
3055 val
* var9
/* : FlowContext */;
3056 val
* var10
/* : FlowContext */;
3059 { /* Inline parser_nodes#ANotExpr#n_expr (self) on <self:ANotExpr> */
3060 var2
= self
->attrs
[COLOR_nit__parser_nodes__ANotExpr___n_expr
].val
; /* _n_expr on <self:ANotExpr> */
3061 if (unlikely(var2
== NULL
)) {
3062 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3063 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1857);
3071 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
3073 var_after_expr
= var3
;
3075 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3076 var6
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3077 if (unlikely(var6
== NULL
)) {
3078 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3079 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
3087 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3088 var9
= var_after_expr
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3089 if (unlikely(var9
== NULL
)) {
3090 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3091 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
3099 var10
= nit__flow___nit__flow__FlowVisitor___make_true_false_flow(var_v
, var4
, var7
);
3103 /* method flow#AOrElseExpr#accept_flow_visitor for (self: AOrElseExpr, FlowVisitor) */
3104 void nit__flow___AOrElseExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3105 val
* var_v
/* var v: FlowVisitor */;
3108 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AOrElseExpr___ANode__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AOrElseExpr>*/;
3112 /* method flow#AEqExpr#accept_flow_visitor for (self: AEqExpr, FlowVisitor) */
3113 void nit__flow___AEqExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3114 val
* var_v
/* var v: FlowVisitor */;
3115 val
* var
/* : FlowContext */;
3118 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AEqExpr___ANode__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AEqExpr>*/;
3121 var
= nit__flow___nit__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3125 /* method flow#ANeExpr#accept_flow_visitor for (self: ANeExpr, FlowVisitor) */
3126 void nit__flow___ANeExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3127 val
* var_v
/* var v: FlowVisitor */;
3128 val
* var
/* : FlowContext */;
3131 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___ANeExpr___ANode__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:ANeExpr>*/;
3134 var
= nit__flow___nit__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3138 /* method flow#AIsaExpr#accept_flow_visitor for (self: AIsaExpr, FlowVisitor) */
3139 void nit__flow___AIsaExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3140 val
* var_v
/* var v: FlowVisitor */;
3141 val
* var
/* : FlowContext */;
3144 ((void (*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nit__flow___AIsaExpr___ANode__accept_flow_visitor
]))(self
, p0
) /* accept_flow_visitor on <self:AIsaExpr>*/;
3147 var
= nit__flow___nit__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3151 /* method flow#AParExpr#accept_flow_visitor for (self: AParExpr, FlowVisitor) */
3152 void nit__flow___AParExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3153 val
* var_v
/* var v: FlowVisitor */;
3154 val
* var
/* : AExpr */;
3155 val
* var2
/* : AExpr */;
3156 val
* var3
/* : FlowContext */;
3157 val
* var_after_expr
/* var after_expr: FlowContext */;
3160 { /* Inline parser_nodes#AParExpr#n_expr (self) on <self:AParExpr> */
3161 var2
= self
->attrs
[COLOR_nit__parser_nodes__AParExpr___n_expr
].val
; /* _n_expr on <self:AParExpr> */
3162 if (unlikely(var2
== NULL
)) {
3163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3164 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2288);
3172 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
3174 var_after_expr
= var3
;
3176 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var_after_expr) on <var_v:FlowVisitor> */
3177 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_after_expr
; /* _current_flow_context on <var_v:FlowVisitor> */
3183 /* method flow#AOnceExpr#accept_flow_visitor for (self: AOnceExpr, FlowVisitor) */
3184 void nit__flow___AOnceExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3185 val
* var_v
/* var v: FlowVisitor */;
3186 val
* var
/* : AExpr */;
3187 val
* var2
/* : AExpr */;
3188 val
* var3
/* : FlowContext */;
3189 val
* var_after_expr
/* var after_expr: FlowContext */;
3192 { /* Inline parser_nodes#AOnceExpr#n_expr (self) on <self:AOnceExpr> */
3193 var2
= self
->attrs
[COLOR_nit__parser_nodes__AOnceExpr___n_expr
].val
; /* _n_expr on <self:AOnceExpr> */
3194 if (unlikely(var2
== NULL
)) {
3195 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3196 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1794);
3204 var3
= nit__flow___nit__flow__FlowVisitor___visit_expr(var_v
, var
);
3206 var_after_expr
= var3
;
3208 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var_after_expr) on <var_v:FlowVisitor> */
3209 var_v
->attrs
[COLOR_nit__flow__FlowVisitor___current_flow_context
].val
= var_after_expr
; /* _current_flow_context on <var_v:FlowVisitor> */