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
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_analysis___inline_methods
;
11 fra
.me
.meth
= LOCATE_analysis___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_icode___icode_base___ICall
, ID_icode___icode_base___ICall
)) /*cast ICall*/;
31 if (UNTAG_Bool(REGB0
)) {
32 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
33 if (UNTAG_Bool(REGB0
)) {
34 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 29);
36 REGB0
= CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
37 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
39 REGB1
= TAG_Bool(false);
42 if (UNTAG_Bool(REGB0
)) {
43 /* ./analysis//inline_methods.nit:30 */
44 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
45 if (UNTAG_Bool(REGB0
)) {
46 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 30);
48 fra
.me
.REG
[4] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
49 /* ./analysis//inline_methods.nit:31 */
50 fra
.me
.REG
[4] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
51 /* ./analysis//inline_methods.nit:32 */
52 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
53 if (UNTAG_Bool(REGB0
)) {
55 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
56 if (UNTAG_Bool(REGB1
)) {
57 REGB1
= TAG_Bool(false);
60 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
64 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
65 if (UNTAG_Bool(REGB0
)) {
66 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
67 if (UNTAG_Bool(REGB0
)) {
68 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 32);
70 REGB0
= CALL_analysis___inline_methods___ICall___is_inlinable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
72 REGB1
= TAG_Bool(false);
75 if (UNTAG_Bool(REGB0
)) {
76 /* ./analysis//inline_methods.nit:33 */
77 REGB0
= TAG_Bool(ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[2])!=NIT_NULL
);
78 if (UNTAG_Bool(REGB0
)) {
80 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_analysis___inline_methods
, 33);
82 fra
.me
.REG
[5] = ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[2]);
83 /* ./analysis//inline_methods.nit:34 */
84 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
85 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[4]));
86 if (UNTAG_Bool(REGB0
)) {
88 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
91 if (UNTAG_Bool(REGB0
)) {
92 /* ./analysis//inline_methods.nit:37 */
93 fra
.me
.REG
[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
94 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
95 if (UNTAG_Bool(REGB0
)) {
96 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 37);
98 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
99 /* ./analysis//inline_methods.nit:38 */
100 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
101 if (UNTAG_Bool(REGB0
)) {
102 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 38);
104 fra
.me
.REG
[6] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
105 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
106 if (UNTAG_Bool(REGB0
)) {
107 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 38);
109 fra
.me
.REG
[7] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
110 fra
.me
.REG
[7] = NEW_IStaticCall_icode___icode_base___IStaticCall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
111 /* ./analysis//inline_methods.nit:39 */
112 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
113 if (UNTAG_Bool(REGB0
)) {
114 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 39);
116 fra
.me
.REG
[6] = CALL_icode___icode_base___ICodeN___closure_defs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
117 CALL_icode___icode_base___ICodeN___closure_defs__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
118 /* ./analysis//inline_methods.nit:40 */
119 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
120 if (UNTAG_Bool(REGB0
)) {
121 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 40);
123 fra
.me
.REG
[6] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
124 CALL_icode___icode_base___ICode___result__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
125 /* ./analysis//inline_methods.nit:41 */
126 fra
.me
.REG
[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
127 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
128 if (UNTAG_Bool(REGB0
)) {
129 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 41);
131 CALL_standard___collection___list___ListIterator___insert_before(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
132 /* ./analysis//inline_methods.nit:42 */
133 fra
.me
.REG
[7] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
134 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
135 if (UNTAG_Bool(REGB0
)) {
136 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 42);
138 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
140 /* ./analysis//inline_methods.nit:44 */
141 fra
.me
.REG
[7] = NEW_ISeq_icode___icode_base___ISeq___init();
142 /* ./analysis//inline_methods.nit:45 */
143 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
144 /* ./analysis//inline_methods.nit:46 */
145 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
146 /* ./analysis//inline_methods.nit:47 */
147 fra
.me
.REG
[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
148 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
149 if (UNTAG_Bool(REGB0
)) {
150 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 47);
152 CALL_standard___collection___list___ListIterator___insert_before(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
153 /* ./analysis//inline_methods.nit:48 */
154 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
155 if (UNTAG_Bool(REGB0
)) {
156 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 48);
158 fra
.me
.REG
[8] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
159 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
160 if (UNTAG_Bool(REGB0
)) {
161 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 48);
163 fra
.me
.REG
[9] = CALL_icode___icode_base___ICodeN___closure_defs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
164 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]);
165 /* ./analysis//inline_methods.nit:49 */
166 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
167 if (UNTAG_Bool(REGB0
)) {
168 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 49);
170 fra
.me
.REG
[3] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
171 /* ./analysis//inline_methods.nit:50 */
172 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
173 if (UNTAG_Bool(REGB0
)) {
175 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
176 if (UNTAG_Bool(REGB1
)) {
177 REGB1
= TAG_Bool(false);
180 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
184 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
185 if (UNTAG_Bool(REGB0
)) {
186 /* ./analysis//inline_methods.nit:51 */
187 REGB0
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
188 if (UNTAG_Bool(REGB0
)) {
190 REGB1
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
191 if (UNTAG_Bool(REGB1
)) {
192 REGB1
= TAG_Bool(false);
195 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[9])(fra
.me
.REG
[9], NIT_NULL
);
199 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
200 if (UNTAG_Bool(REGB0
)) {
202 nit_abort("Assert failed", NULL
, LOCATE_analysis___inline_methods
, 51);
204 /* ./analysis//inline_methods.nit:52 */
205 fra
.me
.REG
[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
206 fra
.me
.REG
[9] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[3], fra
.me
.REG
[9]);
207 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
208 if (UNTAG_Bool(REGB0
)) {
209 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 52);
211 CALL_standard___collection___list___ListIterator___insert_before(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
213 /* ./analysis//inline_methods.nit:54 */
214 fra
.me
.REG
[9] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
215 REGB0
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
216 if (UNTAG_Bool(REGB0
)) {
217 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 54);
219 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
220 /* ./analysis//inline_methods.nit:55 */
221 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
222 /* ./analysis//inline_methods.nit:56 */
223 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
227 /* ./analysis//inline_methods.nit:60 */
228 CALL_SUPER_analysis___inline_methods___InlineMethodVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
229 stack_frame_head
= fra
.me
.prev
;
232 void analysis___inline_methods___InlineMethodVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
233 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_analysis___inline_methods___InlineMethodVisitor
].i
;
234 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
236 if (init_table
[itpos0
]) return;
237 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
238 fra
.me
.file
= LOCATE_analysis___inline_methods
;
240 fra
.me
.meth
= LOCATE_analysis___inline_methods___InlineMethodVisitor___init
;
241 fra
.me
.has_broke
= 0;
243 fra
.me
.REG
[0] = NIT_NULL
;
244 fra
.me
.REG
[1] = NIT_NULL
;
245 fra
.me
.REG
[2] = NIT_NULL
;
246 fra
.me
.REG
[3] = NIT_NULL
;
250 /* ./analysis//inline_methods.nit:63 */
251 fra
.me
.REG
[3] = fra
.me
.REG
[0];
252 CALL_icode___icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
253 /* ./analysis//inline_methods.nit:65 */
254 fra
.me
.REG
[2] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
255 ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
256 stack_frame_head
= fra
.me
.prev
;
257 init_table
[itpos0
] = 1;
260 val_t
analysis___inline_methods___ICall___is_inlinable(val_t p0
){
261 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
267 static val_t once_value_1
; /* Once value */
268 static val_t once_value_2
; /* Once value */
269 static val_t once_value_3
; /* Once value */
270 static val_t once_value_4
; /* Once value */
271 static val_t once_value_5
; /* Once value */
272 static val_t once_value_6
; /* Once value */
273 static val_t once_value_7
; /* Once value */
274 static val_t once_value_8
; /* Once value */
275 static val_t once_value_9
; /* Once value */
276 static val_t once_value_10
; /* Once value */
277 static val_t once_value_11
; /* Once value */
278 static val_t once_value_12
; /* Once value */
279 static val_t once_value_13
; /* Once value */
280 static val_t once_value_14
; /* Once value */
281 static val_t once_value_15
; /* Once value */
282 static val_t once_value_16
; /* Once value */
283 static val_t once_value_17
; /* Once value */
284 static val_t once_value_18
; /* Once value */
285 static val_t once_value_19
; /* Once value */
286 static val_t once_value_20
; /* Once value */
287 static val_t once_value_21
; /* Once value */
288 static val_t once_value_22
; /* Once value */
289 static val_t once_value_23
; /* Once value */
290 static val_t once_value_24
; /* Once value */
291 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
292 fra
.me
.file
= LOCATE_analysis___inline_methods
;
294 fra
.me
.meth
= LOCATE_analysis___inline_methods___ICall___is_inlinable
;
295 fra
.me
.has_broke
= 0;
297 fra
.me
.REG
[0] = NIT_NULL
;
298 fra
.me
.REG
[1] = NIT_NULL
;
299 fra
.me
.REG
[2] = NIT_NULL
;
300 fra
.me
.REG
[3] = NIT_NULL
;
302 /* ./analysis//inline_methods.nit:72 */
303 fra
.me
.REG
[0] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
304 /* ./analysis//inline_methods.nit:73 */
305 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
306 /* ./analysis//inline_methods.nit:74 */
307 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
308 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
309 /* ./analysis//inline_methods.nit:75 */
310 REGB0
= CALL_metamodel___abstractmetamodel___MMMethod___is_intern(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
311 if (UNTAG_Bool(REGB0
)) {
314 fra
.me
.REG
[3] = BOX_NativeString("Object");
316 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
317 once_value_2
= fra
.me
.REG
[3];
318 register_static_object(&once_value_2
);
319 } else fra
.me
.REG
[3] = once_value_2
;
320 fra
.me
.REG
[3] = fra
.me
.REG
[3];
321 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
322 once_value_1
= fra
.me
.REG
[3];
323 register_static_object(&once_value_1
);
324 } else fra
.me
.REG
[3] = once_value_1
;
325 fra
.me
.REG
[3] = fra
.me
.REG
[3];
326 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
327 if (UNTAG_Bool(REGB0
)) {
329 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
332 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
334 REGB1
= TAG_Bool(false);
337 if (UNTAG_Bool(REGB0
)) {
338 REGB0
= TAG_Bool(true);
340 /* ./analysis//inline_methods.nit:76 */
343 fra
.me
.REG
[3] = BOX_NativeString("Int");
345 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
346 once_value_4
= fra
.me
.REG
[3];
347 register_static_object(&once_value_4
);
348 } else fra
.me
.REG
[3] = once_value_4
;
349 fra
.me
.REG
[3] = fra
.me
.REG
[3];
350 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
351 once_value_3
= fra
.me
.REG
[3];
352 register_static_object(&once_value_3
);
353 } else fra
.me
.REG
[3] = once_value_3
;
354 fra
.me
.REG
[3] = fra
.me
.REG
[3];
355 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
356 if (UNTAG_Bool(REGB1
)) {
358 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
361 if (UNTAG_Bool(REGB1
)) {
364 fra
.me
.REG
[3] = BOX_NativeString("enumerate_to");
366 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
367 once_value_6
= fra
.me
.REG
[3];
368 register_static_object(&once_value_6
);
369 } else fra
.me
.REG
[3] = once_value_6
;
370 fra
.me
.REG
[3] = fra
.me
.REG
[3];
371 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
372 once_value_5
= fra
.me
.REG
[3];
373 register_static_object(&once_value_5
);
374 } else fra
.me
.REG
[3] = once_value_5
;
375 fra
.me
.REG
[3] = fra
.me
.REG
[3];
376 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
377 if (UNTAG_Bool(REGB1
)) {
379 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
382 if (UNTAG_Bool(REGB1
)) {
383 REGB1
= TAG_Bool(true);
387 fra
.me
.REG
[3] = BOX_NativeString("enumerate_before");
389 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB2
);
390 once_value_8
= fra
.me
.REG
[3];
391 register_static_object(&once_value_8
);
392 } else fra
.me
.REG
[3] = once_value_8
;
393 fra
.me
.REG
[3] = fra
.me
.REG
[3];
394 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
395 once_value_7
= fra
.me
.REG
[3];
396 register_static_object(&once_value_7
);
397 } else fra
.me
.REG
[3] = once_value_7
;
398 fra
.me
.REG
[3] = fra
.me
.REG
[3];
399 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
400 if (UNTAG_Bool(REGB2
)) {
402 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
408 REGB2
= TAG_Bool(false);
411 /* ./analysis//inline_methods.nit:75 */
414 if (UNTAG_Bool(REGB0
)) {
415 REGB0
= TAG_Bool(true);
417 /* ./analysis//inline_methods.nit:77 */
419 if (!once_value_10
) {
420 fra
.me
.REG
[3] = BOX_NativeString("Array");
422 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
423 once_value_10
= fra
.me
.REG
[3];
424 register_static_object(&once_value_10
);
425 } else fra
.me
.REG
[3] = once_value_10
;
426 fra
.me
.REG
[3] = fra
.me
.REG
[3];
427 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
428 once_value_9
= fra
.me
.REG
[3];
429 register_static_object(&once_value_9
);
430 } else fra
.me
.REG
[3] = once_value_9
;
431 fra
.me
.REG
[3] = fra
.me
.REG
[3];
432 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
433 if (UNTAG_Bool(REGB1
)) {
435 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
438 if (UNTAG_Bool(REGB1
)) {
439 if (!once_value_11
) {
440 if (!once_value_12
) {
441 fra
.me
.REG
[3] = BOX_NativeString("length");
443 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
444 once_value_12
= fra
.me
.REG
[3];
445 register_static_object(&once_value_12
);
446 } else fra
.me
.REG
[3] = once_value_12
;
447 fra
.me
.REG
[3] = fra
.me
.REG
[3];
448 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
449 once_value_11
= fra
.me
.REG
[3];
450 register_static_object(&once_value_11
);
451 } else fra
.me
.REG
[3] = once_value_11
;
452 fra
.me
.REG
[3] = fra
.me
.REG
[3];
453 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
454 if (UNTAG_Bool(REGB1
)) {
456 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
459 if (UNTAG_Bool(REGB1
)) {
460 REGB1
= TAG_Bool(true);
462 if (!once_value_13
) {
463 if (!once_value_14
) {
464 fra
.me
.REG
[3] = BOX_NativeString("[]");
466 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB2
);
467 once_value_14
= fra
.me
.REG
[3];
468 register_static_object(&once_value_14
);
469 } else fra
.me
.REG
[3] = once_value_14
;
470 fra
.me
.REG
[3] = fra
.me
.REG
[3];
471 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
472 once_value_13
= fra
.me
.REG
[3];
473 register_static_object(&once_value_13
);
474 } else fra
.me
.REG
[3] = once_value_13
;
475 fra
.me
.REG
[3] = fra
.me
.REG
[3];
476 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
477 if (UNTAG_Bool(REGB2
)) {
479 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
484 if (UNTAG_Bool(REGB1
)) {
485 REGB1
= TAG_Bool(true);
487 if (!once_value_15
) {
488 if (!once_value_16
) {
489 fra
.me
.REG
[3] = BOX_NativeString("iterate");
491 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB2
);
492 once_value_16
= fra
.me
.REG
[3];
493 register_static_object(&once_value_16
);
494 } else fra
.me
.REG
[3] = once_value_16
;
495 fra
.me
.REG
[3] = fra
.me
.REG
[3];
496 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
497 once_value_15
= fra
.me
.REG
[3];
498 register_static_object(&once_value_15
);
499 } else fra
.me
.REG
[3] = once_value_15
;
500 fra
.me
.REG
[3] = fra
.me
.REG
[3];
501 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
502 if (UNTAG_Bool(REGB2
)) {
504 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
510 REGB2
= TAG_Bool(false);
513 /* ./analysis//inline_methods.nit:75 */
516 if (UNTAG_Bool(REGB0
)) {
517 REGB0
= TAG_Bool(true);
519 /* ./analysis//inline_methods.nit:78 */
520 if (!once_value_17
) {
521 if (!once_value_18
) {
522 fra
.me
.REG
[3] = BOX_NativeString("AbstractArrayRead");
524 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
525 once_value_18
= fra
.me
.REG
[3];
526 register_static_object(&once_value_18
);
527 } else fra
.me
.REG
[3] = once_value_18
;
528 fra
.me
.REG
[3] = fra
.me
.REG
[3];
529 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
530 once_value_17
= fra
.me
.REG
[3];
531 register_static_object(&once_value_17
);
532 } else fra
.me
.REG
[3] = once_value_17
;
533 fra
.me
.REG
[3] = fra
.me
.REG
[3];
534 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
535 if (UNTAG_Bool(REGB1
)) {
537 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
540 if (UNTAG_Bool(REGB1
)) {
541 if (!once_value_19
) {
542 if (!once_value_20
) {
543 fra
.me
.REG
[3] = BOX_NativeString("length");
545 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
546 once_value_20
= fra
.me
.REG
[3];
547 register_static_object(&once_value_20
);
548 } else fra
.me
.REG
[3] = once_value_20
;
549 fra
.me
.REG
[3] = fra
.me
.REG
[3];
550 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
551 once_value_19
= fra
.me
.REG
[3];
552 register_static_object(&once_value_19
);
553 } else fra
.me
.REG
[3] = once_value_19
;
554 fra
.me
.REG
[3] = fra
.me
.REG
[3];
555 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
556 if (UNTAG_Bool(REGB1
)) {
558 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
561 if (UNTAG_Bool(REGB1
)) {
562 REGB1
= TAG_Bool(true);
564 if (!once_value_21
) {
565 if (!once_value_22
) {
566 fra
.me
.REG
[3] = BOX_NativeString("[]");
568 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB2
);
569 once_value_22
= fra
.me
.REG
[3];
570 register_static_object(&once_value_22
);
571 } else fra
.me
.REG
[3] = once_value_22
;
572 fra
.me
.REG
[3] = fra
.me
.REG
[3];
573 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
574 once_value_21
= fra
.me
.REG
[3];
575 register_static_object(&once_value_21
);
576 } else fra
.me
.REG
[3] = once_value_21
;
577 fra
.me
.REG
[3] = fra
.me
.REG
[3];
578 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
579 if (UNTAG_Bool(REGB2
)) {
581 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
587 REGB2
= TAG_Bool(false);
590 /* ./analysis//inline_methods.nit:75 */
593 if (UNTAG_Bool(REGB0
)) {
594 REGB0
= TAG_Bool(true);
596 /* ./analysis//inline_methods.nit:79 */
597 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
598 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
599 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
600 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
601 if (!once_value_23
) {
602 if (!once_value_24
) {
603 fra
.me
.REG
[3] = BOX_NativeString("Inline__");
605 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
606 once_value_24
= fra
.me
.REG
[3];
607 register_static_object(&once_value_24
);
608 } else fra
.me
.REG
[3] = once_value_24
;
609 fra
.me
.REG
[3] = fra
.me
.REG
[3];
610 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
611 once_value_23
= fra
.me
.REG
[3];
612 register_static_object(&once_value_23
);
613 } else fra
.me
.REG
[3] = once_value_23
;
614 fra
.me
.REG
[3] = fra
.me
.REG
[3];
615 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[3]));
616 if (UNTAG_Bool(REGB1
)) {
618 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
621 /* ./analysis//inline_methods.nit:75 */
626 stack_frame_head
= fra
.me
.prev
;
629 void analysis___inline_methods___IRoutine___inline_methods(val_t p0
, val_t p1
){
630 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
632 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
633 fra
.me
.file
= LOCATE_analysis___inline_methods
;
635 fra
.me
.meth
= LOCATE_analysis___inline_methods___IRoutine___inline_methods
;
636 fra
.me
.has_broke
= 0;
638 fra
.me
.REG
[0] = NIT_NULL
;
639 fra
.me
.REG
[1] = NIT_NULL
;
642 /* ./analysis//inline_methods.nit:86 */
643 fra
.me
.REG
[1] = NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
644 /* ./analysis//inline_methods.nit:87 */
645 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
646 stack_frame_head
= fra
.me
.prev
;