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
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_inline_methods
;
11 fra
.me
.meth
= LOCATE_inline_methods___InlineMethodVisitor___visit_icode
;
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
;
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);
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
)) {
44 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
45 if (UNTAG_Bool(REGB1
)) {
46 REGB1
= TAG_Bool(false);
49 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
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);
61 REGB0
= CALL_inline_methods___ICall___is_inlinable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
63 REGB1
= TAG_Bool(false);
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
)) {
71 fprintf(stderr
, "Uninitialized attribute %s", "_current_inlining");
72 fprintf(stderr
, " (%s:%d)\n", LOCATE_inline_methods
, 35);
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);
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);
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);
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);
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);
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);
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);
138 CALL_list___ListIterator___delete(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
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
)) {
144 fprintf(stderr
, "Uninitialized attribute %s", "_icb");
145 fprintf(stderr
, " (%s:%d)\n", LOCATE_inline_methods
, 45);
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
)) {
153 fprintf(stderr
, "Uninitialized attribute %s", "_current_inlining");
154 fprintf(stderr
, " (%s:%d)\n", LOCATE_inline_methods
, 46);
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);
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);
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);
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);
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
)) {
200 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
201 if (UNTAG_Bool(REGB1
)) {
202 REGB1
= TAG_Bool(false);
205 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
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
)) {
215 REGB1
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
216 if (UNTAG_Bool(REGB1
)) {
217 REGB1
= TAG_Bool(false);
220 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[9])(fra
.me
.REG
[9], NIT_NULL
);
224 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
225 if (UNTAG_Bool(REGB0
)) {
227 fprintf(stderr
, "Assert failed");
228 fprintf(stderr
, " (%s:%d)\n", LOCATE_inline_methods
, 54);
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);
240 CALL_list___ListIterator___insert_before(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
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);
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
)) {
259 fprintf(stderr
, "Uninitialized attribute %s", "_current_inlining");
260 fprintf(stderr
, " (%s:%d)\n", LOCATE_inline_methods
, 60);
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]);
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
;
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
;
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
;
282 fra
.me
.meth
= LOCATE_inline_methods___InlineMethodVisitor___init
;
283 fra
.me
.has_broke
= 0;
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
;
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
);
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;
307 val_t
inline_methods___ICall___is_inlinable(val_t p0
){
308 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
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
;
333 fra
.me
.meth
= LOCATE_inline_methods___ICall___is_inlinable
;
334 fra
.me
.has_broke
= 0;
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
;
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
)) {
350 fra
.me
.REG
[3] = BOX_NativeString("Object");
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
)) {
363 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
366 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
368 REGB1
= TAG_Bool(false);
371 if (UNTAG_Bool(REGB0
)) {
372 REGB0
= TAG_Bool(true);
374 /* ./analysis//inline_methods.nit:81 */
377 fra
.me
.REG
[3] = BOX_NativeString("Array");
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
)) {
390 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
393 if (UNTAG_Bool(REGB1
)) {
396 fra
.me
.REG
[3] = BOX_NativeString("length");
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
)) {
409 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
412 if (UNTAG_Bool(REGB1
)) {
413 REGB1
= TAG_Bool(true);
417 fra
.me
.REG
[3] = BOX_NativeString("[]");
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
)) {
430 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
436 REGB2
= TAG_Bool(false);
440 /* ./analysis//inline_methods.nit:80 */
442 if (UNTAG_Bool(REGB0
)) {
443 REGB0
= TAG_Bool(true);
445 /* ./analysis//inline_methods.nit:82 */
447 if (!once_value_10
) {
448 fra
.me
.REG
[3] = BOX_NativeString("AbstractArrayRead");
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
)) {
461 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
464 if (UNTAG_Bool(REGB1
)) {
465 if (!once_value_11
) {
466 if (!once_value_12
) {
467 fra
.me
.REG
[3] = BOX_NativeString("length");
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
)) {
480 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
483 if (UNTAG_Bool(REGB1
)) {
484 REGB1
= TAG_Bool(true);
486 if (!once_value_13
) {
487 if (!once_value_14
) {
488 fra
.me
.REG
[3] = BOX_NativeString("[]");
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
)) {
501 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
507 REGB2
= TAG_Bool(false);
511 /* ./analysis//inline_methods.nit:80 */
513 if (UNTAG_Bool(REGB0
)) {
514 REGB0
= TAG_Bool(true);
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__");
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
)) {
536 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
540 /* ./analysis//inline_methods.nit:80 */
544 stack_frame_head
= fra
.me
.prev
;
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
;
550 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
551 fra
.me
.file
= LOCATE_inline_methods
;
553 fra
.me
.meth
= LOCATE_inline_methods___IRoutine___inline_methods
;
554 fra
.me
.has_broke
= 0;
556 fra
.me
.REG
[0] = NIT_NULL
;
557 fra
.me
.REG
[1] = NIT_NULL
;
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
;