1 /* This C file is generated by NIT to compile module icode___icode_builder. */
2 #include "icode___icode_builder._sep.h"
3 void icode___icode_builder___ICodeBuilder___stmt(val_t p0
, val_t p1
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8 fra
.me
.file
= LOCATE_icode___icode_builder
;
10 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___stmt
;
13 fra
.me
.REG
[0] = NIT_NULL
;
14 fra
.me
.REG
[1] = NIT_NULL
;
15 fra
.me
.REG
[2] = NIT_NULL
;
18 /* ./icode//icode_builder.nit:28 */
19 fra
.me
.REG
[2] = ATTR_icode___icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]);
20 CALL_icode___icode_base___ICode___location__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
21 /* ./icode//icode_builder.nit:29 */
22 REGB0
= TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0])!=NIT_NULL
);
23 if (UNTAG_Bool(REGB0
)) {
25 nit_abort("Uninitialized attribute %s", "_seq", LOCATE_icode___icode_builder
, 29);
27 fra
.me
.REG
[0] = ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]);
28 fra
.me
.REG
[0] = CALL_icode___icode_base___ISeq___icodes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
29 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
30 stack_frame_head
= fra
.me
.prev
;
33 val_t
icode___icode_builder___ICodeBuilder___expr(val_t p0
, val_t p1
, val_t p2
){
34 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
38 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
39 fra
.me
.file
= LOCATE_icode___icode_builder
;
41 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___expr
;
44 fra
.me
.REG
[0] = NIT_NULL
;
45 fra
.me
.REG
[1] = NIT_NULL
;
46 fra
.me
.REG
[2] = NIT_NULL
;
47 fra
.me
.REG
[3] = NIT_NULL
;
51 /* ./icode//icode_builder.nit:35 */
52 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
53 /* ./icode//icode_builder.nit:36 */
54 fra
.me
.REG
[3] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
55 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
56 if (UNTAG_Bool(REGB0
)) {
58 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
59 if (UNTAG_Bool(REGB1
)) {
60 REGB1
= TAG_Bool(false);
63 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
67 if (UNTAG_Bool(REGB0
)) {
69 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_builder
, 36);
71 /* ./icode//icode_builder.nit:37 */
72 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
73 /* ./icode//icode_builder.nit:38 */
74 CALL_icode___icode_base___ICode___result__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
75 /* ./icode//icode_builder.nit:39 */
78 stack_frame_head
= fra
.me
.prev
;
81 void icode___icode_builder___ICodeBuilder___add_assignment(val_t p0
, val_t p1
, val_t p2
){
82 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
84 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
85 fra
.me
.file
= LOCATE_icode___icode_builder
;
87 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_assignment
;
90 fra
.me
.REG
[0] = NIT_NULL
;
91 fra
.me
.REG
[1] = NIT_NULL
;
92 fra
.me
.REG
[2] = NIT_NULL
;
96 /* ./icode//icode_builder.nit:45 */
97 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
98 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
99 stack_frame_head
= fra
.me
.prev
;
102 void icode___icode_builder___ICodeBuilder___add_null_reciever_check(val_t p0
, val_t p1
){
103 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
106 static val_t once_value_1
; /* Once value */
107 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
108 fra
.me
.file
= LOCATE_icode___icode_builder
;
110 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_null_reciever_check
;
111 fra
.me
.has_broke
= 0;
113 fra
.me
.REG
[0] = NIT_NULL
;
114 fra
.me
.REG
[1] = NIT_NULL
;
115 fra
.me
.REG
[2] = NIT_NULL
;
116 fra
.me
.REG
[3] = NIT_NULL
;
119 /* ./icode//icode_builder.nit:51 */
120 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
121 /* ./icode//icode_builder.nit:52 */
122 fra
.me
.REG
[2] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
123 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
124 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
125 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[1]);
126 /* ./icode//icode_builder.nit:53 */
127 fra
.me
.REG
[1] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[1]);
128 /* ./icode//icode_builder.nit:54 */
129 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
130 /* ./icode//icode_builder.nit:55 */
131 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
132 /* ./icode//icode_builder.nit:56 */
133 fra
.me
.REG
[1] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
134 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
135 /* ./icode//icode_builder.nit:57 */
137 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
139 fra
.me
.REG
[3] = BOX_NativeString("Reciever is null");
141 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
142 once_value_1
= fra
.me
.REG
[3];
143 register_static_object(&once_value_1
);
144 } else fra
.me
.REG
[3] = once_value_1
;
145 fra
.me
.REG
[3] = fra
.me
.REG
[3];
146 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
147 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
148 /* ./icode//icode_builder.nit:58 */
149 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
150 stack_frame_head
= fra
.me
.prev
;
153 void icode___icode_builder___ICodeBuilder___add_type_cast(val_t p0
, val_t p1
, val_t p2
){
154 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
157 static val_t once_value_1
; /* Once value */
158 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
159 fra
.me
.file
= LOCATE_icode___icode_builder
;
161 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_type_cast
;
162 fra
.me
.has_broke
= 0;
164 fra
.me
.REG
[0] = NIT_NULL
;
165 fra
.me
.REG
[1] = NIT_NULL
;
166 fra
.me
.REG
[2] = NIT_NULL
;
167 fra
.me
.REG
[3] = NIT_NULL
;
171 /* ./icode//icode_builder.nit:64 */
172 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
173 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
174 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
175 fra
.me
.REG
[2] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[2]);
176 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
177 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
178 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[1]);
179 /* ./icode//icode_builder.nit:65 */
180 fra
.me
.REG
[1] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[1]);
181 /* ./icode//icode_builder.nit:66 */
182 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
183 /* ./icode//icode_builder.nit:67 */
184 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
185 /* ./icode//icode_builder.nit:68 */
186 fra
.me
.REG
[1] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
187 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
188 /* ./icode//icode_builder.nit:69 */
190 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
192 fra
.me
.REG
[3] = BOX_NativeString("Cast failed");
194 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
195 once_value_1
= fra
.me
.REG
[3];
196 register_static_object(&once_value_1
);
197 } else fra
.me
.REG
[3] = once_value_1
;
198 fra
.me
.REG
[3] = fra
.me
.REG
[3];
199 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
200 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
201 /* ./icode//icode_builder.nit:70 */
202 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
203 stack_frame_head
= fra
.me
.prev
;
206 void icode___icode_builder___ICodeBuilder___add_attr_check(val_t p0
, val_t p1
, val_t p2
){
207 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
210 static val_t once_value_1
; /* Once value */
211 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
212 fra
.me
.file
= LOCATE_icode___icode_builder
;
214 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_attr_check
;
215 fra
.me
.has_broke
= 0;
217 fra
.me
.REG
[0] = NIT_NULL
;
218 fra
.me
.REG
[1] = NIT_NULL
;
219 fra
.me
.REG
[2] = NIT_NULL
;
220 fra
.me
.REG
[3] = NIT_NULL
;
221 fra
.me
.REG
[4] = NIT_NULL
;
225 /* ./icode//icode_builder.nit:76 */
226 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
227 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
228 if (UNTAG_Bool(REGB0
)) {
229 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 76);
231 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
232 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
233 if (UNTAG_Bool(REGB0
)) {
234 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 76);
236 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
237 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
238 if (UNTAG_Bool(REGB0
)) {
239 /* ./icode//icode_builder.nit:77 */
240 fra
.me
.REG
[2] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
241 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
242 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
243 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
244 /* ./icode//icode_builder.nit:78 */
245 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
246 /* ./icode//icode_builder.nit:79 */
247 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
248 /* ./icode//icode_builder.nit:80 */
249 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
250 /* ./icode//icode_builder.nit:81 */
251 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
252 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
253 /* ./icode//icode_builder.nit:82 */
255 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
257 fra
.me
.REG
[4] = BOX_NativeString("Uninitialized attribute %s");
259 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
260 once_value_1
= fra
.me
.REG
[4];
261 register_static_object(&once_value_1
);
262 } else fra
.me
.REG
[4] = once_value_1
;
263 fra
.me
.REG
[4] = fra
.me
.REG
[4];
264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
265 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
266 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
267 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
268 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
269 /* ./icode//icode_builder.nit:83 */
270 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
272 stack_frame_head
= fra
.me
.prev
;
275 val_t
icode___icode_builder___ICodeBuilder___add_attr_read(val_t p0
, val_t p1
, val_t p2
){
276 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
279 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
280 fra
.me
.file
= LOCATE_icode___icode_builder
;
282 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_attr_read
;
283 fra
.me
.has_broke
= 0;
285 fra
.me
.REG
[0] = NIT_NULL
;
286 fra
.me
.REG
[1] = NIT_NULL
;
287 fra
.me
.REG
[2] = NIT_NULL
;
288 fra
.me
.REG
[3] = NIT_NULL
;
292 /* ./icode//icode_builder.nit:87 */
293 fra
.me
.REG
[3] = fra
.me
.REG
[0];
294 /* ./icode//icode_builder.nit:90 */
295 CALL_icode___icode_builder___ICodeBuilder___add_attr_check(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[2]);
296 /* ./icode//icode_builder.nit:91 */
297 fra
.me
.REG
[2] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
298 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
299 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
300 if (UNTAG_Bool(REGB0
)) {
301 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 91);
303 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
304 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
305 if (UNTAG_Bool(REGB0
)) {
307 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_builder
, 91);
309 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
312 stack_frame_head
= fra
.me
.prev
;
313 return fra
.me
.REG
[1];
315 void icode___icode_builder___ICodeBuilder___add_abort(val_t p0
, val_t p1
){
316 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
319 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
320 fra
.me
.file
= LOCATE_icode___icode_builder
;
322 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_abort
;
323 fra
.me
.has_broke
= 0;
325 fra
.me
.REG
[0] = NIT_NULL
;
326 fra
.me
.REG
[1] = NIT_NULL
;
327 fra
.me
.REG
[2] = NIT_NULL
;
330 /* ./icode//icode_builder.nit:94 */
331 fra
.me
.REG
[2] = fra
.me
.REG
[0];
332 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_standard___collection___array___Array
, ID_standard___collection___array___Array
)) /*cast Array[String]*/;
333 if (UNTAG_Bool(REGB0
)) {
335 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_builder
, 94);
337 /* ./icode//icode_builder.nit:97 */
338 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
339 fra
.me
.REG
[0] = NEW_IAbort_icode___icode_base___IAbort___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
340 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
341 stack_frame_head
= fra
.me
.prev
;
344 void icode___icode_builder___ICodeBuilder___add_return_value(val_t p0
, val_t p1
){
345 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
348 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
349 fra
.me
.file
= LOCATE_icode___icode_builder
;
351 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_return_value
;
352 fra
.me
.has_broke
= 0;
354 fra
.me
.REG
[0] = NIT_NULL
;
355 fra
.me
.REG
[1] = NIT_NULL
;
356 fra
.me
.REG
[2] = NIT_NULL
;
357 fra
.me
.REG
[3] = NIT_NULL
;
360 /* ./icode//icode_builder.nit:100 */
361 fra
.me
.REG
[2] = fra
.me
.REG
[0];
362 /* ./icode//icode_builder.nit:104 */
363 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
364 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
365 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___IRegister
, ID_icode___icode_base___IRegister
)) /*cast IRegister*/;
366 if (UNTAG_Bool(REGB0
)) {
368 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_builder
, 104);
370 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
371 stack_frame_head
= fra
.me
.prev
;
374 val_t
icode___icode_builder___ICodeBuilder___add_call(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
375 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
380 static val_t once_value_1
; /* Once value */
381 static val_t once_value_2
; /* Once value */
382 static val_t once_value_3
; /* Once value */
383 static val_t once_value_4
; /* Once value */
384 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
385 fra
.me
.file
= LOCATE_icode___icode_builder
;
387 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_call
;
388 fra
.me
.has_broke
= 0;
389 fra
.me
.REG_size
= 11;
390 fra
.me
.REG
[0] = NIT_NULL
;
391 fra
.me
.REG
[1] = NIT_NULL
;
392 fra
.me
.REG
[2] = NIT_NULL
;
393 fra
.me
.REG
[3] = NIT_NULL
;
394 fra
.me
.REG
[4] = NIT_NULL
;
395 fra
.me
.REG
[5] = NIT_NULL
;
396 fra
.me
.REG
[6] = NIT_NULL
;
397 fra
.me
.REG
[7] = NIT_NULL
;
398 fra
.me
.REG
[8] = NIT_NULL
;
399 fra
.me
.REG
[9] = NIT_NULL
;
400 fra
.me
.REG
[10] = NIT_NULL
;
405 /* ./icode//icode_builder.nit:107 */
406 fra
.me
.REG
[4] = fra
.me
.REG
[0];
407 /* ./icode//icode_builder.nit:110 */
410 fra
.me
.REG
[5] = BOX_NativeString("==");
412 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
413 once_value_2
= fra
.me
.REG
[5];
414 register_static_object(&once_value_2
);
415 } else fra
.me
.REG
[5] = once_value_2
;
416 fra
.me
.REG
[5] = fra
.me
.REG
[5];
417 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
418 once_value_1
= fra
.me
.REG
[5];
419 register_static_object(&once_value_1
);
420 } else fra
.me
.REG
[5] = once_value_1
;
421 fra
.me
.REG
[5] = fra
.me
.REG
[5];
422 /* ./icode//icode_builder.nit:113 */
425 fra
.me
.REG
[6] = BOX_NativeString("!=");
427 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
428 once_value_4
= fra
.me
.REG
[6];
429 register_static_object(&once_value_4
);
430 } else fra
.me
.REG
[6] = once_value_4
;
431 fra
.me
.REG
[6] = fra
.me
.REG
[6];
432 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
433 once_value_3
= fra
.me
.REG
[6];
434 register_static_object(&once_value_3
);
435 } else fra
.me
.REG
[6] = once_value_3
;
436 fra
.me
.REG
[6] = fra
.me
.REG
[6];
437 /* ./icode//icode_builder.nit:114 */
438 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
439 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[7],fra
.me
.REG
[6]));
440 if (UNTAG_Bool(REGB0
)) {
442 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
445 if (UNTAG_Bool(REGB0
)) {
446 /* ./icode//icode_builder.nit:115 */
447 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
448 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
449 if (UNTAG_Bool(REGB0
)) {
450 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 115);
452 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
453 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
454 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
455 /* ./icode//icode_builder.nit:116 */
456 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___add_call(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6], fra
.me
.REG
[2], fra
.me
.REG
[3]);
457 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
458 if (UNTAG_Bool(REGB0
)) {
460 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_builder
, 116);
462 /* ./icode//icode_builder.nit:117 */
463 fra
.me
.REG
[6] = NEW_INot_icode___icode_base___INot___init(fra
.me
.REG
[6]);
464 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
465 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
466 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6], fra
.me
.REG
[0]);
469 /* ./icode//icode_builder.nit:122 */
470 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
471 /* ./icode//icode_builder.nit:123 */
472 CALL_icode___icode_base___ICodeN___closure_defs__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
473 /* ./icode//icode_builder.nit:124 */
474 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
475 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[5]));
476 if (UNTAG_Bool(REGB0
)) {
478 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
481 if (UNTAG_Bool(REGB0
)) {
482 /* ./icode//icode_builder.nit:126 */
483 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
484 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
485 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
486 /* ./icode//icode_builder.nit:128 */
488 /* ./../lib/standard//collection//array.nit:278 */
489 fra
.me
.REG
[3] = fra
.me
.REG
[2];
490 /* ./../lib/standard//collection//array.nit:280 */
492 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
493 if (UNTAG_Bool(REGB2
)) {
495 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
497 /* ./../lib/standard//kernel.nit:233 */
498 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
499 /* ./../lib/standard//collection//array.nit:280 */
500 if (UNTAG_Bool(REGB1
)) {
501 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
502 if (UNTAG_Bool(REGB1
)) {
504 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
506 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
507 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
508 if (UNTAG_Bool(REGB2
)) {
510 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
512 /* ./../lib/standard//kernel.nit:232 */
513 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
515 /* ./../lib/standard//collection//array.nit:280 */
516 REGB2
= TAG_Bool(false);
519 if (UNTAG_Bool(REGB1
)) {
521 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
523 /* ./../lib/standard//collection//array.nit:281 */
524 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
525 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
526 if (UNTAG_Bool(REGB1
)) {
527 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
529 /* ./../lib/standard//collection//array.nit:718 */
530 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB0
)];
531 /* ./../lib/standard//collection//array.nit:281 */
534 /* ./icode//icode_builder.nit:128 */
536 /* ./../lib/standard//collection//array.nit:278 */
537 fra
.me
.REG
[7] = fra
.me
.REG
[2];
538 /* ./../lib/standard//collection//array.nit:280 */
540 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
541 if (UNTAG_Bool(REGB2
)) {
543 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
545 /* ./../lib/standard//kernel.nit:233 */
546 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
547 /* ./../lib/standard//collection//array.nit:280 */
548 if (UNTAG_Bool(REGB1
)) {
549 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
550 if (UNTAG_Bool(REGB1
)) {
552 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
554 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
555 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
556 if (UNTAG_Bool(REGB2
)) {
558 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
560 /* ./../lib/standard//kernel.nit:232 */
561 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
563 /* ./../lib/standard//collection//array.nit:280 */
564 REGB2
= TAG_Bool(false);
567 if (UNTAG_Bool(REGB1
)) {
569 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
571 /* ./../lib/standard//collection//array.nit:281 */
572 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
573 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
574 if (UNTAG_Bool(REGB1
)) {
575 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
577 /* ./../lib/standard//collection//array.nit:718 */
578 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
579 /* ./../lib/standard//collection//array.nit:281 */
582 /* ./icode//icode_builder.nit:128 */
583 fra
.me
.REG
[7] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[3], fra
.me
.REG
[7]);
584 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
585 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
586 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7], fra
.me
.REG
[3]);
587 /* ./icode//icode_builder.nit:129 */
588 fra
.me
.REG
[7] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
589 /* ./icode//icode_builder.nit:130 */
590 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
591 /* ./icode//icode_builder.nit:131 */
592 fra
.me
.REG
[8] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
593 /* ./icode//icode_builder.nit:132 */
594 fra
.me
.REG
[9] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
595 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[9]);
596 /* ./icode//icode_builder.nit:133 */
597 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[3]);
598 /* ./icode//icode_builder.nit:135 */
599 fra
.me
.REG
[9] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
600 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[9]);
601 /* ./icode//icode_builder.nit:137 */
603 /* ./../lib/standard//collection//array.nit:278 */
604 fra
.me
.REG
[9] = fra
.me
.REG
[2];
605 /* ./../lib/standard//collection//array.nit:280 */
607 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
608 if (UNTAG_Bool(REGB2
)) {
610 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
612 /* ./../lib/standard//kernel.nit:233 */
613 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
614 /* ./../lib/standard//collection//array.nit:280 */
615 if (UNTAG_Bool(REGB1
)) {
616 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
617 if (UNTAG_Bool(REGB1
)) {
619 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
621 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
622 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
623 if (UNTAG_Bool(REGB2
)) {
625 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
627 /* ./../lib/standard//kernel.nit:232 */
628 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
630 /* ./../lib/standard//collection//array.nit:280 */
631 REGB2
= TAG_Bool(false);
634 if (UNTAG_Bool(REGB1
)) {
636 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
638 /* ./../lib/standard//collection//array.nit:281 */
639 fra
.me
.REG
[9] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
640 REGB1
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
641 if (UNTAG_Bool(REGB1
)) {
642 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
644 /* ./../lib/standard//collection//array.nit:718 */
645 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB0
)];
646 /* ./../lib/standard//collection//array.nit:281 */
649 /* ./icode//icode_builder.nit:137 */
650 REGB0
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
651 if (UNTAG_Bool(REGB0
)) {
652 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 137);
654 fra
.me
.REG
[9] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
655 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
656 if (UNTAG_Bool(REGB0
)) {
657 /* ./icode//icode_builder.nit:138 */
658 fra
.me
.REG
[9] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
659 /* ./icode//icode_builder.nit:139 */
661 /* ./../lib/standard//collection//array.nit:278 */
662 fra
.me
.REG
[10] = fra
.me
.REG
[2];
663 /* ./../lib/standard//collection//array.nit:280 */
665 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
666 if (UNTAG_Bool(REGB2
)) {
668 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
670 /* ./../lib/standard//kernel.nit:233 */
671 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
672 /* ./../lib/standard//collection//array.nit:280 */
673 if (UNTAG_Bool(REGB1
)) {
674 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[10])!=NIT_NULL
);
675 if (UNTAG_Bool(REGB1
)) {
677 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
679 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[10]);
680 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
681 if (UNTAG_Bool(REGB2
)) {
683 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
685 /* ./../lib/standard//kernel.nit:232 */
686 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
688 /* ./../lib/standard//collection//array.nit:280 */
689 REGB2
= TAG_Bool(false);
692 if (UNTAG_Bool(REGB1
)) {
694 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
696 /* ./../lib/standard//collection//array.nit:281 */
697 fra
.me
.REG
[10] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[10]);
698 REGB1
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
699 if (UNTAG_Bool(REGB1
)) {
700 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
702 /* ./../lib/standard//collection//array.nit:718 */
703 fra
.me
.REG
[10] = ((Nit_NativeArray
)fra
.me
.REG
[10])->val
[UNTAG_Int(REGB0
)];
704 /* ./../lib/standard//collection//array.nit:281 */
707 /* ./icode//icode_builder.nit:139 */
708 fra
.me
.REG
[9] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[10], fra
.me
.REG
[9]);
709 fra
.me
.REG
[10] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
710 fra
.me
.REG
[10] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
711 fra
.me
.REG
[10] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[9], fra
.me
.REG
[10]);
712 fra
.me
.REG
[3] = fra
.me
.REG
[10];
713 /* ./icode//icode_builder.nit:140 */
714 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
715 fra
.me
.REG
[7] = fra
.me
.REG
[3];
716 /* ./icode//icode_builder.nit:141 */
717 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
718 /* ./icode//icode_builder.nit:142 */
719 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
720 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
721 /* ./icode//icode_builder.nit:143 */
722 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
723 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[3]);
724 /* ./icode//icode_builder.nit:144 */
725 fra
.me
.REG
[7] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
726 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
728 /* ./icode//icode_builder.nit:147 */
729 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
730 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
731 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6], fra
.me
.REG
[7]);
732 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[7]);
733 /* ./icode//icode_builder.nit:148 */
734 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[8]);
735 /* ./icode//icode_builder.nit:149 */
736 fra
.me
.REG
[0] = fra
.me
.REG
[5];
739 /* ./icode//icode_builder.nit:152 */
740 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
741 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
742 if (UNTAG_Bool(REGB0
)) {
743 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 152);
745 fra
.me
.REG
[5] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
746 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
747 if (UNTAG_Bool(REGB0
)) {
748 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
749 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
751 /* ./icode//icode_builder.nit:153 */
752 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
753 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
754 if (UNTAG_Bool(REGB0
)) {
755 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 153);
757 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
758 /* ./icode//icode_builder.nit:154 */
759 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
760 if (UNTAG_Bool(REGB0
)) {
762 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
763 if (UNTAG_Bool(REGB1
)) {
764 REGB1
= TAG_Bool(false);
767 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
771 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
772 if (UNTAG_Bool(REGB0
)) {
773 /* ./icode//icode_builder.nit:155 */
774 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6], fra
.me
.REG
[1]);
775 fra
.me
.REG
[0] = fra
.me
.REG
[1];
778 /* ./icode//icode_builder.nit:157 */
779 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
780 /* ./icode//icode_builder.nit:158 */
781 fra
.me
.REG
[0] = NIT_NULL
;
785 stack_frame_head
= fra
.me
.prev
;
786 return fra
.me
.REG
[0];
788 void icode___icode_builder___ICodeBuilder___add_escape(val_t p0
, val_t p1
){
789 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
793 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
794 fra
.me
.file
= LOCATE_icode___icode_builder
;
796 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_escape
;
797 fra
.me
.has_broke
= 0;
799 fra
.me
.REG
[0] = NIT_NULL
;
800 fra
.me
.REG
[1] = NIT_NULL
;
801 fra
.me
.REG
[2] = NIT_NULL
;
802 fra
.me
.REG
[3] = NIT_NULL
;
805 /* ./icode//icode_builder.nit:166 */
806 fra
.me
.REG
[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
807 /* ./icode//icode_builder.nit:167 */
808 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
809 if (UNTAG_Bool(REGB0
)) {
811 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
812 if (UNTAG_Bool(REGB1
)) {
813 REGB1
= TAG_Bool(false);
816 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
820 if (UNTAG_Bool(REGB0
)) {
821 /* ./icode//icode_builder.nit:168 */
822 fra
.me
.REG
[3] = NEW_IEscapeMark_icode___icode_base___IEscapeMark___init();
823 fra
.me
.REG
[2] = fra
.me
.REG
[3];
824 /* ./icode//icode_builder.nit:169 */
825 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
826 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___escape_marks(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
827 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
828 /* ./icode//icode_builder.nit:170 */
829 CALL_icode___icode_base___ISeq___iescape_mark__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
831 /* ./icode//icode_builder.nit:172 */
832 fra
.me
.REG
[2] = NEW_IEscape_icode___icode_base___IEscape___init(fra
.me
.REG
[2]);
833 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
834 stack_frame_head
= fra
.me
.prev
;
837 val_t
icode___icode_builder___ICodeBuilder___lit_null_reg(val_t p0
){
838 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
840 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
841 fra
.me
.file
= LOCATE_icode___icode_builder
;
843 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___lit_null_reg
;
844 fra
.me
.has_broke
= 0;
846 fra
.me
.REG
[0] = NIT_NULL
;
847 fra
.me
.REG
[1] = NIT_NULL
;
849 /* ./icode//icode_builder.nit:178 */
850 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
851 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMModule___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
852 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
855 stack_frame_head
= fra
.me
.prev
;
856 return fra
.me
.REG
[1];
858 val_t
icode___icode_builder___ICodeBuilder___lit_true_reg(val_t p0
){
859 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
862 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
863 fra
.me
.file
= LOCATE_icode___icode_builder
;
865 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___lit_true_reg
;
866 fra
.me
.has_broke
= 0;
868 fra
.me
.REG
[0] = NIT_NULL
;
869 fra
.me
.REG
[1] = NIT_NULL
;
870 fra
.me
.REG
[2] = NIT_NULL
;
872 /* ./icode//icode_builder.nit:184 */
873 REGB0
= TAG_Bool(true);
874 fra
.me
.REG
[1] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0
);
875 /* ./icode//icode_builder.nit:185 */
876 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
877 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
878 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
881 stack_frame_head
= fra
.me
.prev
;
882 return fra
.me
.REG
[2];
884 val_t
icode___icode_builder___ICodeBuilder___lit_false_reg(val_t p0
){
885 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
888 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
889 fra
.me
.file
= LOCATE_icode___icode_builder
;
891 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___lit_false_reg
;
892 fra
.me
.has_broke
= 0;
894 fra
.me
.REG
[0] = NIT_NULL
;
895 fra
.me
.REG
[1] = NIT_NULL
;
896 fra
.me
.REG
[2] = NIT_NULL
;
898 /* ./icode//icode_builder.nit:191 */
899 REGB0
= TAG_Bool(false);
900 fra
.me
.REG
[1] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0
);
901 /* ./icode//icode_builder.nit:192 */
902 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
903 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
904 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
907 stack_frame_head
= fra
.me
.prev
;
908 return fra
.me
.REG
[2];
910 val_t
icode___icode_builder___ICodeBuilder___new_register(val_t p0
, val_t p1
){
911 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
913 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
914 fra
.me
.file
= LOCATE_icode___icode_builder
;
916 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___new_register
;
917 fra
.me
.has_broke
= 0;
919 fra
.me
.REG
[0] = NIT_NULL
;
920 fra
.me
.REG
[1] = NIT_NULL
;
923 /* ./icode//icode_builder.nit:198 */
924 fra
.me
.REG
[1] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[1]);
925 /* ./icode//icode_builder.nit:199 */
926 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
927 fra
.me
.REG
[0] = CALL_icode___icode_base___IRoutine___registers(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
928 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
929 /* ./icode//icode_builder.nit:200 */
932 stack_frame_head
= fra
.me
.prev
;
933 return fra
.me
.REG
[1];
935 val_t
icode___icode_builder___ICodeBuilder___mmmodule(val_t p0
){
936 struct {struct stack_frame_t me
;} fra
;
939 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
940 fra
.me
.file
= LOCATE_icode___icode_builder
;
942 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___mmmodule
;
943 fra
.me
.has_broke
= 0;
945 fra
.me
.REG
[0] = NIT_NULL
;
947 /* ./icode//icode_builder.nit:203 */
948 REGB0
= TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra
.me
.REG
[0])!=NIT_NULL
);
949 if (UNTAG_Bool(REGB0
)) {
951 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_icode___icode_builder
, 203);
953 fra
.me
.REG
[0] = ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra
.me
.REG
[0]);
954 stack_frame_head
= fra
.me
.prev
;
955 return fra
.me
.REG
[0];
957 val_t
icode___icode_builder___ICodeBuilder___iroutine(val_t p0
){
958 struct {struct stack_frame_t me
;} fra
;
961 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
962 fra
.me
.file
= LOCATE_icode___icode_builder
;
964 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___iroutine
;
965 fra
.me
.has_broke
= 0;
967 fra
.me
.REG
[0] = NIT_NULL
;
969 /* ./icode//icode_builder.nit:206 */
970 REGB0
= TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra
.me
.REG
[0])!=NIT_NULL
);
971 if (UNTAG_Bool(REGB0
)) {
973 nit_abort("Uninitialized attribute %s", "_iroutine", LOCATE_icode___icode_builder
, 206);
975 fra
.me
.REG
[0] = ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra
.me
.REG
[0]);
976 stack_frame_head
= fra
.me
.prev
;
977 return fra
.me
.REG
[0];
979 val_t
icode___icode_builder___ICodeBuilder___seq(val_t p0
){
980 struct {struct stack_frame_t me
;} fra
;
983 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
984 fra
.me
.file
= LOCATE_icode___icode_builder
;
986 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___seq
;
987 fra
.me
.has_broke
= 0;
989 fra
.me
.REG
[0] = NIT_NULL
;
991 /* ./icode//icode_builder.nit:209 */
992 REGB0
= TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0])!=NIT_NULL
);
993 if (UNTAG_Bool(REGB0
)) {
995 nit_abort("Uninitialized attribute %s", "_seq", LOCATE_icode___icode_builder
, 209);
997 fra
.me
.REG
[0] = ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]);
998 stack_frame_head
= fra
.me
.prev
;
999 return fra
.me
.REG
[0];
1001 void icode___icode_builder___ICodeBuilder___seq__eq(val_t p0
, val_t p1
){
1002 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1004 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1005 fra
.me
.file
= LOCATE_icode___icode_builder
;
1007 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___seq__eq
;
1008 fra
.me
.has_broke
= 0;
1009 fra
.me
.REG_size
= 2;
1010 fra
.me
.REG
[0] = NIT_NULL
;
1011 fra
.me
.REG
[1] = NIT_NULL
;
1014 /* ./icode//icode_builder.nit:209 */
1015 ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1016 stack_frame_head
= fra
.me
.prev
;
1019 void icode___icode_builder___ICodeBuilder___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1020 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_icode___icode_builder___ICodeBuilder
].i
;
1021 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1023 if (init_table
[itpos0
]) return;
1024 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1025 fra
.me
.file
= LOCATE_icode___icode_builder
;
1027 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___init
;
1028 fra
.me
.has_broke
= 0;
1029 fra
.me
.REG_size
= 3;
1030 fra
.me
.REG
[0] = NIT_NULL
;
1031 fra
.me
.REG
[1] = NIT_NULL
;
1032 fra
.me
.REG
[2] = NIT_NULL
;
1036 /* ./icode//icode_builder.nit:214 */
1037 ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1038 /* ./icode//icode_builder.nit:215 */
1039 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___location(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1040 ATTR_icode___icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1041 /* ./icode//icode_builder.nit:216 */
1042 ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1043 /* ./icode//icode_builder.nit:217 */
1044 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1045 ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1046 stack_frame_head
= fra
.me
.prev
;
1047 init_table
[itpos0
] = 1;
1050 val_t
icode___icode_builder___ICodeBuilder___current_location(val_t p0
){
1051 struct {struct stack_frame_t me
;} fra
;
1053 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1054 fra
.me
.file
= LOCATE_icode___icode_builder
;
1056 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___current_location
;
1057 fra
.me
.has_broke
= 0;
1058 fra
.me
.REG_size
= 1;
1059 fra
.me
.REG
[0] = NIT_NULL
;
1061 /* ./icode//icode_builder.nit:220 */
1062 fra
.me
.REG
[0] = ATTR_icode___icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]);
1063 stack_frame_head
= fra
.me
.prev
;
1064 return fra
.me
.REG
[0];
1066 void icode___icode_builder___ICodeBuilder___current_location__eq(val_t p0
, val_t p1
){
1067 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1069 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1070 fra
.me
.file
= LOCATE_icode___icode_builder
;
1072 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___current_location__eq
;
1073 fra
.me
.has_broke
= 0;
1074 fra
.me
.REG_size
= 2;
1075 fra
.me
.REG
[0] = NIT_NULL
;
1076 fra
.me
.REG
[1] = NIT_NULL
;
1079 /* ./icode//icode_builder.nit:220 */
1080 ATTR_icode___icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1081 stack_frame_head
= fra
.me
.prev
;
1084 val_t
icode___icode_builder___MMSignature___generate_empty_iroutine(val_t p0
){
1085 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
1092 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1093 fra
.me
.file
= LOCATE_icode___icode_builder
;
1095 fra
.me
.meth
= LOCATE_icode___icode_builder___MMSignature___generate_empty_iroutine
;
1096 fra
.me
.has_broke
= 0;
1097 fra
.me
.REG_size
= 7;
1098 fra
.me
.REG
[0] = NIT_NULL
;
1099 fra
.me
.REG
[1] = NIT_NULL
;
1100 fra
.me
.REG
[2] = NIT_NULL
;
1101 fra
.me
.REG
[3] = NIT_NULL
;
1102 fra
.me
.REG
[4] = NIT_NULL
;
1103 fra
.me
.REG
[5] = NIT_NULL
;
1104 fra
.me
.REG
[6] = NIT_NULL
;
1106 /* ./icode//icode_builder.nit:228 */
1107 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___init();
1108 /* ./icode//icode_builder.nit:229 */
1109 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1110 fra
.me
.REG
[2] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[2]);
1111 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1112 /* ./icode//icode_builder.nit:230 */
1114 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1115 /* ./../lib/standard//kernel.nit:352 */
1117 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1118 if (UNTAG_Bool(REGB2
)) {
1120 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1122 /* ./../lib/standard//kernel.nit:232 */
1123 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1124 /* ./../lib/standard//kernel.nit:352 */
1125 if (UNTAG_Bool(REGB2
)) {
1126 /* ./icode//icode_builder.nit:230 */
1128 /* ./icode//icode_builder.nit:231 */
1129 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB2
);
1130 fra
.me
.REG
[2] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[2]);
1131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1132 /* ./../lib/standard//kernel.nit:354 */
1134 /* ./../lib/standard//kernel.nit:235 */
1135 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1136 /* ./../lib/standard//kernel.nit:354 */
1139 /* ./../lib/standard//kernel.nit:352 */
1144 /* ./icode//icode_builder.nit:233 */
1145 fra
.me
.REG
[2] = NIT_NULL
;
1146 /* ./icode//icode_builder.nit:234 */
1147 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1148 /* ./icode//icode_builder.nit:235 */
1149 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1150 if (UNTAG_Bool(REGB0
)) {
1152 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1153 if (UNTAG_Bool(REGB1
)) {
1154 REGB1
= TAG_Bool(false);
1157 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1161 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1162 if (UNTAG_Bool(REGB0
)) {
1163 /* ./icode//icode_builder.nit:236 */
1164 fra
.me
.REG
[3] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[3]);
1165 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1167 /* ./icode//icode_builder.nit:238 */
1168 fra
.me
.REG
[2] = NEW_IRoutine_icode___icode_base___IRoutine___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1169 /* ./icode//icode_builder.nit:239 */
1170 fra
.me
.REG
[3] = NIT_NULL
;
1171 /* ./icode//icode_builder.nit:240 */
1172 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1173 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1174 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1175 if (UNTAG_Bool(REGB0
)) {
1176 /* ./icode//icode_builder.nit:241 */
1177 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
1178 fra
.me
.REG
[3] = fra
.me
.REG
[4];
1179 /* ./icode//icode_builder.nit:242 */
1180 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1181 /* ./../lib/standard//collection//array.nit:269 */
1183 /* ./../lib/standard//collection//array.nit:270 */
1184 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1185 if (UNTAG_Bool(REGB1
)) {
1187 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1189 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1190 /* ./../lib/standard//collection//array.nit:271 */
1191 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1192 /* ./../lib/standard//collection//array.nit:272 */
1194 /* ./../lib/standard//collection//array.nit:24 */
1195 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1196 if (UNTAG_Bool(REGB1
)) {
1198 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1200 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1201 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1202 if (UNTAG_Bool(REGB2
)) {
1204 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1206 /* ./../lib/standard//kernel.nit:232 */
1207 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1208 /* ./../lib/standard//collection//array.nit:272 */
1209 if (UNTAG_Bool(REGB1
)) {
1210 /* ./../lib/standard//collection//array.nit:273 */
1211 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1212 if (UNTAG_Bool(REGB1
)) {
1213 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1215 /* ./../lib/standard//collection//array.nit:718 */
1216 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1217 /* ./icode//icode_builder.nit:243 */
1218 fra
.me
.REG
[6] = NEW_IClosureDecl_icode___icode_base___IClosureDecl___init(fra
.me
.REG
[6]);
1219 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1220 if (UNTAG_Bool(REGB1
)) {
1221 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 243);
1223 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1224 /* ./../lib/standard//collection//array.nit:274 */
1226 /* ./../lib/standard//kernel.nit:235 */
1227 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1228 /* ./../lib/standard//collection//array.nit:274 */
1231 /* ./../lib/standard//collection//array.nit:272 */
1236 /* ./icode//icode_builder.nit:245 */
1237 CALL_icode___icode_base___IRoutine___closure_decls__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1239 /* ./icode//icode_builder.nit:248 */
1240 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1241 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1242 fra
.me
.REG
[3] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1243 /* ./icode//icode_builder.nit:249 */
1245 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1246 /* ./../lib/standard//kernel.nit:352 */
1248 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1249 if (UNTAG_Bool(REGB2
)) {
1251 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1253 /* ./../lib/standard//kernel.nit:232 */
1254 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1255 /* ./../lib/standard//kernel.nit:352 */
1256 if (UNTAG_Bool(REGB2
)) {
1257 /* ./icode//icode_builder.nit:249 */
1259 /* ./icode//icode_builder.nit:250 */
1260 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB2
);
1261 /* ./icode//icode_builder.nit:251 */
1262 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___virtualtype___MMVirtualType
, ID_metamodel___virtualtype___MMVirtualType
)) /*cast MMVirtualType*/;
1263 if (UNTAG_Bool(REGB3
)) {
1264 /* ./icode//icode_builder.nit:252 */
1266 /* ./../lib/standard//kernel.nit:235 */
1267 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1268 /* ./../lib/standard//collection//array.nit:278 */
1269 fra
.me
.REG
[4] = fra
.me
.REG
[1];
1270 /* ./../lib/standard//collection//array.nit:280 */
1272 REGB4
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1273 if (UNTAG_Bool(REGB4
)) {
1275 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1277 /* ./../lib/standard//kernel.nit:233 */
1278 REGB2
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB2
));
1279 /* ./../lib/standard//collection//array.nit:280 */
1280 if (UNTAG_Bool(REGB2
)) {
1281 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1282 if (UNTAG_Bool(REGB2
)) {
1284 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1286 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1287 REGB4
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1288 if (UNTAG_Bool(REGB4
)) {
1290 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1292 /* ./../lib/standard//kernel.nit:232 */
1293 REGB2
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB2
));
1295 /* ./../lib/standard//collection//array.nit:280 */
1296 REGB4
= TAG_Bool(false);
1299 if (UNTAG_Bool(REGB2
)) {
1301 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
1303 /* ./../lib/standard//collection//array.nit:281 */
1304 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1305 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1306 if (UNTAG_Bool(REGB2
)) {
1307 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1309 /* ./../lib/standard//collection//array.nit:718 */
1310 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB3
)];
1311 /* ./../lib/standard//collection//array.nit:281 */
1314 /* ./icode//icode_builder.nit:252 */
1315 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[5]);
1317 /* ./../lib/standard//kernel.nit:354 */
1319 /* ./../lib/standard//kernel.nit:235 */
1320 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1321 /* ./../lib/standard//kernel.nit:354 */
1324 /* ./../lib/standard//kernel.nit:352 */
1329 /* ./icode//icode_builder.nit:255 */
1332 stack_frame_head
= fra
.me
.prev
;
1333 return fra
.me
.REG
[2];
1335 val_t
icode___icode_builder___MMSignature___generate_empty_iclosuredef(val_t p0
, val_t p1
){
1336 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1341 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1342 fra
.me
.file
= LOCATE_icode___icode_builder
;
1344 fra
.me
.meth
= LOCATE_icode___icode_builder___MMSignature___generate_empty_iclosuredef
;
1345 fra
.me
.has_broke
= 0;
1346 fra
.me
.REG_size
= 5;
1347 fra
.me
.REG
[0] = NIT_NULL
;
1348 fra
.me
.REG
[1] = NIT_NULL
;
1349 fra
.me
.REG
[2] = NIT_NULL
;
1350 fra
.me
.REG
[3] = NIT_NULL
;
1351 fra
.me
.REG
[4] = NIT_NULL
;
1354 /* ./icode//icode_builder.nit:261 */
1355 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
1356 /* ./icode//icode_builder.nit:262 */
1358 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1359 /* ./../lib/standard//kernel.nit:352 */
1361 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1362 if (UNTAG_Bool(REGB2
)) {
1364 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1366 /* ./../lib/standard//kernel.nit:232 */
1367 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1368 /* ./../lib/standard//kernel.nit:352 */
1369 if (UNTAG_Bool(REGB2
)) {
1370 /* ./icode//icode_builder.nit:262 */
1372 /* ./icode//icode_builder.nit:263 */
1373 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB2
);
1374 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1375 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1376 /* ./../lib/standard//kernel.nit:354 */
1378 /* ./../lib/standard//kernel.nit:235 */
1379 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1380 /* ./../lib/standard//kernel.nit:354 */
1383 /* ./../lib/standard//kernel.nit:352 */
1388 /* ./icode//icode_builder.nit:265 */
1389 fra
.me
.REG
[3] = NIT_NULL
;
1390 /* ./icode//icode_builder.nit:266 */
1391 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1392 /* ./icode//icode_builder.nit:267 */
1393 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1394 if (UNTAG_Bool(REGB0
)) {
1396 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1397 if (UNTAG_Bool(REGB1
)) {
1398 REGB1
= TAG_Bool(false);
1401 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1405 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1406 if (UNTAG_Bool(REGB0
)) {
1407 /* ./icode//icode_builder.nit:268 */
1408 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1409 fra
.me
.REG
[3] = fra
.me
.REG
[4];
1411 /* ./icode//icode_builder.nit:270 */
1412 fra
.me
.REG
[3] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1413 /* ./icode//icode_builder.nit:271 */
1414 fra
.me
.REG
[2] = NIT_NULL
;
1415 /* ./icode//icode_builder.nit:272 */
1416 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1417 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1418 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1419 if (UNTAG_Bool(REGB0
)) {
1420 /* ./icode//icode_builder.nit:273 */
1421 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
1422 fra
.me
.REG
[2] = fra
.me
.REG
[4];
1423 /* ./icode//icode_builder.nit:274 */
1424 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1425 /* ./../lib/standard//collection//array.nit:269 */
1427 /* ./../lib/standard//collection//array.nit:270 */
1428 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
1429 if (UNTAG_Bool(REGB1
)) {
1431 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1433 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
1434 /* ./../lib/standard//collection//array.nit:271 */
1435 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
1436 /* ./../lib/standard//collection//array.nit:272 */
1438 /* ./../lib/standard//collection//array.nit:24 */
1439 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
1440 if (UNTAG_Bool(REGB1
)) {
1442 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1444 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
1445 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1446 if (UNTAG_Bool(REGB2
)) {
1448 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1450 /* ./../lib/standard//kernel.nit:232 */
1451 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1452 /* ./../lib/standard//collection//array.nit:272 */
1453 if (UNTAG_Bool(REGB1
)) {
1454 /* ./../lib/standard//collection//array.nit:273 */
1455 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1456 if (UNTAG_Bool(REGB1
)) {
1457 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1459 /* ./../lib/standard//collection//array.nit:718 */
1460 fra
.me
.REG
[1] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
1461 /* ./icode//icode_builder.nit:275 */
1462 fra
.me
.REG
[1] = NEW_IClosureDecl_icode___icode_base___IClosureDecl___init(fra
.me
.REG
[1]);
1463 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1464 if (UNTAG_Bool(REGB1
)) {
1465 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 275);
1467 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1468 /* ./../lib/standard//collection//array.nit:274 */
1470 /* ./../lib/standard//kernel.nit:235 */
1471 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1472 /* ./../lib/standard//collection//array.nit:274 */
1475 /* ./../lib/standard//collection//array.nit:272 */
1480 /* ./icode//icode_builder.nit:277 */
1481 CALL_icode___icode_base___IRoutine___closure_decls__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1483 /* ./icode//icode_builder.nit:280 */
1486 stack_frame_head
= fra
.me
.prev
;
1487 return fra
.me
.REG
[3];