1 /* This C file is generated by NIT to compile module global___reachable_from_init_method_analysis_impl. */
2 #include "global___reachable_from_init_method_analysis_impl._sep.h"
3 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program
[] = "reachable_from_init_method_analysis_impl::RFIMABuilder::program";
4 val_t
global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(val_t p0
){
5 struct {struct stack_frame_t me
;} fra
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
11 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program
;
14 fra
.me
.nitni_local_ref_head
= NULL
;
15 fra
.me
.REG
[0] = NIT_NULL
;
17 /* global/reachable_from_init_method_analysis_impl.nit:25 */
18 REGB0
= TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra
.me
.REG
[0])!=NIT_NULL
);
19 if (UNTAG_Bool(REGB0
)) {
21 nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___reachable_from_init_method_analysis_impl
, 25);
23 fra
.me
.REG
[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra
.me
.REG
[0]);
24 stack_frame_head
= fra
.me
.prev
;
27 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context
[] = "reachable_from_init_method_analysis_impl::RFIMABuilder::context";
28 val_t
global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(val_t p0
){
29 struct {struct stack_frame_t me
;} fra
;
32 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
33 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
35 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context
;
38 fra
.me
.nitni_local_ref_head
= NULL
;
39 fra
.me
.REG
[0] = NIT_NULL
;
41 /* global/reachable_from_init_method_analysis_impl.nit:26 */
42 REGB0
= TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra
.me
.REG
[0])!=NIT_NULL
);
43 if (UNTAG_Bool(REGB0
)) {
45 nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___reachable_from_init_method_analysis_impl
, 26);
47 fra
.me
.REG
[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra
.me
.REG
[0]);
48 stack_frame_head
= fra
.me
.prev
;
51 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init
[] = "reachable_from_init_method_analysis_impl::RFIMABuilder::init";
52 void global___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0
, val_t p1
, int* init_table
){
53 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMABuilder
].i
;
54 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
56 if (init_table
[itpos0
]) return;
57 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
58 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
60 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init
;
63 fra
.me
.nitni_local_ref_head
= NULL
;
64 fra
.me
.REG
[0] = NIT_NULL
;
65 fra
.me
.REG
[1] = NIT_NULL
;
68 /* global/reachable_from_init_method_analysis_impl.nit:29 */
69 ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
70 stack_frame_head
= fra
.me
.prev
;
71 init_table
[itpos0
] = 1;
74 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work
[] = "reachable_from_init_method_analysis_impl::RFIMABuilder::work";
75 void global___reachable_from_init_method_analysis_impl___RFIMABuilder___work(val_t p0
){
76 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
78 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
79 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
81 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work
;
84 fra
.me
.nitni_local_ref_head
= NULL
;
85 fra
.me
.REG
[0] = NIT_NULL
;
86 fra
.me
.REG
[1] = NIT_NULL
;
87 fra
.me
.REG
[2] = NIT_NULL
;
89 /* global/reachable_from_init_method_analysis_impl.nit:32 */
90 fra
.me
.REG
[1] = fra
.me
.REG
[0];
91 /* global/reachable_from_init_method_analysis_impl.nit:33 */
92 fra
.me
.REG
[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
93 CALL_program___Program___with_each_live_local_classes(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1
));
94 stack_frame_head
= fra
.me
.prev
;
97 void OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1(struct stack_frame_t
*closctx
, val_t p0
){
98 struct {struct stack_frame_t me
;} fra
;
100 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
101 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
103 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work
;
104 fra
.me
.has_broke
= 0;
106 fra
.me
.nitni_local_ref_head
= NULL
;
107 fra
.me
.REG
[0] = NIT_NULL
;
109 closctx
->REG
[2] = fra
.me
.REG
[0];
110 /* global/reachable_from_init_method_analysis_impl.nit:35 */
111 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx
->REG
[2])(closctx
->REG
[2]);
112 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2
));
113 stack_frame_head
= fra
.me
.prev
;
116 void OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
117 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
121 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
122 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
124 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work
;
125 fra
.me
.has_broke
= 0;
127 fra
.me
.nitni_local_ref_head
= NULL
;
128 fra
.me
.REG
[0] = NIT_NULL
;
129 fra
.me
.REG
[1] = NIT_NULL
;
130 fra
.me
.REG
[2] = NIT_NULL
;
131 fra
.me
.closure_ctx
= closctx_param
;
132 fra
.me
.closure_funs
= CREG
;
135 /* global/reachable_from_init_method_analysis_impl.nit:36 */
136 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
137 /* global/reachable_from_init_method_analysis_impl.nit:37 */
138 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
139 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[1])(fra
.me
.REG
[1], closctx
->REG
[2]);
140 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
141 if (UNTAG_Bool(REGB0
)) {
144 /* global/reachable_from_init_method_analysis_impl.nit:38 */
145 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
146 if (UNTAG_Bool(REGB0
)) {
148 nit_abort("Assert failed", NULL
, LOCATE_global___reachable_from_init_method_analysis_impl
, 38);
150 /* global/reachable_from_init_method_analysis_impl.nit:39 */
151 fra
.me
.REG
[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx
->REG
[1])(closctx
->REG
[1]);
152 fra
.me
.REG
[1] = CALL_global___reachable_method_analysis___Program___rma(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
153 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_global___reachable_method_analysis___ReachableMethodAnalysis
, ID_global___reachable_method_analysis___ReachableMethodAnalysis
)) /*cast ReachableMethodAnalysis*/;
154 if (UNTAG_Bool(REGB0
)) {
156 nit_abort("Cast failed", NULL
, LOCATE_global___reachable_from_init_method_analysis_impl
, 39);
158 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
159 if (UNTAG_Bool(REGB0
)) {
160 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_from_init_method_analysis_impl
, 39);
162 REGB0
= CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
163 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
164 if (UNTAG_Bool(REGB0
)) {
167 /* global/reachable_from_init_method_analysis_impl.nit:40 */
168 fra
.me
.REG
[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx
->REG
[2])(closctx
->REG
[2]);
169 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
170 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
171 if (UNTAG_Bool(REGB0
)) {
174 /* global/reachable_from_init_method_analysis_impl.nit:41 */
175 fra
.me
.REG
[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx
->REG
[2])(closctx
->REG
[2]);
176 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
177 /* global/reachable_from_init_method_analysis_impl.nit:44 */
178 fra
.me
.REG
[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx
->REG
[1])(closctx
->REG
[1]);
179 fra
.me
.REG
[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
180 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
181 /* global/reachable_from_init_method_analysis_impl.nit:45 */
182 fra
.me
.REG
[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx
->REG
[1])(closctx
->REG
[1]);
183 fra
.me
.REG
[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx
->REG
[1])(closctx
->REG
[1]);
184 fra
.me
.REG
[2] = NEW_RFIMAVisitor_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
185 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
187 stack_frame_head
= fra
.me
.prev
;
190 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines
[] = "reachable_from_init_method_analysis_impl::RFIMAContext::reachable_from_init_iroutines";
191 val_t
global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(val_t p0
){
192 struct {struct stack_frame_t me
;} fra
;
195 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
196 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
198 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines
;
199 fra
.me
.has_broke
= 0;
201 fra
.me
.nitni_local_ref_head
= NULL
;
202 fra
.me
.REG
[0] = NIT_NULL
;
204 /* global/reachable_from_init_method_analysis_impl.nit:53 */
205 REGB0
= TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra
.me
.REG
[0])!=NIT_NULL
);
206 if (UNTAG_Bool(REGB0
)) {
208 nit_abort("Uninitialized attribute %s", "_reachable_from_init_iroutines", LOCATE_global___reachable_from_init_method_analysis_impl
, 53);
210 fra
.me
.REG
[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra
.me
.REG
[0]);
211 stack_frame_head
= fra
.me
.prev
;
212 return fra
.me
.REG
[0];
214 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init
[] = "reachable_from_init_method_analysis_impl::RFIMAContext::(reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_iroutine_reachable_from_init)";
215 val_t
global___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init(val_t p0
, val_t p1
){
216 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
220 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
221 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
223 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init
;
224 fra
.me
.has_broke
= 0;
226 fra
.me
.nitni_local_ref_head
= NULL
;
227 fra
.me
.REG
[0] = NIT_NULL
;
228 fra
.me
.REG
[1] = NIT_NULL
;
231 /* global/reachable_from_init_method_analysis_impl.nit:56 */
232 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
233 if (UNTAG_Bool(REGB0
)) {
235 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
236 if (UNTAG_Bool(REGB1
)) {
240 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
244 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
245 if (UNTAG_Bool(REGB0
)) {
246 fra
.me
.REG
[0] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
247 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
254 stack_frame_head
= fra
.me
.prev
;
257 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init
[] = "reachable_from_init_method_analysis_impl::RFIMAContext::(reachable_from_init_method_analysis::ReachableFromInitMethodAnalysis::is_method_reachable_from_init)";
258 val_t
global___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init(val_t p0
, val_t p1
){
259 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
262 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
263 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
265 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init
;
266 fra
.me
.has_broke
= 0;
268 fra
.me
.nitni_local_ref_head
= NULL
;
269 fra
.me
.REG
[0] = NIT_NULL
;
270 fra
.me
.REG
[1] = NIT_NULL
;
273 /* global/reachable_from_init_method_analysis_impl.nit:60 */
274 fra
.me
.REG
[1] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
275 REGB0
= CALL_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
278 stack_frame_head
= fra
.me
.prev
;
281 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___init
[] = "reachable_from_init_method_analysis_impl::RFIMAContext::init";
282 void global___reachable_from_init_method_analysis_impl___RFIMAContext___init(val_t p0
, int* init_table
){
283 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMAContext
].i
;
284 struct {struct stack_frame_t me
;} fra
;
286 if (init_table
[itpos1
]) return;
287 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
288 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
290 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___init
;
291 fra
.me
.has_broke
= 0;
293 fra
.me
.nitni_local_ref_head
= NULL
;
294 stack_frame_head
= fra
.me
.prev
;
295 init_table
[itpos1
] = 1;
298 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context
[] = "reachable_from_init_method_analysis_impl::RFIMAVisitor::context";
299 val_t
global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(val_t p0
){
300 struct {struct stack_frame_t me
;} fra
;
303 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
304 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
306 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context
;
307 fra
.me
.has_broke
= 0;
309 fra
.me
.nitni_local_ref_head
= NULL
;
310 fra
.me
.REG
[0] = NIT_NULL
;
312 /* global/reachable_from_init_method_analysis_impl.nit:66 */
313 REGB0
= TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra
.me
.REG
[0])!=NIT_NULL
);
314 if (UNTAG_Bool(REGB0
)) {
316 nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___reachable_from_init_method_analysis_impl
, 66);
318 fra
.me
.REG
[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra
.me
.REG
[0]);
319 stack_frame_head
= fra
.me
.prev
;
320 return fra
.me
.REG
[0];
322 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program
[] = "reachable_from_init_method_analysis_impl::RFIMAVisitor::program";
323 val_t
global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(val_t p0
){
324 struct {struct stack_frame_t me
;} fra
;
327 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
328 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
330 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program
;
331 fra
.me
.has_broke
= 0;
333 fra
.me
.nitni_local_ref_head
= NULL
;
334 fra
.me
.REG
[0] = NIT_NULL
;
336 /* global/reachable_from_init_method_analysis_impl.nit:67 */
337 REGB0
= TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra
.me
.REG
[0])!=NIT_NULL
);
338 if (UNTAG_Bool(REGB0
)) {
340 nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___reachable_from_init_method_analysis_impl
, 67);
342 fra
.me
.REG
[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra
.me
.REG
[0]);
343 stack_frame_head
= fra
.me
.prev
;
344 return fra
.me
.REG
[0];
346 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init
[] = "reachable_from_init_method_analysis_impl::RFIMAVisitor::init";
347 void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
348 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMAVisitor
].i
;
349 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
351 if (init_table
[itpos2
]) return;
352 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
353 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
355 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init
;
356 fra
.me
.has_broke
= 0;
358 fra
.me
.nitni_local_ref_head
= NULL
;
359 fra
.me
.REG
[0] = NIT_NULL
;
360 fra
.me
.REG
[1] = NIT_NULL
;
361 fra
.me
.REG
[2] = NIT_NULL
;
362 fra
.me
.REG
[3] = NIT_NULL
;
366 /* global/reachable_from_init_method_analysis_impl.nit:69 */
367 fra
.me
.REG
[3] = fra
.me
.REG
[0];
368 CALL_icode___icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
369 /* global/reachable_from_init_method_analysis_impl.nit:70 */
370 ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra
.me
.REG
[3]) = fra
.me
.REG
[1];
371 /* global/reachable_from_init_method_analysis_impl.nit:71 */
372 ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
373 stack_frame_head
= fra
.me
.prev
;
374 init_table
[itpos2
] = 1;
377 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call
[] = "reachable_from_init_method_analysis_impl::RFIMAVisitor::process_call";
378 void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(val_t p0
, val_t p1
){
379 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
382 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
383 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
385 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call
;
386 fra
.me
.has_broke
= 0;
388 fra
.me
.nitni_local_ref_head
= NULL
;
389 fra
.me
.REG
[0] = NIT_NULL
;
390 fra
.me
.REG
[1] = NIT_NULL
;
391 fra
.me
.REG
[2] = NIT_NULL
;
394 /* global/reachable_from_init_method_analysis_impl.nit:75 */
395 fra
.me
.REG
[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
396 REGB0
= CALL_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
397 if (UNTAG_Bool(REGB0
)) {
400 /* global/reachable_from_init_method_analysis_impl.nit:76 */
401 fra
.me
.REG
[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
402 fra
.me
.REG
[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
403 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
404 /* global/reachable_from_init_method_analysis_impl.nit:77 */
405 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
407 stack_frame_head
= fra
.me
.prev
;
410 static const char LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode
[] = "reachable_from_init_method_analysis_impl::RFIMAVisitor::(icode_tools::ICodeVisitor::visit_icode)";
411 void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(val_t p0
, val_t p1
){
412 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
416 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
417 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
419 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode
;
420 fra
.me
.has_broke
= 0;
422 fra
.me
.nitni_local_ref_head
= NULL
;
423 fra
.me
.REG
[0] = NIT_NULL
;
424 fra
.me
.REG
[1] = NIT_NULL
;
425 fra
.me
.REG
[2] = NIT_NULL
;
426 fra
.me
.REG
[3] = NIT_NULL
;
427 fra
.me
.REG
[4] = NIT_NULL
;
428 fra
.me
.REG
[5] = NIT_NULL
;
431 /* global/reachable_from_init_method_analysis_impl.nit:80 */
432 fra
.me
.REG
[2] = fra
.me
.REG
[0];
433 fra
.me
.REG
[3] = fra
.me
.REG
[1];
434 /* global/reachable_from_init_method_analysis_impl.nit:82 */
435 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___IStaticCall
, ID_icode___icode_base___IStaticCall
)) /*cast IStaticCall*/;
436 if (UNTAG_Bool(REGB0
)) {
437 /* global/reachable_from_init_method_analysis_impl.nit:84 */
438 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
439 if (UNTAG_Bool(REGB0
)) {
440 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_from_init_method_analysis_impl
, 84);
442 fra
.me
.REG
[4] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
443 fra
.me
.REG
[4] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
444 /* global/reachable_from_init_method_analysis_impl.nit:85 */
445 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
446 if (UNTAG_Bool(REGB0
)) {
448 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
449 if (UNTAG_Bool(REGB1
)) {
453 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
457 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
458 if (UNTAG_Bool(REGB0
)) {
459 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
462 /* global/reachable_from_init_method_analysis_impl.nit:86 */
463 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___INew
, ID_icode___icode_base___INew
)) /*cast INew*/;
464 if (UNTAG_Bool(REGB0
)) {
465 /* global/reachable_from_init_method_analysis_impl.nit:88 */
466 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
467 if (UNTAG_Bool(REGB0
)) {
468 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_from_init_method_analysis_impl
, 88);
470 fra
.me
.REG
[4] = CALL_icode___icode_base___INew___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
471 /* global/reachable_from_init_method_analysis_impl.nit:89 */
472 fra
.me
.REG
[5] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
473 fra
.me
.REG
[5] = CALL_program___Program___main_module(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
474 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
475 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
476 /* global/reachable_from_init_method_analysis_impl.nit:90 */
477 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
478 if (UNTAG_Bool(REGB0
)) {
479 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_from_init_method_analysis_impl
, 90);
481 fra
.me
.REG
[4] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
482 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
483 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
484 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
485 if (UNTAG_Bool(REGB0
)) {
487 nit_abort("Cast failed", NULL
, LOCATE_global___reachable_from_init_method_analysis_impl
, 90);
489 /* global/reachable_from_init_method_analysis_impl.nit:91 */
490 REGB0
= CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
491 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
492 if (UNTAG_Bool(REGB0
)) {
493 /* global/reachable_from_init_method_analysis_impl.nit:92 */
494 fra
.me
.REG
[5] = CALL_program___MMLocalClass___new_instance_iroutine(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
495 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
496 /* global/reachable_from_init_method_analysis_impl.nit:93 */
497 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
500 /* global/reachable_from_init_method_analysis_impl.nit:95 */
501 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___ISuper
, ID_icode___icode_base___ISuper
)) /*cast ISuper*/;
502 if (UNTAG_Bool(REGB0
)) {
503 /* global/reachable_from_init_method_analysis_impl.nit:97 */
504 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
505 if (UNTAG_Bool(REGB0
)) {
506 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_from_init_method_analysis_impl
, 97);
508 fra
.me
.REG
[4] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
509 /* global/reachable_from_init_method_analysis_impl.nit:98 */
510 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
511 fra
.me
.REG
[4] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
512 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1
));
514 /* global/reachable_from_init_method_analysis_impl.nit:104 */
515 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___ICall
, ID_icode___icode_base___ICall
)) /*cast ICall*/;
516 if (UNTAG_Bool(REGB0
)) {
517 /* global/reachable_from_init_method_analysis_impl.nit:106 */
518 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
519 if (UNTAG_Bool(REGB0
)) {
520 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_from_init_method_analysis_impl
, 106);
522 fra
.me
.REG
[4] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
523 /* global/reachable_from_init_method_analysis_impl.nit:107 */
524 fra
.me
.REG
[5] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
525 /* global/reachable_from_init_method_analysis_impl.nit:108 */
526 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
527 if (UNTAG_Bool(REGB0
)) {
529 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
530 if (UNTAG_Bool(REGB1
)) {
534 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
538 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
539 if (UNTAG_Bool(REGB0
)) {
540 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
542 /* global/reachable_from_init_method_analysis_impl.nit:109 */
543 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
544 fra
.me
.REG
[4] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
545 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2
));
547 /* global/reachable_from_init_method_analysis_impl.nit:115 */
548 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___ICheckInstance
, ID_icode___icode_base___ICheckInstance
)) /*cast ICheckInstance*/;
549 if (UNTAG_Bool(REGB0
)) {
550 /* global/reachable_from_init_method_analysis_impl.nit:116 */
551 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
552 if (UNTAG_Bool(REGB0
)) {
553 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_from_init_method_analysis_impl
, 116);
555 fra
.me
.REG
[5] = CALL_icode___icode_base___ICheckInstance___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
556 /* global/reachable_from_init_method_analysis_impl.nit:117 */
557 fra
.me
.REG
[4] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
558 fra
.me
.REG
[4] = CALL_program___Program___main_module(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
559 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
560 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
561 /* global/reachable_from_init_method_analysis_impl.nit:118 */
562 fra
.me
.REG
[4] = CALL_program___MMLocalClass___checknew_iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
563 /* global/reachable_from_init_method_analysis_impl.nit:119 */
564 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
565 if (UNTAG_Bool(REGB0
)) {
567 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
568 if (UNTAG_Bool(REGB1
)) {
572 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
576 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
577 if (UNTAG_Bool(REGB0
)) {
578 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
581 /* global/reachable_from_init_method_analysis_impl.nit:120 */
582 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___IInitAttributes
, ID_icode___icode_base___IInitAttributes
)) /*cast IInitAttributes*/;
583 if (UNTAG_Bool(REGB0
)) {
584 /* global/reachable_from_init_method_analysis_impl.nit:121 */
585 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
586 if (UNTAG_Bool(REGB0
)) {
587 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_from_init_method_analysis_impl
, 121);
589 fra
.me
.REG
[3] = CALL_icode___icode_base___IInitAttributes___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
590 /* global/reachable_from_init_method_analysis_impl.nit:122 */
591 fra
.me
.REG
[4] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
592 fra
.me
.REG
[4] = CALL_program___Program___main_module(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
593 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
594 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
595 /* global/reachable_from_init_method_analysis_impl.nit:123 */
596 fra
.me
.REG
[4] = CALL_program___MMLocalClass___init_var_iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
597 /* global/reachable_from_init_method_analysis_impl.nit:124 */
598 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
599 if (UNTAG_Bool(REGB0
)) {
601 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
602 if (UNTAG_Bool(REGB1
)) {
606 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
610 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
611 if (UNTAG_Bool(REGB0
)) {
612 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
620 /* global/reachable_from_init_method_analysis_impl.nit:126 */
621 CALL_SUPER_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
622 stack_frame_head
= fra
.me
.prev
;
625 void OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
626 struct {struct stack_frame_t me
;} fra
;
631 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
632 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
634 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode
;
635 fra
.me
.has_broke
= 0;
637 fra
.me
.nitni_local_ref_head
= NULL
;
638 fra
.me
.REG
[0] = NIT_NULL
;
639 fra
.me
.closure_ctx
= closctx_param
;
640 fra
.me
.closure_funs
= CREG
;
643 /* global/reachable_from_init_method_analysis_impl.nit:99 */
644 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
645 if (UNTAG_Bool(REGB0
)) {
646 /* global/reachable_from_init_method_analysis_impl.nit:100 */
647 fra
.me
.REG
[0] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
648 /* global/reachable_from_init_method_analysis_impl.nit:101 */
649 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
650 if (UNTAG_Bool(REGB0
)) {
652 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
653 if (UNTAG_Bool(REGB1
)) {
657 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
661 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
662 if (UNTAG_Bool(REGB0
)) {
663 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
666 stack_frame_head
= fra
.me
.prev
;
669 void OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
670 struct {struct stack_frame_t me
;} fra
;
675 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
676 fra
.me
.file
= LOCATE_global___reachable_from_init_method_analysis_impl
;
678 fra
.me
.meth
= LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode
;
679 fra
.me
.has_broke
= 0;
681 fra
.me
.nitni_local_ref_head
= NULL
;
682 fra
.me
.REG
[0] = NIT_NULL
;
683 fra
.me
.closure_ctx
= closctx_param
;
684 fra
.me
.closure_funs
= CREG
;
687 /* global/reachable_from_init_method_analysis_impl.nit:110 */
688 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
689 if (UNTAG_Bool(REGB0
)) {
690 /* global/reachable_from_init_method_analysis_impl.nit:111 */
691 fra
.me
.REG
[0] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
692 closctx
->REG
[5] = fra
.me
.REG
[0];
693 /* global/reachable_from_init_method_analysis_impl.nit:112 */
694 REGB0
= TAG_Bool(closctx
->REG
[5]==NIT_NULL
);
695 if (UNTAG_Bool(REGB0
)) {
697 REGB1
= TAG_Bool(closctx
->REG
[5]==NIT_NULL
);
698 if (UNTAG_Bool(REGB1
)) {
702 REGB1
= CALL_standard___kernel___Object_____eqeq(closctx
->REG
[5])(closctx
->REG
[5], NIT_NULL
);
706 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
707 if (UNTAG_Bool(REGB0
)) {
708 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx
->REG
[2])(closctx
->REG
[2], closctx
->REG
[5]);
711 stack_frame_head
= fra
.me
.prev
;