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 /* ./analysis//inline_methods.nit:27 */
27 fra
.me
.REG
[2] = fra
.me
.REG
[0];
28 fra
.me
.REG
[3] = fra
.me
.REG
[1];
29 /* ./analysis//inline_methods.nit:29 */
30 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_ICall
, ID_ICall
)) /*cast ICall*/;
31 if (UNTAG_Bool(REGB0
)) {
32 /* ./analysis//inline_methods.nit:30 */
33 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
34 if (UNTAG_Bool(REGB0
)) {
35 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 30);
37 fra
.me
.REG
[4] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
38 /* ./analysis//inline_methods.nit:31 */
39 fra
.me
.REG
[4] = CALL_icode_base___MMMethod___iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
40 /* ./analysis//inline_methods.nit:32 */
41 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
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 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 32);
59 REGB0
= CALL_inline_methods___ICall___is_inlinable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
61 REGB1
= TAG_Bool(false);
64 if (UNTAG_Bool(REGB0
)) {
65 /* ./analysis//inline_methods.nit:33 */
66 REGB0
= TAG_Bool(ATTR_inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[2])!=NIT_NULL
);
67 if (UNTAG_Bool(REGB0
)) {
69 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_inline_methods
, 33);
71 fra
.me
.REG
[5] = ATTR_inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[2]);
72 /* ./analysis//inline_methods.nit:34 */
73 fra
.me
.REG
[6] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
74 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[4]));
75 if (UNTAG_Bool(REGB0
)) {
77 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
80 if (UNTAG_Bool(REGB0
)) {
81 /* ./analysis//inline_methods.nit:37 */
82 fra
.me
.REG
[6] = CALL_icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
83 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
84 if (UNTAG_Bool(REGB0
)) {
85 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 37);
87 CALL_list___ListIterator___delete(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
88 /* ./analysis//inline_methods.nit:38 */
89 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
90 if (UNTAG_Bool(REGB0
)) {
91 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 38);
93 fra
.me
.REG
[6] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
94 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
95 if (UNTAG_Bool(REGB0
)) {
96 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 38);
98 fra
.me
.REG
[7] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
99 fra
.me
.REG
[7] = NEW_IStaticCall_icode_base___IStaticCall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
100 /* ./analysis//inline_methods.nit:39 */
101 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
102 if (UNTAG_Bool(REGB0
)) {
103 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 39);
105 fra
.me
.REG
[6] = CALL_icode_base___ICodeN___closure_defs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
106 CALL_icode_base___ICodeN___closure_defs__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
107 /* ./analysis//inline_methods.nit:40 */
108 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
109 if (UNTAG_Bool(REGB0
)) {
110 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 40);
112 fra
.me
.REG
[6] = CALL_icode_base___ICode___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
113 CALL_icode_base___ICode___result__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
114 /* ./analysis//inline_methods.nit:41 */
115 fra
.me
.REG
[6] = CALL_icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
116 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
117 if (UNTAG_Bool(REGB0
)) {
118 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 41);
120 CALL_list___ListIterator___insert_before(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
121 /* ./analysis//inline_methods.nit:42 */
122 fra
.me
.REG
[7] = CALL_icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
123 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
124 if (UNTAG_Bool(REGB0
)) {
125 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 42);
127 CALL_list___ListIterator___delete(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
129 /* ./analysis//inline_methods.nit:44 */
130 fra
.me
.REG
[7] = NEW_ISeq_icode_base___ISeq___init();
131 /* ./analysis//inline_methods.nit:45 */
132 fra
.me
.REG
[6] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
133 /* ./analysis//inline_methods.nit:46 */
134 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
135 /* ./analysis//inline_methods.nit:47 */
136 fra
.me
.REG
[8] = CALL_icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
137 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
138 if (UNTAG_Bool(REGB0
)) {
139 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 47);
141 CALL_list___ListIterator___insert_before(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
142 /* ./analysis//inline_methods.nit:48 */
143 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
144 if (UNTAG_Bool(REGB0
)) {
145 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 48);
147 fra
.me
.REG
[8] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
148 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
149 if (UNTAG_Bool(REGB0
)) {
150 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 48);
152 fra
.me
.REG
[9] = CALL_icode_base___ICodeN___closure_defs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
153 fra
.me
.REG
[9] = CALL_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]);
154 /* ./analysis//inline_methods.nit:49 */
155 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
156 if (UNTAG_Bool(REGB0
)) {
157 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 49);
159 fra
.me
.REG
[3] = CALL_icode_base___ICode___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
160 /* ./analysis//inline_methods.nit:50 */
161 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
162 if (UNTAG_Bool(REGB0
)) {
164 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
165 if (UNTAG_Bool(REGB1
)) {
166 REGB1
= TAG_Bool(false);
169 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
173 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
174 if (UNTAG_Bool(REGB0
)) {
175 /* ./analysis//inline_methods.nit:51 */
176 REGB0
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
177 if (UNTAG_Bool(REGB0
)) {
179 REGB1
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
180 if (UNTAG_Bool(REGB1
)) {
181 REGB1
= TAG_Bool(false);
184 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[9])(fra
.me
.REG
[9], NIT_NULL
);
188 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
189 if (UNTAG_Bool(REGB0
)) {
191 nit_abort("Assert failed", NULL
, LOCATE_inline_methods
, 51);
193 /* ./analysis//inline_methods.nit:52 */
194 fra
.me
.REG
[8] = CALL_icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
195 fra
.me
.REG
[9] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[3], fra
.me
.REG
[9]);
196 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
197 if (UNTAG_Bool(REGB0
)) {
198 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 52);
200 CALL_list___ListIterator___insert_before(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
202 /* ./analysis//inline_methods.nit:54 */
203 fra
.me
.REG
[9] = CALL_icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
204 REGB0
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
205 if (UNTAG_Bool(REGB0
)) {
206 nit_abort("Reciever is null", NULL
, LOCATE_inline_methods
, 54);
208 CALL_list___ListIterator___delete(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
209 /* ./analysis//inline_methods.nit:55 */
210 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
211 /* ./analysis//inline_methods.nit:56 */
212 CALL_icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
216 /* ./analysis//inline_methods.nit:60 */
217 CALL_SUPER_inline_methods___InlineMethodVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
218 stack_frame_head
= fra
.me
.prev
;
221 void inline_methods___InlineMethodVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
222 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_InlineMethodVisitor
].i
;
223 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
225 if (init_table
[itpos0
]) return;
226 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
227 fra
.me
.file
= LOCATE_inline_methods
;
229 fra
.me
.meth
= LOCATE_inline_methods___InlineMethodVisitor___init
;
230 fra
.me
.has_broke
= 0;
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
;
239 /* ./analysis//inline_methods.nit:63 */
240 fra
.me
.REG
[3] = fra
.me
.REG
[0];
241 CALL_icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
242 /* ./analysis//inline_methods.nit:65 */
243 fra
.me
.REG
[2] = NEW_ICodeBuilder_icode_builder___ICodeBuilder___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
244 ATTR_inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
245 stack_frame_head
= fra
.me
.prev
;
246 init_table
[itpos0
] = 1;
249 val_t
inline_methods___ICall___is_inlinable(val_t p0
){
250 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
256 static val_t once_value_1
; /* Once value */
257 static val_t once_value_2
; /* Once value */
258 static val_t once_value_3
; /* Once value */
259 static val_t once_value_4
; /* Once value */
260 static val_t once_value_5
; /* Once value */
261 static val_t once_value_6
; /* Once value */
262 static val_t once_value_7
; /* Once value */
263 static val_t once_value_8
; /* Once value */
264 static val_t once_value_9
; /* Once value */
265 static val_t once_value_10
; /* Once value */
266 static val_t once_value_11
; /* Once value */
267 static val_t once_value_12
; /* Once value */
268 static val_t once_value_13
; /* Once value */
269 static val_t once_value_14
; /* Once value */
270 static val_t once_value_15
; /* Once value */
271 static val_t once_value_16
; /* Once value */
272 static val_t once_value_17
; /* Once value */
273 static val_t once_value_18
; /* Once value */
274 static val_t once_value_19
; /* Once value */
275 static val_t once_value_20
; /* Once value */
276 static val_t once_value_21
; /* Once value */
277 static val_t once_value_22
; /* Once value */
278 static val_t once_value_23
; /* Once value */
279 static val_t once_value_24
; /* Once value */
280 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
281 fra
.me
.file
= LOCATE_inline_methods
;
283 fra
.me
.meth
= LOCATE_inline_methods___ICall___is_inlinable
;
284 fra
.me
.has_broke
= 0;
286 fra
.me
.REG
[0] = NIT_NULL
;
287 fra
.me
.REG
[1] = NIT_NULL
;
288 fra
.me
.REG
[2] = NIT_NULL
;
289 fra
.me
.REG
[3] = NIT_NULL
;
291 /* ./analysis//inline_methods.nit:72 */
292 fra
.me
.REG
[0] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
293 /* ./analysis//inline_methods.nit:73 */
294 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
295 /* ./analysis//inline_methods.nit:74 */
296 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
297 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
298 /* ./analysis//inline_methods.nit:75 */
299 REGB0
= CALL_abstractmetamodel___MMMethod___is_intern(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
300 if (UNTAG_Bool(REGB0
)) {
303 fra
.me
.REG
[3] = BOX_NativeString("Object");
305 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
306 once_value_2
= fra
.me
.REG
[3];
307 register_static_object(&once_value_2
);
308 } else fra
.me
.REG
[3] = once_value_2
;
309 fra
.me
.REG
[3] = fra
.me
.REG
[3];
310 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
311 once_value_1
= fra
.me
.REG
[3];
312 register_static_object(&once_value_1
);
313 } else fra
.me
.REG
[3] = once_value_1
;
314 fra
.me
.REG
[3] = fra
.me
.REG
[3];
315 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
316 if (UNTAG_Bool(REGB0
)) {
318 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
321 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
323 REGB1
= TAG_Bool(false);
326 if (UNTAG_Bool(REGB0
)) {
327 REGB0
= TAG_Bool(true);
329 /* ./analysis//inline_methods.nit:76 */
332 fra
.me
.REG
[3] = BOX_NativeString("Int");
334 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
335 once_value_4
= fra
.me
.REG
[3];
336 register_static_object(&once_value_4
);
337 } else fra
.me
.REG
[3] = once_value_4
;
338 fra
.me
.REG
[3] = fra
.me
.REG
[3];
339 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
340 once_value_3
= fra
.me
.REG
[3];
341 register_static_object(&once_value_3
);
342 } else fra
.me
.REG
[3] = once_value_3
;
343 fra
.me
.REG
[3] = fra
.me
.REG
[3];
344 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
345 if (UNTAG_Bool(REGB1
)) {
347 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
350 if (UNTAG_Bool(REGB1
)) {
353 fra
.me
.REG
[3] = BOX_NativeString("enumerate_to");
355 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
356 once_value_6
= fra
.me
.REG
[3];
357 register_static_object(&once_value_6
);
358 } else fra
.me
.REG
[3] = once_value_6
;
359 fra
.me
.REG
[3] = fra
.me
.REG
[3];
360 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
361 once_value_5
= fra
.me
.REG
[3];
362 register_static_object(&once_value_5
);
363 } else fra
.me
.REG
[3] = once_value_5
;
364 fra
.me
.REG
[3] = fra
.me
.REG
[3];
365 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
366 if (UNTAG_Bool(REGB1
)) {
368 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
371 if (UNTAG_Bool(REGB1
)) {
372 REGB1
= TAG_Bool(true);
376 fra
.me
.REG
[3] = BOX_NativeString("enumerate_before");
378 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB2
);
379 once_value_8
= fra
.me
.REG
[3];
380 register_static_object(&once_value_8
);
381 } else fra
.me
.REG
[3] = once_value_8
;
382 fra
.me
.REG
[3] = fra
.me
.REG
[3];
383 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
384 once_value_7
= fra
.me
.REG
[3];
385 register_static_object(&once_value_7
);
386 } else fra
.me
.REG
[3] = once_value_7
;
387 fra
.me
.REG
[3] = fra
.me
.REG
[3];
388 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
389 if (UNTAG_Bool(REGB2
)) {
391 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
397 REGB2
= TAG_Bool(false);
400 /* ./analysis//inline_methods.nit:75 */
403 if (UNTAG_Bool(REGB0
)) {
404 REGB0
= TAG_Bool(true);
406 /* ./analysis//inline_methods.nit:77 */
408 if (!once_value_10
) {
409 fra
.me
.REG
[3] = BOX_NativeString("Array");
411 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
412 once_value_10
= fra
.me
.REG
[3];
413 register_static_object(&once_value_10
);
414 } else fra
.me
.REG
[3] = once_value_10
;
415 fra
.me
.REG
[3] = fra
.me
.REG
[3];
416 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
417 once_value_9
= fra
.me
.REG
[3];
418 register_static_object(&once_value_9
);
419 } else fra
.me
.REG
[3] = once_value_9
;
420 fra
.me
.REG
[3] = fra
.me
.REG
[3];
421 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
422 if (UNTAG_Bool(REGB1
)) {
424 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
427 if (UNTAG_Bool(REGB1
)) {
428 if (!once_value_11
) {
429 if (!once_value_12
) {
430 fra
.me
.REG
[3] = BOX_NativeString("length");
432 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
433 once_value_12
= fra
.me
.REG
[3];
434 register_static_object(&once_value_12
);
435 } else fra
.me
.REG
[3] = once_value_12
;
436 fra
.me
.REG
[3] = fra
.me
.REG
[3];
437 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
438 once_value_11
= fra
.me
.REG
[3];
439 register_static_object(&once_value_11
);
440 } else fra
.me
.REG
[3] = once_value_11
;
441 fra
.me
.REG
[3] = fra
.me
.REG
[3];
442 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
443 if (UNTAG_Bool(REGB1
)) {
445 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
448 if (UNTAG_Bool(REGB1
)) {
449 REGB1
= TAG_Bool(true);
451 if (!once_value_13
) {
452 if (!once_value_14
) {
453 fra
.me
.REG
[3] = BOX_NativeString("[]");
455 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB2
);
456 once_value_14
= fra
.me
.REG
[3];
457 register_static_object(&once_value_14
);
458 } else fra
.me
.REG
[3] = once_value_14
;
459 fra
.me
.REG
[3] = fra
.me
.REG
[3];
460 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
461 once_value_13
= fra
.me
.REG
[3];
462 register_static_object(&once_value_13
);
463 } else fra
.me
.REG
[3] = once_value_13
;
464 fra
.me
.REG
[3] = fra
.me
.REG
[3];
465 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
466 if (UNTAG_Bool(REGB2
)) {
468 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
473 if (UNTAG_Bool(REGB1
)) {
474 REGB1
= TAG_Bool(true);
476 if (!once_value_15
) {
477 if (!once_value_16
) {
478 fra
.me
.REG
[3] = BOX_NativeString("iterate");
480 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB2
);
481 once_value_16
= fra
.me
.REG
[3];
482 register_static_object(&once_value_16
);
483 } else fra
.me
.REG
[3] = once_value_16
;
484 fra
.me
.REG
[3] = fra
.me
.REG
[3];
485 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
486 once_value_15
= fra
.me
.REG
[3];
487 register_static_object(&once_value_15
);
488 } else fra
.me
.REG
[3] = once_value_15
;
489 fra
.me
.REG
[3] = fra
.me
.REG
[3];
490 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
491 if (UNTAG_Bool(REGB2
)) {
493 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
499 REGB2
= TAG_Bool(false);
502 /* ./analysis//inline_methods.nit:75 */
505 if (UNTAG_Bool(REGB0
)) {
506 REGB0
= TAG_Bool(true);
508 /* ./analysis//inline_methods.nit:78 */
509 if (!once_value_17
) {
510 if (!once_value_18
) {
511 fra
.me
.REG
[3] = BOX_NativeString("AbstractArrayRead");
513 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
514 once_value_18
= fra
.me
.REG
[3];
515 register_static_object(&once_value_18
);
516 } else fra
.me
.REG
[3] = once_value_18
;
517 fra
.me
.REG
[3] = fra
.me
.REG
[3];
518 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
519 once_value_17
= fra
.me
.REG
[3];
520 register_static_object(&once_value_17
);
521 } else fra
.me
.REG
[3] = once_value_17
;
522 fra
.me
.REG
[3] = fra
.me
.REG
[3];
523 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
524 if (UNTAG_Bool(REGB1
)) {
526 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
529 if (UNTAG_Bool(REGB1
)) {
530 if (!once_value_19
) {
531 if (!once_value_20
) {
532 fra
.me
.REG
[3] = BOX_NativeString("length");
534 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
535 once_value_20
= fra
.me
.REG
[3];
536 register_static_object(&once_value_20
);
537 } else fra
.me
.REG
[3] = once_value_20
;
538 fra
.me
.REG
[3] = fra
.me
.REG
[3];
539 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
540 once_value_19
= fra
.me
.REG
[3];
541 register_static_object(&once_value_19
);
542 } else fra
.me
.REG
[3] = once_value_19
;
543 fra
.me
.REG
[3] = fra
.me
.REG
[3];
544 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
545 if (UNTAG_Bool(REGB1
)) {
547 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
550 if (UNTAG_Bool(REGB1
)) {
551 REGB1
= TAG_Bool(true);
553 if (!once_value_21
) {
554 if (!once_value_22
) {
555 fra
.me
.REG
[3] = BOX_NativeString("[]");
557 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB2
);
558 once_value_22
= fra
.me
.REG
[3];
559 register_static_object(&once_value_22
);
560 } else fra
.me
.REG
[3] = once_value_22
;
561 fra
.me
.REG
[3] = fra
.me
.REG
[3];
562 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
563 once_value_21
= fra
.me
.REG
[3];
564 register_static_object(&once_value_21
);
565 } else fra
.me
.REG
[3] = once_value_21
;
566 fra
.me
.REG
[3] = fra
.me
.REG
[3];
567 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
568 if (UNTAG_Bool(REGB2
)) {
570 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
576 REGB2
= TAG_Bool(false);
579 /* ./analysis//inline_methods.nit:75 */
582 if (UNTAG_Bool(REGB0
)) {
583 REGB0
= TAG_Bool(true);
585 /* ./analysis//inline_methods.nit:79 */
586 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
587 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
588 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
589 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
590 if (!once_value_23
) {
591 if (!once_value_24
) {
592 fra
.me
.REG
[3] = BOX_NativeString("Inline__");
594 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
595 once_value_24
= fra
.me
.REG
[3];
596 register_static_object(&once_value_24
);
597 } else fra
.me
.REG
[3] = once_value_24
;
598 fra
.me
.REG
[3] = fra
.me
.REG
[3];
599 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
600 once_value_23
= fra
.me
.REG
[3];
601 register_static_object(&once_value_23
);
602 } else fra
.me
.REG
[3] = once_value_23
;
603 fra
.me
.REG
[3] = fra
.me
.REG
[3];
604 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[3]));
605 if (UNTAG_Bool(REGB1
)) {
607 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
610 /* ./analysis//inline_methods.nit:75 */
615 stack_frame_head
= fra
.me
.prev
;
618 void inline_methods___IRoutine___inline_methods(val_t p0
, val_t p1
){
619 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
621 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
622 fra
.me
.file
= LOCATE_inline_methods
;
624 fra
.me
.meth
= LOCATE_inline_methods___IRoutine___inline_methods
;
625 fra
.me
.has_broke
= 0;
627 fra
.me
.REG
[0] = NIT_NULL
;
628 fra
.me
.REG
[1] = NIT_NULL
;
631 /* ./analysis//inline_methods.nit:86 */
632 fra
.me
.REG
[1] = NEW_InlineMethodVisitor_inline_methods___InlineMethodVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
633 /* ./analysis//inline_methods.nit:87 */
634 CALL_icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
635 stack_frame_head
= fra
.me
.prev
;