1 #include "nitc__flow.sep.0.h"
2 /* method flow#ToolContext#flow_phase for (self: ToolContext): Phase */
3 val
* nitc__flow___ToolContext___flow_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_nitc__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_nitc__flow
, 23);
16 /* method flow#FlowPhase#process_npropdef for (self: FlowPhase, APropdef) */
17 void nitc__flow___nitc__flow__FlowPhase___nitc__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_nitc__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_nitc__phase
, 200);
35 nitc__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
* nitc__flow___nitc__flow__FlowVisitor___current_flow_context(val
* self
) {
41 val
* var
/* : FlowContext */;
42 val
* var1
/* : FlowContext */;
43 var1
= self
->attrs
[COLOR_nitc__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_nitc__flow
, 37);
53 /* method flow#FlowVisitor#current_flow_context= for (self: FlowVisitor, FlowContext) */
54 void nitc__flow___nitc__flow__FlowVisitor___current_flow_context_61d(val
* self
, val
* p0
) {
55 self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= p0
; /* _current_flow_context on <self:FlowVisitor> */
58 /* method flow#FlowVisitor#toolcontext for (self: FlowVisitor): ToolContext */
59 val
* nitc__flow___nitc__flow__FlowVisitor___toolcontext(val
* self
) {
60 val
* var
/* : ToolContext */;
61 val
* var1
/* : ToolContext */;
62 var1
= self
->attrs
[COLOR_nitc__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_nitc__flow
, 39);
72 /* method flow#FlowVisitor#toolcontext= for (self: FlowVisitor, ToolContext) */
73 void nitc__flow___nitc__flow__FlowVisitor___toolcontext_61d(val
* self
, val
* p0
) {
74 self
->attrs
[COLOR_nitc__flow__FlowVisitor___toolcontext
].val
= p0
; /* _toolcontext on <self:FlowVisitor> */
77 /* method flow#FlowVisitor#init for (self: FlowVisitor) */
78 void nitc__flow___nitc__flow__FlowVisitor___core__kernel__Object__init(val
* self
) {
79 val
* var
/* : Array[FlowContext] */;
80 val
* var2
/* : Array[FlowContext] */;
81 val
* var3
/* : FlowContext */;
82 val
* var5
/* : FlowContext */;
83 val
* var6
/* : FlowContext */;
84 val
* var8
/* : FlowContext */;
86 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc__flow___nitc__flow__FlowVisitor___core__kernel__Object__init
]))(self
); /* init on <self:FlowVisitor>*/
89 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
90 var2
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
91 if (unlikely(var2
== NULL
)) {
92 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
93 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
101 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
102 var5
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
103 if (unlikely(var5
== NULL
)) {
104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
105 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
113 core___core__Array___core__abstract_collection__SimpleCollection__add(var
, var3
); /* Direct call array#Array#add on <var:Array[FlowContext]>*/
116 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
117 var8
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
118 if (unlikely(var8
== NULL
)) {
119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
120 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
128 { /* Inline flow#FlowContext#is_start= (var6,1) on <var6:FlowContext> */
129 var6
->attrs
[COLOR_nitc__flow__FlowContext___is_start
].s
= 1; /* _is_start on <var6:FlowContext> */
135 /* method flow#FlowVisitor#first for (self: FlowVisitor): nullable ANode */
136 val
* nitc__flow___nitc__flow__FlowVisitor___first(val
* self
) {
137 val
* var
/* : nullable ANode */;
138 val
* var1
/* : nullable ANode */;
139 var1
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
144 /* method flow#FlowVisitor#first= for (self: FlowVisitor, nullable ANode) */
145 void nitc__flow___nitc__flow__FlowVisitor___first_61d(val
* self
, val
* p0
) {
146 self
->attrs
[COLOR_nitc__flow__FlowVisitor___first
].val
= p0
; /* _first on <self:FlowVisitor> */
149 /* method flow#FlowVisitor#visit for (self: FlowVisitor, ANode) */
150 void nitc__flow___nitc__flow__FlowVisitor___nitc__parser_nodes__Visitor__visit(val
* self
, val
* p0
) {
151 val
* var_node
/* var node: ANode */;
152 val
* var
/* : nullable ANode */;
153 val
* var2
/* : nullable ANode */;
154 short int var3
/* : Bool */;
155 short int var4
/* : Bool */;
156 val
* var_other
/* var other: nullable Object */;
157 short int var6
/* : Bool */;
158 short int var8
/* : Bool */;
159 val
* var10
/* : FlowContext */;
160 val
* var12
/* : FlowContext */;
161 val
* var13
/* : nullable ANode */;
162 val
* var15
/* : nullable ANode */;
163 short int var16
/* : Bool */;
164 short int var17
/* : Bool */;
165 short int var19
/* : Bool */;
166 short int var21
/* : Bool */;
167 val
* var22
/* : FlowContext */;
168 val
* var24
/* : FlowContext */;
169 short int var26
/* : Bool */;
172 val
* var27
/* : FlowContext */;
173 val
* var29
/* : FlowContext */;
174 val
* var_flow
/* var flow: FlowContext */;
175 short int var31
/* : Bool */;
176 val
* var32
/* : FlowContext */;
177 val
* var34
/* : FlowContext */;
178 short int var35
/* : Bool */;
179 val
* var_other37
/* var other: nullable Object */;
180 short int var38
/* : Bool */;
181 short int var39
/* : Bool */;
182 short int var_
/* var : Bool */;
183 val
* var40
/* : FlowContext */;
184 val
* var42
/* : FlowContext */;
185 short int var43
/* : Bool */;
186 short int var45
/* : Bool */;
187 short int var46
/* : Bool */;
188 val
* var47
/* : FlowContext */;
189 val
* var48
/* : FlowContext */;
190 val
* var50
/* : FlowContext */;
192 val
* var51
/* : String */;
193 char* var52
/* : NativeString */;
194 val
* var53
/* : String */;
195 val
* var55
/* : nullable ANode */;
196 val
* var57
/* : nullable ANode */;
197 short int var58
/* : Bool */;
198 short int var59
/* : Bool */;
199 short int var61
/* : Bool */;
200 short int var63
/* : Bool */;
203 { /* Inline flow#FlowVisitor#first (self) on <self:FlowVisitor> */
204 var2
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
210 var3
= 1; /* is null */
212 var3
= 0; /* arg is null but recv is not */
215 { /* Inline kernel#Object#== (var,((val*)NULL)) on <var:nullable ANode> */
216 var_other
= ((val
*)NULL
);
218 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ANode(ANode)> */
219 var8
= var
== var_other
;
233 { /* Inline flow#FlowVisitor#first= (self,var_node) on <self:FlowVisitor> */
234 self
->attrs
[COLOR_nitc__flow__FlowVisitor___first
].val
= var_node
; /* _first on <self:FlowVisitor> */
241 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
242 var12
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
243 if (unlikely(var12
== NULL
)) {
244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
245 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
253 { /* Inline flow#FlowContext#node (var10) on <var10:FlowContext> */
254 var15
= var10
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
; /* _node on <var10:FlowContext> */
260 var16
= 1; /* is null */
262 var16
= 0; /* arg is null but recv is not */
265 { /* Inline kernel#Object#== (var13,((val*)NULL)) on <var13:nullable ANode> */
266 var_other
= ((val
*)NULL
);
268 { /* Inline kernel#Object#is_same_instance (var13,var_other) on <var13:nullable ANode(ANode)> */
269 var21
= var13
== var_other
;
283 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
284 var24
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
285 if (unlikely(var24
== NULL
)) {
286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
287 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
295 { /* Inline flow#FlowContext#node= (var22,var_node) on <var22:FlowContext> */
296 var22
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var_node
; /* _node on <var22:FlowContext> */
303 ((void(*)(val
* self
, val
* p0
))(var_node
->class->vft
[COLOR_nitc__flow__ANode__accept_flow_visitor
]))(var_node
, self
); /* accept_flow_visitor on <var_node:ANode>*/
305 /* <var_node:ANode> isa AExpr */
306 cltype
= type_nitc__AExpr
.color
;
307 idtype
= type_nitc__AExpr
.id
;
308 if(cltype
>= var_node
->type
->table_size
) {
311 var26
= var_node
->type
->type_table
[cltype
] == idtype
;
315 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
316 var29
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
317 if (unlikely(var29
== NULL
)) {
318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
319 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
328 { /* Inline flow#AExpr#after_flow_context= (var_node,var_flow) on <var_node:ANode(AExpr)> */
329 var_node
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
= var_flow
; /* _after_flow_context on <var_node:ANode(AExpr)> */
334 { /* Inline flow#FlowContext#when_true (var_flow) on <var_flow:FlowContext> */
335 var34
= var_flow
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_flow:FlowContext> */
336 if (unlikely(var34
== NULL
)) {
337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
338 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
346 { /* Inline kernel#Object#!= (var32,var_flow) on <var32:FlowContext> */
347 var_other37
= var_flow
;
349 var38
= ((short int(*)(val
* self
, val
* p0
))(var32
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var32
, var_other37
); /* == on <var32:FlowContext>*/
362 { /* Inline flow#FlowContext#when_false (var_flow) on <var_flow:FlowContext> */
363 var42
= var_flow
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_flow:FlowContext> */
364 if (unlikely(var42
== NULL
)) {
365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
366 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
374 { /* Inline kernel#Object#!= (var40,var_flow) on <var40:FlowContext> */
375 var_other37
= var_flow
;
377 var45
= ((short int(*)(val
* self
, val
* p0
))(var40
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var40
, var_other37
); /* == on <var40:FlowContext>*/
389 var47
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(self
);
392 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
393 var50
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
394 if (unlikely(var50
== NULL
)) {
395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
403 if (likely(varonce
!=NULL
)) {
407 var53
= core__flat___NativeString___to_s_full(var52
, 7l, 7l);
412 { /* Inline flow#FlowContext#name= (var48,var51) on <var48:FlowContext> */
413 var48
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var51
; /* _name on <var48:FlowContext> */
422 { /* Inline flow#FlowVisitor#first (self) on <self:FlowVisitor> */
423 var57
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___first
].val
; /* _first on <self:FlowVisitor> */
429 var58
= 0; /* <var_node:ANode> cannot be null */
431 { /* Inline kernel#Object#== (var55,var_node) on <var55:nullable ANode> */
432 var_other
= var_node
;
434 { /* Inline kernel#Object#is_same_instance (var55,var_other) on <var55:nullable ANode(ANode)> */
435 var63
= var55
== var_other
;
452 /* method flow#FlowVisitor#visit_expr for (self: FlowVisitor, AExpr): FlowContext */
453 val
* nitc__flow___nitc__flow__FlowVisitor___visit_expr(val
* self
, val
* p0
) {
454 val
* var
/* : FlowContext */;
455 val
* var_node
/* var node: AExpr */;
456 val
* var1
/* : nullable FlowContext */;
457 val
* var3
/* : nullable FlowContext */;
460 nitc___nitc__Visitor___enter_visit(self
, var_node
); /* Direct call parser_nodes#Visitor#enter_visit on <self:FlowVisitor>*/
463 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
464 var3
= var_node
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
469 if (unlikely(var1
== NULL
)) {
470 PRINT_ERROR("Runtime error: %s", "Cast failed");
471 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 73);
479 /* method flow#FlowVisitor#flows for (self: FlowVisitor): Array[FlowContext] */
480 val
* nitc__flow___nitc__flow__FlowVisitor___flows(val
* self
) {
481 val
* var
/* : Array[FlowContext] */;
482 val
* var1
/* : Array[FlowContext] */;
483 var1
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
484 if (unlikely(var1
== NULL
)) {
485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
486 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
493 /* method flow#FlowVisitor#make_sub_flow for (self: FlowVisitor): FlowContext */
494 val
* nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(val
* self
) {
495 val
* var
/* : FlowContext */;
496 val
* var1
/* : FlowContext */;
497 val
* var_flow
/* var flow: FlowContext */;
498 val
* var3
/* : Array[FlowContext] */;
499 val
* var5
/* : Array[FlowContext] */;
500 val
* var6
/* : nullable ANode */;
501 val
* var8
/* : nullable ANode */;
502 val
* var10
/* : FlowContext */;
503 val
* var12
/* : FlowContext */;
504 var1
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
506 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
512 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
513 var5
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
514 if (unlikely(var5
== NULL
)) {
515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
516 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
524 core___core__Array___core__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
527 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
528 var8
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
534 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
535 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
540 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
541 var12
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
542 if (unlikely(var12
== NULL
)) {
543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
544 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
552 nitc___nitc__FlowContext___add_previous(var_flow
, var10
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
555 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
556 self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
565 /* method flow#FlowVisitor#make_merge_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
566 val
* nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(val
* self
, val
* p0
, val
* p1
) {
567 val
* var
/* : FlowContext */;
568 val
* var_flow1
/* var flow1: FlowContext */;
569 val
* var_flow2
/* var flow2: FlowContext */;
570 val
* var1
/* : FlowContext */;
571 val
* var_flow
/* var flow: FlowContext */;
572 val
* var3
/* : Array[FlowContext] */;
573 val
* var5
/* : Array[FlowContext] */;
574 val
* var6
/* : nullable ANode */;
575 val
* var8
/* : nullable ANode */;
578 var1
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
580 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
586 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
587 var5
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
588 if (unlikely(var5
== NULL
)) {
589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
590 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
598 core___core__Array___core__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
601 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
602 var8
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
608 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
609 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
614 nitc___nitc__FlowContext___add_previous(var_flow
, var_flow1
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
617 nitc___nitc__FlowContext___add_previous(var_flow
, var_flow2
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
620 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
621 self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
630 /* method flow#FlowVisitor#make_true_false_flow for (self: FlowVisitor, FlowContext, FlowContext): FlowContext */
631 val
* nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(val
* self
, val
* p0
, val
* p1
) {
632 val
* var
/* : FlowContext */;
633 val
* var_true_flow
/* var true_flow: FlowContext */;
634 val
* var_false_flow
/* var false_flow: FlowContext */;
635 val
* var1
/* : FlowContext */;
636 val
* var_flow
/* var flow: FlowContext */;
637 val
* var3
/* : Array[FlowContext] */;
638 val
* var5
/* : Array[FlowContext] */;
639 val
* var6
/* : nullable ANode */;
640 val
* var8
/* : nullable ANode */;
643 var1
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
645 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
651 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
652 var5
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
653 if (unlikely(var5
== NULL
)) {
654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
655 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
663 core___core__Array___core__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
666 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
667 var8
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
673 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
674 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
679 nitc___nitc__FlowContext___add_previous(var_flow
, var_true_flow
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
682 nitc___nitc__FlowContext___add_previous(var_flow
, var_false_flow
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
685 { /* Inline flow#FlowContext#when_true= (var_flow,var_true_flow) on <var_flow:FlowContext> */
686 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
= var_true_flow
; /* _when_true on <var_flow:FlowContext> */
691 { /* Inline flow#FlowContext#when_false= (var_flow,var_false_flow) on <var_flow:FlowContext> */
692 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
= var_false_flow
; /* _when_false on <var_flow:FlowContext> */
697 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
698 self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
707 /* method flow#FlowVisitor#make_sub_true_false_flow for (self: FlowVisitor): FlowContext */
708 val
* nitc__flow___nitc__flow__FlowVisitor___make_sub_true_false_flow(val
* self
) {
709 val
* var
/* : FlowContext */;
710 val
* var1
/* : FlowContext */;
711 val
* var3
/* : FlowContext */;
712 val
* var_orig_flow
/* var orig_flow: FlowContext */;
713 val
* var4
/* : FlowContext */;
714 val
* var_true_flow
/* var true_flow: FlowContext */;
715 val
* var6
/* : Array[FlowContext] */;
716 val
* var8
/* : Array[FlowContext] */;
717 val
* var9
/* : nullable ANode */;
718 val
* var11
/* : nullable ANode */;
720 val
* var13
/* : String */;
721 char* var14
/* : NativeString */;
722 val
* var15
/* : String */;
723 val
* var17
/* : FlowContext */;
724 val
* var_false_flow
/* var false_flow: FlowContext */;
725 val
* var19
/* : Array[FlowContext] */;
726 val
* var21
/* : Array[FlowContext] */;
727 val
* var22
/* : nullable ANode */;
728 val
* var24
/* : nullable ANode */;
729 static val
* varonce26
;
730 val
* var27
/* : String */;
731 char* var28
/* : NativeString */;
732 val
* var29
/* : String */;
733 val
* var31
/* : FlowContext */;
735 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
736 var3
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
737 if (unlikely(var3
== NULL
)) {
738 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
739 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
746 var_orig_flow
= var1
;
747 var4
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
749 { /* Inline kernel#Object#init (var4) on <var4:FlowContext> */
753 var_true_flow
= var4
;
755 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
756 var8
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
757 if (unlikely(var8
== NULL
)) {
758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
759 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
767 core___core__Array___core__abstract_collection__SimpleCollection__add(var6
, var_true_flow
); /* Direct call array#Array#add on <var6:Array[FlowContext]>*/
770 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
771 var11
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
777 { /* Inline flow#FlowContext#node= (var_true_flow,var9) on <var_true_flow:FlowContext> */
778 var_true_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var9
; /* _node on <var_true_flow:FlowContext> */
783 nitc___nitc__FlowContext___add_previous(var_true_flow
, var_orig_flow
); /* Direct call flow#FlowContext#add_previous on <var_true_flow:FlowContext>*/
785 if (likely(varonce
!=NULL
)) {
789 var15
= core__flat___NativeString___to_s_full(var14
, 4l, 4l);
794 { /* Inline flow#FlowContext#name= (var_true_flow,var13) on <var_true_flow:FlowContext> */
795 var_true_flow
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var13
; /* _name on <var_true_flow:FlowContext> */
799 var17
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
801 { /* Inline kernel#Object#init (var17) on <var17:FlowContext> */
805 var_false_flow
= var17
;
807 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
808 var21
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
809 if (unlikely(var21
== NULL
)) {
810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
819 core___core__Array___core__abstract_collection__SimpleCollection__add(var19
, var_false_flow
); /* Direct call array#Array#add on <var19:Array[FlowContext]>*/
822 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
823 var24
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
829 { /* Inline flow#FlowContext#node= (var_false_flow,var22) on <var_false_flow:FlowContext> */
830 var_false_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var22
; /* _node on <var_false_flow:FlowContext> */
835 nitc___nitc__FlowContext___add_previous(var_false_flow
, var_orig_flow
); /* Direct call flow#FlowContext#add_previous on <var_false_flow:FlowContext>*/
837 if (likely(varonce26
!=NULL
)) {
841 var29
= core__flat___NativeString___to_s_full(var28
, 5l, 5l);
846 { /* Inline flow#FlowContext#name= (var_false_flow,var27) on <var_false_flow:FlowContext> */
847 var_false_flow
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var27
; /* _name on <var_false_flow:FlowContext> */
852 var31
= nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(self
, var_true_flow
, var_false_flow
);
859 /* method flow#FlowVisitor#make_unreachable_flow for (self: FlowVisitor): FlowContext */
860 val
* nitc__flow___nitc__flow__FlowVisitor___make_unreachable_flow(val
* self
) {
861 val
* var
/* : FlowContext */;
862 val
* var1
/* : FlowContext */;
863 val
* var_flow
/* var flow: FlowContext */;
864 val
* var3
/* : Array[FlowContext] */;
865 val
* var5
/* : Array[FlowContext] */;
866 val
* var6
/* : nullable ANode */;
867 val
* var8
/* : nullable ANode */;
868 val
* var10
/* : FlowContext */;
869 val
* var12
/* : FlowContext */;
870 var1
= NEW_nitc__FlowContext(&type_nitc__FlowContext
);
872 { /* Inline kernel#Object#init (var1) on <var1:FlowContext> */
878 { /* Inline flow#FlowVisitor#flows (self) on <self:FlowVisitor> */
879 var5
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___flows
].val
; /* _flows on <self:FlowVisitor> */
880 if (unlikely(var5
== NULL
)) {
881 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _flows");
882 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 76);
890 core___core__Array___core__abstract_collection__SimpleCollection__add(var3
, var_flow
); /* Direct call array#Array#add on <var3:Array[FlowContext]>*/
893 { /* Inline parser_nodes#Visitor#current_node (self) on <self:FlowVisitor> */
894 var8
= self
->attrs
[COLOR_nitc__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:FlowVisitor> */
900 { /* Inline flow#FlowContext#node= (var_flow,var6) on <var_flow:FlowContext> */
901 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= var6
; /* _node on <var_flow:FlowContext> */
906 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
907 var12
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
908 if (unlikely(var12
== NULL
)) {
909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
910 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
918 nitc___nitc__FlowContext___add_previous(var_flow
, var10
); /* Direct call flow#FlowContext#add_previous on <var_flow:FlowContext>*/
921 { /* Inline flow#FlowContext#is_marked_unreachable= (var_flow,1) on <var_flow:FlowContext> */
922 var_flow
->attrs
[COLOR_nitc__flow__FlowContext___is_marked_unreachable
].s
= 1; /* _is_marked_unreachable on <var_flow:FlowContext> */
927 { /* Inline flow#FlowVisitor#current_flow_context= (self,var_flow) on <self:FlowVisitor> */
928 self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_flow
; /* _current_flow_context on <self:FlowVisitor> */
937 /* method flow#FlowVisitor#merge_continues_to for (self: FlowVisitor, FlowContext, nullable EscapeMark) */
938 void nitc__flow___nitc__flow__FlowVisitor___merge_continues_to(val
* self
, val
* p0
, val
* p1
) {
939 val
* var_before_loop
/* var before_loop: FlowContext */;
940 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
941 short int var
/* : Bool */;
942 short int var1
/* : Bool */;
943 val
* var_other
/* var other: nullable Object */;
944 short int var3
/* : Bool */;
945 short int var5
/* : Bool */;
946 val
* var6
/* : Array[AEscapeExpr] */;
947 val
* var8
/* : Array[AEscapeExpr] */;
948 val
* var_
/* var : Array[AEscapeExpr] */;
949 val
* var9
/* : IndexedIterator[nullable Object] */;
950 val
* var_10
/* var : IndexedIterator[AEscapeExpr] */;
951 short int var11
/* : Bool */;
952 val
* var12
/* : nullable Object */;
953 val
* var_b
/* var b: AEscapeExpr */;
954 val
* var13
/* : nullable FlowContext */;
955 val
* var_before
/* var before: nullable FlowContext */;
956 short int var14
/* : Bool */;
957 short int var15
/* : Bool */;
958 short int var17
/* : Bool */;
959 short int var19
/* : Bool */;
960 var_before_loop
= p0
;
962 if (var_escapemark
== NULL
) {
963 var
= 1; /* is null */
965 var
= 0; /* arg is null but recv is not */
968 { /* Inline kernel#Object#== (var_escapemark,((val*)NULL)) on <var_escapemark:nullable EscapeMark> */
969 var_other
= ((val
*)NULL
);
971 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
972 var5
= var_escapemark
== var_other
;
989 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
990 var8
= var_escapemark
->attrs
[COLOR_nitc__scope__EscapeMark___escapes
].val
; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
991 if (unlikely(var8
== NULL
)) {
992 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
993 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope
, 59);
1002 var9
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
1007 var11
= ((short int(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_10
); /* is_ok on <var_10:IndexedIterator[AEscapeExpr]>*/
1014 var12
= ((val
*(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_10
); /* item on <var_10:IndexedIterator[AEscapeExpr]>*/
1018 var13
= nitc__flow___AEscapeExpr___before_flow_context(var_b
);
1021 if (var_before
== NULL
) {
1022 var14
= 1; /* is null */
1024 var14
= 0; /* arg is null but recv is not */
1027 { /* Inline kernel#Object#== (var_before,((val*)NULL)) on <var_before:nullable FlowContext> */
1028 var_other
= ((val
*)NULL
);
1030 { /* Inline kernel#Object#is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1031 var19
= var_before
== var_other
;
1034 RET_LABEL18
:(void)0;
1039 RET_LABEL16
:(void)0;
1048 nitc___nitc__FlowContext___add_loop(var_before_loop
, var_before
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
1050 BREAK_label20
: (void)0;
1052 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_10
); /* next on <var_10:IndexedIterator[AEscapeExpr]>*/
1055 BREAK_label
: (void)0;
1057 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_10
); /* finish on <var_10:IndexedIterator[AEscapeExpr]>*/
1061 /* method flow#FlowVisitor#merge_breaks for (self: FlowVisitor, nullable EscapeMark) */
1062 void nitc__flow___nitc__flow__FlowVisitor___merge_breaks(val
* self
, val
* p0
) {
1063 val
* var_escapemark
/* var escapemark: nullable EscapeMark */;
1064 short int var
/* : Bool */;
1065 short int var1
/* : Bool */;
1066 val
* var_other
/* var other: nullable Object */;
1067 short int var3
/* : Bool */;
1068 short int var5
/* : Bool */;
1069 val
* var6
/* : Array[AEscapeExpr] */;
1070 val
* var8
/* : Array[AEscapeExpr] */;
1071 val
* var_
/* var : Array[AEscapeExpr] */;
1072 val
* var9
/* : IndexedIterator[nullable Object] */;
1073 val
* var_10
/* var : IndexedIterator[AEscapeExpr] */;
1074 short int var11
/* : Bool */;
1075 val
* var12
/* : nullable Object */;
1076 val
* var_b
/* var b: AEscapeExpr */;
1077 val
* var13
/* : nullable FlowContext */;
1078 val
* var_before
/* var before: nullable FlowContext */;
1079 short int var14
/* : Bool */;
1080 short int var15
/* : Bool */;
1081 short int var17
/* : Bool */;
1082 short int var19
/* : Bool */;
1083 val
* var21
/* : FlowContext */;
1084 val
* var23
/* : FlowContext */;
1085 val
* var24
/* : FlowContext */;
1086 var_escapemark
= p0
;
1087 if (var_escapemark
== NULL
) {
1088 var
= 1; /* is null */
1090 var
= 0; /* arg is null but recv is not */
1093 { /* Inline kernel#Object#== (var_escapemark,((val*)NULL)) on <var_escapemark:nullable EscapeMark> */
1094 var_other
= ((val
*)NULL
);
1096 { /* Inline kernel#Object#is_same_instance (var_escapemark,var_other) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1097 var5
= var_escapemark
== var_other
;
1114 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1115 var8
= var_escapemark
->attrs
[COLOR_nitc__scope__EscapeMark___escapes
].val
; /* _escapes on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1116 if (unlikely(var8
== NULL
)) {
1117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
1118 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope
, 59);
1127 var9
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
1132 var11
= ((short int(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_10
); /* is_ok on <var_10:IndexedIterator[AEscapeExpr]>*/
1139 var12
= ((val
*(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_10
); /* item on <var_10:IndexedIterator[AEscapeExpr]>*/
1143 var13
= nitc__flow___AEscapeExpr___before_flow_context(var_b
);
1146 if (var_before
== NULL
) {
1147 var14
= 1; /* is null */
1149 var14
= 0; /* arg is null but recv is not */
1152 { /* Inline kernel#Object#== (var_before,((val*)NULL)) on <var_before:nullable FlowContext> */
1153 var_other
= ((val
*)NULL
);
1155 { /* Inline kernel#Object#is_same_instance (var_before,var_other) on <var_before:nullable FlowContext(FlowContext)> */
1156 var19
= var_before
== var_other
;
1159 RET_LABEL18
:(void)0;
1164 RET_LABEL16
:(void)0;
1173 { /* Inline flow#FlowVisitor#current_flow_context (self) on <self:FlowVisitor> */
1174 var23
= self
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <self:FlowVisitor> */
1175 if (unlikely(var23
== NULL
)) {
1176 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1177 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1181 RET_LABEL22
:(void)0;
1185 var24
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(self
, var21
, var_before
);
1187 BREAK_label20
: (void)0;
1189 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_10
); /* next on <var_10:IndexedIterator[AEscapeExpr]>*/
1192 BREAK_label
: (void)0;
1194 ((void(*)(val
* self
))((((long)var_10
&3)?class_info
[((long)var_10
&3)]:var_10
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_10
); /* finish on <var_10:IndexedIterator[AEscapeExpr]>*/
1198 /* method flow#FlowContext#previous for (self: FlowContext): Array[FlowContext] */
1199 val
* nitc___nitc__FlowContext___previous(val
* self
) {
1200 val
* var
/* : Array[FlowContext] */;
1201 val
* var1
/* : Array[FlowContext] */;
1202 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1203 if (unlikely(var1
== NULL
)) {
1204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1205 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
1212 /* method flow#FlowContext#loops for (self: FlowContext): Array[FlowContext] */
1213 val
* nitc___nitc__FlowContext___loops(val
* self
) {
1214 val
* var
/* : Array[FlowContext] */;
1215 val
* var1
/* : Array[FlowContext] */;
1216 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1217 if (unlikely(var1
== NULL
)) {
1218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1219 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 192);
1226 /* method flow#FlowContext#is_marked_unreachable for (self: FlowContext): Bool */
1227 short int nitc___nitc__FlowContext___is_marked_unreachable(val
* self
) {
1228 short int var
/* : Bool */;
1229 short int var1
/* : Bool */;
1230 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1235 /* method flow#FlowContext#is_marked_unreachable= for (self: FlowContext, Bool) */
1236 void nitc___nitc__FlowContext___is_marked_unreachable_61d(val
* self
, short int p0
) {
1237 self
->attrs
[COLOR_nitc__flow__FlowContext___is_marked_unreachable
].s
= p0
; /* _is_marked_unreachable on <self:FlowContext> */
1240 /* method flow#FlowContext#is_unreachable for (self: FlowContext): Bool */
1241 short int nitc___nitc__FlowContext___is_unreachable(val
* self
) {
1242 short int var
/* : Bool */;
1243 short int var1
/* : Bool */;
1244 short int var3
/* : Bool */;
1245 short int var4
/* : Bool */;
1246 short int var6
/* : Bool */;
1247 val
* var7
/* : Array[FlowContext] */;
1248 val
* var9
/* : Array[FlowContext] */;
1249 long var10
/* : Int */;
1250 long var12
/* : Int */;
1251 short int var13
/* : Bool */;
1252 short int var15
/* : Bool */;
1254 { /* Inline flow#FlowContext#is_marked_unreachable (self) on <self:FlowContext> */
1255 var3
= self
->attrs
[COLOR_nitc__flow__FlowContext___is_marked_unreachable
].s
; /* _is_marked_unreachable on <self:FlowContext> */
1266 { /* Inline flow#FlowContext#is_start (self) on <self:FlowContext> */
1267 var6
= self
->attrs
[COLOR_nitc__flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1278 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1279 var9
= self
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1280 if (unlikely(var9
== NULL
)) {
1281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1282 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
1290 { /* Inline array#AbstractArrayRead#length (var7) on <var7:Array[FlowContext]> */
1291 var12
= var7
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var7:Array[FlowContext]> */
1293 RET_LABEL11
:(void)0;
1297 { /* Inline kernel#Int#== (var10,0l) on <var10:Int> */
1298 var15
= var10
== 0l;
1301 RET_LABEL14
:(void)0;
1314 /* method flow#FlowContext#is_already_unreachable for (self: FlowContext): Bool */
1315 short int nitc___nitc__FlowContext___is_already_unreachable(val
* self
) {
1316 short int var
/* : Bool */;
1317 short int var1
/* : Bool */;
1318 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <self:FlowContext> */
1323 /* method flow#FlowContext#is_already_unreachable= for (self: FlowContext, Bool) */
1324 void nitc___nitc__FlowContext___is_already_unreachable_61d(val
* self
, short int p0
) {
1325 self
->attrs
[COLOR_nitc__flow__FlowContext___is_already_unreachable
].s
= p0
; /* _is_already_unreachable on <self:FlowContext> */
1328 /* method flow#FlowContext#is_start for (self: FlowContext): Bool */
1329 short int nitc___nitc__FlowContext___is_start(val
* self
) {
1330 short int var
/* : Bool */;
1331 short int var1
/* : Bool */;
1332 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___is_start
].s
; /* _is_start on <self:FlowContext> */
1337 /* method flow#FlowContext#is_start= for (self: FlowContext, Bool) */
1338 void nitc___nitc__FlowContext___is_start_61d(val
* self
, short int p0
) {
1339 self
->attrs
[COLOR_nitc__flow__FlowContext___is_start
].s
= p0
; /* _is_start on <self:FlowContext> */
1342 /* method flow#FlowContext#node for (self: FlowContext): nullable ANode */
1343 val
* nitc___nitc__FlowContext___node(val
* self
) {
1344 val
* var
/* : nullable ANode */;
1345 val
* var1
/* : nullable ANode */;
1346 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
; /* _node on <self:FlowContext> */
1351 /* method flow#FlowContext#node= for (self: FlowContext, nullable ANode) */
1352 void nitc___nitc__FlowContext___node_61d(val
* self
, val
* p0
) {
1353 self
->attrs
[COLOR_nitc__flow__FlowContext___node
].val
= p0
; /* _node on <self:FlowContext> */
1356 /* method flow#FlowContext#name= for (self: FlowContext, String) */
1357 void nitc___nitc__FlowContext___name_61d(val
* self
, val
* p0
) {
1358 self
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= p0
; /* _name on <self:FlowContext> */
1361 /* method flow#FlowContext#when_true for (self: FlowContext): FlowContext */
1362 val
* nitc___nitc__FlowContext___when_true(val
* self
) {
1363 val
* var
/* : FlowContext */;
1364 val
* var1
/* : FlowContext */;
1365 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <self:FlowContext> */
1366 if (unlikely(var1
== NULL
)) {
1367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1368 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
1375 /* method flow#FlowContext#when_true= for (self: FlowContext, FlowContext) */
1376 void nitc___nitc__FlowContext___when_true_61d(val
* self
, val
* p0
) {
1377 self
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
= p0
; /* _when_true on <self:FlowContext> */
1380 /* method flow#FlowContext#when_false for (self: FlowContext): FlowContext */
1381 val
* nitc___nitc__FlowContext___when_false(val
* self
) {
1382 val
* var
/* : FlowContext */;
1383 val
* var1
/* : FlowContext */;
1384 var1
= self
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <self:FlowContext> */
1385 if (unlikely(var1
== NULL
)) {
1386 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
1387 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
1394 /* method flow#FlowContext#when_false= for (self: FlowContext, FlowContext) */
1395 void nitc___nitc__FlowContext___when_false_61d(val
* self
, val
* p0
) {
1396 self
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
= p0
; /* _when_false on <self:FlowContext> */
1399 /* method flow#FlowContext#add_previous for (self: FlowContext, FlowContext) */
1400 void nitc___nitc__FlowContext___add_previous(val
* self
, val
* p0
) {
1401 val
* var_flow
/* var flow: FlowContext */;
1402 short int var
/* : Bool */;
1403 short int var1
/* : Bool */;
1404 short int var2
/* : Bool */;
1405 short int var_
/* var : Bool */;
1406 val
* var3
/* : Array[FlowContext] */;
1407 val
* var5
/* : Array[FlowContext] */;
1408 short int var6
/* : Bool */;
1409 short int var7
/* : Bool */;
1410 val
* var8
/* : Array[FlowContext] */;
1411 val
* var10
/* : Array[FlowContext] */;
1414 var1
= nitc___nitc__FlowContext___is_unreachable(var_flow
);
1420 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1421 var5
= self
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1422 if (unlikely(var5
== NULL
)) {
1423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1424 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
1432 var6
= core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var3
, var_flow
);
1441 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1442 var10
= self
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1443 if (unlikely(var10
== NULL
)) {
1444 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1445 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
1453 core___core__Array___core__abstract_collection__SimpleCollection__add(var8
, var_flow
); /* Direct call array#Array#add on <var8:Array[FlowContext]>*/
1459 /* method flow#FlowContext#add_loop for (self: FlowContext, FlowContext) */
1460 void nitc___nitc__FlowContext___add_loop(val
* self
, val
* p0
) {
1461 val
* var_flow
/* var flow: FlowContext */;
1462 short int var
/* : Bool */;
1463 short int var1
/* : Bool */;
1464 short int var2
/* : Bool */;
1465 short int var_
/* var : Bool */;
1466 val
* var3
/* : Array[FlowContext] */;
1467 val
* var5
/* : Array[FlowContext] */;
1468 short int var6
/* : Bool */;
1469 short int var7
/* : Bool */;
1470 val
* var8
/* : Array[FlowContext] */;
1471 val
* var10
/* : Array[FlowContext] */;
1474 var1
= nitc___nitc__FlowContext___is_unreachable(var_flow
);
1480 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
1481 var5
= self
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
1482 if (unlikely(var5
== NULL
)) {
1483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1484 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
1492 var6
= core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var3
, var_flow
);
1501 { /* Inline flow#FlowContext#loops (self) on <self:FlowContext> */
1502 var10
= self
->attrs
[COLOR_nitc__flow__FlowContext___loops
].val
; /* _loops on <self:FlowContext> */
1503 if (unlikely(var10
== NULL
)) {
1504 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
1505 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 192);
1513 core___core__Array___core__abstract_collection__SimpleCollection__add(var8
, var_flow
); /* Direct call array#Array#add on <var8:Array[FlowContext]>*/
1519 /* method flow#ANode#accept_flow_visitor for (self: ANode, FlowVisitor) */
1520 void nitc__flow___ANode___accept_flow_visitor(val
* self
, val
* p0
) {
1521 val
* var_v
/* var v: FlowVisitor */;
1524 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__parser_nodes__ANode__visit_all
]))(self
, var_v
); /* visit_all on <self:ANode>*/
1528 /* method flow#APropdef#do_flow for (self: APropdef, ToolContext) */
1529 void nitc__flow___APropdef___do_flow(val
* self
, val
* p0
) {
1530 val
* var_toolcontext
/* var toolcontext: ToolContext */;
1531 val
* var
/* : FlowVisitor */;
1532 val
* var_v
/* var v: FlowVisitor */;
1533 var_toolcontext
= p0
;
1534 var
= NEW_nitc__flow__FlowVisitor(&type_nitc__flow__FlowVisitor
);
1536 ((void(*)(val
* self
, val
* p0
))(var
->class->vft
[COLOR_nitc__flow__FlowVisitor__toolcontext_61d
]))(var
, var_toolcontext
); /* toolcontext= on <var:FlowVisitor>*/
1539 ((void(*)(val
* self
))(var
->class->vft
[COLOR_core__kernel__Object__init
]))(var
); /* init on <var:FlowVisitor>*/
1543 nitc___nitc__Visitor___enter_visit(var_v
, self
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
1547 /* method flow#APropdef#before_flow_context= for (self: APropdef, nullable FlowContext) */
1548 void nitc__flow___APropdef___before_flow_context_61d(val
* self
, val
* p0
) {
1549 self
->attrs
[COLOR_nitc__flow__APropdef___before_flow_context
].val
= p0
; /* _before_flow_context on <self:APropdef> */
1552 /* method flow#APropdef#after_flow_context= for (self: APropdef, nullable FlowContext) */
1553 void nitc__flow___APropdef___after_flow_context_61d(val
* self
, val
* p0
) {
1554 self
->attrs
[COLOR_nitc__flow__APropdef___after_flow_context
].val
= p0
; /* _after_flow_context on <self:APropdef> */
1557 /* method flow#APropdef#accept_flow_visitor for (self: APropdef, FlowVisitor) */
1558 void nitc__flow___APropdef___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1559 val
* var_v
/* var v: FlowVisitor */;
1560 val
* var
/* : FlowContext */;
1561 val
* var2
/* : FlowContext */;
1562 val
* var4
/* : FlowContext */;
1563 val
* var6
/* : FlowContext */;
1566 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1567 var2
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1568 if (unlikely(var2
== NULL
)) {
1569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1570 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1578 { /* Inline flow#APropdef#before_flow_context= (self,var) on <self:APropdef> */
1579 self
->attrs
[COLOR_nitc__flow__APropdef___before_flow_context
].val
= var
; /* _before_flow_context on <self:APropdef> */
1584 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___APropdef___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:APropdef>*/
1587 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1588 var6
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1589 if (unlikely(var6
== NULL
)) {
1590 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1591 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1599 { /* Inline flow#APropdef#after_flow_context= (self,var4) on <self:APropdef> */
1600 self
->attrs
[COLOR_nitc__flow__APropdef___after_flow_context
].val
= var4
; /* _after_flow_context on <self:APropdef> */
1606 /* method flow#AExpr#after_flow_context for (self: AExpr): nullable FlowContext */
1607 val
* nitc__flow___AExpr___after_flow_context(val
* self
) {
1608 val
* var
/* : nullable FlowContext */;
1609 val
* var1
/* : nullable FlowContext */;
1610 var1
= self
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AExpr> */
1615 /* method flow#AExpr#after_flow_context= for (self: AExpr, nullable FlowContext) */
1616 void nitc__flow___AExpr___after_flow_context_61d(val
* self
, val
* p0
) {
1617 self
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
= p0
; /* _after_flow_context on <self:AExpr> */
1620 /* method flow#AVarAssignExpr#accept_flow_visitor for (self: AVarAssignExpr, FlowVisitor) */
1621 void nitc__flow___AVarAssignExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1622 val
* var_v
/* var v: FlowVisitor */;
1623 val
* var
/* : FlowContext */;
1626 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AVarAssignExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AVarAssignExpr>*/
1629 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
1632 { /* Inline flow#AExpr#after_flow_context= (self,var) on <self:AVarAssignExpr> */
1633 self
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AVarAssignExpr> */
1639 /* method flow#AReassignFormExpr#accept_flow_visitor for (self: AReassignFormExpr, FlowVisitor) */
1640 void nitc__flow___AReassignFormExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1641 val
* var_v
/* var v: FlowVisitor */;
1642 val
* var
/* : FlowContext */;
1645 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AReassignFormExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AReassignFormExpr>*/
1648 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
1651 { /* Inline flow#AExpr#after_flow_context= (self,var) on <self:AReassignFormExpr> */
1652 self
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
= var
; /* _after_flow_context on <self:AReassignFormExpr> */
1658 /* method flow#ABlockExpr#accept_flow_visitor for (self: ABlockExpr, FlowVisitor) */
1659 void nitc__flow___ABlockExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1660 val
* var_v
/* var v: FlowVisitor */;
1661 val
* var
/* : ANodes[AExpr] */;
1662 val
* var2
/* : ANodes[AExpr] */;
1663 val
* var_
/* var : ANodes[AExpr] */;
1664 val
* var3
/* : Iterator[ANode] */;
1665 val
* var_4
/* var : Iterator[AExpr] */;
1666 short int var5
/* : Bool */;
1667 val
* var6
/* : nullable Object */;
1668 val
* var_e
/* var e: AExpr */;
1669 val
* var7
/* : FlowContext */;
1670 val
* var9
/* : FlowContext */;
1671 short int var10
/* : Bool */;
1672 short int var11
/* : Bool */;
1673 val
* var12
/* : FlowContext */;
1674 val
* var14
/* : FlowContext */;
1675 short int var15
/* : Bool */;
1676 short int var17
/* : Bool */;
1677 short int var18
/* : Bool */;
1678 val
* var19
/* : FlowContext */;
1679 val
* var21
/* : FlowContext */;
1680 val
* var23
/* : ToolContext */;
1681 val
* var25
/* : ToolContext */;
1682 val
* var26
/* : Location */;
1683 static val
* varonce
;
1684 val
* var27
/* : String */;
1685 char* var28
/* : NativeString */;
1686 val
* var29
/* : String */;
1687 val
* var30
/* : Message */;
1690 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
1691 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
1692 if (unlikely(var2
== NULL
)) {
1693 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1694 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1744);
1703 var3
= nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_
);
1708 var5
= ((short int(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_4
); /* is_ok on <var_4:Iterator[AExpr]>*/
1715 var6
= ((val
*(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_4
); /* item on <var_4:Iterator[AExpr]>*/
1719 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1720 var9
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1721 if (unlikely(var9
== NULL
)) {
1722 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1723 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1731 var10
= nitc___nitc__FlowContext___is_unreachable(var7
);
1736 nitc___nitc__Visitor___enter_visit(var_v
, var_e
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
1740 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1741 var14
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1742 if (unlikely(var14
== NULL
)) {
1743 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1744 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1748 RET_LABEL13
:(void)0;
1752 { /* Inline flow#FlowContext#is_already_unreachable (var12) on <var12:FlowContext> */
1753 var17
= var12
->attrs
[COLOR_nitc__flow__FlowContext___is_already_unreachable
].s
; /* _is_already_unreachable on <var12:FlowContext> */
1755 RET_LABEL16
:(void)0;
1761 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
1762 var21
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
1763 if (unlikely(var21
== NULL
)) {
1764 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
1765 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
1769 RET_LABEL20
:(void)0;
1773 { /* Inline flow#FlowContext#is_already_unreachable= (var19,1) on <var19:FlowContext> */
1774 var19
->attrs
[COLOR_nitc__flow__FlowContext___is_already_unreachable
].s
= 1; /* _is_already_unreachable on <var19:FlowContext> */
1775 RET_LABEL22
:(void)0;
1779 { /* Inline flow#FlowVisitor#toolcontext (var_v) on <var_v:FlowVisitor> */
1780 var25
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___toolcontext
].val
; /* _toolcontext on <var_v:FlowVisitor> */
1781 if (unlikely(var25
== NULL
)) {
1782 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1783 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 39);
1787 RET_LABEL24
:(void)0;
1791 var26
= nitc___nitc__ANode___hot_location(var_e
);
1793 if (likely(varonce
!=NULL
)) {
1796 var28
= "Error: unreachable statement.";
1797 var29
= core__flat___NativeString___to_s_full(var28
, 29l, 29l);
1802 var30
= nitc___nitc__ToolContext___error(var23
, var26
, var27
);
1808 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_4
); /* next on <var_4:Iterator[AExpr]>*/
1811 BREAK_label
: (void)0;
1813 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_4
); /* finish on <var_4:Iterator[AExpr]>*/
1817 /* method flow#AReturnExpr#accept_flow_visitor for (self: AReturnExpr, FlowVisitor) */
1818 void nitc__flow___AReturnExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1819 val
* var_v
/* var v: FlowVisitor */;
1820 val
* var
/* : FlowContext */;
1823 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AReturnExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AReturnExpr>*/
1826 var
= nitc__flow___nitc__flow__FlowVisitor___make_unreachable_flow(var_v
);
1830 /* method flow#AEscapeExpr#before_flow_context for (self: AEscapeExpr): nullable FlowContext */
1831 val
* nitc__flow___AEscapeExpr___before_flow_context(val
* self
) {
1832 val
* var
/* : nullable FlowContext */;
1833 val
* var1
/* : nullable FlowContext */;
1834 val
* var3
/* : nullable FlowContext */;
1835 val
* var_after
/* var after: nullable FlowContext */;
1836 short int var4
/* : Bool */;
1837 short int var5
/* : Bool */;
1838 val
* var_other
/* var other: nullable Object */;
1839 short int var7
/* : Bool */;
1840 short int var9
/* : Bool */;
1841 val
* var10
/* : Array[FlowContext] */;
1842 val
* var12
/* : Array[FlowContext] */;
1843 val
* var13
/* : nullable Object */;
1845 { /* Inline flow#AExpr#after_flow_context (self) on <self:AEscapeExpr> */
1846 var3
= self
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <self:AEscapeExpr> */
1852 if (var_after
== NULL
) {
1853 var4
= 1; /* is null */
1855 var4
= 0; /* arg is null but recv is not */
1858 { /* Inline kernel#Object#== (var_after,((val*)NULL)) on <var_after:nullable FlowContext> */
1859 var_other
= ((val
*)NULL
);
1861 { /* Inline kernel#Object#is_same_instance (var_after,var_other) on <var_after:nullable FlowContext(FlowContext)> */
1862 var9
= var_after
== var_other
;
1880 { /* Inline flow#FlowContext#previous (var_after) on <var_after:nullable FlowContext(FlowContext)> */
1881 var12
= var_after
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <var_after:nullable FlowContext(FlowContext)> */
1882 if (unlikely(var12
== NULL
)) {
1883 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
1884 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
1888 RET_LABEL11
:(void)0;
1892 var13
= core___core__SequenceRead___Collection__first(var10
);
1899 /* method flow#AEscapeExpr#accept_flow_visitor for (self: AEscapeExpr, FlowVisitor) */
1900 void nitc__flow___AEscapeExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1901 val
* var_v
/* var v: FlowVisitor */;
1902 val
* var
/* : FlowContext */;
1905 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AEscapeExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AEscapeExpr>*/
1908 var
= nitc__flow___nitc__flow__FlowVisitor___make_unreachable_flow(var_v
);
1912 /* method flow#AAbortExpr#accept_flow_visitor for (self: AAbortExpr, FlowVisitor) */
1913 void nitc__flow___AAbortExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1914 val
* var_v
/* var v: FlowVisitor */;
1915 val
* var
/* : FlowContext */;
1918 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AAbortExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AAbortExpr>*/
1921 var
= nitc__flow___nitc__flow__FlowVisitor___make_unreachable_flow(var_v
);
1925 /* method flow#ADoExpr#accept_flow_visitor for (self: ADoExpr, FlowVisitor) */
1926 void nitc__flow___ADoExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1927 val
* var_v
/* var v: FlowVisitor */;
1928 val
* var
/* : nullable EscapeMark */;
1929 val
* var2
/* : nullable EscapeMark */;
1932 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___ADoExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:ADoExpr>*/
1935 { /* Inline scope#ADoExpr#break_mark (self) on <self:ADoExpr> */
1936 var2
= self
->attrs
[COLOR_nitc__scope__ADoExpr___break_mark
].val
; /* _break_mark on <self:ADoExpr> */
1942 nitc__flow___nitc__flow__FlowVisitor___merge_breaks(var_v
, var
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
1946 /* method flow#AIfExpr#accept_flow_visitor for (self: AIfExpr, FlowVisitor) */
1947 void nitc__flow___AIfExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
1948 val
* var_v
/* var v: FlowVisitor */;
1949 val
* var
/* : AExpr */;
1950 val
* var2
/* : AExpr */;
1951 val
* var3
/* : FlowContext */;
1952 val
* var_after_expr
/* var after_expr: FlowContext */;
1953 val
* var4
/* : FlowContext */;
1954 val
* var6
/* : FlowContext */;
1955 val
* var8
/* : nullable AExpr */;
1956 val
* var10
/* : nullable AExpr */;
1957 val
* var11
/* : FlowContext */;
1958 val
* var13
/* : FlowContext */;
1959 val
* var_after_then
/* var after_then: FlowContext */;
1960 val
* var14
/* : FlowContext */;
1961 val
* var16
/* : FlowContext */;
1962 val
* var18
/* : nullable AExpr */;
1963 val
* var20
/* : nullable AExpr */;
1964 val
* var21
/* : FlowContext */;
1965 val
* var23
/* : FlowContext */;
1966 val
* var_after_else
/* var after_else: FlowContext */;
1967 val
* var24
/* : FlowContext */;
1970 { /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
1971 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AIfExpr___n_expr
].val
; /* _n_expr on <self:AIfExpr> */
1972 if (unlikely(var2
== NULL
)) {
1973 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1974 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1843);
1982 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
1984 var_after_expr
= var3
;
1986 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
1987 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
1988 if (unlikely(var6
== NULL
)) {
1989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1990 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
1998 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
1999 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2004 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
2005 var10
= self
->attrs
[COLOR_nitc__parser_nodes__AIfExpr___n_then
].val
; /* _n_then on <self:AIfExpr> */
2011 nitc___nitc__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2014 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2015 var13
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2016 if (unlikely(var13
== NULL
)) {
2017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2018 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2022 RET_LABEL12
:(void)0;
2025 var_after_then
= var11
;
2027 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2028 var16
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2029 if (unlikely(var16
== NULL
)) {
2030 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2031 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2035 RET_LABEL15
:(void)0;
2039 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var14) on <var_v:FlowVisitor> */
2040 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var14
; /* _current_flow_context on <var_v:FlowVisitor> */
2041 RET_LABEL17
:(void)0;
2045 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
2046 var20
= self
->attrs
[COLOR_nitc__parser_nodes__AIfExpr___n_else
].val
; /* _n_else on <self:AIfExpr> */
2048 RET_LABEL19
:(void)0;
2052 nitc___nitc__Visitor___enter_visit(var_v
, var18
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2055 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2056 var23
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2057 if (unlikely(var23
== NULL
)) {
2058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2059 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2063 RET_LABEL22
:(void)0;
2066 var_after_else
= var21
;
2068 var24
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var_after_then
, var_after_else
);
2072 /* method flow#AIfexprExpr#accept_flow_visitor for (self: AIfexprExpr, FlowVisitor) */
2073 void nitc__flow___AIfexprExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2074 val
* var_v
/* var v: FlowVisitor */;
2075 val
* var
/* : AExpr */;
2076 val
* var2
/* : AExpr */;
2077 val
* var3
/* : FlowContext */;
2078 val
* var_after_expr
/* var after_expr: FlowContext */;
2079 val
* var4
/* : FlowContext */;
2080 val
* var6
/* : FlowContext */;
2081 val
* var8
/* : AExpr */;
2082 val
* var10
/* : AExpr */;
2083 val
* var11
/* : FlowContext */;
2084 val
* var13
/* : FlowContext */;
2085 val
* var_after_then
/* var after_then: FlowContext */;
2086 val
* var14
/* : FlowContext */;
2087 val
* var16
/* : FlowContext */;
2088 val
* var18
/* : AExpr */;
2089 val
* var20
/* : AExpr */;
2090 val
* var21
/* : FlowContext */;
2091 val
* var23
/* : FlowContext */;
2092 val
* var_after_else
/* var after_else: FlowContext */;
2093 val
* var24
/* : FlowContext */;
2096 { /* Inline parser_nodes#AIfexprExpr#n_expr (self) on <self:AIfexprExpr> */
2097 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr
].val
; /* _n_expr on <self:AIfexprExpr> */
2098 if (unlikely(var2
== NULL
)) {
2099 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2100 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1866);
2108 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
2110 var_after_expr
= var3
;
2112 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2113 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2114 if (unlikely(var6
== NULL
)) {
2115 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2116 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2124 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2125 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2130 { /* Inline parser_nodes#AIfexprExpr#n_then (self) on <self:AIfexprExpr> */
2131 var10
= self
->attrs
[COLOR_nitc__parser_nodes__AIfexprExpr___n_then
].val
; /* _n_then on <self:AIfexprExpr> */
2132 if (unlikely(var10
== NULL
)) {
2133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
2134 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1872);
2142 nitc___nitc__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2145 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2146 var13
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2147 if (unlikely(var13
== NULL
)) {
2148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2149 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2153 RET_LABEL12
:(void)0;
2156 var_after_then
= var11
;
2158 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2159 var16
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2160 if (unlikely(var16
== NULL
)) {
2161 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2162 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2166 RET_LABEL15
:(void)0;
2170 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var14) on <var_v:FlowVisitor> */
2171 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var14
; /* _current_flow_context on <var_v:FlowVisitor> */
2172 RET_LABEL17
:(void)0;
2176 { /* Inline parser_nodes#AIfexprExpr#n_else (self) on <self:AIfexprExpr> */
2177 var20
= self
->attrs
[COLOR_nitc__parser_nodes__AIfexprExpr___n_else
].val
; /* _n_else on <self:AIfexprExpr> */
2178 if (unlikely(var20
== NULL
)) {
2179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
2180 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1878);
2184 RET_LABEL19
:(void)0;
2188 nitc___nitc__Visitor___enter_visit(var_v
, var18
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2191 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2192 var23
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2193 if (unlikely(var23
== NULL
)) {
2194 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2195 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2199 RET_LABEL22
:(void)0;
2202 var_after_else
= var21
;
2204 var24
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var_after_then
, var_after_else
);
2208 /* method flow#AWhileExpr#accept_flow_visitor for (self: AWhileExpr, FlowVisitor) */
2209 void nitc__flow___AWhileExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2210 val
* var_v
/* var v: FlowVisitor */;
2211 val
* var
/* : FlowContext */;
2212 val
* var_before_loop
/* var before_loop: FlowContext */;
2213 val
* var1
/* : AExpr */;
2214 val
* var3
/* : AExpr */;
2215 val
* var4
/* : FlowContext */;
2216 val
* var_after_expr
/* var after_expr: FlowContext */;
2217 val
* var5
/* : FlowContext */;
2218 val
* var7
/* : FlowContext */;
2219 val
* var9
/* : nullable AExpr */;
2220 val
* var11
/* : nullable AExpr */;
2221 val
* var12
/* : FlowContext */;
2222 val
* var14
/* : FlowContext */;
2223 val
* var_after_block
/* var after_block: FlowContext */;
2224 val
* var15
/* : nullable EscapeMark */;
2225 val
* var17
/* : nullable EscapeMark */;
2226 val
* var18
/* : FlowContext */;
2227 val
* var20
/* : FlowContext */;
2228 val
* var22
/* : nullable EscapeMark */;
2229 val
* var24
/* : nullable EscapeMark */;
2232 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
2234 var_before_loop
= var
;
2236 { /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
2237 var3
= self
->attrs
[COLOR_nitc__parser_nodes__AWhileExpr___n_expr
].val
; /* _n_expr on <self:AWhileExpr> */
2238 if (unlikely(var3
== NULL
)) {
2239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2240 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1890);
2248 var4
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var1
);
2250 var_after_expr
= var4
;
2252 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2253 var7
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2254 if (unlikely(var7
== NULL
)) {
2255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2256 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2264 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var5) on <var_v:FlowVisitor> */
2265 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var5
; /* _current_flow_context on <var_v:FlowVisitor> */
2270 { /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
2271 var11
= self
->attrs
[COLOR_nitc__parser_nodes__AWhileExpr___n_block
].val
; /* _n_block on <self:AWhileExpr> */
2273 RET_LABEL10
:(void)0;
2277 nitc___nitc__Visitor___enter_visit(var_v
, var9
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2280 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2281 var14
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2282 if (unlikely(var14
== NULL
)) {
2283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2284 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2288 RET_LABEL13
:(void)0;
2291 var_after_block
= var12
;
2293 nitc___nitc__FlowContext___add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
2296 { /* Inline scope#AWhileExpr#continue_mark (self) on <self:AWhileExpr> */
2297 var17
= self
->attrs
[COLOR_nitc__scope__AWhileExpr___continue_mark
].val
; /* _continue_mark on <self:AWhileExpr> */
2299 RET_LABEL16
:(void)0;
2303 nitc__flow___nitc__flow__FlowVisitor___merge_continues_to(var_v
, var_before_loop
, var15
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
2306 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2307 var20
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2308 if (unlikely(var20
== NULL
)) {
2309 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2310 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2314 RET_LABEL19
:(void)0;
2318 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var18) on <var_v:FlowVisitor> */
2319 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var18
; /* _current_flow_context on <var_v:FlowVisitor> */
2320 RET_LABEL21
:(void)0;
2324 { /* Inline scope#AWhileExpr#break_mark (self) on <self:AWhileExpr> */
2325 var24
= self
->attrs
[COLOR_nitc__scope__AWhileExpr___break_mark
].val
; /* _break_mark on <self:AWhileExpr> */
2327 RET_LABEL23
:(void)0;
2331 nitc__flow___nitc__flow__FlowVisitor___merge_breaks(var_v
, var22
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2335 /* method flow#ALoopExpr#accept_flow_visitor for (self: ALoopExpr, FlowVisitor) */
2336 void nitc__flow___ALoopExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2337 val
* var_v
/* var v: FlowVisitor */;
2338 val
* var
/* : FlowContext */;
2339 val
* var_before_loop
/* var before_loop: FlowContext */;
2340 val
* var1
/* : nullable AExpr */;
2341 val
* var3
/* : nullable AExpr */;
2342 val
* var4
/* : FlowContext */;
2343 val
* var6
/* : FlowContext */;
2344 val
* var_after_block
/* var after_block: FlowContext */;
2345 val
* var7
/* : nullable EscapeMark */;
2346 val
* var9
/* : nullable EscapeMark */;
2347 val
* var10
/* : FlowContext */;
2348 val
* var11
/* : nullable EscapeMark */;
2349 val
* var13
/* : nullable EscapeMark */;
2352 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
2354 var_before_loop
= var
;
2356 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
2357 var3
= self
->attrs
[COLOR_nitc__parser_nodes__ALoopExpr___n_block
].val
; /* _n_block on <self:ALoopExpr> */
2363 nitc___nitc__Visitor___enter_visit(var_v
, var1
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2366 { /* Inline flow#FlowVisitor#current_flow_context (var_v) on <var_v:FlowVisitor> */
2367 var6
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2368 if (unlikely(var6
== NULL
)) {
2369 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2370 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2377 var_after_block
= var4
;
2379 nitc___nitc__FlowContext___add_loop(var_before_loop
, var_after_block
); /* Direct call flow#FlowContext#add_loop on <var_before_loop:FlowContext>*/
2382 { /* Inline scope#ALoopExpr#continue_mark (self) on <self:ALoopExpr> */
2383 var9
= self
->attrs
[COLOR_nitc__scope__ALoopExpr___continue_mark
].val
; /* _continue_mark on <self:ALoopExpr> */
2389 nitc__flow___nitc__flow__FlowVisitor___merge_continues_to(var_v
, var_before_loop
, var7
); /* Direct call flow#FlowVisitor#merge_continues_to on <var_v:FlowVisitor>*/
2392 var10
= nitc__flow___nitc__flow__FlowVisitor___make_unreachable_flow(var_v
);
2395 { /* Inline scope#ALoopExpr#break_mark (self) on <self:ALoopExpr> */
2396 var13
= self
->attrs
[COLOR_nitc__scope__ALoopExpr___break_mark
].val
; /* _break_mark on <self:ALoopExpr> */
2398 RET_LABEL12
:(void)0;
2402 nitc__flow___nitc__flow__FlowVisitor___merge_breaks(var_v
, var11
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2406 /* method flow#AForExpr#accept_flow_visitor for (self: AForExpr, FlowVisitor) */
2407 void nitc__flow___AForExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2408 val
* var_v
/* var v: FlowVisitor */;
2409 val
* var
/* : ANodes[AForGroup] */;
2410 val
* var2
/* : ANodes[AForGroup] */;
2411 val
* var_
/* var : ANodes[AForGroup] */;
2412 val
* var3
/* : Iterator[ANode] */;
2413 val
* var_4
/* var : Iterator[AForGroup] */;
2414 short int var5
/* : Bool */;
2415 val
* var6
/* : nullable Object */;
2416 val
* var_g
/* var g: AForGroup */;
2417 val
* var7
/* : AExpr */;
2418 val
* var9
/* : AExpr */;
2419 val
* var10
/* : FlowContext */;
2420 val
* var_before_loop
/* var before_loop: FlowContext */;
2421 val
* var11
/* : nullable AExpr */;
2422 val
* var13
/* : nullable AExpr */;
2423 val
* var14
/* : FlowContext */;
2424 val
* var16
/* : FlowContext */;
2425 val
* var_after_block
/* var after_block: FlowContext */;
2426 val
* var17
/* : nullable EscapeMark */;
2427 val
* var19
/* : nullable EscapeMark */;
2428 val
* var20
/* : FlowContext */;
2429 val
* var22
/* : FlowContext */;
2430 val
* var23
/* : FlowContext */;
2431 val
* var24
/* : nullable EscapeMark */;
2432 val
* var26
/* : nullable EscapeMark */;
2435 { /* Inline parser_nodes#AForExpr#n_groups (self) on <self:AForExpr> */
2436 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AForExpr___n_groups
].val
; /* _n_groups on <self:AForExpr> */
2437 if (unlikely(var2
== NULL
)) {
2438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
2439 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1920);
2448 var3
= nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_
);
2453 var5
= ((short int(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_4
); /* is_ok on <var_4:Iterator[AForGroup]>*/
2460 var6
= ((val
*(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_4
); /* item on <var_4:Iterator[AForGroup]>*/
2464 { /* Inline parser_nodes#AForGroup#n_expr (var_g) on <var_g:AForGroup> */
2465 var9
= var_g
->attrs
[COLOR_nitc__parser_nodes__AForGroup___n_expr
].val
; /* _n_expr on <var_g:AForGroup> */
2466 if (unlikely(var9
== NULL
)) {
2467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2468 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1943);
2476 nitc___nitc__Visitor___enter_visit(var_v
, var7
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2479 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_4
); /* next on <var_4:Iterator[AForGroup]>*/
2482 BREAK_label
: (void)0;
2484 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_4
); /* finish on <var_4:Iterator[AForGroup]>*/
2487 var10
= nitc__flow___nitc__flow__FlowVisitor___make_sub_flow(var_v
);
2489 var_before_loop
= var10
;
2491 { /* Inline parser_nodes#AForExpr#n_block (self) on <self:AForExpr> */
2492 var13
= self
->attrs
[COLOR_nitc__parser_nodes__AForExpr___n_block
].val
; /* _n_block on <self:AForExpr> */
2494 RET_LABEL12
:(void)0;
2498 nitc___nitc__Visitor___enter_visit(var_v
, var11
); /* 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 var16
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2503 if (unlikely(var16
== NULL
)) {
2504 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2505 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2509 RET_LABEL15
:(void)0;
2512 var_after_block
= var14
;
2514 nitc___nitc__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 var19
= self
->attrs
[COLOR_nitc__scope__AForExpr___continue_mark
].val
; /* _continue_mark on <self:AForExpr> */
2520 RET_LABEL18
:(void)0;
2524 nitc__flow___nitc__flow__FlowVisitor___merge_continues_to(var_v
, var_before_loop
, var17
); /* 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 var22
= var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
; /* _current_flow_context on <var_v:FlowVisitor> */
2529 if (unlikely(var22
== NULL
)) {
2530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _current_flow_context");
2531 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 37);
2535 RET_LABEL21
:(void)0;
2539 var23
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var20
, var_before_loop
);
2542 { /* Inline scope#AForExpr#break_mark (self) on <self:AForExpr> */
2543 var26
= self
->attrs
[COLOR_nitc__scope__AForExpr___break_mark
].val
; /* _break_mark on <self:AForExpr> */
2545 RET_LABEL25
:(void)0;
2549 nitc__flow___nitc__flow__FlowVisitor___merge_breaks(var_v
, var24
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2553 /* method flow#AWithExpr#accept_flow_visitor for (self: AWithExpr, FlowVisitor) */
2554 void nitc__flow___AWithExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2555 val
* var_v
/* var v: FlowVisitor */;
2556 val
* var
/* : nullable EscapeMark */;
2557 val
* var2
/* : nullable EscapeMark */;
2560 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AWithExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AWithExpr>*/
2563 { /* Inline scope#AWithExpr#break_mark (self) on <self:AWithExpr> */
2564 var2
= self
->attrs
[COLOR_nitc__scope__AWithExpr___break_mark
].val
; /* _break_mark on <self:AWithExpr> */
2570 nitc__flow___nitc__flow__FlowVisitor___merge_breaks(var_v
, var
); /* Direct call flow#FlowVisitor#merge_breaks on <var_v:FlowVisitor>*/
2574 /* method flow#AAssertExpr#accept_flow_visitor for (self: AAssertExpr, FlowVisitor) */
2575 void nitc__flow___AAssertExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2576 val
* var_v
/* var v: FlowVisitor */;
2577 val
* var
/* : AExpr */;
2578 val
* var2
/* : AExpr */;
2579 val
* var3
/* : FlowContext */;
2580 val
* var_after_expr
/* var after_expr: FlowContext */;
2581 val
* var4
/* : FlowContext */;
2582 val
* var6
/* : FlowContext */;
2583 val
* var8
/* : nullable AExpr */;
2584 val
* var10
/* : nullable AExpr */;
2585 val
* var11
/* : FlowContext */;
2586 val
* var13
/* : FlowContext */;
2589 { /* Inline parser_nodes#AAssertExpr#n_expr (self) on <self:AAssertExpr> */
2590 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AAssertExpr___n_expr
].val
; /* _n_expr on <self:AAssertExpr> */
2591 if (unlikely(var2
== NULL
)) {
2592 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2593 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1975);
2601 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
2603 var_after_expr
= var3
;
2605 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2606 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2607 if (unlikely(var6
== NULL
)) {
2608 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2609 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2617 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2618 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2623 { /* Inline parser_nodes#AAssertExpr#n_else (self) on <self:AAssertExpr> */
2624 var10
= self
->attrs
[COLOR_nitc__parser_nodes__AAssertExpr___n_else
].val
; /* _n_else on <self:AAssertExpr> */
2630 nitc___nitc__Visitor___enter_visit(var_v
, var8
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:FlowVisitor>*/
2633 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2634 var13
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2635 if (unlikely(var13
== NULL
)) {
2636 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2637 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2641 RET_LABEL12
:(void)0;
2645 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var11) on <var_v:FlowVisitor> */
2646 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var11
; /* _current_flow_context on <var_v:FlowVisitor> */
2647 RET_LABEL14
:(void)0;
2652 /* method flow#AOrExpr#accept_flow_visitor for (self: AOrExpr, FlowVisitor) */
2653 void nitc__flow___AOrExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2654 val
* var_v
/* var v: FlowVisitor */;
2655 val
* var
/* : AExpr */;
2656 val
* var2
/* : AExpr */;
2657 val
* var3
/* : FlowContext */;
2658 val
* var_after_expr
/* var after_expr: FlowContext */;
2659 val
* var4
/* : FlowContext */;
2660 val
* var6
/* : FlowContext */;
2661 val
* var8
/* : AExpr */;
2662 val
* var10
/* : AExpr */;
2663 val
* var11
/* : FlowContext */;
2664 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2665 val
* var12
/* : FlowContext */;
2666 val
* var14
/* : FlowContext */;
2667 val
* var15
/* : FlowContext */;
2668 val
* var17
/* : FlowContext */;
2669 val
* var18
/* : FlowContext */;
2670 val
* var_merge_true
/* var merge_true: FlowContext */;
2671 static val
* varonce
;
2672 val
* var19
/* : String */;
2673 char* var20
/* : NativeString */;
2674 val
* var21
/* : String */;
2675 val
* var23
/* : FlowContext */;
2676 val
* var25
/* : FlowContext */;
2677 val
* var26
/* : FlowContext */;
2680 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AOrExpr> */
2681 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AOrExpr> */
2682 if (unlikely(var2
== NULL
)) {
2683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2684 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2050);
2692 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
2694 var_after_expr
= var3
;
2696 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2697 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2698 if (unlikely(var6
== NULL
)) {
2699 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2700 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2708 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2709 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2714 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AOrExpr> */
2715 var10
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AOrExpr> */
2716 if (unlikely(var10
== NULL
)) {
2717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2718 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2056);
2726 var11
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var8
);
2728 var_after_expr2
= var11
;
2730 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2731 var14
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2732 if (unlikely(var14
== NULL
)) {
2733 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2734 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2738 RET_LABEL13
:(void)0;
2742 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
2743 var17
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
2744 if (unlikely(var17
== NULL
)) {
2745 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2746 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2750 RET_LABEL16
:(void)0;
2754 var18
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
2756 var_merge_true
= var18
;
2757 if (likely(varonce
!=NULL
)) {
2761 var21
= core__flat___NativeString___to_s_full(var20
, 7l, 7l);
2766 { /* Inline flow#FlowContext#name= (var_merge_true,var19) on <var_merge_true:FlowContext> */
2767 var_merge_true
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_true:FlowContext> */
2768 RET_LABEL22
:(void)0;
2772 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
2773 var25
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
2774 if (unlikely(var25
== NULL
)) {
2775 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2776 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2780 RET_LABEL24
:(void)0;
2784 var26
= nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(var_v
, var_merge_true
, var23
);
2788 /* method flow#AImpliesExpr#accept_flow_visitor for (self: AImpliesExpr, FlowVisitor) */
2789 void nitc__flow___AImpliesExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2790 val
* var_v
/* var v: FlowVisitor */;
2791 val
* var
/* : AExpr */;
2792 val
* var2
/* : AExpr */;
2793 val
* var3
/* : FlowContext */;
2794 val
* var_after_expr
/* var after_expr: FlowContext */;
2795 val
* var4
/* : FlowContext */;
2796 val
* var6
/* : FlowContext */;
2797 val
* var8
/* : AExpr */;
2798 val
* var10
/* : AExpr */;
2799 val
* var11
/* : FlowContext */;
2800 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2801 val
* var12
/* : FlowContext */;
2802 val
* var14
/* : FlowContext */;
2803 val
* var15
/* : FlowContext */;
2804 val
* var17
/* : FlowContext */;
2805 val
* var18
/* : FlowContext */;
2806 val
* var_merge_true
/* var merge_true: FlowContext */;
2807 static val
* varonce
;
2808 val
* var19
/* : String */;
2809 char* var20
/* : NativeString */;
2810 val
* var21
/* : String */;
2811 val
* var23
/* : FlowContext */;
2812 val
* var25
/* : FlowContext */;
2813 val
* var26
/* : FlowContext */;
2816 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AImpliesExpr> */
2817 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AImpliesExpr> */
2818 if (unlikely(var2
== NULL
)) {
2819 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2820 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2050);
2828 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
2830 var_after_expr
= var3
;
2832 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2833 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2834 if (unlikely(var6
== NULL
)) {
2835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2836 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2844 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2845 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2850 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AImpliesExpr> */
2851 var10
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AImpliesExpr> */
2852 if (unlikely(var10
== NULL
)) {
2853 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2854 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2056);
2862 var11
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var8
);
2864 var_after_expr2
= var11
;
2866 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
2867 var14
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
2868 if (unlikely(var14
== NULL
)) {
2869 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2870 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2874 RET_LABEL13
:(void)0;
2878 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
2879 var17
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
2880 if (unlikely(var17
== NULL
)) {
2881 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2882 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2886 RET_LABEL16
:(void)0;
2890 var18
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
2892 var_merge_true
= var18
;
2893 if (likely(varonce
!=NULL
)) {
2897 var21
= core__flat___NativeString___to_s_full(var20
, 7l, 7l);
2902 { /* Inline flow#FlowContext#name= (var_merge_true,var19) on <var_merge_true:FlowContext> */
2903 var_merge_true
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_true:FlowContext> */
2904 RET_LABEL22
:(void)0;
2908 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
2909 var25
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
2910 if (unlikely(var25
== NULL
)) {
2911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2912 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2916 RET_LABEL24
:(void)0;
2920 var26
= nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(var_v
, var_merge_true
, var23
);
2924 /* method flow#AAndExpr#accept_flow_visitor for (self: AAndExpr, FlowVisitor) */
2925 void nitc__flow___AAndExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
2926 val
* var_v
/* var v: FlowVisitor */;
2927 val
* var
/* : AExpr */;
2928 val
* var2
/* : AExpr */;
2929 val
* var3
/* : FlowContext */;
2930 val
* var_after_expr
/* var after_expr: FlowContext */;
2931 val
* var4
/* : FlowContext */;
2932 val
* var6
/* : FlowContext */;
2933 val
* var8
/* : AExpr */;
2934 val
* var10
/* : AExpr */;
2935 val
* var11
/* : FlowContext */;
2936 val
* var_after_expr2
/* var after_expr2: FlowContext */;
2937 val
* var12
/* : FlowContext */;
2938 val
* var14
/* : FlowContext */;
2939 val
* var15
/* : FlowContext */;
2940 val
* var17
/* : FlowContext */;
2941 val
* var18
/* : FlowContext */;
2942 val
* var_merge_false
/* var merge_false: FlowContext */;
2943 static val
* varonce
;
2944 val
* var19
/* : String */;
2945 char* var20
/* : NativeString */;
2946 val
* var21
/* : String */;
2947 val
* var23
/* : FlowContext */;
2948 val
* var25
/* : FlowContext */;
2949 val
* var26
/* : FlowContext */;
2952 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AAndExpr> */
2953 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr
].val
; /* _n_expr on <self:AAndExpr> */
2954 if (unlikely(var2
== NULL
)) {
2955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2956 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2050);
2964 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
2966 var_after_expr
= var3
;
2968 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
2969 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
2970 if (unlikely(var6
== NULL
)) {
2971 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2972 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2980 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var4) on <var_v:FlowVisitor> */
2981 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var4
; /* _current_flow_context on <var_v:FlowVisitor> */
2986 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AAndExpr> */
2987 var10
= self
->attrs
[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2
].val
; /* _n_expr2 on <self:AAndExpr> */
2988 if (unlikely(var10
== NULL
)) {
2989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2990 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2056);
2998 var11
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var8
);
3000 var_after_expr2
= var11
;
3002 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3003 var14
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3004 if (unlikely(var14
== NULL
)) {
3005 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3006 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
3010 RET_LABEL13
:(void)0;
3014 { /* Inline flow#FlowContext#when_false (var_after_expr2) on <var_after_expr2:FlowContext> */
3015 var17
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr2:FlowContext> */
3016 if (unlikely(var17
== NULL
)) {
3017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3018 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
3022 RET_LABEL16
:(void)0;
3026 var18
= nitc__flow___nitc__flow__FlowVisitor___make_merge_flow(var_v
, var12
, var15
);
3028 var_merge_false
= var18
;
3029 if (likely(varonce
!=NULL
)) {
3032 var20
= "AND FALSE";
3033 var21
= core__flat___NativeString___to_s_full(var20
, 9l, 9l);
3038 { /* Inline flow#FlowContext#name= (var_merge_false,var19) on <var_merge_false:FlowContext> */
3039 var_merge_false
->attrs
[COLOR_nitc__flow__FlowContext___name
].val
= var19
; /* _name on <var_merge_false:FlowContext> */
3040 RET_LABEL22
:(void)0;
3044 { /* Inline flow#FlowContext#when_true (var_after_expr2) on <var_after_expr2:FlowContext> */
3045 var25
= var_after_expr2
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr2:FlowContext> */
3046 if (unlikely(var25
== NULL
)) {
3047 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3048 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
3052 RET_LABEL24
:(void)0;
3056 var26
= nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(var_v
, var23
, var_merge_false
);
3060 /* method flow#ANotExpr#accept_flow_visitor for (self: ANotExpr, FlowVisitor) */
3061 void nitc__flow___ANotExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3062 val
* var_v
/* var v: FlowVisitor */;
3063 val
* var
/* : AExpr */;
3064 val
* var2
/* : AExpr */;
3065 val
* var3
/* : FlowContext */;
3066 val
* var_after_expr
/* var after_expr: FlowContext */;
3067 val
* var4
/* : FlowContext */;
3068 val
* var6
/* : FlowContext */;
3069 val
* var7
/* : FlowContext */;
3070 val
* var9
/* : FlowContext */;
3071 val
* var10
/* : FlowContext */;
3074 { /* Inline parser_nodes#ANotExpr#n_expr (self) on <self:ANotExpr> */
3075 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ANotExpr___n_expr
].val
; /* _n_expr on <self:ANotExpr> */
3076 if (unlikely(var2
== NULL
)) {
3077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3078 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2090);
3086 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
3088 var_after_expr
= var3
;
3090 { /* Inline flow#FlowContext#when_false (var_after_expr) on <var_after_expr:FlowContext> */
3091 var6
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var_after_expr:FlowContext> */
3092 if (unlikely(var6
== NULL
)) {
3093 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
3094 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
3102 { /* Inline flow#FlowContext#when_true (var_after_expr) on <var_after_expr:FlowContext> */
3103 var9
= var_after_expr
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var_after_expr:FlowContext> */
3104 if (unlikely(var9
== NULL
)) {
3105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
3106 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
3114 var10
= nitc__flow___nitc__flow__FlowVisitor___make_true_false_flow(var_v
, var4
, var7
);
3118 /* method flow#AOrElseExpr#accept_flow_visitor for (self: AOrElseExpr, FlowVisitor) */
3119 void nitc__flow___AOrElseExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3120 val
* var_v
/* var v: FlowVisitor */;
3123 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AOrElseExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AOrElseExpr>*/
3127 /* method flow#AEqExpr#accept_flow_visitor for (self: AEqExpr, FlowVisitor) */
3128 void nitc__flow___AEqExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3129 val
* var_v
/* var v: FlowVisitor */;
3130 val
* var
/* : FlowContext */;
3133 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AEqExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AEqExpr>*/
3136 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3140 /* method flow#ANeExpr#accept_flow_visitor for (self: ANeExpr, FlowVisitor) */
3141 void nitc__flow___ANeExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3142 val
* var_v
/* var v: FlowVisitor */;
3143 val
* var
/* : FlowContext */;
3146 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___ANeExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:ANeExpr>*/
3149 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3153 /* method flow#AIsaExpr#accept_flow_visitor for (self: AIsaExpr, FlowVisitor) */
3154 void nitc__flow___AIsaExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3155 val
* var_v
/* var v: FlowVisitor */;
3156 val
* var
/* : FlowContext */;
3159 ((void(*)(val
* self
, val
* p0
))(self
->class->vft
[COLOR_nitc__flow___AIsaExpr___ANode__accept_flow_visitor
]))(self
, p0
); /* accept_flow_visitor on <self:AIsaExpr>*/
3162 var
= nitc__flow___nitc__flow__FlowVisitor___make_sub_true_false_flow(var_v
);
3166 /* method flow#AParExpr#accept_flow_visitor for (self: AParExpr, FlowVisitor) */
3167 void nitc__flow___AParExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3168 val
* var_v
/* var v: FlowVisitor */;
3169 val
* var
/* : AExpr */;
3170 val
* var2
/* : AExpr */;
3171 val
* var3
/* : FlowContext */;
3172 val
* var_after_expr
/* var after_expr: FlowContext */;
3175 { /* Inline parser_nodes#AParExpr#n_expr (self) on <self:AParExpr> */
3176 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AParExpr___n_expr
].val
; /* _n_expr on <self:AParExpr> */
3177 if (unlikely(var2
== NULL
)) {
3178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3179 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2575);
3187 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
3189 var_after_expr
= var3
;
3191 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var_after_expr) on <var_v:FlowVisitor> */
3192 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_after_expr
; /* _current_flow_context on <var_v:FlowVisitor> */
3198 /* method flow#AOnceExpr#accept_flow_visitor for (self: AOnceExpr, FlowVisitor) */
3199 void nitc__flow___AOnceExpr___ANode__accept_flow_visitor(val
* self
, val
* p0
) {
3200 val
* var_v
/* var v: FlowVisitor */;
3201 val
* var
/* : AExpr */;
3202 val
* var2
/* : AExpr */;
3203 val
* var3
/* : FlowContext */;
3204 val
* var_after_expr
/* var after_expr: FlowContext */;
3207 { /* Inline parser_nodes#AOnceExpr#n_expr (self) on <self:AOnceExpr> */
3208 var2
= self
->attrs
[COLOR_nitc__parser_nodes__AOnceExpr___n_expr
].val
; /* _n_expr on <self:AOnceExpr> */
3209 if (unlikely(var2
== NULL
)) {
3210 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3211 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2014);
3219 var3
= nitc__flow___nitc__flow__FlowVisitor___visit_expr(var_v
, var
);
3221 var_after_expr
= var3
;
3223 { /* Inline flow#FlowVisitor#current_flow_context= (var_v,var_after_expr) on <var_v:FlowVisitor> */
3224 var_v
->attrs
[COLOR_nitc__flow__FlowVisitor___current_flow_context
].val
= var_after_expr
; /* _current_flow_context on <var_v:FlowVisitor> */