c_src: fix last update, _nitni.h s were referring to _nit.h from Nit src
[nit.git] / c_src / analysis___reachable_from_init_method_analysis_impl._sep.c
1 /* This C file is generated by NIT to compile module analysis___reachable_from_init_method_analysis_impl. */
2 #include "analysis___reachable_from_init_method_analysis_impl._sep.h"
3 val_t analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
9 fra.me.line = 25;
10 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.REG[0] = NIT_NULL;
14 fra.me.REG[0] = p0;
15 /* ./analysis//reachable_from_init_method_analysis_impl.nit:25 */
16 REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0])!=NIT_NULL);
17 if (UNTAG_Bool(REGB0)) {
18 } else {
19 nit_abort("Uninitialized attribute %s", "_program", LOCATE_analysis___reachable_from_init_method_analysis_impl, 25);
20 }
21 fra.me.REG[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0]);
22 stack_frame_head = fra.me.prev;
23 return fra.me.REG[0];
24 }
25 val_t analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context(val_t p0){
26 struct {struct stack_frame_t me;} fra;
27 val_t REGB0;
28 val_t tmp;
29 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
31 fra.me.line = 26;
32 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context;
33 fra.me.has_broke = 0;
34 fra.me.REG_size = 1;
35 fra.me.REG[0] = NIT_NULL;
36 fra.me.REG[0] = p0;
37 /* ./analysis//reachable_from_init_method_analysis_impl.nit:26 */
38 REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0])!=NIT_NULL);
39 if (UNTAG_Bool(REGB0)) {
40 } else {
41 nit_abort("Uninitialized attribute %s", "_context", LOCATE_analysis___reachable_from_init_method_analysis_impl, 26);
42 }
43 fra.me.REG[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0]);
44 stack_frame_head = fra.me.prev;
45 return fra.me.REG[0];
46 }
47 void analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0, val_t p1, int* init_table){
48 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder].i;
49 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
50 val_t tmp;
51 if (init_table[itpos0]) return;
52 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
53 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
54 fra.me.line = 28;
55 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___init;
56 fra.me.has_broke = 0;
57 fra.me.REG_size = 2;
58 fra.me.REG[0] = NIT_NULL;
59 fra.me.REG[1] = NIT_NULL;
60 fra.me.REG[0] = p0;
61 fra.me.REG[1] = p1;
62 /* ./analysis//reachable_from_init_method_analysis_impl.nit:29 */
63 ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0]) = fra.me.REG[1];
64 stack_frame_head = fra.me.prev;
65 init_table[itpos0] = 1;
66 return;
67 }
68 void analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work(val_t p0){
69 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
70 val_t tmp;
71 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
72 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
73 fra.me.line = 32;
74 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
75 fra.me.has_broke = 0;
76 fra.me.REG_size = 3;
77 fra.me.REG[0] = NIT_NULL;
78 fra.me.REG[1] = NIT_NULL;
79 fra.me.REG[2] = NIT_NULL;
80 fra.me.REG[0] = p0;
81 /* ./analysis//reachable_from_init_method_analysis_impl.nit:32 */
82 fra.me.REG[1] = fra.me.REG[0];
83 /* ./analysis//reachable_from_init_method_analysis_impl.nit:33 */
84 fra.me.REG[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(fra.me.REG[1])(fra.me.REG[1]);
85 CALL_program___Program___with_each_live_local_classes(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1));
86 stack_frame_head = fra.me.prev;
87 return;
88 }
89 void OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1(struct stack_frame_t *closctx, val_t p0){
90 struct {struct stack_frame_t me;} fra;
91 val_t tmp;
92 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
93 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
94 fra.me.line = 33;
95 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
96 fra.me.has_broke = 0;
97 fra.me.REG_size = 1;
98 fra.me.REG[0] = NIT_NULL;
99 fra.me.REG[0] = p0;
100 closctx->REG[2] = fra.me.REG[0];
101 /* ./analysis//reachable_from_init_method_analysis_impl.nit:35 */
102 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx->REG[2])(closctx->REG[2]);
103 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2));
104 stack_frame_head = fra.me.prev;
105 return;
106 }
107 void OC_analysis___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){
108 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
109 val_t REGB0;
110 fun_t CREG[1];
111 val_t tmp;
112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
113 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
114 fra.me.line = 0;
115 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
116 fra.me.has_broke = 0;
117 fra.me.REG_size = 3;
118 fra.me.REG[0] = NIT_NULL;
119 fra.me.REG[1] = NIT_NULL;
120 fra.me.REG[2] = NIT_NULL;
121 fra.me.closure_ctx = closctx_param;
122 fra.me.closure_funs = CREG;
123 fra.me.REG[0] = p0;
124 CREG[0] = clos_fun0;
125 /* ./analysis//reachable_from_init_method_analysis_impl.nit:36 */
126 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
127 /* ./analysis//reachable_from_init_method_analysis_impl.nit:37 */
128 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
129 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[1])(fra.me.REG[1], closctx->REG[2]);
130 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
131 if (UNTAG_Bool(REGB0)) {
132 goto label3;
133 }
134 /* ./analysis//reachable_from_init_method_analysis_impl.nit:38 */
135 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
136 if (UNTAG_Bool(REGB0)) {
137 } else {
138 nit_abort("Assert failed", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 38);
139 }
140 /* ./analysis//reachable_from_init_method_analysis_impl.nit:39 */
141 fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx->REG[1])(closctx->REG[1]);
142 fra.me.REG[1] = CALL_analysis___reachable_method_analysis___Program___rma(fra.me.REG[1])(fra.me.REG[1]);
143 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_analysis___reachable_method_analysis___ReachableMethodAnalysis, ID_analysis___reachable_method_analysis___ReachableMethodAnalysis)) /*cast ReachableMethodAnalysis*/;
144 if (UNTAG_Bool(REGB0)) {
145 } else {
146 nit_abort("Cast failed", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 39);
147 }
148 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
149 if (UNTAG_Bool(REGB0)) {
150 nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 39);
151 }
152 REGB0 = CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
153 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
154 if (UNTAG_Bool(REGB0)) {
155 goto label3;
156 }
157 /* ./analysis//reachable_from_init_method_analysis_impl.nit:40 */
158 fra.me.REG[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
159 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
160 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
161 if (UNTAG_Bool(REGB0)) {
162 goto label3;
163 }
164 /* ./analysis//reachable_from_init_method_analysis_impl.nit:41 */
165 fra.me.REG[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
166 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
167 /* ./analysis//reachable_from_init_method_analysis_impl.nit:44 */
168 fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx->REG[1])(closctx->REG[1]);
169 fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[1])(fra.me.REG[1]);
170 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
171 /* ./analysis//reachable_from_init_method_analysis_impl.nit:45 */
172 fra.me.REG[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx->REG[1])(closctx->REG[1]);
173 fra.me.REG[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx->REG[1])(closctx->REG[1]);
174 fra.me.REG[2] = NEW_RFIMAVisitor_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(fra.me.REG[1], fra.me.REG[2]);
175 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
176 label3: while(0);
177 stack_frame_head = fra.me.prev;
178 return;
179 }
180 val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(val_t p0){
181 struct {struct stack_frame_t me;} fra;
182 val_t REGB0;
183 val_t tmp;
184 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
185 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
186 fra.me.line = 53;
187 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines;
188 fra.me.has_broke = 0;
189 fra.me.REG_size = 1;
190 fra.me.REG[0] = NIT_NULL;
191 fra.me.REG[0] = p0;
192 /* ./analysis//reachable_from_init_method_analysis_impl.nit:53 */
193 REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0])!=NIT_NULL);
194 if (UNTAG_Bool(REGB0)) {
195 } else {
196 nit_abort("Uninitialized attribute %s", "_reachable_from_init_iroutines", LOCATE_analysis___reachable_from_init_method_analysis_impl, 53);
197 }
198 fra.me.REG[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0]);
199 stack_frame_head = fra.me.prev;
200 return fra.me.REG[0];
201 }
202 val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init(val_t p0, val_t p1){
203 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
204 val_t REGB0;
205 val_t REGB1;
206 val_t tmp;
207 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
208 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
209 fra.me.line = 55;
210 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init;
211 fra.me.has_broke = 0;
212 fra.me.REG_size = 2;
213 fra.me.REG[0] = NIT_NULL;
214 fra.me.REG[1] = NIT_NULL;
215 fra.me.REG[0] = p0;
216 fra.me.REG[1] = p1;
217 /* ./analysis//reachable_from_init_method_analysis_impl.nit:56 */
218 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
219 if (UNTAG_Bool(REGB0)) {
220 } else {
221 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
222 if (UNTAG_Bool(REGB1)) {
223 REGB1 = TAG_Bool(false);
224 REGB0 = REGB1;
225 } else {
226 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
227 REGB0 = REGB1;
228 }
229 }
230 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
231 if (UNTAG_Bool(REGB0)) {
232 fra.me.REG[0] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[0])(fra.me.REG[0]);
233 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
234 } else {
235 REGB1 = TAG_Bool(false);
236 REGB0 = REGB1;
237 }
238 goto label1;
239 label1: while(0);
240 stack_frame_head = fra.me.prev;
241 return REGB0;
242 }
243 val_t analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init(val_t p0, val_t p1){
244 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
245 val_t REGB0;
246 val_t tmp;
247 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
248 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
249 fra.me.line = 59;
250 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init;
251 fra.me.has_broke = 0;
252 fra.me.REG_size = 2;
253 fra.me.REG[0] = NIT_NULL;
254 fra.me.REG[1] = NIT_NULL;
255 fra.me.REG[0] = p0;
256 fra.me.REG[1] = p1;
257 /* ./analysis//reachable_from_init_method_analysis_impl.nit:60 */
258 fra.me.REG[1] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[1])(fra.me.REG[1]);
259 REGB0 = CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
260 goto label1;
261 label1: while(0);
262 stack_frame_head = fra.me.prev;
263 return REGB0;
264 }
265 val_t analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(val_t p0){
266 struct {struct stack_frame_t me;} fra;
267 val_t REGB0;
268 val_t tmp;
269 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
270 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
271 fra.me.line = 66;
272 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context;
273 fra.me.has_broke = 0;
274 fra.me.REG_size = 1;
275 fra.me.REG[0] = NIT_NULL;
276 fra.me.REG[0] = p0;
277 /* ./analysis//reachable_from_init_method_analysis_impl.nit:66 */
278 REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[0])!=NIT_NULL);
279 if (UNTAG_Bool(REGB0)) {
280 } else {
281 nit_abort("Uninitialized attribute %s", "_context", LOCATE_analysis___reachable_from_init_method_analysis_impl, 66);
282 }
283 fra.me.REG[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[0]);
284 stack_frame_head = fra.me.prev;
285 return fra.me.REG[0];
286 }
287 val_t analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(val_t p0){
288 struct {struct stack_frame_t me;} fra;
289 val_t REGB0;
290 val_t tmp;
291 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
292 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
293 fra.me.line = 67;
294 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program;
295 fra.me.has_broke = 0;
296 fra.me.REG_size = 1;
297 fra.me.REG[0] = NIT_NULL;
298 fra.me.REG[0] = p0;
299 /* ./analysis//reachable_from_init_method_analysis_impl.nit:67 */
300 REGB0 = TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[0])!=NIT_NULL);
301 if (UNTAG_Bool(REGB0)) {
302 } else {
303 nit_abort("Uninitialized attribute %s", "_program", LOCATE_analysis___reachable_from_init_method_analysis_impl, 67);
304 }
305 fra.me.REG[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[0]);
306 stack_frame_head = fra.me.prev;
307 return fra.me.REG[0];
308 }
309 void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
310 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor].i;
311 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
312 val_t tmp;
313 if (init_table[itpos1]) return;
314 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
315 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
316 fra.me.line = 69;
317 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init;
318 fra.me.has_broke = 0;
319 fra.me.REG_size = 4;
320 fra.me.REG[0] = NIT_NULL;
321 fra.me.REG[1] = NIT_NULL;
322 fra.me.REG[2] = NIT_NULL;
323 fra.me.REG[3] = NIT_NULL;
324 fra.me.REG[0] = p0;
325 fra.me.REG[1] = p1;
326 fra.me.REG[2] = p2;
327 /* ./analysis//reachable_from_init_method_analysis_impl.nit:69 */
328 fra.me.REG[3] = fra.me.REG[0];
329 CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
330 /* ./analysis//reachable_from_init_method_analysis_impl.nit:70 */
331 ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[3]) = fra.me.REG[1];
332 /* ./analysis//reachable_from_init_method_analysis_impl.nit:71 */
333 ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[3]) = fra.me.REG[2];
334 stack_frame_head = fra.me.prev;
335 init_table[itpos1] = 1;
336 return;
337 }
338 void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(val_t p0, val_t p1){
339 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
340 val_t REGB0;
341 val_t tmp;
342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
343 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
344 fra.me.line = 74;
345 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call;
346 fra.me.has_broke = 0;
347 fra.me.REG_size = 3;
348 fra.me.REG[0] = NIT_NULL;
349 fra.me.REG[1] = NIT_NULL;
350 fra.me.REG[2] = NIT_NULL;
351 fra.me.REG[0] = p0;
352 fra.me.REG[1] = p1;
353 /* ./analysis//reachable_from_init_method_analysis_impl.nit:75 */
354 fra.me.REG[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra.me.REG[0])(fra.me.REG[0]);
355 REGB0 = CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
356 if (UNTAG_Bool(REGB0)) {
357 goto label1;
358 }
359 /* ./analysis//reachable_from_init_method_analysis_impl.nit:76 */
360 fra.me.REG[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra.me.REG[0])(fra.me.REG[0]);
361 fra.me.REG[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[2])(fra.me.REG[2]);
362 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
363 /* ./analysis//reachable_from_init_method_analysis_impl.nit:77 */
364 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
365 label1: while(0);
366 stack_frame_head = fra.me.prev;
367 return;
368 }
369 void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(val_t p0, val_t p1){
370 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
371 val_t REGB0;
372 val_t REGB1;
373 val_t tmp;
374 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
375 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
376 fra.me.line = 80;
377 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
378 fra.me.has_broke = 0;
379 fra.me.REG_size = 6;
380 fra.me.REG[0] = NIT_NULL;
381 fra.me.REG[1] = NIT_NULL;
382 fra.me.REG[2] = NIT_NULL;
383 fra.me.REG[3] = NIT_NULL;
384 fra.me.REG[4] = NIT_NULL;
385 fra.me.REG[5] = NIT_NULL;
386 fra.me.REG[0] = p0;
387 fra.me.REG[1] = p1;
388 /* ./analysis//reachable_from_init_method_analysis_impl.nit:80 */
389 fra.me.REG[2] = fra.me.REG[0];
390 fra.me.REG[3] = fra.me.REG[1];
391 /* ./analysis//reachable_from_init_method_analysis_impl.nit:82 */
392 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*/;
393 if (UNTAG_Bool(REGB0)) {
394 /* ./analysis//reachable_from_init_method_analysis_impl.nit:84 */
395 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
396 if (UNTAG_Bool(REGB0)) {
397 nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 84);
398 }
399 fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
400 fra.me.REG[4] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[4])(fra.me.REG[4]);
401 /* ./analysis//reachable_from_init_method_analysis_impl.nit:85 */
402 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
403 if (UNTAG_Bool(REGB0)) {
404 } else {
405 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
406 if (UNTAG_Bool(REGB1)) {
407 REGB1 = TAG_Bool(false);
408 REGB0 = REGB1;
409 } else {
410 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
411 REGB0 = REGB1;
412 }
413 }
414 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
415 if (UNTAG_Bool(REGB0)) {
416 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
417 }
418 } else {
419 /* ./analysis//reachable_from_init_method_analysis_impl.nit:86 */
420 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*/;
421 if (UNTAG_Bool(REGB0)) {
422 /* ./analysis//reachable_from_init_method_analysis_impl.nit:88 */
423 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
424 if (UNTAG_Bool(REGB0)) {
425 nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 88);
426 }
427 fra.me.REG[4] = CALL_icode___icode_base___INew___stype(fra.me.REG[3])(fra.me.REG[3]);
428 /* ./analysis//reachable_from_init_method_analysis_impl.nit:89 */
429 fra.me.REG[5] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
430 fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
431 fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
432 fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
433 /* ./analysis//reachable_from_init_method_analysis_impl.nit:90 */
434 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
435 if (UNTAG_Bool(REGB0)) {
436 nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 90);
437 }
438 fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
439 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
440 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
441 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
442 if (UNTAG_Bool(REGB0)) {
443 } else {
444 nit_abort("Cast failed", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 90);
445 }
446 /* ./analysis//reachable_from_init_method_analysis_impl.nit:91 */
447 fra.me.REG[5] = CALL_program___MMLocalClass___new_instance_iroutine(fra.me.REG[5])(fra.me.REG[5]);
448 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
449 /* ./analysis//reachable_from_init_method_analysis_impl.nit:92 */
450 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
451 } else {
452 /* ./analysis//reachable_from_init_method_analysis_impl.nit:93 */
453 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*/;
454 if (UNTAG_Bool(REGB0)) {
455 /* ./analysis//reachable_from_init_method_analysis_impl.nit:95 */
456 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
457 if (UNTAG_Bool(REGB0)) {
458 nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 95);
459 }
460 fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
461 /* ./analysis//reachable_from_init_method_analysis_impl.nit:96 */
462 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[4])(fra.me.REG[4]);
463 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[4])(fra.me.REG[4]);
464 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1));
465 } else {
466 /* ./analysis//reachable_from_init_method_analysis_impl.nit:102 */
467 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*/;
468 if (UNTAG_Bool(REGB0)) {
469 /* ./analysis//reachable_from_init_method_analysis_impl.nit:104 */
470 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
471 if (UNTAG_Bool(REGB0)) {
472 nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 104);
473 }
474 fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
475 /* ./analysis//reachable_from_init_method_analysis_impl.nit:105 */
476 fra.me.REG[5] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[4])(fra.me.REG[4]);
477 /* ./analysis//reachable_from_init_method_analysis_impl.nit:106 */
478 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
479 if (UNTAG_Bool(REGB0)) {
480 } else {
481 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
482 if (UNTAG_Bool(REGB1)) {
483 REGB1 = TAG_Bool(false);
484 REGB0 = REGB1;
485 } else {
486 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
487 REGB0 = REGB1;
488 }
489 }
490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
491 if (UNTAG_Bool(REGB0)) {
492 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
493 }
494 /* ./analysis//reachable_from_init_method_analysis_impl.nit:107 */
495 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[4])(fra.me.REG[4]);
496 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[4])(fra.me.REG[4]);
497 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2));
498 } else {
499 /* ./analysis//reachable_from_init_method_analysis_impl.nit:113 */
500 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*/;
501 if (UNTAG_Bool(REGB0)) {
502 /* ./analysis//reachable_from_init_method_analysis_impl.nit:114 */
503 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
504 if (UNTAG_Bool(REGB0)) {
505 nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 114);
506 }
507 fra.me.REG[5] = CALL_icode___icode_base___ICheckInstance___stype(fra.me.REG[3])(fra.me.REG[3]);
508 /* ./analysis//reachable_from_init_method_analysis_impl.nit:115 */
509 fra.me.REG[4] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
510 fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
511 fra.me.REG[4] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
512 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
513 /* ./analysis//reachable_from_init_method_analysis_impl.nit:116 */
514 fra.me.REG[4] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[4])(fra.me.REG[4]);
515 /* ./analysis//reachable_from_init_method_analysis_impl.nit:117 */
516 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
517 if (UNTAG_Bool(REGB0)) {
518 } else {
519 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
520 if (UNTAG_Bool(REGB1)) {
521 REGB1 = TAG_Bool(false);
522 REGB0 = REGB1;
523 } else {
524 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
525 REGB0 = REGB1;
526 }
527 }
528 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
529 if (UNTAG_Bool(REGB0)) {
530 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
531 }
532 } else {
533 /* ./analysis//reachable_from_init_method_analysis_impl.nit:118 */
534 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*/;
535 if (UNTAG_Bool(REGB0)) {
536 /* ./analysis//reachable_from_init_method_analysis_impl.nit:119 */
537 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
538 if (UNTAG_Bool(REGB0)) {
539 nit_abort("Reciever is null", NULL, LOCATE_analysis___reachable_from_init_method_analysis_impl, 119);
540 }
541 fra.me.REG[3] = CALL_icode___icode_base___IInitAttributes___stype(fra.me.REG[3])(fra.me.REG[3]);
542 /* ./analysis//reachable_from_init_method_analysis_impl.nit:120 */
543 fra.me.REG[4] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
544 fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
545 fra.me.REG[4] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
546 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
547 /* ./analysis//reachable_from_init_method_analysis_impl.nit:121 */
548 fra.me.REG[4] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[4])(fra.me.REG[4]);
549 /* ./analysis//reachable_from_init_method_analysis_impl.nit:122 */
550 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
551 if (UNTAG_Bool(REGB0)) {
552 } else {
553 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
554 if (UNTAG_Bool(REGB1)) {
555 REGB1 = TAG_Bool(false);
556 REGB0 = REGB1;
557 } else {
558 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
559 REGB0 = REGB1;
560 }
561 }
562 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
563 if (UNTAG_Bool(REGB0)) {
564 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
565 }
566 }
567 }
568 }
569 }
570 }
571 }
572 /* ./analysis//reachable_from_init_method_analysis_impl.nit:124 */
573 CALL_SUPER_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
574 stack_frame_head = fra.me.prev;
575 return;
576 }
577 void OC_analysis___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){
578 struct {struct stack_frame_t me;} fra;
579 val_t REGB0;
580 val_t REGB1;
581 fun_t CREG[1];
582 val_t tmp;
583 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
584 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
585 fra.me.line = 0;
586 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
587 fra.me.has_broke = 0;
588 fra.me.REG_size = 1;
589 fra.me.REG[0] = NIT_NULL;
590 fra.me.closure_ctx = closctx_param;
591 fra.me.closure_funs = CREG;
592 fra.me.REG[0] = p0;
593 CREG[0] = clos_fun0;
594 /* ./analysis//reachable_from_init_method_analysis_impl.nit:97 */
595 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
596 if (UNTAG_Bool(REGB0)) {
597 /* ./analysis//reachable_from_init_method_analysis_impl.nit:98 */
598 fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
599 /* ./analysis//reachable_from_init_method_analysis_impl.nit:99 */
600 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
601 if (UNTAG_Bool(REGB0)) {
602 } else {
603 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
604 if (UNTAG_Bool(REGB1)) {
605 REGB1 = TAG_Bool(false);
606 REGB0 = REGB1;
607 } else {
608 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
609 REGB0 = REGB1;
610 }
611 }
612 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
613 if (UNTAG_Bool(REGB0)) {
614 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
615 }
616 }
617 stack_frame_head = fra.me.prev;
618 return;
619 }
620 void OC_analysis___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){
621 struct {struct stack_frame_t me;} fra;
622 val_t REGB0;
623 val_t REGB1;
624 fun_t CREG[1];
625 val_t tmp;
626 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
627 fra.me.file = LOCATE_analysis___reachable_from_init_method_analysis_impl;
628 fra.me.line = 0;
629 fra.me.meth = LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
630 fra.me.has_broke = 0;
631 fra.me.REG_size = 1;
632 fra.me.REG[0] = NIT_NULL;
633 fra.me.closure_ctx = closctx_param;
634 fra.me.closure_funs = CREG;
635 fra.me.REG[0] = p0;
636 CREG[0] = clos_fun0;
637 /* ./analysis//reachable_from_init_method_analysis_impl.nit:108 */
638 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
639 if (UNTAG_Bool(REGB0)) {
640 /* ./analysis//reachable_from_init_method_analysis_impl.nit:109 */
641 fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
642 closctx->REG[5] = fra.me.REG[0];
643 /* ./analysis//reachable_from_init_method_analysis_impl.nit:110 */
644 REGB0 = TAG_Bool(closctx->REG[5]==NIT_NULL);
645 if (UNTAG_Bool(REGB0)) {
646 } else {
647 REGB1 = TAG_Bool(closctx->REG[5]==NIT_NULL);
648 if (UNTAG_Bool(REGB1)) {
649 REGB1 = TAG_Bool(false);
650 REGB0 = REGB1;
651 } else {
652 REGB1 = CALL_standard___kernel___Object_____eqeq(closctx->REG[5])(closctx->REG[5], NIT_NULL);
653 REGB0 = REGB1;
654 }
655 }
656 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
657 if (UNTAG_Bool(REGB0)) {
658 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx->REG[2])(closctx->REG[2], closctx->REG[5]);
659 }
660 }
661 stack_frame_head = fra.me.prev;
662 return;
663 }