update c_src (now with ffi)
[nit.git] / c_src / global___reachable_as_init_impl._sep.c
1 /* This C file is generated by NIT to compile module global___reachable_as_init_impl. */
2 #include "global___reachable_as_init_impl._sep.h"
3 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___context[] = "reachable_as_init_impl::ReachableAsInitBuilder::context";
4 val_t global___reachable_as_init_impl___ReachableAsInitBuilder___context(val_t p0){
5 struct {struct stack_frame_t me;} fra;
6 val_t REGB0;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_global___reachable_as_init_impl;
10 fra.me.line = 24;
11 fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___context;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 1;
14 fra.me.nitni_local_ref_head = NULL;
15 fra.me.REG[0] = NIT_NULL;
16 fra.me.REG[0] = p0;
17 /* global/reachable_as_init_impl.nit:24 */
18 REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____context(fra.me.REG[0])!=NIT_NULL);
19 if (UNTAG_Bool(REGB0)) {
20 } else {
21 nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___reachable_as_init_impl, 24);
22 }
23 fra.me.REG[0] = ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____context(fra.me.REG[0]);
24 stack_frame_head = fra.me.prev;
25 return fra.me.REG[0];
26 }
27 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___program[] = "reachable_as_init_impl::ReachableAsInitBuilder::program";
28 val_t global___reachable_as_init_impl___ReachableAsInitBuilder___program(val_t p0){
29 struct {struct stack_frame_t me;} fra;
30 val_t REGB0;
31 val_t tmp;
32 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33 fra.me.file = LOCATE_global___reachable_as_init_impl;
34 fra.me.line = 25;
35 fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___program;
36 fra.me.has_broke = 0;
37 fra.me.REG_size = 1;
38 fra.me.nitni_local_ref_head = NULL;
39 fra.me.REG[0] = NIT_NULL;
40 fra.me.REG[0] = p0;
41 /* global/reachable_as_init_impl.nit:25 */
42 REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____program(fra.me.REG[0])!=NIT_NULL);
43 if (UNTAG_Bool(REGB0)) {
44 } else {
45 nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___reachable_as_init_impl, 25);
46 }
47 fra.me.REG[0] = ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____program(fra.me.REG[0]);
48 stack_frame_head = fra.me.prev;
49 return fra.me.REG[0];
50 }
51 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___work[] = "reachable_as_init_impl::ReachableAsInitBuilder::work";
52 void global___reachable_as_init_impl___ReachableAsInitBuilder___work(val_t p0){
53 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
54 val_t tmp;
55 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
56 fra.me.file = LOCATE_global___reachable_as_init_impl;
57 fra.me.line = 27;
58 fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___work;
59 fra.me.has_broke = 0;
60 fra.me.REG_size = 2;
61 fra.me.nitni_local_ref_head = NULL;
62 fra.me.REG[0] = NIT_NULL;
63 fra.me.REG[1] = NIT_NULL;
64 fra.me.REG[0] = p0;
65 /* global/reachable_as_init_impl.nit:28 */
66 fra.me.REG[1] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
67 CALL_program___Program___with_each_iroutines(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_global___reachable_as_init_impl___ReachableAsInitBuilder___work_1));
68 stack_frame_head = fra.me.prev;
69 return;
70 }
71 void OC_global___reachable_as_init_impl___ReachableAsInitBuilder___work_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
72 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
73 val_t REGB0;
74 val_t tmp;
75 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
76 fra.me.file = LOCATE_global___reachable_as_init_impl;
77 fra.me.line = 28;
78 fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___work;
79 fra.me.has_broke = 0;
80 fra.me.REG_size = 2;
81 fra.me.nitni_local_ref_head = NULL;
82 fra.me.REG[0] = NIT_NULL;
83 fra.me.REG[1] = NIT_NULL;
84 fra.me.REG[0] = p0;
85 fra.me.REG[1] = p1;
86 /* global/reachable_as_init_impl.nit:29 */
87 fra.me.REG[1] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___program(closctx->REG[0])(closctx->REG[0]);
88 fra.me.REG[1] = CALL_global___reachable_method_analysis___Program___rma(fra.me.REG[1])(fra.me.REG[1]);
89 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
90 if (UNTAG_Bool(REGB0)) {
91 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 29);
92 }
93 REGB0 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
94 if (UNTAG_Bool(REGB0)) {
95 /* global/reachable_as_init_impl.nit:30 */
96 fra.me.REG[1] = NEW_RAIVisitor_global___reachable_as_init_impl___RAIVisitor___init(closctx->REG[0]);
97 /* global/reachable_as_init_impl.nit:31 */
98 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
99 }
100 stack_frame_head = fra.me.prev;
101 return;
102 }
103 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___init[] = "reachable_as_init_impl::ReachableAsInitBuilder::init";
104 void global___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0, val_t p1, int* init_table){
105 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_as_init_impl___ReachableAsInitBuilder].i;
106 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
107 val_t tmp;
108 if (init_table[itpos0]) return;
109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
110 fra.me.file = LOCATE_global___reachable_as_init_impl;
111 fra.me.line = 36;
112 fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___init;
113 fra.me.has_broke = 0;
114 fra.me.REG_size = 2;
115 fra.me.nitni_local_ref_head = NULL;
116 fra.me.REG[0] = NIT_NULL;
117 fra.me.REG[1] = NIT_NULL;
118 fra.me.REG[0] = p0;
119 fra.me.REG[1] = p1;
120 /* global/reachable_as_init_impl.nit:37 */
121 ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____program(fra.me.REG[0]) = fra.me.REG[1];
122 stack_frame_head = fra.me.prev;
123 init_table[itpos0] = 1;
124 return;
125 }
126 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init[] = "reachable_as_init_impl::ReachableAsInitAnalysisImpl::(reachable_as_init::ReachableAsInitAnalysis::is_method_reachable_as_init)";
127 val_t global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init(val_t p0, val_t p1, val_t p2){
128 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
129 val_t REGB0;
130 val_t REGB1;
131 val_t tmp;
132 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
133 fra.me.file = LOCATE_global___reachable_as_init_impl;
134 fra.me.line = 47;
135 fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init;
136 fra.me.has_broke = 0;
137 fra.me.REG_size = 4;
138 fra.me.nitni_local_ref_head = NULL;
139 fra.me.REG[0] = NIT_NULL;
140 fra.me.REG[1] = NIT_NULL;
141 fra.me.REG[2] = NIT_NULL;
142 fra.me.REG[3] = NIT_NULL;
143 fra.me.REG[0] = p0;
144 fra.me.REG[1] = p1;
145 fra.me.REG[2] = p2;
146 /* global/reachable_as_init_impl.nit:48 */
147 REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0])!=NIT_NULL);
148 if (UNTAG_Bool(REGB0)) {
149 } else {
150 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 48);
151 }
152 fra.me.REG[3] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0]);
153 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
154 if (UNTAG_Bool(REGB0)) {
155 REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0])!=NIT_NULL);
156 if (UNTAG_Bool(REGB0)) {
157 } else {
158 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 48);
159 }
160 fra.me.REG[0] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[0]);
161 fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
162 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
163 if (UNTAG_Bool(REGB0)) {
164 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 48);
165 }
166 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
167 goto label1;
168 }
169 /* global/reachable_as_init_impl.nit:49 */
170 REGB1 = TAG_Bool(0);
171 REGB0 = REGB1;
172 goto label1;
173 label1: while(0);
174 stack_frame_head = fra.me.prev;
175 return REGB0;
176 }
177 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init[] = "reachable_as_init_impl::ReachableAsInitAnalysisImpl::init";
178 void global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(val_t p0, int* init_table){
179 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl].i;
180 struct {struct stack_frame_t me;} fra;
181 val_t tmp;
182 if (init_table[itpos1]) return;
183 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
184 fra.me.file = LOCATE_global___reachable_as_init_impl;
185 fra.me.line = 52;
186 fra.me.meth = LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init;
187 fra.me.has_broke = 0;
188 fra.me.REG_size = 1;
189 fra.me.nitni_local_ref_head = NULL;
190 fra.me.REG[0] = NIT_NULL;
191 fra.me.REG[0] = p0;
192 stack_frame_head = fra.me.prev;
193 init_table[itpos1] = 1;
194 return;
195 }
196 static const char LOCATE_global___reachable_as_init_impl___RAIVisitor___builder[] = "reachable_as_init_impl::RAIVisitor::builder";
197 val_t global___reachable_as_init_impl___RAIVisitor___builder(val_t p0){
198 struct {struct stack_frame_t me;} fra;
199 val_t REGB0;
200 val_t tmp;
201 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
202 fra.me.file = LOCATE_global___reachable_as_init_impl;
203 fra.me.line = 57;
204 fra.me.meth = LOCATE_global___reachable_as_init_impl___RAIVisitor___builder;
205 fra.me.has_broke = 0;
206 fra.me.REG_size = 1;
207 fra.me.nitni_local_ref_head = NULL;
208 fra.me.REG[0] = NIT_NULL;
209 fra.me.REG[0] = p0;
210 /* global/reachable_as_init_impl.nit:57 */
211 REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___RAIVisitor____builder(fra.me.REG[0])!=NIT_NULL);
212 if (UNTAG_Bool(REGB0)) {
213 } else {
214 nit_abort("Uninitialized attribute %s", "_builder", LOCATE_global___reachable_as_init_impl, 57);
215 }
216 fra.me.REG[0] = ATTR_global___reachable_as_init_impl___RAIVisitor____builder(fra.me.REG[0]);
217 stack_frame_head = fra.me.prev;
218 return fra.me.REG[0];
219 }
220 static const char LOCATE_global___reachable_as_init_impl___RAIVisitor___visit_icode[] = "reachable_as_init_impl::RAIVisitor::(icode_tools::ICodeVisitor::visit_icode)";
221 void global___reachable_as_init_impl___RAIVisitor___visit_icode(val_t p0, val_t p1){
222 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
223 val_t REGB0;
224 val_t tmp;
225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
226 fra.me.file = LOCATE_global___reachable_as_init_impl;
227 fra.me.line = 59;
228 fra.me.meth = LOCATE_global___reachable_as_init_impl___RAIVisitor___visit_icode;
229 fra.me.has_broke = 0;
230 fra.me.REG_size = 7;
231 fra.me.nitni_local_ref_head = NULL;
232 fra.me.REG[0] = NIT_NULL;
233 fra.me.REG[1] = NIT_NULL;
234 fra.me.REG[2] = NIT_NULL;
235 fra.me.REG[3] = NIT_NULL;
236 fra.me.REG[4] = NIT_NULL;
237 fra.me.REG[5] = NIT_NULL;
238 fra.me.REG[6] = NIT_NULL;
239 fra.me.REG[0] = p0;
240 fra.me.REG[1] = p1;
241 /* global/reachable_as_init_impl.nit:59 */
242 fra.me.REG[2] = fra.me.REG[0];
243 fra.me.REG[3] = fra.me.REG[1];
244 /* global/reachable_as_init_impl.nit:61 */
245 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*/;
246 if (UNTAG_Bool(REGB0)) {
247 /* global/reachable_as_init_impl.nit:63 */
248 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
249 if (UNTAG_Bool(REGB0)) {
250 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 63);
251 }
252 fra.me.REG[4] = CALL_icode___icode_base___INew___stype(fra.me.REG[3])(fra.me.REG[3]);
253 /* global/reachable_as_init_impl.nit:64 */
254 fra.me.REG[5] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
255 fra.me.REG[5] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___program(fra.me.REG[5])(fra.me.REG[5]);
256 fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
257 fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
258 fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
259 /* global/reachable_as_init_impl.nit:65 */
260 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
261 if (UNTAG_Bool(REGB0)) {
262 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 65);
263 }
264 fra.me.REG[3] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
265 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
266 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
267 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
268 if (UNTAG_Bool(REGB0)) {
269 } else {
270 nit_abort("Cast failed", NULL, LOCATE_global___reachable_as_init_impl, 65);
271 }
272 /* global/reachable_as_init_impl.nit:66 */
273 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
274 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
275 if (UNTAG_Bool(REGB0)) {
276 } else {
277 nit_abort("Assert failed", NULL, LOCATE_global___reachable_as_init_impl, 66);
278 }
279 /* global/reachable_as_init_impl.nit:67 */
280 fra.me.REG[4] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
281 fra.me.REG[4] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[4])(fra.me.REG[4]);
282 REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4])!=NIT_NULL);
283 if (UNTAG_Bool(REGB0)) {
284 } else {
285 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 67);
286 }
287 fra.me.REG[4] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4]);
288 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
289 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
290 if (UNTAG_Bool(REGB0)) {
291 fra.me.REG[4] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
292 fra.me.REG[4] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[4])(fra.me.REG[4]);
293 REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4])!=NIT_NULL);
294 if (UNTAG_Bool(REGB0)) {
295 } else {
296 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 67);
297 }
298 fra.me.REG[4] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[4]);
299 fra.me.REG[6] = NEW_List_standard___collection___list___List___init();
300 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]);
301 }
302 /* global/reachable_as_init_impl.nit:68 */
303 fra.me.REG[6] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
304 fra.me.REG[6] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[6])(fra.me.REG[6]);
305 REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[6])!=NIT_NULL);
306 if (UNTAG_Bool(REGB0)) {
307 } else {
308 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 68);
309 }
310 fra.me.REG[6] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[6]);
311 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
312 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
313 if (UNTAG_Bool(REGB0)) {
314 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 68);
315 }
316 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
317 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
318 if (UNTAG_Bool(REGB0)) {
319 fra.me.REG[2] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
320 fra.me.REG[2] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[2])(fra.me.REG[2]);
321 REGB0 = TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[2])!=NIT_NULL);
322 if (UNTAG_Bool(REGB0)) {
323 } else {
324 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl, 68);
325 }
326 fra.me.REG[2] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra.me.REG[2]);
327 fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
328 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
329 if (UNTAG_Bool(REGB0)) {
330 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_as_init_impl, 68);
331 }
332 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
333 }
334 }
335 /* global/reachable_as_init_impl.nit:70 */
336 CALL_SUPER_global___reachable_as_init_impl___RAIVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
337 stack_frame_head = fra.me.prev;
338 return;
339 }
340 static const char LOCATE_global___reachable_as_init_impl___RAIVisitor___init[] = "reachable_as_init_impl::RAIVisitor::init";
341 void global___reachable_as_init_impl___RAIVisitor___init(val_t p0, val_t p1, int* init_table){
342 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_as_init_impl___RAIVisitor].i;
343 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
344 val_t tmp;
345 if (init_table[itpos2]) return;
346 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
347 fra.me.file = LOCATE_global___reachable_as_init_impl;
348 fra.me.line = 73;
349 fra.me.meth = LOCATE_global___reachable_as_init_impl___RAIVisitor___init;
350 fra.me.has_broke = 0;
351 fra.me.REG_size = 3;
352 fra.me.nitni_local_ref_head = NULL;
353 fra.me.REG[0] = NIT_NULL;
354 fra.me.REG[1] = NIT_NULL;
355 fra.me.REG[2] = NIT_NULL;
356 fra.me.REG[0] = p0;
357 fra.me.REG[1] = p1;
358 /* global/reachable_as_init_impl.nit:73 */
359 fra.me.REG[2] = fra.me.REG[0];
360 CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
361 /* global/reachable_as_init_impl.nit:75 */
362 ATTR_global___reachable_as_init_impl___RAIVisitor____builder(fra.me.REG[2]) = fra.me.REG[1];
363 stack_frame_head = fra.me.prev;
364 init_table[itpos2] = 1;
365 return;
366 }