c_src: update
[nit.git] / c_src / inline_methods._sep.c
1 /* This C file is generated by NIT to compile module inline_methods. */
2 #include "inline_methods._sep.h"
3 void 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_inline_methods;
10 fra.me.line = 29;
11 fra.me.meth = LOCATE_inline_methods___InlineMethodVisitor___visit_icode;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 10;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[2] = NIT_NULL;
17 fra.me.REG[3] = NIT_NULL;
18 fra.me.REG[4] = NIT_NULL;
19 fra.me.REG[5] = NIT_NULL;
20 fra.me.REG[6] = NIT_NULL;
21 fra.me.REG[7] = NIT_NULL;
22 fra.me.REG[8] = NIT_NULL;
23 fra.me.REG[9] = NIT_NULL;
24 fra.me.REG[0] = p0;
25 fra.me.REG[1] = p1;
26 fra.me.REG[2] = fra.me.REG[0];
27 fra.me.REG[3] = fra.me.REG[1];
28 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_ICall, ID_ICall)) /*cast ICall*/;
29 /* ./analysis//inline_methods.nit:31 */
30 if (UNTAG_Bool(REGB0)) {
31 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32 /* ./analysis//inline_methods.nit:32 */
33 if (UNTAG_Bool(REGB0)) {
34 fprintf(stderr, "Reciever is null");
35 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 32);
36 nit_exit(1);
37 }
38 fra.me.REG[4] = CALL_icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
39 fra.me.REG[4] = CALL_icode_base___MMMethod___iroutine(fra.me.REG[4])(fra.me.REG[4]);
40 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
41 /* ./analysis//inline_methods.nit:34 */
42 if (UNTAG_Bool(REGB0)) {
43 } else {
44 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
45 if (UNTAG_Bool(REGB1)) {
46 REGB1 = TAG_Bool(false);
47 REGB0 = REGB1;
48 } else {
49 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
50 REGB0 = REGB1;
51 }
52 }
53 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
54 if (UNTAG_Bool(REGB0)) {
55 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
56 if (UNTAG_Bool(REGB0)) {
57 fprintf(stderr, "Reciever is null");
58 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 34);
59 nit_exit(1);
60 }
61 REGB0 = CALL_inline_methods___ICall___is_inlinable(fra.me.REG[3])(fra.me.REG[3]);
62 } else {
63 REGB1 = TAG_Bool(false);
64 REGB0 = REGB1;
65 }
66 if (UNTAG_Bool(REGB0)) {
67 REGB0 = TAG_Bool(ATTR_inline_methods___InlineMethodVisitor____current_inlining(fra.me.REG[2])!=NIT_NULL);
68 /* ./analysis//inline_methods.nit:35 */
69 if (UNTAG_Bool(REGB0)) {
70 } else {
71 fprintf(stderr, "Uninitialized attribute %s", "_current_inlining");
72 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 35);
73 nit_exit(1);
74 }
75 fra.me.REG[5] = ATTR_inline_methods___InlineMethodVisitor____current_inlining(fra.me.REG[2]);
76 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
77 if (UNTAG_Bool(REGB0)) {
78 fra.me.REG[5] = CALL_icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
79 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
80 /* ./analysis//inline_methods.nit:38 */
81 if (UNTAG_Bool(REGB0)) {
82 fprintf(stderr, "Reciever is null");
83 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 38);
84 nit_exit(1);
85 }
86 CALL_list___ListIterator___delete(fra.me.REG[5])(fra.me.REG[5]);
87 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
88 /* ./analysis//inline_methods.nit:39 */
89 if (UNTAG_Bool(REGB0)) {
90 fprintf(stderr, "Reciever is null");
91 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 39);
92 nit_exit(1);
93 }
94 fra.me.REG[5] = CALL_icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
95 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
96 if (UNTAG_Bool(REGB0)) {
97 fprintf(stderr, "Reciever is null");
98 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 39);
99 nit_exit(1);
100 }
101 fra.me.REG[6] = CALL_icode_base___ICodeN___exprs(fra.me.REG[3])(fra.me.REG[3]);
102 fra.me.REG[6] = NEW_IStaticCall_icode_base___IStaticCall___init(fra.me.REG[5], fra.me.REG[6]);
103 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
104 /* ./analysis//inline_methods.nit:40 */
105 if (UNTAG_Bool(REGB0)) {
106 fprintf(stderr, "Reciever is null");
107 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 40);
108 nit_exit(1);
109 }
110 fra.me.REG[5] = CALL_icode_base___ICodeN___closure_defs(fra.me.REG[3])(fra.me.REG[3]);
111 CALL_icode_base___ICodeN___closure_defs__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
112 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
113 /* ./analysis//inline_methods.nit:41 */
114 if (UNTAG_Bool(REGB0)) {
115 fprintf(stderr, "Reciever is null");
116 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 41);
117 nit_exit(1);
118 }
119 fra.me.REG[5] = CALL_icode_base___ICode___result(fra.me.REG[3])(fra.me.REG[3]);
120 CALL_icode_base___ICode___result__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
121 fra.me.REG[5] = CALL_icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
122 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
123 /* ./analysis//inline_methods.nit:42 */
124 if (UNTAG_Bool(REGB0)) {
125 fprintf(stderr, "Reciever is null");
126 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 42);
127 nit_exit(1);
128 }
129 CALL_list___ListIterator___insert_before(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
130 fra.me.REG[6] = CALL_icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
131 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
132 /* ./analysis//inline_methods.nit:43 */
133 if (UNTAG_Bool(REGB0)) {
134 fprintf(stderr, "Reciever is null");
135 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 43);
136 nit_exit(1);
137 }
138 CALL_list___ListIterator___delete(fra.me.REG[6])(fra.me.REG[6]);
139 } else {
140 REGB0 = TAG_Bool(ATTR_inline_methods___InlineMethodVisitor____icb(fra.me.REG[2])!=NIT_NULL);
141 /* ./analysis//inline_methods.nit:45 */
142 if (UNTAG_Bool(REGB0)) {
143 } else {
144 fprintf(stderr, "Uninitialized attribute %s", "_icb");
145 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 45);
146 nit_exit(1);
147 }
148 fra.me.REG[6] = ATTR_inline_methods___InlineMethodVisitor____icb(fra.me.REG[2]);
149 REGB0 = TAG_Bool(ATTR_inline_methods___InlineMethodVisitor____current_inlining(fra.me.REG[2])!=NIT_NULL);
150 /* ./analysis//inline_methods.nit:46 */
151 if (UNTAG_Bool(REGB0)) {
152 } else {
153 fprintf(stderr, "Uninitialized attribute %s", "_current_inlining");
154 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 46);
155 nit_exit(1);
156 }
157 fra.me.REG[5] = ATTR_inline_methods___InlineMethodVisitor____current_inlining(fra.me.REG[2]);
158 CALL_abstract_collection___Sequence___push(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
159 fra.me.REG[5] = NEW_ISeq_icode_base___ISeq___init();
160 fra.me.REG[7] = CALL_icode_builder___ICodeBuilder___seq(fra.me.REG[6])(fra.me.REG[6]);
161 /* ./analysis//inline_methods.nit:49 */
162 CALL_icode_builder___ICodeBuilder___seq__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
163 fra.me.REG[8] = CALL_icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
164 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
165 /* ./analysis//inline_methods.nit:50 */
166 if (UNTAG_Bool(REGB0)) {
167 fprintf(stderr, "Reciever is null");
168 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 50);
169 nit_exit(1);
170 }
171 CALL_list___ListIterator___insert_before(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
172 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
173 /* ./analysis//inline_methods.nit:51 */
174 if (UNTAG_Bool(REGB0)) {
175 fprintf(stderr, "Reciever is null");
176 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 51);
177 nit_exit(1);
178 }
179 fra.me.REG[8] = CALL_icode_base___ICodeN___exprs(fra.me.REG[3])(fra.me.REG[3]);
180 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
181 if (UNTAG_Bool(REGB0)) {
182 fprintf(stderr, "Reciever is null");
183 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 51);
184 nit_exit(1);
185 }
186 fra.me.REG[9] = CALL_icode_base___ICodeN___closure_defs(fra.me.REG[3])(fra.me.REG[3]);
187 fra.me.REG[9] = CALL_icode_tools___ICodeBuilder___inline_routine(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4], fra.me.REG[8], fra.me.REG[9]);
188 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
189 /* ./analysis//inline_methods.nit:52 */
190 if (UNTAG_Bool(REGB0)) {
191 fprintf(stderr, "Reciever is null");
192 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 52);
193 nit_exit(1);
194 }
195 fra.me.REG[3] = CALL_icode_base___ICode___result(fra.me.REG[3])(fra.me.REG[3]);
196 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
197 /* ./analysis//inline_methods.nit:53 */
198 if (UNTAG_Bool(REGB0)) {
199 } else {
200 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
201 if (UNTAG_Bool(REGB1)) {
202 REGB1 = TAG_Bool(false);
203 REGB0 = REGB1;
204 } else {
205 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
206 REGB0 = REGB1;
207 }
208 }
209 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
210 if (UNTAG_Bool(REGB0)) {
211 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
212 /* ./analysis//inline_methods.nit:54 */
213 if (UNTAG_Bool(REGB0)) {
214 } else {
215 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
216 if (UNTAG_Bool(REGB1)) {
217 REGB1 = TAG_Bool(false);
218 REGB0 = REGB1;
219 } else {
220 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
221 REGB0 = REGB1;
222 }
223 }
224 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
225 if (UNTAG_Bool(REGB0)) {
226 } else {
227 fprintf(stderr, "Assert failed");
228 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 54);
229 nit_exit(1);
230 }
231 fra.me.REG[8] = CALL_icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
232 fra.me.REG[9] = NEW_IMove_icode_base___IMove___init(fra.me.REG[3], fra.me.REG[9]);
233 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
234 /* ./analysis//inline_methods.nit:55 */
235 if (UNTAG_Bool(REGB0)) {
236 fprintf(stderr, "Reciever is null");
237 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 55);
238 nit_exit(1);
239 }
240 CALL_list___ListIterator___insert_before(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
241 }
242 fra.me.REG[9] = CALL_icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]);
243 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
244 /* ./analysis//inline_methods.nit:57 */
245 if (UNTAG_Bool(REGB0)) {
246 fprintf(stderr, "Reciever is null");
247 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 57);
248 nit_exit(1);
249 }
250 CALL_list___ListIterator___delete(fra.me.REG[9])(fra.me.REG[9]);
251 /* ./analysis//inline_methods.nit:58 */
252 CALL_icode_builder___ICodeBuilder___seq__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
253 /* ./analysis//inline_methods.nit:59 */
254 CALL_icode_tools___ICodeVisitor___visit_icode(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
255 REGB0 = TAG_Bool(ATTR_inline_methods___InlineMethodVisitor____current_inlining(fra.me.REG[2])!=NIT_NULL);
256 /* ./analysis//inline_methods.nit:60 */
257 if (UNTAG_Bool(REGB0)) {
258 } else {
259 fprintf(stderr, "Uninitialized attribute %s", "_current_inlining");
260 fprintf(stderr, " (%s:%d)\n", LOCATE_inline_methods, 60);
261 nit_exit(1);
262 }
263 fra.me.REG[2] = ATTR_inline_methods___InlineMethodVisitor____current_inlining(fra.me.REG[2]);
264 CALL_abstract_collection___Sequence___pop(fra.me.REG[2])(fra.me.REG[2]);
265 }
266 }
267 }
268 /* ./analysis//inline_methods.nit:64 */
269 CALL_SUPER_inline_methods___InlineMethodVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
270 stack_frame_head = fra.me.prev;
271 return;
272 }
273 void inline_methods___InlineMethodVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
274 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_InlineMethodVisitor].i;
275 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
276 val_t REGB0;
277 val_t tmp;
278 if (init_table[itpos0]) return;
279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
280 fra.me.file = LOCATE_inline_methods;
281 fra.me.line = 67;
282 fra.me.meth = LOCATE_inline_methods___InlineMethodVisitor___init;
283 fra.me.has_broke = 0;
284 fra.me.REG_size = 4;
285 fra.me.REG[0] = NIT_NULL;
286 fra.me.REG[1] = NIT_NULL;
287 fra.me.REG[2] = NIT_NULL;
288 fra.me.REG[3] = NIT_NULL;
289 fra.me.REG[0] = p0;
290 fra.me.REG[1] = p1;
291 fra.me.REG[2] = p2;
292 fra.me.REG[3] = fra.me.REG[0];
293 /* ./analysis//inline_methods.nit:67 */
294 CALL_icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
295 REGB0 = TAG_Int(1);
296 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
297 /* ./analysis//inline_methods.nit:69 */
298 array___Array___add(fra.me.REG[0], fra.me.REG[2]);
299 ATTR_inline_methods___InlineMethodVisitor____current_inlining(fra.me.REG[3]) = fra.me.REG[0];
300 fra.me.REG[2] = NEW_ICodeBuilder_icode_builder___ICodeBuilder___init(fra.me.REG[1], fra.me.REG[2]);
301 /* ./analysis//inline_methods.nit:70 */
302 ATTR_inline_methods___InlineMethodVisitor____icb(fra.me.REG[3]) = fra.me.REG[2];
303 stack_frame_head = fra.me.prev;
304 init_table[itpos0] = 1;
305 return;
306 }
307 val_t inline_methods___ICall___is_inlinable(val_t p0){
308 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
309 val_t REGB0;
310 val_t REGB1;
311 val_t REGB2;
312 val_t REGB3;
313 val_t tmp;
314 static val_t once_value_1; /* Once value */
315 static val_t once_value_2; /* Once value */
316 static val_t once_value_3; /* Once value */
317 static val_t once_value_4; /* Once value */
318 static val_t once_value_5; /* Once value */
319 static val_t once_value_6; /* Once value */
320 static val_t once_value_7; /* Once value */
321 static val_t once_value_8; /* Once value */
322 static val_t once_value_9; /* Once value */
323 static val_t once_value_10; /* Once value */
324 static val_t once_value_11; /* Once value */
325 static val_t once_value_12; /* Once value */
326 static val_t once_value_13; /* Once value */
327 static val_t once_value_14; /* Once value */
328 static val_t once_value_15; /* Once value */
329 static val_t once_value_16; /* Once value */
330 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
331 fra.me.file = LOCATE_inline_methods;
332 fra.me.line = 75;
333 fra.me.meth = LOCATE_inline_methods___ICall___is_inlinable;
334 fra.me.has_broke = 0;
335 fra.me.REG_size = 4;
336 fra.me.REG[0] = NIT_NULL;
337 fra.me.REG[1] = NIT_NULL;
338 fra.me.REG[2] = NIT_NULL;
339 fra.me.REG[3] = NIT_NULL;
340 fra.me.REG[0] = p0;
341 fra.me.REG[0] = CALL_icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
342 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
343 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
344 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
345 REGB0 = CALL_abstractmetamodel___MMMethod___is_intern(fra.me.REG[0])(fra.me.REG[0]);
346 /* ./analysis//inline_methods.nit:80 */
347 if (UNTAG_Bool(REGB0)) {
348 if (!once_value_1) {
349 if (!once_value_2) {
350 fra.me.REG[3] = BOX_NativeString("Object");
351 REGB0 = TAG_Int(6);
352 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
353 once_value_2 = fra.me.REG[3];
354 register_static_object(&once_value_2);
355 } else fra.me.REG[3] = once_value_2;
356 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
357 once_value_1 = fra.me.REG[3];
358 register_static_object(&once_value_1);
359 } else fra.me.REG[3] = once_value_1;
360 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
361 if (UNTAG_Bool(REGB0)) {
362 } else {
363 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
364 REGB0 = REGB1;
365 }
366 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
367 } else {
368 REGB1 = TAG_Bool(false);
369 REGB0 = REGB1;
370 }
371 if (UNTAG_Bool(REGB0)) {
372 REGB0 = TAG_Bool(true);
373 } else {
374 /* ./analysis//inline_methods.nit:81 */
375 if (!once_value_3) {
376 if (!once_value_4) {
377 fra.me.REG[3] = BOX_NativeString("Array");
378 REGB1 = TAG_Int(5);
379 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
380 once_value_4 = fra.me.REG[3];
381 register_static_object(&once_value_4);
382 } else fra.me.REG[3] = once_value_4;
383 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
384 once_value_3 = fra.me.REG[3];
385 register_static_object(&once_value_3);
386 } else fra.me.REG[3] = once_value_3;
387 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
388 if (UNTAG_Bool(REGB1)) {
389 } else {
390 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
391 REGB1 = REGB2;
392 }
393 if (UNTAG_Bool(REGB1)) {
394 if (!once_value_5) {
395 if (!once_value_6) {
396 fra.me.REG[3] = BOX_NativeString("length");
397 REGB1 = TAG_Int(6);
398 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
399 once_value_6 = fra.me.REG[3];
400 register_static_object(&once_value_6);
401 } else fra.me.REG[3] = once_value_6;
402 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
403 once_value_5 = fra.me.REG[3];
404 register_static_object(&once_value_5);
405 } else fra.me.REG[3] = once_value_5;
406 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
407 if (UNTAG_Bool(REGB1)) {
408 } else {
409 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
410 REGB1 = REGB2;
411 }
412 if (UNTAG_Bool(REGB1)) {
413 REGB1 = TAG_Bool(true);
414 } else {
415 if (!once_value_7) {
416 if (!once_value_8) {
417 fra.me.REG[3] = BOX_NativeString("[]");
418 REGB2 = TAG_Int(2);
419 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
420 once_value_8 = fra.me.REG[3];
421 register_static_object(&once_value_8);
422 } else fra.me.REG[3] = once_value_8;
423 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
424 once_value_7 = fra.me.REG[3];
425 register_static_object(&once_value_7);
426 } else fra.me.REG[3] = once_value_7;
427 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
428 if (UNTAG_Bool(REGB2)) {
429 } else {
430 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
431 REGB2 = REGB3;
432 }
433 REGB1 = REGB2;
434 }
435 } else {
436 REGB2 = TAG_Bool(false);
437 REGB1 = REGB2;
438 }
439 REGB0 = REGB1;
440 /* ./analysis//inline_methods.nit:80 */
441 }
442 if (UNTAG_Bool(REGB0)) {
443 REGB0 = TAG_Bool(true);
444 } else {
445 /* ./analysis//inline_methods.nit:82 */
446 if (!once_value_9) {
447 if (!once_value_10) {
448 fra.me.REG[3] = BOX_NativeString("AbstractArrayRead");
449 REGB1 = TAG_Int(17);
450 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
451 once_value_10 = fra.me.REG[3];
452 register_static_object(&once_value_10);
453 } else fra.me.REG[3] = once_value_10;
454 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
455 once_value_9 = fra.me.REG[3];
456 register_static_object(&once_value_9);
457 } else fra.me.REG[3] = once_value_9;
458 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
459 if (UNTAG_Bool(REGB1)) {
460 } else {
461 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
462 REGB1 = REGB2;
463 }
464 if (UNTAG_Bool(REGB1)) {
465 if (!once_value_11) {
466 if (!once_value_12) {
467 fra.me.REG[3] = BOX_NativeString("length");
468 REGB1 = TAG_Int(6);
469 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
470 once_value_12 = fra.me.REG[3];
471 register_static_object(&once_value_12);
472 } else fra.me.REG[3] = once_value_12;
473 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
474 once_value_11 = fra.me.REG[3];
475 register_static_object(&once_value_11);
476 } else fra.me.REG[3] = once_value_11;
477 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
478 if (UNTAG_Bool(REGB1)) {
479 } else {
480 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
481 REGB1 = REGB2;
482 }
483 if (UNTAG_Bool(REGB1)) {
484 REGB1 = TAG_Bool(true);
485 } else {
486 if (!once_value_13) {
487 if (!once_value_14) {
488 fra.me.REG[3] = BOX_NativeString("[]");
489 REGB2 = TAG_Int(2);
490 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
491 once_value_14 = fra.me.REG[3];
492 register_static_object(&once_value_14);
493 } else fra.me.REG[3] = once_value_14;
494 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
495 once_value_13 = fra.me.REG[3];
496 register_static_object(&once_value_13);
497 } else fra.me.REG[3] = once_value_13;
498 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[3]));
499 if (UNTAG_Bool(REGB2)) {
500 } else {
501 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
502 REGB2 = REGB3;
503 }
504 REGB1 = REGB2;
505 }
506 } else {
507 REGB2 = TAG_Bool(false);
508 REGB1 = REGB2;
509 }
510 REGB0 = REGB1;
511 /* ./analysis//inline_methods.nit:80 */
512 }
513 if (UNTAG_Bool(REGB0)) {
514 REGB0 = TAG_Bool(true);
515 } else {
516 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
517 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
518 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
519 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
520 /* ./analysis//inline_methods.nit:83 */
521 if (!once_value_15) {
522 if (!once_value_16) {
523 fra.me.REG[3] = BOX_NativeString("Inline__");
524 REGB1 = TAG_Int(8);
525 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
526 once_value_16 = fra.me.REG[3];
527 register_static_object(&once_value_16);
528 } else fra.me.REG[3] = once_value_16;
529 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
530 once_value_15 = fra.me.REG[3];
531 register_static_object(&once_value_15);
532 } else fra.me.REG[3] = once_value_15;
533 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[3]));
534 if (UNTAG_Bool(REGB1)) {
535 } else {
536 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
537 REGB1 = REGB2;
538 }
539 REGB0 = REGB1;
540 /* ./analysis//inline_methods.nit:80 */
541 }
542 goto label17;
543 label17: while(0);
544 stack_frame_head = fra.me.prev;
545 return REGB0;
546 }
547 void inline_methods___IRoutine___inline_methods(val_t p0, val_t p1){
548 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
549 val_t tmp;
550 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
551 fra.me.file = LOCATE_inline_methods;
552 fra.me.line = 88;
553 fra.me.meth = LOCATE_inline_methods___IRoutine___inline_methods;
554 fra.me.has_broke = 0;
555 fra.me.REG_size = 2;
556 fra.me.REG[0] = NIT_NULL;
557 fra.me.REG[1] = NIT_NULL;
558 fra.me.REG[0] = p0;
559 fra.me.REG[1] = p1;
560 fra.me.REG[1] = NEW_InlineMethodVisitor_inline_methods___InlineMethodVisitor___init(fra.me.REG[1], fra.me.REG[0]);
561 /* ./analysis//inline_methods.nit:91 */
562 CALL_icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
563 stack_frame_head = fra.me.prev;
564 return;
565 }