bench: add bench_typetest_languages
[nit.git] / c_src / analysis___inline_methods._sep.c
1 /* This C file is generated by NIT to compile module analysis___inline_methods. */
2 #include "analysis___inline_methods._sep.h"
3 void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val_t p1){
4 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_analysis___inline_methods;
10 fra.me.line = 27;
11 fra.me.meth = LOCATE_analysis___inline_methods___InlineMethodVisitor___visit_icode;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 10;
14 fra.me.nitni_local_ref_head = NULL;
15 fra.me.REG[0] = NIT_NULL;
16 fra.me.REG[1] = NIT_NULL;
17 fra.me.REG[2] = NIT_NULL;
18 fra.me.REG[3] = NIT_NULL;
19 fra.me.REG[4] = NIT_NULL;
20 fra.me.REG[5] = NIT_NULL;
21 fra.me.REG[6] = NIT_NULL;
22 fra.me.REG[7] = NIT_NULL;
23 fra.me.REG[8] = NIT_NULL;
24 fra.me.REG[9] = NIT_NULL;
25 fra.me.REG[0] = p0;
26 fra.me.REG[1] = p1;
27 /* analysis/inline_methods.nit:27 */
28 fra.me.REG[2] = fra.me.REG[0];
29 fra.me.REG[3] = fra.me.REG[1];
30 /* analysis/inline_methods.nit:29 */
31 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*/;
32 if (UNTAG_Bool(REGB0)) {
33 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34 if (UNTAG_Bool(REGB0)) {
35 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 29);
36 }
37 REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[3])(fra.me.REG[3]);
38 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39 } else {
40 REGB1 = TAG_Bool(false);
41 REGB0 = REGB1;
42 }
43 if (UNTAG_Bool(REGB0)) {
44 /* analysis/inline_methods.nit:30 */
45 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46 if (UNTAG_Bool(REGB0)) {
47 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 30);
48 }
49 fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
50 /* analysis/inline_methods.nit:31 */
51 fra.me.REG[4] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[4])(fra.me.REG[4]);
52 /* analysis/inline_methods.nit:32 */
53 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
54 if (UNTAG_Bool(REGB0)) {
55 } else {
56 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
57 if (UNTAG_Bool(REGB1)) {
58 REGB1 = TAG_Bool(false);
59 REGB0 = REGB1;
60 } else {
61 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
62 REGB0 = REGB1;
63 }
64 }
65 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
66 if (UNTAG_Bool(REGB0)) {
67 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
68 if (UNTAG_Bool(REGB0)) {
69 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 32);
70 }
71 REGB0 = CALL_analysis___inline_methods___ICall___is_inlinable(fra.me.REG[3])(fra.me.REG[3]);
72 } else {
73 REGB1 = TAG_Bool(false);
74 REGB0 = REGB1;
75 }
76 if (UNTAG_Bool(REGB0)) {
77 /* analysis/inline_methods.nit:33 */
78 REGB0 = TAG_Bool(ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra.me.REG[2])!=NIT_NULL);
79 if (UNTAG_Bool(REGB0)) {
80 } else {
81 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_analysis___inline_methods, 33);
82 }
83 fra.me.REG[5] = ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra.me.REG[2]);
84 /* analysis/inline_methods.nit:34 */
85 fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[5])(fra.me.REG[5]);
86 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[6],fra.me.REG[4]));
87 if (UNTAG_Bool(REGB0)) {
88 } else {
89 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
90 REGB0 = REGB1;
91 }
92 if (UNTAG_Bool(REGB0)) {
93 /* analysis/inline_methods.nit:37 */
94 fra.me.REG[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
95 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
96 if (UNTAG_Bool(REGB0)) {
97 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 37);
98 }
99 CALL_standard___collection___list___ListIterator___delete(fra.me.REG[6])(fra.me.REG[6]);
100 /* analysis/inline_methods.nit:38 */
101 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
102 if (UNTAG_Bool(REGB0)) {
103 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 38);
104 }
105 fra.me.REG[6] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
106 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
107 if (UNTAG_Bool(REGB0)) {
108 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 38);
109 }
110 fra.me.REG[7] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[3])(fra.me.REG[3]);
111 fra.me.REG[7] = NEW_IStaticCall_icode___icode_base___IStaticCall___init(fra.me.REG[6], fra.me.REG[7]);
112 /* analysis/inline_methods.nit:39 */
113 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
114 if (UNTAG_Bool(REGB0)) {
115 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 39);
116 }
117 fra.me.REG[6] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[3])(fra.me.REG[3]);
118 CALL_icode___icode_base___ICodeN___closure_defs__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
119 /* analysis/inline_methods.nit:40 */
120 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
121 if (UNTAG_Bool(REGB0)) {
122 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 40);
123 }
124 fra.me.REG[6] = CALL_icode___icode_base___ICode___result(fra.me.REG[3])(fra.me.REG[3]);
125 CALL_icode___icode_base___ICode___result__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
126 /* analysis/inline_methods.nit:41 */
127 fra.me.REG[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
128 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
129 if (UNTAG_Bool(REGB0)) {
130 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 41);
131 }
132 CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
133 /* analysis/inline_methods.nit:42 */
134 fra.me.REG[7] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
135 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
136 if (UNTAG_Bool(REGB0)) {
137 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 42);
138 }
139 CALL_standard___collection___list___ListIterator___delete(fra.me.REG[7])(fra.me.REG[7]);
140 } else {
141 /* analysis/inline_methods.nit:44 */
142 fra.me.REG[7] = NEW_ISeq_icode___icode_base___ISeq___init();
143 /* analysis/inline_methods.nit:45 */
144 fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[5])(fra.me.REG[5]);
145 /* analysis/inline_methods.nit:46 */
146 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
147 /* analysis/inline_methods.nit:47 */
148 fra.me.REG[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
149 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
150 if (UNTAG_Bool(REGB0)) {
151 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 47);
152 }
153 CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
154 /* analysis/inline_methods.nit:48 */
155 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
156 if (UNTAG_Bool(REGB0)) {
157 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 48);
158 }
159 fra.me.REG[8] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[3])(fra.me.REG[3]);
160 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
161 if (UNTAG_Bool(REGB0)) {
162 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 48);
163 }
164 fra.me.REG[9] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[3])(fra.me.REG[3]);
165 fra.me.REG[9] = CALL_icode___icode_tools___ICodeBuilder___inline_routine(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[8], fra.me.REG[9]);
166 /* analysis/inline_methods.nit:49 */
167 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
168 if (UNTAG_Bool(REGB0)) {
169 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 49);
170 }
171 fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[3])(fra.me.REG[3]);
172 /* analysis/inline_methods.nit:50 */
173 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
174 if (UNTAG_Bool(REGB0)) {
175 } else {
176 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
177 if (UNTAG_Bool(REGB1)) {
178 REGB1 = TAG_Bool(false);
179 REGB0 = REGB1;
180 } else {
181 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
182 REGB0 = REGB1;
183 }
184 }
185 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
186 if (UNTAG_Bool(REGB0)) {
187 /* analysis/inline_methods.nit:51 */
188 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
189 if (UNTAG_Bool(REGB0)) {
190 } else {
191 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
192 if (UNTAG_Bool(REGB1)) {
193 REGB1 = TAG_Bool(false);
194 REGB0 = REGB1;
195 } else {
196 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
197 REGB0 = REGB1;
198 }
199 }
200 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
201 if (UNTAG_Bool(REGB0)) {
202 } else {
203 nit_abort("Assert failed", NULL, LOCATE_analysis___inline_methods, 51);
204 }
205 /* analysis/inline_methods.nit:52 */
206 fra.me.REG[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
207 fra.me.REG[9] = NEW_IMove_icode___icode_base___IMove___init(fra.me.REG[3], fra.me.REG[9]);
208 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
209 if (UNTAG_Bool(REGB0)) {
210 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 52);
211 }
212 CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
213 }
214 /* analysis/inline_methods.nit:54 */
215 fra.me.REG[9] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
216 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
217 if (UNTAG_Bool(REGB0)) {
218 nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 54);
219 }
220 CALL_standard___collection___list___ListIterator___delete(fra.me.REG[9])(fra.me.REG[9]);
221 /* analysis/inline_methods.nit:55 */
222 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
223 /* analysis/inline_methods.nit:56 */
224 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
225 }
226 }
227 }
228 /* analysis/inline_methods.nit:60 */
229 CALL_SUPER_analysis___inline_methods___InlineMethodVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
230 stack_frame_head = fra.me.prev;
231 return;
232 }
233 void analysis___inline_methods___InlineMethodVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
234 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_analysis___inline_methods___InlineMethodVisitor].i;
235 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
236 val_t tmp;
237 if (init_table[itpos0]) return;
238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
239 fra.me.file = LOCATE_analysis___inline_methods;
240 fra.me.line = 63;
241 fra.me.meth = LOCATE_analysis___inline_methods___InlineMethodVisitor___init;
242 fra.me.has_broke = 0;
243 fra.me.REG_size = 4;
244 fra.me.nitni_local_ref_head = NULL;
245 fra.me.REG[0] = NIT_NULL;
246 fra.me.REG[1] = NIT_NULL;
247 fra.me.REG[2] = NIT_NULL;
248 fra.me.REG[3] = NIT_NULL;
249 fra.me.REG[0] = p0;
250 fra.me.REG[1] = p1;
251 fra.me.REG[2] = p2;
252 /* analysis/inline_methods.nit:63 */
253 fra.me.REG[3] = fra.me.REG[0];
254 CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
255 /* analysis/inline_methods.nit:65 */
256 fra.me.REG[2] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra.me.REG[1], fra.me.REG[2]);
257 ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra.me.REG[3]) = fra.me.REG[2];
258 stack_frame_head = fra.me.prev;
259 init_table[itpos0] = 1;
260 return;
261 }
262 val_t analysis___inline_methods___ICall___is_inlinable(val_t p0){
263 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
264 val_t REGB0;
265 val_t REGB1;
266 val_t REGB2;
267 val_t REGB3;
268 val_t tmp;
269 static val_t once_value_1; /* Once value */
270 static val_t once_value_2; /* Once value */
271 static val_t once_value_3; /* Once value */
272 static val_t once_value_4; /* Once value */
273 static val_t once_value_5; /* Once value */
274 static val_t once_value_6; /* Once value */
275 static val_t once_value_7; /* Once value */
276 static val_t once_value_8; /* Once value */
277 static val_t once_value_9; /* Once value */
278 static val_t once_value_10; /* Once value */
279 static val_t once_value_11; /* Once value */
280 static val_t once_value_12; /* Once value */
281 static val_t once_value_13; /* Once value */
282 static val_t once_value_14; /* Once value */
283 static val_t once_value_15; /* Once value */
284 static val_t once_value_16; /* Once value */
285 static val_t once_value_17; /* Once value */
286 static val_t once_value_18; /* Once value */
287 static val_t once_value_19; /* Once value */
288 static val_t once_value_20; /* Once value */
289 static val_t once_value_21; /* Once value */
290 static val_t once_value_22; /* Once value */
291 static val_t once_value_23; /* Once value */
292 static val_t once_value_24; /* Once value */
293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
294 fra.me.file = LOCATE_analysis___inline_methods;
295 fra.me.line = 70;
296 fra.me.meth = LOCATE_analysis___inline_methods___ICall___is_inlinable;
297 fra.me.has_broke = 0;
298 fra.me.REG_size = 4;
299 fra.me.nitni_local_ref_head = NULL;
300 fra.me.REG[0] = NIT_NULL;
301 fra.me.REG[1] = NIT_NULL;
302 fra.me.REG[2] = NIT_NULL;
303 fra.me.REG[3] = NIT_NULL;
304 fra.me.REG[0] = p0;
305 /* analysis/inline_methods.nit:72 */
306 fra.me.REG[0] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
307 /* analysis/inline_methods.nit:73 */
308 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
309 /* analysis/inline_methods.nit:74 */
310 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
311 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
312 /* analysis/inline_methods.nit:75 */
313 REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_intern(fra.me.REG[0])(fra.me.REG[0]);
314 if (UNTAG_Bool(REGB0)) {
315 if (!once_value_1) {
316 if (!once_value_2) {
317 fra.me.REG[3] = BOX_NativeString("Object");
318 REGB0 = TAG_Int(6);
319 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
320 once_value_2 = fra.me.REG[3];
321 register_static_object(&once_value_2);
322 } else fra.me.REG[3] = once_value_2;
323 fra.me.REG[3] = fra.me.REG[3];
324 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
325 once_value_1 = fra.me.REG[3];
326 register_static_object(&once_value_1);
327 } else fra.me.REG[3] = once_value_1;
328 fra.me.REG[3] = fra.me.REG[3];
329 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
330 if (UNTAG_Bool(REGB0)) {
331 } else {
332 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
333 REGB0 = REGB1;
334 }
335 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
336 } else {
337 REGB1 = TAG_Bool(false);
338 REGB0 = REGB1;
339 }
340 if (UNTAG_Bool(REGB0)) {
341 REGB0 = TAG_Bool(true);
342 } else {
343 /* analysis/inline_methods.nit:76 */
344 if (!once_value_3) {
345 if (!once_value_4) {
346 fra.me.REG[3] = BOX_NativeString("Int");
347 REGB1 = TAG_Int(3);
348 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
349 once_value_4 = fra.me.REG[3];
350 register_static_object(&once_value_4);
351 } else fra.me.REG[3] = once_value_4;
352 fra.me.REG[3] = fra.me.REG[3];
353 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
354 once_value_3 = fra.me.REG[3];
355 register_static_object(&once_value_3);
356 } else fra.me.REG[3] = once_value_3;
357 fra.me.REG[3] = fra.me.REG[3];
358 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
359 if (UNTAG_Bool(REGB1)) {
360 } else {
361 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
362 REGB1 = REGB2;
363 }
364 if (UNTAG_Bool(REGB1)) {
365 if (!once_value_5) {
366 if (!once_value_6) {
367 fra.me.REG[3] = BOX_NativeString("enumerate_to");
368 REGB1 = TAG_Int(12);
369 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
370 once_value_6 = fra.me.REG[3];
371 register_static_object(&once_value_6);
372 } else fra.me.REG[3] = once_value_6;
373 fra.me.REG[3] = fra.me.REG[3];
374 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
375 once_value_5 = fra.me.REG[3];
376 register_static_object(&once_value_5);
377 } else fra.me.REG[3] = once_value_5;
378 fra.me.REG[3] = fra.me.REG[3];
379 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
380 if (UNTAG_Bool(REGB1)) {
381 } else {
382 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
383 REGB1 = REGB2;
384 }
385 if (UNTAG_Bool(REGB1)) {
386 REGB1 = TAG_Bool(true);
387 } else {
388 if (!once_value_7) {
389 if (!once_value_8) {
390 fra.me.REG[3] = BOX_NativeString("enumerate_before");
391 REGB2 = TAG_Int(16);
392 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
393 once_value_8 = fra.me.REG[3];
394 register_static_object(&once_value_8);
395 } else fra.me.REG[3] = once_value_8;
396 fra.me.REG[3] = fra.me.REG[3];
397 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
398 once_value_7 = fra.me.REG[3];
399 register_static_object(&once_value_7);
400 } else fra.me.REG[3] = once_value_7;
401 fra.me.REG[3] = fra.me.REG[3];
402 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
403 if (UNTAG_Bool(REGB2)) {
404 } else {
405 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
406 REGB2 = REGB3;
407 }
408 REGB1 = REGB2;
409 }
410 } else {
411 REGB2 = TAG_Bool(false);
412 REGB1 = REGB2;
413 }
414 /* analysis/inline_methods.nit:75 */
415 REGB0 = REGB1;
416 }
417 if (UNTAG_Bool(REGB0)) {
418 REGB0 = TAG_Bool(true);
419 } else {
420 /* analysis/inline_methods.nit:77 */
421 if (!once_value_9) {
422 if (!once_value_10) {
423 fra.me.REG[3] = BOX_NativeString("Array");
424 REGB1 = TAG_Int(5);
425 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
426 once_value_10 = fra.me.REG[3];
427 register_static_object(&once_value_10);
428 } else fra.me.REG[3] = once_value_10;
429 fra.me.REG[3] = fra.me.REG[3];
430 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
431 once_value_9 = fra.me.REG[3];
432 register_static_object(&once_value_9);
433 } else fra.me.REG[3] = once_value_9;
434 fra.me.REG[3] = fra.me.REG[3];
435 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
436 if (UNTAG_Bool(REGB1)) {
437 } else {
438 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
439 REGB1 = REGB2;
440 }
441 if (UNTAG_Bool(REGB1)) {
442 if (!once_value_11) {
443 if (!once_value_12) {
444 fra.me.REG[3] = BOX_NativeString("length");
445 REGB1 = TAG_Int(6);
446 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
447 once_value_12 = fra.me.REG[3];
448 register_static_object(&once_value_12);
449 } else fra.me.REG[3] = once_value_12;
450 fra.me.REG[3] = fra.me.REG[3];
451 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
452 once_value_11 = fra.me.REG[3];
453 register_static_object(&once_value_11);
454 } else fra.me.REG[3] = once_value_11;
455 fra.me.REG[3] = fra.me.REG[3];
456 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
457 if (UNTAG_Bool(REGB1)) {
458 } else {
459 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
460 REGB1 = REGB2;
461 }
462 if (UNTAG_Bool(REGB1)) {
463 REGB1 = TAG_Bool(true);
464 } else {
465 if (!once_value_13) {
466 if (!once_value_14) {
467 fra.me.REG[3] = BOX_NativeString("[]");
468 REGB2 = TAG_Int(2);
469 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
470 once_value_14 = fra.me.REG[3];
471 register_static_object(&once_value_14);
472 } else fra.me.REG[3] = once_value_14;
473 fra.me.REG[3] = fra.me.REG[3];
474 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
475 once_value_13 = fra.me.REG[3];
476 register_static_object(&once_value_13);
477 } else fra.me.REG[3] = once_value_13;
478 fra.me.REG[3] = fra.me.REG[3];
479 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
480 if (UNTAG_Bool(REGB2)) {
481 } else {
482 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
483 REGB2 = REGB3;
484 }
485 REGB1 = REGB2;
486 }
487 if (UNTAG_Bool(REGB1)) {
488 REGB1 = TAG_Bool(true);
489 } else {
490 if (!once_value_15) {
491 if (!once_value_16) {
492 fra.me.REG[3] = BOX_NativeString("iterate");
493 REGB2 = TAG_Int(7);
494 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
495 once_value_16 = fra.me.REG[3];
496 register_static_object(&once_value_16);
497 } else fra.me.REG[3] = once_value_16;
498 fra.me.REG[3] = fra.me.REG[3];
499 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
500 once_value_15 = fra.me.REG[3];
501 register_static_object(&once_value_15);
502 } else fra.me.REG[3] = once_value_15;
503 fra.me.REG[3] = fra.me.REG[3];
504 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
505 if (UNTAG_Bool(REGB2)) {
506 } else {
507 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
508 REGB2 = REGB3;
509 }
510 REGB1 = REGB2;
511 }
512 } else {
513 REGB2 = TAG_Bool(false);
514 REGB1 = REGB2;
515 }
516 /* analysis/inline_methods.nit:75 */
517 REGB0 = REGB1;
518 }
519 if (UNTAG_Bool(REGB0)) {
520 REGB0 = TAG_Bool(true);
521 } else {
522 /* analysis/inline_methods.nit:78 */
523 if (!once_value_17) {
524 if (!once_value_18) {
525 fra.me.REG[3] = BOX_NativeString("AbstractArrayRead");
526 REGB1 = TAG_Int(17);
527 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
528 once_value_18 = fra.me.REG[3];
529 register_static_object(&once_value_18);
530 } else fra.me.REG[3] = once_value_18;
531 fra.me.REG[3] = fra.me.REG[3];
532 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
533 once_value_17 = fra.me.REG[3];
534 register_static_object(&once_value_17);
535 } else fra.me.REG[3] = once_value_17;
536 fra.me.REG[3] = fra.me.REG[3];
537 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
538 if (UNTAG_Bool(REGB1)) {
539 } else {
540 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
541 REGB1 = REGB2;
542 }
543 if (UNTAG_Bool(REGB1)) {
544 if (!once_value_19) {
545 if (!once_value_20) {
546 fra.me.REG[3] = BOX_NativeString("length");
547 REGB1 = TAG_Int(6);
548 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
549 once_value_20 = fra.me.REG[3];
550 register_static_object(&once_value_20);
551 } else fra.me.REG[3] = once_value_20;
552 fra.me.REG[3] = fra.me.REG[3];
553 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
554 once_value_19 = fra.me.REG[3];
555 register_static_object(&once_value_19);
556 } else fra.me.REG[3] = once_value_19;
557 fra.me.REG[3] = fra.me.REG[3];
558 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
559 if (UNTAG_Bool(REGB1)) {
560 } else {
561 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
562 REGB1 = REGB2;
563 }
564 if (UNTAG_Bool(REGB1)) {
565 REGB1 = TAG_Bool(true);
566 } else {
567 if (!once_value_21) {
568 if (!once_value_22) {
569 fra.me.REG[3] = BOX_NativeString("[]");
570 REGB2 = TAG_Int(2);
571 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
572 once_value_22 = fra.me.REG[3];
573 register_static_object(&once_value_22);
574 } else fra.me.REG[3] = once_value_22;
575 fra.me.REG[3] = fra.me.REG[3];
576 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
577 once_value_21 = fra.me.REG[3];
578 register_static_object(&once_value_21);
579 } else fra.me.REG[3] = once_value_21;
580 fra.me.REG[3] = fra.me.REG[3];
581 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
582 if (UNTAG_Bool(REGB2)) {
583 } else {
584 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
585 REGB2 = REGB3;
586 }
587 REGB1 = REGB2;
588 }
589 } else {
590 REGB2 = TAG_Bool(false);
591 REGB1 = REGB2;
592 }
593 /* analysis/inline_methods.nit:75 */
594 REGB0 = REGB1;
595 }
596 if (UNTAG_Bool(REGB0)) {
597 REGB0 = TAG_Bool(true);
598 } else {
599 /* analysis/inline_methods.nit:79 */
600 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
601 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
602 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
603 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
604 if (!once_value_23) {
605 if (!once_value_24) {
606 fra.me.REG[3] = BOX_NativeString("Inline__");
607 REGB1 = TAG_Int(8);
608 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
609 once_value_24 = fra.me.REG[3];
610 register_static_object(&once_value_24);
611 } else fra.me.REG[3] = once_value_24;
612 fra.me.REG[3] = fra.me.REG[3];
613 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
614 once_value_23 = fra.me.REG[3];
615 register_static_object(&once_value_23);
616 } else fra.me.REG[3] = once_value_23;
617 fra.me.REG[3] = fra.me.REG[3];
618 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[3]));
619 if (UNTAG_Bool(REGB1)) {
620 } else {
621 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
622 REGB1 = REGB2;
623 }
624 /* analysis/inline_methods.nit:75 */
625 REGB0 = REGB1;
626 }
627 goto label25;
628 label25: while(0);
629 stack_frame_head = fra.me.prev;
630 return REGB0;
631 }
632 void analysis___inline_methods___IRoutine___inline_methods(val_t p0, val_t p1){
633 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
634 val_t tmp;
635 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
636 fra.me.file = LOCATE_analysis___inline_methods;
637 fra.me.line = 84;
638 fra.me.meth = LOCATE_analysis___inline_methods___IRoutine___inline_methods;
639 fra.me.has_broke = 0;
640 fra.me.REG_size = 2;
641 fra.me.nitni_local_ref_head = NULL;
642 fra.me.REG[0] = NIT_NULL;
643 fra.me.REG[1] = NIT_NULL;
644 fra.me.REG[0] = p0;
645 fra.me.REG[1] = p1;
646 /* analysis/inline_methods.nit:86 */
647 fra.me.REG[1] = NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init(fra.me.REG[1], fra.me.REG[0]);
648 /* analysis/inline_methods.nit:87 */
649 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
650 stack_frame_head = fra.me.prev;
651 return;
652 }