1 /* This C file is generated by NIT to compile module analysis___inline_methods. */
2 #include "analysis___inline_methods._sep.h"
3 static const char LOCATE_analysis___inline_methods___InlineMethodVisitor___visit_icode
[] = "inline_methods::InlineMethodVisitor::(icode_tools::ICodeVisitor::visit_icode)";
4 void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0
, val_t p1
){
5 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
9 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10 fra
.me
.file
= LOCATE_analysis___inline_methods
;
12 fra
.me
.meth
= LOCATE_analysis___inline_methods___InlineMethodVisitor___visit_icode
;
15 fra
.me
.nitni_local_ref_head
= NULL
;
16 fra
.me
.REG
[0] = NIT_NULL
;
17 fra
.me
.REG
[1] = NIT_NULL
;
18 fra
.me
.REG
[2] = NIT_NULL
;
19 fra
.me
.REG
[3] = NIT_NULL
;
20 fra
.me
.REG
[4] = NIT_NULL
;
21 fra
.me
.REG
[5] = NIT_NULL
;
22 fra
.me
.REG
[6] = NIT_NULL
;
23 fra
.me
.REG
[7] = NIT_NULL
;
24 fra
.me
.REG
[8] = NIT_NULL
;
25 fra
.me
.REG
[9] = NIT_NULL
;
28 /* analysis/inline_methods.nit:27 */
29 fra
.me
.REG
[2] = fra
.me
.REG
[0];
30 fra
.me
.REG
[3] = fra
.me
.REG
[1];
31 /* analysis/inline_methods.nit:29 */
32 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*/;
33 if (UNTAG_Bool(REGB0
)) {
34 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
35 if (UNTAG_Bool(REGB0
)) {
36 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 29);
38 REGB0
= CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
39 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
44 if (UNTAG_Bool(REGB0
)) {
45 /* analysis/inline_methods.nit:30 */
46 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
47 if (UNTAG_Bool(REGB0
)) {
48 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 30);
50 fra
.me
.REG
[4] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
51 /* analysis/inline_methods.nit:31 */
52 fra
.me
.REG
[4] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
53 /* analysis/inline_methods.nit:32 */
54 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
55 if (UNTAG_Bool(REGB0
)) {
57 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
58 if (UNTAG_Bool(REGB1
)) {
62 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
66 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
67 if (UNTAG_Bool(REGB0
)) {
68 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
69 if (UNTAG_Bool(REGB0
)) {
70 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 32);
72 REGB0
= CALL_analysis___inline_methods___ICall___is_inlinable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
77 if (UNTAG_Bool(REGB0
)) {
78 /* analysis/inline_methods.nit:33 */
79 REGB0
= TAG_Bool(ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[2])!=NIT_NULL
);
80 if (UNTAG_Bool(REGB0
)) {
82 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_analysis___inline_methods
, 33);
84 fra
.me
.REG
[5] = ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[2]);
85 /* analysis/inline_methods.nit:34 */
86 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
87 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[4]));
88 if (UNTAG_Bool(REGB0
)) {
90 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
93 if (UNTAG_Bool(REGB0
)) {
94 /* analysis/inline_methods.nit:37 */
95 fra
.me
.REG
[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
96 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
97 if (UNTAG_Bool(REGB0
)) {
98 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 37);
100 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
101 /* analysis/inline_methods.nit:38 */
102 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
103 if (UNTAG_Bool(REGB0
)) {
104 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 38);
106 fra
.me
.REG
[6] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
107 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
108 if (UNTAG_Bool(REGB0
)) {
109 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 38);
111 fra
.me
.REG
[7] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
112 fra
.me
.REG
[7] = NEW_IStaticCall_icode___icode_base___IStaticCall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
113 /* analysis/inline_methods.nit:39 */
114 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
115 if (UNTAG_Bool(REGB0
)) {
116 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 39);
118 fra
.me
.REG
[6] = CALL_icode___icode_base___ICodeN___closure_defs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
119 CALL_icode___icode_base___ICodeN___closure_defs__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
120 /* analysis/inline_methods.nit:40 */
121 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
122 if (UNTAG_Bool(REGB0
)) {
123 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 40);
125 fra
.me
.REG
[6] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
126 CALL_icode___icode_base___ICode___result__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
127 /* analysis/inline_methods.nit:41 */
128 fra
.me
.REG
[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
129 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
130 if (UNTAG_Bool(REGB0
)) {
131 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 41);
133 CALL_standard___collection___list___ListIterator___insert_before(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
134 /* analysis/inline_methods.nit:42 */
135 fra
.me
.REG
[7] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
136 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
137 if (UNTAG_Bool(REGB0
)) {
138 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 42);
140 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
142 /* analysis/inline_methods.nit:44 */
143 fra
.me
.REG
[7] = NEW_ISeq_icode___icode_base___ISeq___init();
144 /* analysis/inline_methods.nit:45 */
145 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
146 /* analysis/inline_methods.nit:46 */
147 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
148 /* analysis/inline_methods.nit:47 */
149 fra
.me
.REG
[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
150 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
151 if (UNTAG_Bool(REGB0
)) {
152 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 47);
154 CALL_standard___collection___list___ListIterator___insert_before(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
155 /* analysis/inline_methods.nit:48 */
156 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
157 if (UNTAG_Bool(REGB0
)) {
158 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 48);
160 fra
.me
.REG
[8] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
161 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
162 if (UNTAG_Bool(REGB0
)) {
163 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 48);
165 fra
.me
.REG
[9] = CALL_icode___icode_base___ICodeN___closure_defs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
166 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]);
167 /* analysis/inline_methods.nit:49 */
168 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
169 if (UNTAG_Bool(REGB0
)) {
170 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 49);
172 fra
.me
.REG
[3] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
173 /* analysis/inline_methods.nit:50 */
174 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
175 if (UNTAG_Bool(REGB0
)) {
177 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
178 if (UNTAG_Bool(REGB1
)) {
182 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
186 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
187 if (UNTAG_Bool(REGB0
)) {
188 /* analysis/inline_methods.nit:51 */
189 REGB0
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
190 if (UNTAG_Bool(REGB0
)) {
192 REGB1
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
193 if (UNTAG_Bool(REGB1
)) {
197 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[9])(fra
.me
.REG
[9], NIT_NULL
);
201 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
202 if (UNTAG_Bool(REGB0
)) {
204 nit_abort("Assert failed", NULL
, LOCATE_analysis___inline_methods
, 51);
206 /* analysis/inline_methods.nit:52 */
207 fra
.me
.REG
[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
208 fra
.me
.REG
[9] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[3], fra
.me
.REG
[9]);
209 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
210 if (UNTAG_Bool(REGB0
)) {
211 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 52);
213 CALL_standard___collection___list___ListIterator___insert_before(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
215 /* analysis/inline_methods.nit:54 */
216 fra
.me
.REG
[9] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
217 REGB0
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
218 if (UNTAG_Bool(REGB0
)) {
219 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 54);
221 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
222 /* analysis/inline_methods.nit:55 */
223 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
224 /* analysis/inline_methods.nit:56 */
225 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
229 /* analysis/inline_methods.nit:60 */
230 CALL_SUPER_analysis___inline_methods___InlineMethodVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
231 stack_frame_head
= fra
.me
.prev
;
234 static const char LOCATE_analysis___inline_methods___InlineMethodVisitor___init
[] = "inline_methods::InlineMethodVisitor::init";
235 void analysis___inline_methods___InlineMethodVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
236 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_analysis___inline_methods___InlineMethodVisitor
].i
;
237 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
239 if (init_table
[itpos0
]) return;
240 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
241 fra
.me
.file
= LOCATE_analysis___inline_methods
;
243 fra
.me
.meth
= LOCATE_analysis___inline_methods___InlineMethodVisitor___init
;
244 fra
.me
.has_broke
= 0;
246 fra
.me
.nitni_local_ref_head
= NULL
;
247 fra
.me
.REG
[0] = NIT_NULL
;
248 fra
.me
.REG
[1] = NIT_NULL
;
249 fra
.me
.REG
[2] = NIT_NULL
;
250 fra
.me
.REG
[3] = NIT_NULL
;
254 /* analysis/inline_methods.nit:63 */
255 fra
.me
.REG
[3] = fra
.me
.REG
[0];
256 CALL_icode___icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
257 /* analysis/inline_methods.nit:65 */
258 fra
.me
.REG
[2] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
259 ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
260 stack_frame_head
= fra
.me
.prev
;
261 init_table
[itpos0
] = 1;
264 static const char LOCATE_analysis___inline_methods___ICall___is_inlinable
[] = "inline_methods::ICall::is_inlinable";
265 val_t
analysis___inline_methods___ICall___is_inlinable(val_t p0
){
266 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
272 static val_t once_value_1
; /* Once value */
273 static val_t once_value_2
; /* Once value */
274 static val_t once_value_3
; /* Once value */
275 static val_t once_value_4
; /* Once value */
276 static val_t once_value_5
; /* Once value */
277 static val_t once_value_6
; /* Once value */
278 static val_t once_value_7
; /* Once value */
279 static val_t once_value_8
; /* Once value */
280 static val_t once_value_9
; /* Once value */
281 static val_t once_value_10
; /* Once value */
282 static val_t once_value_11
; /* Once value */
283 static val_t once_value_12
; /* Once value */
284 static val_t once_value_13
; /* Once value */
285 static val_t once_value_14
; /* Once value */
286 static val_t once_value_15
; /* Once value */
287 static val_t once_value_16
; /* Once value */
288 static val_t once_value_17
; /* Once value */
289 static val_t once_value_18
; /* Once value */
290 static val_t once_value_19
; /* Once value */
291 static val_t once_value_20
; /* Once value */
292 static val_t once_value_21
; /* Once value */
293 static val_t once_value_22
; /* Once value */
294 static val_t once_value_23
; /* Once value */
295 static val_t once_value_24
; /* Once value */
296 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
297 fra
.me
.file
= LOCATE_analysis___inline_methods
;
299 fra
.me
.meth
= LOCATE_analysis___inline_methods___ICall___is_inlinable
;
300 fra
.me
.has_broke
= 0;
302 fra
.me
.nitni_local_ref_head
= NULL
;
303 fra
.me
.REG
[0] = NIT_NULL
;
304 fra
.me
.REG
[1] = NIT_NULL
;
305 fra
.me
.REG
[2] = NIT_NULL
;
306 fra
.me
.REG
[3] = NIT_NULL
;
308 /* analysis/inline_methods.nit:72 */
309 fra
.me
.REG
[0] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
310 /* analysis/inline_methods.nit:73 */
311 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
312 /* analysis/inline_methods.nit:74 */
313 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
314 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
315 /* analysis/inline_methods.nit:75 */
316 REGB0
= CALL_metamodel___abstractmetamodel___MMMethod___is_intern(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
317 if (UNTAG_Bool(REGB0
)) {
320 fra
.me
.REG
[3] = BOX_NativeString("Object");
322 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
323 once_value_2
= fra
.me
.REG
[3];
324 register_static_object(&once_value_2
);
325 } else fra
.me
.REG
[3] = once_value_2
;
326 fra
.me
.REG
[3] = fra
.me
.REG
[3];
327 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
328 once_value_1
= fra
.me
.REG
[3];
329 register_static_object(&once_value_1
);
330 } else fra
.me
.REG
[3] = once_value_1
;
331 fra
.me
.REG
[3] = fra
.me
.REG
[3];
332 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
333 if (UNTAG_Bool(REGB0
)) {
335 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
338 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
343 if (UNTAG_Bool(REGB0
)) {
346 /* analysis/inline_methods.nit:76 */
349 fra
.me
.REG
[3] = BOX_NativeString("Int");
351 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
352 once_value_4
= fra
.me
.REG
[3];
353 register_static_object(&once_value_4
);
354 } else fra
.me
.REG
[3] = once_value_4
;
355 fra
.me
.REG
[3] = fra
.me
.REG
[3];
356 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
357 once_value_3
= fra
.me
.REG
[3];
358 register_static_object(&once_value_3
);
359 } else fra
.me
.REG
[3] = once_value_3
;
360 fra
.me
.REG
[3] = fra
.me
.REG
[3];
361 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
362 if (UNTAG_Bool(REGB1
)) {
364 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
367 if (UNTAG_Bool(REGB1
)) {
370 fra
.me
.REG
[3] = BOX_NativeString("enumerate_to");
372 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
373 once_value_6
= fra
.me
.REG
[3];
374 register_static_object(&once_value_6
);
375 } else fra
.me
.REG
[3] = once_value_6
;
376 fra
.me
.REG
[3] = fra
.me
.REG
[3];
377 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
378 once_value_5
= fra
.me
.REG
[3];
379 register_static_object(&once_value_5
);
380 } else fra
.me
.REG
[3] = once_value_5
;
381 fra
.me
.REG
[3] = fra
.me
.REG
[3];
382 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
383 if (UNTAG_Bool(REGB1
)) {
385 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
388 if (UNTAG_Bool(REGB1
)) {
393 fra
.me
.REG
[3] = BOX_NativeString("enumerate_before");
395 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
396 once_value_8
= fra
.me
.REG
[3];
397 register_static_object(&once_value_8
);
398 } else fra
.me
.REG
[3] = once_value_8
;
399 fra
.me
.REG
[3] = fra
.me
.REG
[3];
400 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
401 once_value_7
= fra
.me
.REG
[3];
402 register_static_object(&once_value_7
);
403 } else fra
.me
.REG
[3] = once_value_7
;
404 fra
.me
.REG
[3] = fra
.me
.REG
[3];
405 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
406 if (UNTAG_Bool(REGB2
)) {
408 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
417 /* analysis/inline_methods.nit:75 */
420 if (UNTAG_Bool(REGB0
)) {
423 /* analysis/inline_methods.nit:77 */
425 if (!once_value_10
) {
426 fra
.me
.REG
[3] = BOX_NativeString("Array");
428 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
429 once_value_10
= fra
.me
.REG
[3];
430 register_static_object(&once_value_10
);
431 } else fra
.me
.REG
[3] = once_value_10
;
432 fra
.me
.REG
[3] = fra
.me
.REG
[3];
433 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
434 once_value_9
= fra
.me
.REG
[3];
435 register_static_object(&once_value_9
);
436 } else fra
.me
.REG
[3] = once_value_9
;
437 fra
.me
.REG
[3] = fra
.me
.REG
[3];
438 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
439 if (UNTAG_Bool(REGB1
)) {
441 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
444 if (UNTAG_Bool(REGB1
)) {
445 if (!once_value_11
) {
446 if (!once_value_12
) {
447 fra
.me
.REG
[3] = BOX_NativeString("length");
449 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
450 once_value_12
= fra
.me
.REG
[3];
451 register_static_object(&once_value_12
);
452 } else fra
.me
.REG
[3] = once_value_12
;
453 fra
.me
.REG
[3] = fra
.me
.REG
[3];
454 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
455 once_value_11
= fra
.me
.REG
[3];
456 register_static_object(&once_value_11
);
457 } else fra
.me
.REG
[3] = once_value_11
;
458 fra
.me
.REG
[3] = fra
.me
.REG
[3];
459 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
460 if (UNTAG_Bool(REGB1
)) {
462 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
465 if (UNTAG_Bool(REGB1
)) {
468 if (!once_value_13
) {
469 if (!once_value_14
) {
470 fra
.me
.REG
[3] = BOX_NativeString("[]");
472 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
473 once_value_14
= fra
.me
.REG
[3];
474 register_static_object(&once_value_14
);
475 } else fra
.me
.REG
[3] = once_value_14
;
476 fra
.me
.REG
[3] = fra
.me
.REG
[3];
477 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
478 once_value_13
= fra
.me
.REG
[3];
479 register_static_object(&once_value_13
);
480 } else fra
.me
.REG
[3] = once_value_13
;
481 fra
.me
.REG
[3] = fra
.me
.REG
[3];
482 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
483 if (UNTAG_Bool(REGB2
)) {
485 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
490 if (UNTAG_Bool(REGB1
)) {
493 if (!once_value_15
) {
494 if (!once_value_16
) {
495 fra
.me
.REG
[3] = BOX_NativeString("iterate");
497 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
498 once_value_16
= fra
.me
.REG
[3];
499 register_static_object(&once_value_16
);
500 } else fra
.me
.REG
[3] = once_value_16
;
501 fra
.me
.REG
[3] = fra
.me
.REG
[3];
502 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
503 once_value_15
= fra
.me
.REG
[3];
504 register_static_object(&once_value_15
);
505 } else fra
.me
.REG
[3] = once_value_15
;
506 fra
.me
.REG
[3] = fra
.me
.REG
[3];
507 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
508 if (UNTAG_Bool(REGB2
)) {
510 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
519 /* analysis/inline_methods.nit:75 */
522 if (UNTAG_Bool(REGB0
)) {
525 /* analysis/inline_methods.nit:78 */
526 if (!once_value_17
) {
527 if (!once_value_18
) {
528 fra
.me
.REG
[3] = BOX_NativeString("AbstractArrayRead");
530 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
531 once_value_18
= fra
.me
.REG
[3];
532 register_static_object(&once_value_18
);
533 } else fra
.me
.REG
[3] = once_value_18
;
534 fra
.me
.REG
[3] = fra
.me
.REG
[3];
535 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
536 once_value_17
= fra
.me
.REG
[3];
537 register_static_object(&once_value_17
);
538 } else fra
.me
.REG
[3] = once_value_17
;
539 fra
.me
.REG
[3] = fra
.me
.REG
[3];
540 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
541 if (UNTAG_Bool(REGB1
)) {
543 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
546 if (UNTAG_Bool(REGB1
)) {
547 if (!once_value_19
) {
548 if (!once_value_20
) {
549 fra
.me
.REG
[3] = BOX_NativeString("length");
551 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
552 once_value_20
= fra
.me
.REG
[3];
553 register_static_object(&once_value_20
);
554 } else fra
.me
.REG
[3] = once_value_20
;
555 fra
.me
.REG
[3] = fra
.me
.REG
[3];
556 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
557 once_value_19
= fra
.me
.REG
[3];
558 register_static_object(&once_value_19
);
559 } else fra
.me
.REG
[3] = once_value_19
;
560 fra
.me
.REG
[3] = fra
.me
.REG
[3];
561 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
562 if (UNTAG_Bool(REGB1
)) {
564 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
567 if (UNTAG_Bool(REGB1
)) {
570 if (!once_value_21
) {
571 if (!once_value_22
) {
572 fra
.me
.REG
[3] = BOX_NativeString("[]");
574 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
575 once_value_22
= fra
.me
.REG
[3];
576 register_static_object(&once_value_22
);
577 } else fra
.me
.REG
[3] = once_value_22
;
578 fra
.me
.REG
[3] = fra
.me
.REG
[3];
579 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
580 once_value_21
= fra
.me
.REG
[3];
581 register_static_object(&once_value_21
);
582 } else fra
.me
.REG
[3] = once_value_21
;
583 fra
.me
.REG
[3] = fra
.me
.REG
[3];
584 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
585 if (UNTAG_Bool(REGB2
)) {
587 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
596 /* analysis/inline_methods.nit:75 */
599 if (UNTAG_Bool(REGB0
)) {
602 /* analysis/inline_methods.nit:79 */
603 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
604 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
605 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
606 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
607 if (!once_value_23
) {
608 if (!once_value_24
) {
609 fra
.me
.REG
[3] = BOX_NativeString("Inline__");
611 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
612 once_value_24
= fra
.me
.REG
[3];
613 register_static_object(&once_value_24
);
614 } else fra
.me
.REG
[3] = once_value_24
;
615 fra
.me
.REG
[3] = fra
.me
.REG
[3];
616 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
617 once_value_23
= fra
.me
.REG
[3];
618 register_static_object(&once_value_23
);
619 } else fra
.me
.REG
[3] = once_value_23
;
620 fra
.me
.REG
[3] = fra
.me
.REG
[3];
621 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[3]));
622 if (UNTAG_Bool(REGB1
)) {
624 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
627 /* analysis/inline_methods.nit:75 */
632 stack_frame_head
= fra
.me
.prev
;
635 static const char LOCATE_analysis___inline_methods___IRoutine___inline_methods
[] = "inline_methods::IRoutine::inline_methods";
636 void analysis___inline_methods___IRoutine___inline_methods(val_t p0
, val_t p1
){
637 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
639 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
640 fra
.me
.file
= LOCATE_analysis___inline_methods
;
642 fra
.me
.meth
= LOCATE_analysis___inline_methods___IRoutine___inline_methods
;
643 fra
.me
.has_broke
= 0;
645 fra
.me
.nitni_local_ref_head
= NULL
;
646 fra
.me
.REG
[0] = NIT_NULL
;
647 fra
.me
.REG
[1] = NIT_NULL
;
650 /* analysis/inline_methods.nit:86 */
651 fra
.me
.REG
[1] = NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
652 /* analysis/inline_methods.nit:87 */
653 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
654 stack_frame_head
= fra
.me
.prev
;