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
.nitni_local_ref_head
= NULL
;
15 fra
.me
.REG
[0] = NIT_NULL
;
16 fra
.me
.REG
[1] = NIT_NULL
;
17 fra
.me
.REG
[2] = NIT_NULL
;
18 fra
.me
.REG
[3] = NIT_NULL
;
19 fra
.me
.REG
[4] = NIT_NULL
;
20 fra
.me
.REG
[5] = NIT_NULL
;
21 fra
.me
.REG
[6] = NIT_NULL
;
22 fra
.me
.REG
[7] = NIT_NULL
;
23 fra
.me
.REG
[8] = NIT_NULL
;
24 fra
.me
.REG
[9] = NIT_NULL
;
27 /* analysis/inline_methods.nit:27 */
28 fra
.me
.REG
[2] = fra
.me
.REG
[0];
29 fra
.me
.REG
[3] = fra
.me
.REG
[1];
30 /* analysis/inline_methods.nit:29 */
31 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*/;
32 if (UNTAG_Bool(REGB0
)) {
33 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
34 if (UNTAG_Bool(REGB0
)) {
35 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 29);
37 REGB0
= CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
38 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
40 REGB1
= TAG_Bool(false);
43 if (UNTAG_Bool(REGB0
)) {
44 /* analysis/inline_methods.nit:30 */
45 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
46 if (UNTAG_Bool(REGB0
)) {
47 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 30);
49 fra
.me
.REG
[4] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
50 /* analysis/inline_methods.nit:31 */
51 fra
.me
.REG
[4] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
52 /* analysis/inline_methods.nit:32 */
53 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
54 if (UNTAG_Bool(REGB0
)) {
56 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
57 if (UNTAG_Bool(REGB1
)) {
58 REGB1
= TAG_Bool(false);
61 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
65 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
66 if (UNTAG_Bool(REGB0
)) {
67 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
68 if (UNTAG_Bool(REGB0
)) {
69 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 32);
71 REGB0
= CALL_analysis___inline_methods___ICall___is_inlinable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
73 REGB1
= TAG_Bool(false);
76 if (UNTAG_Bool(REGB0
)) {
77 /* analysis/inline_methods.nit:33 */
78 REGB0
= TAG_Bool(ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[2])!=NIT_NULL
);
79 if (UNTAG_Bool(REGB0
)) {
81 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_analysis___inline_methods
, 33);
83 fra
.me
.REG
[5] = ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[2]);
84 /* analysis/inline_methods.nit:34 */
85 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
86 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[4]));
87 if (UNTAG_Bool(REGB0
)) {
89 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
92 if (UNTAG_Bool(REGB0
)) {
93 /* analysis/inline_methods.nit:37 */
94 fra
.me
.REG
[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
95 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
96 if (UNTAG_Bool(REGB0
)) {
97 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 37);
99 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
100 /* analysis/inline_methods.nit:38 */
101 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
102 if (UNTAG_Bool(REGB0
)) {
103 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 38);
105 fra
.me
.REG
[6] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
106 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
107 if (UNTAG_Bool(REGB0
)) {
108 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 38);
110 fra
.me
.REG
[7] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
111 fra
.me
.REG
[7] = NEW_IStaticCall_icode___icode_base___IStaticCall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
112 /* analysis/inline_methods.nit:39 */
113 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
114 if (UNTAG_Bool(REGB0
)) {
115 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 39);
117 fra
.me
.REG
[6] = CALL_icode___icode_base___ICodeN___closure_defs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
118 CALL_icode___icode_base___ICodeN___closure_defs__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
119 /* analysis/inline_methods.nit:40 */
120 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
121 if (UNTAG_Bool(REGB0
)) {
122 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 40);
124 fra
.me
.REG
[6] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
125 CALL_icode___icode_base___ICode___result__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
126 /* analysis/inline_methods.nit:41 */
127 fra
.me
.REG
[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
128 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
129 if (UNTAG_Bool(REGB0
)) {
130 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 41);
132 CALL_standard___collection___list___ListIterator___insert_before(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
133 /* analysis/inline_methods.nit:42 */
134 fra
.me
.REG
[7] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
135 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
136 if (UNTAG_Bool(REGB0
)) {
137 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 42);
139 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
141 /* analysis/inline_methods.nit:44 */
142 fra
.me
.REG
[7] = NEW_ISeq_icode___icode_base___ISeq___init();
143 /* analysis/inline_methods.nit:45 */
144 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
145 /* analysis/inline_methods.nit:46 */
146 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
147 /* analysis/inline_methods.nit:47 */
148 fra
.me
.REG
[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
149 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
150 if (UNTAG_Bool(REGB0
)) {
151 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 47);
153 CALL_standard___collection___list___ListIterator___insert_before(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
154 /* analysis/inline_methods.nit:48 */
155 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
156 if (UNTAG_Bool(REGB0
)) {
157 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 48);
159 fra
.me
.REG
[8] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
160 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
161 if (UNTAG_Bool(REGB0
)) {
162 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 48);
164 fra
.me
.REG
[9] = CALL_icode___icode_base___ICodeN___closure_defs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
165 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]);
166 /* analysis/inline_methods.nit:49 */
167 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
168 if (UNTAG_Bool(REGB0
)) {
169 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 49);
171 fra
.me
.REG
[3] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
172 /* analysis/inline_methods.nit:50 */
173 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
174 if (UNTAG_Bool(REGB0
)) {
176 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
177 if (UNTAG_Bool(REGB1
)) {
178 REGB1
= TAG_Bool(false);
181 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
185 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
186 if (UNTAG_Bool(REGB0
)) {
187 /* analysis/inline_methods.nit:51 */
188 REGB0
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
189 if (UNTAG_Bool(REGB0
)) {
191 REGB1
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
192 if (UNTAG_Bool(REGB1
)) {
193 REGB1
= TAG_Bool(false);
196 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[9])(fra
.me
.REG
[9], NIT_NULL
);
200 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
201 if (UNTAG_Bool(REGB0
)) {
203 nit_abort("Assert failed", NULL
, LOCATE_analysis___inline_methods
, 51);
205 /* analysis/inline_methods.nit:52 */
206 fra
.me
.REG
[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
207 fra
.me
.REG
[9] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[3], fra
.me
.REG
[9]);
208 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
209 if (UNTAG_Bool(REGB0
)) {
210 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 52);
212 CALL_standard___collection___list___ListIterator___insert_before(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
214 /* analysis/inline_methods.nit:54 */
215 fra
.me
.REG
[9] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
216 REGB0
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
217 if (UNTAG_Bool(REGB0
)) {
218 nit_abort("Reciever is null", NULL
, LOCATE_analysis___inline_methods
, 54);
220 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
221 /* analysis/inline_methods.nit:55 */
222 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
223 /* analysis/inline_methods.nit:56 */
224 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
228 /* analysis/inline_methods.nit:60 */
229 CALL_SUPER_analysis___inline_methods___InlineMethodVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
230 stack_frame_head
= fra
.me
.prev
;
233 void analysis___inline_methods___InlineMethodVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
234 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_analysis___inline_methods___InlineMethodVisitor
].i
;
235 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
237 if (init_table
[itpos0
]) return;
238 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
239 fra
.me
.file
= LOCATE_analysis___inline_methods
;
241 fra
.me
.meth
= LOCATE_analysis___inline_methods___InlineMethodVisitor___init
;
242 fra
.me
.has_broke
= 0;
244 fra
.me
.nitni_local_ref_head
= NULL
;
245 fra
.me
.REG
[0] = NIT_NULL
;
246 fra
.me
.REG
[1] = NIT_NULL
;
247 fra
.me
.REG
[2] = NIT_NULL
;
248 fra
.me
.REG
[3] = NIT_NULL
;
252 /* analysis/inline_methods.nit:63 */
253 fra
.me
.REG
[3] = fra
.me
.REG
[0];
254 CALL_icode___icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
255 /* analysis/inline_methods.nit:65 */
256 fra
.me
.REG
[2] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
257 ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
258 stack_frame_head
= fra
.me
.prev
;
259 init_table
[itpos0
] = 1;
262 val_t
analysis___inline_methods___ICall___is_inlinable(val_t p0
){
263 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
269 static val_t once_value_1
; /* Once value */
270 static val_t once_value_2
; /* Once value */
271 static val_t once_value_3
; /* Once value */
272 static val_t once_value_4
; /* Once value */
273 static val_t once_value_5
; /* Once value */
274 static val_t once_value_6
; /* Once value */
275 static val_t once_value_7
; /* Once value */
276 static val_t once_value_8
; /* Once value */
277 static val_t once_value_9
; /* Once value */
278 static val_t once_value_10
; /* Once value */
279 static val_t once_value_11
; /* Once value */
280 static val_t once_value_12
; /* Once value */
281 static val_t once_value_13
; /* Once value */
282 static val_t once_value_14
; /* Once value */
283 static val_t once_value_15
; /* Once value */
284 static val_t once_value_16
; /* Once value */
285 static val_t once_value_17
; /* Once value */
286 static val_t once_value_18
; /* Once value */
287 static val_t once_value_19
; /* Once value */
288 static val_t once_value_20
; /* Once value */
289 static val_t once_value_21
; /* Once value */
290 static val_t once_value_22
; /* Once value */
291 static val_t once_value_23
; /* Once value */
292 static val_t once_value_24
; /* Once value */
293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
294 fra
.me
.file
= LOCATE_analysis___inline_methods
;
296 fra
.me
.meth
= LOCATE_analysis___inline_methods___ICall___is_inlinable
;
297 fra
.me
.has_broke
= 0;
299 fra
.me
.nitni_local_ref_head
= NULL
;
300 fra
.me
.REG
[0] = NIT_NULL
;
301 fra
.me
.REG
[1] = NIT_NULL
;
302 fra
.me
.REG
[2] = NIT_NULL
;
303 fra
.me
.REG
[3] = NIT_NULL
;
305 /* analysis/inline_methods.nit:72 */
306 fra
.me
.REG
[0] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
307 /* analysis/inline_methods.nit:73 */
308 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
309 /* analysis/inline_methods.nit:74 */
310 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
311 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
312 /* analysis/inline_methods.nit:75 */
313 REGB0
= CALL_metamodel___abstractmetamodel___MMMethod___is_intern(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
314 if (UNTAG_Bool(REGB0
)) {
317 fra
.me
.REG
[3] = BOX_NativeString("Object");
319 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
320 once_value_2
= fra
.me
.REG
[3];
321 register_static_object(&once_value_2
);
322 } else fra
.me
.REG
[3] = once_value_2
;
323 fra
.me
.REG
[3] = fra
.me
.REG
[3];
324 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
325 once_value_1
= fra
.me
.REG
[3];
326 register_static_object(&once_value_1
);
327 } else fra
.me
.REG
[3] = once_value_1
;
328 fra
.me
.REG
[3] = fra
.me
.REG
[3];
329 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
330 if (UNTAG_Bool(REGB0
)) {
332 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
335 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
337 REGB1
= TAG_Bool(false);
340 if (UNTAG_Bool(REGB0
)) {
341 REGB0
= TAG_Bool(true);
343 /* analysis/inline_methods.nit:76 */
346 fra
.me
.REG
[3] = BOX_NativeString("Int");
348 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
349 once_value_4
= fra
.me
.REG
[3];
350 register_static_object(&once_value_4
);
351 } else fra
.me
.REG
[3] = once_value_4
;
352 fra
.me
.REG
[3] = fra
.me
.REG
[3];
353 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
354 once_value_3
= fra
.me
.REG
[3];
355 register_static_object(&once_value_3
);
356 } else fra
.me
.REG
[3] = once_value_3
;
357 fra
.me
.REG
[3] = fra
.me
.REG
[3];
358 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
359 if (UNTAG_Bool(REGB1
)) {
361 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
364 if (UNTAG_Bool(REGB1
)) {
367 fra
.me
.REG
[3] = BOX_NativeString("enumerate_to");
369 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
370 once_value_6
= fra
.me
.REG
[3];
371 register_static_object(&once_value_6
);
372 } else fra
.me
.REG
[3] = once_value_6
;
373 fra
.me
.REG
[3] = fra
.me
.REG
[3];
374 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
375 once_value_5
= fra
.me
.REG
[3];
376 register_static_object(&once_value_5
);
377 } else fra
.me
.REG
[3] = once_value_5
;
378 fra
.me
.REG
[3] = fra
.me
.REG
[3];
379 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
380 if (UNTAG_Bool(REGB1
)) {
382 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
385 if (UNTAG_Bool(REGB1
)) {
386 REGB1
= TAG_Bool(true);
390 fra
.me
.REG
[3] = BOX_NativeString("enumerate_before");
392 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB2
);
393 once_value_8
= fra
.me
.REG
[3];
394 register_static_object(&once_value_8
);
395 } else fra
.me
.REG
[3] = once_value_8
;
396 fra
.me
.REG
[3] = fra
.me
.REG
[3];
397 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
398 once_value_7
= fra
.me
.REG
[3];
399 register_static_object(&once_value_7
);
400 } else fra
.me
.REG
[3] = once_value_7
;
401 fra
.me
.REG
[3] = fra
.me
.REG
[3];
402 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
403 if (UNTAG_Bool(REGB2
)) {
405 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
411 REGB2
= TAG_Bool(false);
414 /* analysis/inline_methods.nit:75 */
417 if (UNTAG_Bool(REGB0
)) {
418 REGB0
= TAG_Bool(true);
420 /* analysis/inline_methods.nit:77 */
422 if (!once_value_10
) {
423 fra
.me
.REG
[3] = BOX_NativeString("Array");
425 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
426 once_value_10
= fra
.me
.REG
[3];
427 register_static_object(&once_value_10
);
428 } else fra
.me
.REG
[3] = once_value_10
;
429 fra
.me
.REG
[3] = fra
.me
.REG
[3];
430 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
431 once_value_9
= fra
.me
.REG
[3];
432 register_static_object(&once_value_9
);
433 } else fra
.me
.REG
[3] = once_value_9
;
434 fra
.me
.REG
[3] = fra
.me
.REG
[3];
435 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
436 if (UNTAG_Bool(REGB1
)) {
438 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
441 if (UNTAG_Bool(REGB1
)) {
442 if (!once_value_11
) {
443 if (!once_value_12
) {
444 fra
.me
.REG
[3] = BOX_NativeString("length");
446 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
447 once_value_12
= fra
.me
.REG
[3];
448 register_static_object(&once_value_12
);
449 } else fra
.me
.REG
[3] = once_value_12
;
450 fra
.me
.REG
[3] = fra
.me
.REG
[3];
451 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
452 once_value_11
= fra
.me
.REG
[3];
453 register_static_object(&once_value_11
);
454 } else fra
.me
.REG
[3] = once_value_11
;
455 fra
.me
.REG
[3] = fra
.me
.REG
[3];
456 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
457 if (UNTAG_Bool(REGB1
)) {
459 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
462 if (UNTAG_Bool(REGB1
)) {
463 REGB1
= TAG_Bool(true);
465 if (!once_value_13
) {
466 if (!once_value_14
) {
467 fra
.me
.REG
[3] = BOX_NativeString("[]");
469 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB2
);
470 once_value_14
= fra
.me
.REG
[3];
471 register_static_object(&once_value_14
);
472 } else fra
.me
.REG
[3] = once_value_14
;
473 fra
.me
.REG
[3] = fra
.me
.REG
[3];
474 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
475 once_value_13
= fra
.me
.REG
[3];
476 register_static_object(&once_value_13
);
477 } else fra
.me
.REG
[3] = once_value_13
;
478 fra
.me
.REG
[3] = fra
.me
.REG
[3];
479 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
480 if (UNTAG_Bool(REGB2
)) {
482 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
487 if (UNTAG_Bool(REGB1
)) {
488 REGB1
= TAG_Bool(true);
490 if (!once_value_15
) {
491 if (!once_value_16
) {
492 fra
.me
.REG
[3] = BOX_NativeString("iterate");
494 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB2
);
495 once_value_16
= fra
.me
.REG
[3];
496 register_static_object(&once_value_16
);
497 } else fra
.me
.REG
[3] = once_value_16
;
498 fra
.me
.REG
[3] = fra
.me
.REG
[3];
499 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
500 once_value_15
= fra
.me
.REG
[3];
501 register_static_object(&once_value_15
);
502 } else fra
.me
.REG
[3] = once_value_15
;
503 fra
.me
.REG
[3] = fra
.me
.REG
[3];
504 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
505 if (UNTAG_Bool(REGB2
)) {
507 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
513 REGB2
= TAG_Bool(false);
516 /* analysis/inline_methods.nit:75 */
519 if (UNTAG_Bool(REGB0
)) {
520 REGB0
= TAG_Bool(true);
522 /* analysis/inline_methods.nit:78 */
523 if (!once_value_17
) {
524 if (!once_value_18
) {
525 fra
.me
.REG
[3] = BOX_NativeString("AbstractArrayRead");
527 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
528 once_value_18
= fra
.me
.REG
[3];
529 register_static_object(&once_value_18
);
530 } else fra
.me
.REG
[3] = once_value_18
;
531 fra
.me
.REG
[3] = fra
.me
.REG
[3];
532 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
533 once_value_17
= fra
.me
.REG
[3];
534 register_static_object(&once_value_17
);
535 } else fra
.me
.REG
[3] = once_value_17
;
536 fra
.me
.REG
[3] = fra
.me
.REG
[3];
537 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
538 if (UNTAG_Bool(REGB1
)) {
540 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
543 if (UNTAG_Bool(REGB1
)) {
544 if (!once_value_19
) {
545 if (!once_value_20
) {
546 fra
.me
.REG
[3] = BOX_NativeString("length");
548 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
549 once_value_20
= fra
.me
.REG
[3];
550 register_static_object(&once_value_20
);
551 } else fra
.me
.REG
[3] = once_value_20
;
552 fra
.me
.REG
[3] = fra
.me
.REG
[3];
553 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
554 once_value_19
= fra
.me
.REG
[3];
555 register_static_object(&once_value_19
);
556 } else fra
.me
.REG
[3] = once_value_19
;
557 fra
.me
.REG
[3] = fra
.me
.REG
[3];
558 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
559 if (UNTAG_Bool(REGB1
)) {
561 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
564 if (UNTAG_Bool(REGB1
)) {
565 REGB1
= TAG_Bool(true);
567 if (!once_value_21
) {
568 if (!once_value_22
) {
569 fra
.me
.REG
[3] = BOX_NativeString("[]");
571 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB2
);
572 once_value_22
= fra
.me
.REG
[3];
573 register_static_object(&once_value_22
);
574 } else fra
.me
.REG
[3] = once_value_22
;
575 fra
.me
.REG
[3] = fra
.me
.REG
[3];
576 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
577 once_value_21
= fra
.me
.REG
[3];
578 register_static_object(&once_value_21
);
579 } else fra
.me
.REG
[3] = once_value_21
;
580 fra
.me
.REG
[3] = fra
.me
.REG
[3];
581 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
582 if (UNTAG_Bool(REGB2
)) {
584 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
590 REGB2
= TAG_Bool(false);
593 /* analysis/inline_methods.nit:75 */
596 if (UNTAG_Bool(REGB0
)) {
597 REGB0
= TAG_Bool(true);
599 /* analysis/inline_methods.nit:79 */
600 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
601 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
602 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
603 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
604 if (!once_value_23
) {
605 if (!once_value_24
) {
606 fra
.me
.REG
[3] = BOX_NativeString("Inline__");
608 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
609 once_value_24
= fra
.me
.REG
[3];
610 register_static_object(&once_value_24
);
611 } else fra
.me
.REG
[3] = once_value_24
;
612 fra
.me
.REG
[3] = fra
.me
.REG
[3];
613 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
614 once_value_23
= fra
.me
.REG
[3];
615 register_static_object(&once_value_23
);
616 } else fra
.me
.REG
[3] = once_value_23
;
617 fra
.me
.REG
[3] = fra
.me
.REG
[3];
618 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[3]));
619 if (UNTAG_Bool(REGB1
)) {
621 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
624 /* analysis/inline_methods.nit:75 */
629 stack_frame_head
= fra
.me
.prev
;
632 void analysis___inline_methods___IRoutine___inline_methods(val_t p0
, val_t p1
){
633 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
635 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
636 fra
.me
.file
= LOCATE_analysis___inline_methods
;
638 fra
.me
.meth
= LOCATE_analysis___inline_methods___IRoutine___inline_methods
;
639 fra
.me
.has_broke
= 0;
641 fra
.me
.nitni_local_ref_head
= NULL
;
642 fra
.me
.REG
[0] = NIT_NULL
;
643 fra
.me
.REG
[1] = NIT_NULL
;
646 /* analysis/inline_methods.nit:86 */
647 fra
.me
.REG
[1] = NEW_InlineMethodVisitor_analysis___inline_methods___InlineMethodVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
648 /* analysis/inline_methods.nit:87 */
649 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
650 stack_frame_head
= fra
.me
.prev
;