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
.nitni_local_ref_head
= NULL
;
14 fra
.me
.REG
[0] = NIT_NULL
;
15 fra
.me
.REG
[1] = NIT_NULL
;
16 fra
.me
.REG
[2] = NIT_NULL
;
19 /* icode/icode_builder.nit:28 */
20 fra
.me
.REG
[2] = ATTR_icode___icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]);
21 CALL_icode___icode_base___ICode___location__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
22 /* icode/icode_builder.nit:29 */
23 REGB0
= TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0])!=NIT_NULL
);
24 if (UNTAG_Bool(REGB0
)) {
26 nit_abort("Uninitialized attribute %s", "_seq", LOCATE_icode___icode_builder
, 29);
28 fra
.me
.REG
[0] = ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]);
29 fra
.me
.REG
[0] = CALL_icode___icode_base___ISeq___icodes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
30 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
31 stack_frame_head
= fra
.me
.prev
;
34 val_t
icode___icode_builder___ICodeBuilder___expr(val_t p0
, val_t p1
, val_t p2
){
35 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
39 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
40 fra
.me
.file
= LOCATE_icode___icode_builder
;
42 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___expr
;
45 fra
.me
.nitni_local_ref_head
= NULL
;
46 fra
.me
.REG
[0] = NIT_NULL
;
47 fra
.me
.REG
[1] = NIT_NULL
;
48 fra
.me
.REG
[2] = NIT_NULL
;
49 fra
.me
.REG
[3] = NIT_NULL
;
53 /* icode/icode_builder.nit:35 */
54 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
55 /* icode/icode_builder.nit:36 */
56 fra
.me
.REG
[3] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
57 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
58 if (UNTAG_Bool(REGB0
)) {
60 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
61 if (UNTAG_Bool(REGB1
)) {
62 REGB1
= TAG_Bool(false);
65 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
69 if (UNTAG_Bool(REGB0
)) {
71 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_builder
, 36);
73 /* icode/icode_builder.nit:37 */
74 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
75 /* icode/icode_builder.nit:38 */
76 CALL_icode___icode_base___ICode___result__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
77 /* icode/icode_builder.nit:39 */
80 stack_frame_head
= fra
.me
.prev
;
83 void icode___icode_builder___ICodeBuilder___add_assignment(val_t p0
, val_t p1
, val_t p2
){
84 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
86 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
87 fra
.me
.file
= LOCATE_icode___icode_builder
;
89 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_assignment
;
92 fra
.me
.nitni_local_ref_head
= NULL
;
93 fra
.me
.REG
[0] = NIT_NULL
;
94 fra
.me
.REG
[1] = NIT_NULL
;
95 fra
.me
.REG
[2] = NIT_NULL
;
99 /* icode/icode_builder.nit:45 */
100 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
101 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
102 stack_frame_head
= fra
.me
.prev
;
105 void icode___icode_builder___ICodeBuilder___add_null_reciever_check(val_t p0
, val_t p1
){
106 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
109 static val_t once_value_1
; /* Once value */
110 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
111 fra
.me
.file
= LOCATE_icode___icode_builder
;
113 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_null_reciever_check
;
114 fra
.me
.has_broke
= 0;
116 fra
.me
.nitni_local_ref_head
= NULL
;
117 fra
.me
.REG
[0] = NIT_NULL
;
118 fra
.me
.REG
[1] = NIT_NULL
;
119 fra
.me
.REG
[2] = NIT_NULL
;
120 fra
.me
.REG
[3] = NIT_NULL
;
123 /* icode/icode_builder.nit:51 */
124 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
125 /* icode/icode_builder.nit:52 */
126 fra
.me
.REG
[2] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
127 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
128 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
129 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]);
130 /* icode/icode_builder.nit:53 */
131 fra
.me
.REG
[1] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[1]);
132 /* icode/icode_builder.nit:54 */
133 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
134 /* icode/icode_builder.nit:55 */
135 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
136 /* icode/icode_builder.nit:56 */
137 fra
.me
.REG
[1] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
138 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
139 /* icode/icode_builder.nit:57 */
141 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
143 fra
.me
.REG
[3] = BOX_NativeString("Reciever is null");
145 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
146 once_value_1
= fra
.me
.REG
[3];
147 register_static_object(&once_value_1
);
148 } else fra
.me
.REG
[3] = once_value_1
;
149 fra
.me
.REG
[3] = fra
.me
.REG
[3];
150 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
151 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
152 /* icode/icode_builder.nit:58 */
153 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
154 stack_frame_head
= fra
.me
.prev
;
157 void icode___icode_builder___ICodeBuilder___add_type_cast(val_t p0
, val_t p1
, val_t p2
){
158 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
161 static val_t once_value_1
; /* Once value */
162 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
163 fra
.me
.file
= LOCATE_icode___icode_builder
;
165 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_type_cast
;
166 fra
.me
.has_broke
= 0;
168 fra
.me
.nitni_local_ref_head
= NULL
;
169 fra
.me
.REG
[0] = NIT_NULL
;
170 fra
.me
.REG
[1] = NIT_NULL
;
171 fra
.me
.REG
[2] = NIT_NULL
;
172 fra
.me
.REG
[3] = NIT_NULL
;
176 /* icode/icode_builder.nit:64 */
177 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
178 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
179 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
180 fra
.me
.REG
[2] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[2]);
181 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
182 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
183 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]);
184 /* icode/icode_builder.nit:65 */
185 fra
.me
.REG
[1] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[1]);
186 /* icode/icode_builder.nit:66 */
187 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
188 /* icode/icode_builder.nit:67 */
189 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
190 /* icode/icode_builder.nit:68 */
191 fra
.me
.REG
[1] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
192 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
193 /* icode/icode_builder.nit:69 */
195 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
197 fra
.me
.REG
[3] = BOX_NativeString("Cast failed");
199 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
200 once_value_1
= fra
.me
.REG
[3];
201 register_static_object(&once_value_1
);
202 } else fra
.me
.REG
[3] = once_value_1
;
203 fra
.me
.REG
[3] = fra
.me
.REG
[3];
204 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
205 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
206 /* icode/icode_builder.nit:70 */
207 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
208 stack_frame_head
= fra
.me
.prev
;
211 void icode___icode_builder___ICodeBuilder___add_attr_check(val_t p0
, val_t p1
, val_t p2
){
212 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
215 static val_t once_value_1
; /* Once value */
216 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
217 fra
.me
.file
= LOCATE_icode___icode_builder
;
219 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_attr_check
;
220 fra
.me
.has_broke
= 0;
222 fra
.me
.nitni_local_ref_head
= NULL
;
223 fra
.me
.REG
[0] = NIT_NULL
;
224 fra
.me
.REG
[1] = NIT_NULL
;
225 fra
.me
.REG
[2] = NIT_NULL
;
226 fra
.me
.REG
[3] = NIT_NULL
;
227 fra
.me
.REG
[4] = NIT_NULL
;
231 /* icode/icode_builder.nit:76 */
232 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
233 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
234 if (UNTAG_Bool(REGB0
)) {
235 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 76);
237 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
238 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
239 if (UNTAG_Bool(REGB0
)) {
240 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 76);
242 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
243 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
244 if (UNTAG_Bool(REGB0
)) {
245 /* icode/icode_builder.nit:77 */
246 fra
.me
.REG
[2] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
247 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
248 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
249 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]);
250 /* icode/icode_builder.nit:78 */
251 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
252 /* icode/icode_builder.nit:79 */
253 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
254 /* icode/icode_builder.nit:80 */
255 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
256 /* icode/icode_builder.nit:81 */
257 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
258 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
259 /* icode/icode_builder.nit:82 */
261 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
263 fra
.me
.REG
[4] = BOX_NativeString("Uninitialized attribute %s");
265 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
266 once_value_1
= fra
.me
.REG
[4];
267 register_static_object(&once_value_1
);
268 } else fra
.me
.REG
[4] = once_value_1
;
269 fra
.me
.REG
[4] = fra
.me
.REG
[4];
270 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
271 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
272 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
274 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
275 /* icode/icode_builder.nit:83 */
276 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
278 stack_frame_head
= fra
.me
.prev
;
281 val_t
icode___icode_builder___ICodeBuilder___add_attr_read(val_t p0
, val_t p1
, val_t p2
){
282 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
285 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
286 fra
.me
.file
= LOCATE_icode___icode_builder
;
288 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_attr_read
;
289 fra
.me
.has_broke
= 0;
291 fra
.me
.nitni_local_ref_head
= NULL
;
292 fra
.me
.REG
[0] = NIT_NULL
;
293 fra
.me
.REG
[1] = NIT_NULL
;
294 fra
.me
.REG
[2] = NIT_NULL
;
295 fra
.me
.REG
[3] = NIT_NULL
;
299 /* icode/icode_builder.nit:87 */
300 fra
.me
.REG
[3] = fra
.me
.REG
[0];
301 /* icode/icode_builder.nit:90 */
302 CALL_icode___icode_builder___ICodeBuilder___add_attr_check(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[2]);
303 /* icode/icode_builder.nit:91 */
304 fra
.me
.REG
[2] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
305 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
306 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
307 if (UNTAG_Bool(REGB0
)) {
308 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 91);
310 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
311 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*/;
312 if (UNTAG_Bool(REGB0
)) {
314 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_builder
, 91);
316 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]);
319 stack_frame_head
= fra
.me
.prev
;
320 return fra
.me
.REG
[1];
322 void icode___icode_builder___ICodeBuilder___add_abort(val_t p0
, val_t p1
){
323 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
326 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
327 fra
.me
.file
= LOCATE_icode___icode_builder
;
329 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_abort
;
330 fra
.me
.has_broke
= 0;
332 fra
.me
.nitni_local_ref_head
= NULL
;
333 fra
.me
.REG
[0] = NIT_NULL
;
334 fra
.me
.REG
[1] = NIT_NULL
;
335 fra
.me
.REG
[2] = NIT_NULL
;
338 /* icode/icode_builder.nit:94 */
339 fra
.me
.REG
[2] = fra
.me
.REG
[0];
340 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_standard___collection___array___Array
, ID_standard___collection___array___Array
)) /*cast Array[String]*/;
341 if (UNTAG_Bool(REGB0
)) {
343 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_builder
, 94);
345 /* icode/icode_builder.nit:97 */
346 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
347 fra
.me
.REG
[0] = NEW_IAbort_icode___icode_base___IAbort___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
348 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
349 stack_frame_head
= fra
.me
.prev
;
352 void icode___icode_builder___ICodeBuilder___add_return_value(val_t p0
, val_t p1
){
353 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
356 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
357 fra
.me
.file
= LOCATE_icode___icode_builder
;
359 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_return_value
;
360 fra
.me
.has_broke
= 0;
362 fra
.me
.nitni_local_ref_head
= NULL
;
363 fra
.me
.REG
[0] = NIT_NULL
;
364 fra
.me
.REG
[1] = NIT_NULL
;
365 fra
.me
.REG
[2] = NIT_NULL
;
366 fra
.me
.REG
[3] = NIT_NULL
;
369 /* icode/icode_builder.nit:100 */
370 fra
.me
.REG
[2] = fra
.me
.REG
[0];
371 /* icode/icode_builder.nit:104 */
372 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
373 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
374 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*/;
375 if (UNTAG_Bool(REGB0
)) {
377 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_builder
, 104);
379 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
380 stack_frame_head
= fra
.me
.prev
;
383 val_t
icode___icode_builder___ICodeBuilder___add_call(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
384 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
389 static val_t once_value_1
; /* Once value */
390 static val_t once_value_2
; /* Once value */
391 static val_t once_value_3
; /* Once value */
392 static val_t once_value_4
; /* Once value */
393 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
394 fra
.me
.file
= LOCATE_icode___icode_builder
;
396 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_call
;
397 fra
.me
.has_broke
= 0;
398 fra
.me
.REG_size
= 11;
399 fra
.me
.nitni_local_ref_head
= NULL
;
400 fra
.me
.REG
[0] = NIT_NULL
;
401 fra
.me
.REG
[1] = NIT_NULL
;
402 fra
.me
.REG
[2] = NIT_NULL
;
403 fra
.me
.REG
[3] = NIT_NULL
;
404 fra
.me
.REG
[4] = NIT_NULL
;
405 fra
.me
.REG
[5] = NIT_NULL
;
406 fra
.me
.REG
[6] = NIT_NULL
;
407 fra
.me
.REG
[7] = NIT_NULL
;
408 fra
.me
.REG
[8] = NIT_NULL
;
409 fra
.me
.REG
[9] = NIT_NULL
;
410 fra
.me
.REG
[10] = NIT_NULL
;
415 /* icode/icode_builder.nit:107 */
416 fra
.me
.REG
[4] = fra
.me
.REG
[0];
417 /* icode/icode_builder.nit:110 */
420 fra
.me
.REG
[5] = BOX_NativeString("==");
422 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
423 once_value_2
= fra
.me
.REG
[5];
424 register_static_object(&once_value_2
);
425 } else fra
.me
.REG
[5] = once_value_2
;
426 fra
.me
.REG
[5] = fra
.me
.REG
[5];
427 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
428 once_value_1
= fra
.me
.REG
[5];
429 register_static_object(&once_value_1
);
430 } else fra
.me
.REG
[5] = once_value_1
;
431 fra
.me
.REG
[5] = fra
.me
.REG
[5];
432 /* icode/icode_builder.nit:113 */
435 fra
.me
.REG
[6] = BOX_NativeString("!=");
437 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
438 once_value_4
= fra
.me
.REG
[6];
439 register_static_object(&once_value_4
);
440 } else fra
.me
.REG
[6] = once_value_4
;
441 fra
.me
.REG
[6] = fra
.me
.REG
[6];
442 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
443 once_value_3
= fra
.me
.REG
[6];
444 register_static_object(&once_value_3
);
445 } else fra
.me
.REG
[6] = once_value_3
;
446 fra
.me
.REG
[6] = fra
.me
.REG
[6];
447 /* icode/icode_builder.nit:114 */
448 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
449 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[7],fra
.me
.REG
[6]));
450 if (UNTAG_Bool(REGB0
)) {
452 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
455 if (UNTAG_Bool(REGB0
)) {
456 /* icode/icode_builder.nit:115 */
457 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
458 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
459 if (UNTAG_Bool(REGB0
)) {
460 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 115);
462 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
463 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
464 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
465 /* icode/icode_builder.nit:116 */
466 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]);
467 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
468 if (UNTAG_Bool(REGB0
)) {
470 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_builder
, 116);
472 /* icode/icode_builder.nit:117 */
473 fra
.me
.REG
[6] = NEW_INot_icode___icode_base___INot___init(fra
.me
.REG
[6]);
474 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
475 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
476 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]);
479 /* icode/icode_builder.nit:122 */
480 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
481 /* icode/icode_builder.nit:123 */
482 CALL_icode___icode_base___ICodeN___closure_defs__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
483 /* icode/icode_builder.nit:124 */
484 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
485 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[5]));
486 if (UNTAG_Bool(REGB0
)) {
488 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
491 if (UNTAG_Bool(REGB0
)) {
492 /* icode/icode_builder.nit:126 */
493 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
494 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
495 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
496 /* icode/icode_builder.nit:128 */
498 /* ../lib/standard/collection/array.nit:278 */
499 fra
.me
.REG
[3] = fra
.me
.REG
[2];
500 /* ../lib/standard/collection/array.nit:280 */
502 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
503 if (UNTAG_Bool(REGB2
)) {
505 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
507 /* ../lib/standard/kernel.nit:233 */
508 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
509 /* ../lib/standard/collection/array.nit:280 */
510 if (UNTAG_Bool(REGB1
)) {
511 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
512 if (UNTAG_Bool(REGB1
)) {
514 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
516 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
517 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
518 if (UNTAG_Bool(REGB2
)) {
520 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
522 /* ../lib/standard/kernel.nit:232 */
523 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
525 /* ../lib/standard/collection/array.nit:280 */
526 REGB2
= TAG_Bool(false);
529 if (UNTAG_Bool(REGB1
)) {
531 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
533 /* ../lib/standard/collection/array.nit:281 */
534 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
535 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
536 if (UNTAG_Bool(REGB1
)) {
537 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
539 /* ../lib/standard/collection/array.nit:718 */
540 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB0
)];
541 /* ../lib/standard/collection/array.nit:281 */
544 /* icode/icode_builder.nit:128 */
546 /* ../lib/standard/collection/array.nit:278 */
547 fra
.me
.REG
[7] = fra
.me
.REG
[2];
548 /* ../lib/standard/collection/array.nit:280 */
550 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
551 if (UNTAG_Bool(REGB2
)) {
553 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
555 /* ../lib/standard/kernel.nit:233 */
556 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
557 /* ../lib/standard/collection/array.nit:280 */
558 if (UNTAG_Bool(REGB1
)) {
559 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
560 if (UNTAG_Bool(REGB1
)) {
562 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
564 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
565 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
566 if (UNTAG_Bool(REGB2
)) {
568 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
570 /* ../lib/standard/kernel.nit:232 */
571 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
573 /* ../lib/standard/collection/array.nit:280 */
574 REGB2
= TAG_Bool(false);
577 if (UNTAG_Bool(REGB1
)) {
579 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
581 /* ../lib/standard/collection/array.nit:281 */
582 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
583 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
584 if (UNTAG_Bool(REGB1
)) {
585 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
587 /* ../lib/standard/collection/array.nit:718 */
588 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
589 /* ../lib/standard/collection/array.nit:281 */
592 /* icode/icode_builder.nit:128 */
593 fra
.me
.REG
[7] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[3], fra
.me
.REG
[7]);
594 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
595 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
596 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]);
597 /* icode/icode_builder.nit:129 */
598 fra
.me
.REG
[7] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
599 /* icode/icode_builder.nit:130 */
600 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
601 /* icode/icode_builder.nit:131 */
602 fra
.me
.REG
[8] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
603 /* icode/icode_builder.nit:132 */
604 fra
.me
.REG
[9] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
605 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[9]);
606 /* icode/icode_builder.nit:133 */
607 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[3]);
608 /* icode/icode_builder.nit:135 */
609 fra
.me
.REG
[9] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
610 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[9]);
611 /* icode/icode_builder.nit:137 */
613 /* ../lib/standard/collection/array.nit:278 */
614 fra
.me
.REG
[9] = fra
.me
.REG
[2];
615 /* ../lib/standard/collection/array.nit:280 */
617 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
618 if (UNTAG_Bool(REGB2
)) {
620 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
622 /* ../lib/standard/kernel.nit:233 */
623 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
624 /* ../lib/standard/collection/array.nit:280 */
625 if (UNTAG_Bool(REGB1
)) {
626 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
627 if (UNTAG_Bool(REGB1
)) {
629 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
631 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
632 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
633 if (UNTAG_Bool(REGB2
)) {
635 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
637 /* ../lib/standard/kernel.nit:232 */
638 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
640 /* ../lib/standard/collection/array.nit:280 */
641 REGB2
= TAG_Bool(false);
644 if (UNTAG_Bool(REGB1
)) {
646 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
648 /* ../lib/standard/collection/array.nit:281 */
649 fra
.me
.REG
[9] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
650 REGB1
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
651 if (UNTAG_Bool(REGB1
)) {
652 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
654 /* ../lib/standard/collection/array.nit:718 */
655 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB0
)];
656 /* ../lib/standard/collection/array.nit:281 */
659 /* icode/icode_builder.nit:137 */
660 REGB0
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
661 if (UNTAG_Bool(REGB0
)) {
662 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 137);
664 fra
.me
.REG
[9] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
665 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
666 if (UNTAG_Bool(REGB0
)) {
667 /* icode/icode_builder.nit:138 */
668 fra
.me
.REG
[9] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
669 /* icode/icode_builder.nit:139 */
671 /* ../lib/standard/collection/array.nit:278 */
672 fra
.me
.REG
[10] = fra
.me
.REG
[2];
673 /* ../lib/standard/collection/array.nit:280 */
675 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
676 if (UNTAG_Bool(REGB2
)) {
678 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
680 /* ../lib/standard/kernel.nit:233 */
681 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
682 /* ../lib/standard/collection/array.nit:280 */
683 if (UNTAG_Bool(REGB1
)) {
684 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[10])!=NIT_NULL
);
685 if (UNTAG_Bool(REGB1
)) {
687 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
689 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[10]);
690 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
691 if (UNTAG_Bool(REGB2
)) {
693 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
695 /* ../lib/standard/kernel.nit:232 */
696 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
698 /* ../lib/standard/collection/array.nit:280 */
699 REGB2
= TAG_Bool(false);
702 if (UNTAG_Bool(REGB1
)) {
704 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
706 /* ../lib/standard/collection/array.nit:281 */
707 fra
.me
.REG
[10] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[10]);
708 REGB1
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
709 if (UNTAG_Bool(REGB1
)) {
710 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
712 /* ../lib/standard/collection/array.nit:718 */
713 fra
.me
.REG
[10] = ((Nit_NativeArray
)fra
.me
.REG
[10])->val
[UNTAG_Int(REGB0
)];
714 /* ../lib/standard/collection/array.nit:281 */
717 /* icode/icode_builder.nit:139 */
718 fra
.me
.REG
[9] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[10], fra
.me
.REG
[9]);
719 fra
.me
.REG
[10] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
720 fra
.me
.REG
[10] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
721 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]);
722 fra
.me
.REG
[3] = fra
.me
.REG
[10];
723 /* icode/icode_builder.nit:140 */
724 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
725 fra
.me
.REG
[7] = fra
.me
.REG
[3];
726 /* icode/icode_builder.nit:141 */
727 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
728 /* icode/icode_builder.nit:142 */
729 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
730 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
731 /* icode/icode_builder.nit:143 */
732 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
733 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[3]);
734 /* icode/icode_builder.nit:144 */
735 fra
.me
.REG
[7] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
736 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
738 /* icode/icode_builder.nit:147 */
739 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
740 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
741 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]);
742 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[7]);
743 /* icode/icode_builder.nit:148 */
744 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[8]);
745 /* icode/icode_builder.nit:149 */
746 fra
.me
.REG
[0] = fra
.me
.REG
[5];
749 /* icode/icode_builder.nit:152 */
750 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
751 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
752 if (UNTAG_Bool(REGB0
)) {
753 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 152);
755 fra
.me
.REG
[5] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
756 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
757 if (UNTAG_Bool(REGB0
)) {
758 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
759 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
761 /* icode/icode_builder.nit:153 */
762 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
763 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
764 if (UNTAG_Bool(REGB0
)) {
765 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 153);
767 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
768 /* icode/icode_builder.nit:154 */
769 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
770 if (UNTAG_Bool(REGB0
)) {
772 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
773 if (UNTAG_Bool(REGB1
)) {
774 REGB1
= TAG_Bool(false);
777 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
781 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
782 if (UNTAG_Bool(REGB0
)) {
783 /* icode/icode_builder.nit:155 */
784 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]);
785 fra
.me
.REG
[0] = fra
.me
.REG
[1];
788 /* icode/icode_builder.nit:157 */
789 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
790 /* icode/icode_builder.nit:158 */
791 fra
.me
.REG
[0] = NIT_NULL
;
795 stack_frame_head
= fra
.me
.prev
;
796 return fra
.me
.REG
[0];
798 void icode___icode_builder___ICodeBuilder___add_escape(val_t p0
, val_t p1
){
799 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
803 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
804 fra
.me
.file
= LOCATE_icode___icode_builder
;
806 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___add_escape
;
807 fra
.me
.has_broke
= 0;
809 fra
.me
.nitni_local_ref_head
= NULL
;
810 fra
.me
.REG
[0] = NIT_NULL
;
811 fra
.me
.REG
[1] = NIT_NULL
;
812 fra
.me
.REG
[2] = NIT_NULL
;
813 fra
.me
.REG
[3] = NIT_NULL
;
816 /* icode/icode_builder.nit:166 */
817 fra
.me
.REG
[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
818 /* icode/icode_builder.nit:167 */
819 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
820 if (UNTAG_Bool(REGB0
)) {
822 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
823 if (UNTAG_Bool(REGB1
)) {
824 REGB1
= TAG_Bool(false);
827 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
831 if (UNTAG_Bool(REGB0
)) {
832 /* icode/icode_builder.nit:168 */
833 fra
.me
.REG
[3] = NEW_IEscapeMark_icode___icode_base___IEscapeMark___init();
834 fra
.me
.REG
[2] = fra
.me
.REG
[3];
835 /* icode/icode_builder.nit:169 */
836 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
837 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___escape_marks(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
839 /* icode/icode_builder.nit:170 */
840 CALL_icode___icode_base___ISeq___iescape_mark__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
842 /* icode/icode_builder.nit:172 */
843 fra
.me
.REG
[2] = NEW_IEscape_icode___icode_base___IEscape___init(fra
.me
.REG
[2]);
844 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
845 stack_frame_head
= fra
.me
.prev
;
848 val_t
icode___icode_builder___ICodeBuilder___lit_null_reg(val_t p0
){
849 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
851 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
852 fra
.me
.file
= LOCATE_icode___icode_builder
;
854 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___lit_null_reg
;
855 fra
.me
.has_broke
= 0;
857 fra
.me
.nitni_local_ref_head
= NULL
;
858 fra
.me
.REG
[0] = NIT_NULL
;
859 fra
.me
.REG
[1] = NIT_NULL
;
861 /* icode/icode_builder.nit:178 */
862 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
863 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMModule___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
864 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
867 stack_frame_head
= fra
.me
.prev
;
868 return fra
.me
.REG
[1];
870 val_t
icode___icode_builder___ICodeBuilder___lit_true_reg(val_t p0
){
871 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
874 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
875 fra
.me
.file
= LOCATE_icode___icode_builder
;
877 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___lit_true_reg
;
878 fra
.me
.has_broke
= 0;
880 fra
.me
.nitni_local_ref_head
= NULL
;
881 fra
.me
.REG
[0] = NIT_NULL
;
882 fra
.me
.REG
[1] = NIT_NULL
;
883 fra
.me
.REG
[2] = NIT_NULL
;
885 /* icode/icode_builder.nit:184 */
886 REGB0
= TAG_Bool(true);
887 fra
.me
.REG
[1] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0
);
888 /* icode/icode_builder.nit:185 */
889 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
890 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
891 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]);
894 stack_frame_head
= fra
.me
.prev
;
895 return fra
.me
.REG
[2];
897 val_t
icode___icode_builder___ICodeBuilder___lit_false_reg(val_t p0
){
898 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
901 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
902 fra
.me
.file
= LOCATE_icode___icode_builder
;
904 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___lit_false_reg
;
905 fra
.me
.has_broke
= 0;
907 fra
.me
.nitni_local_ref_head
= NULL
;
908 fra
.me
.REG
[0] = NIT_NULL
;
909 fra
.me
.REG
[1] = NIT_NULL
;
910 fra
.me
.REG
[2] = NIT_NULL
;
912 /* icode/icode_builder.nit:191 */
913 REGB0
= TAG_Bool(false);
914 fra
.me
.REG
[1] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0
);
915 /* icode/icode_builder.nit:192 */
916 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
917 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
918 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]);
921 stack_frame_head
= fra
.me
.prev
;
922 return fra
.me
.REG
[2];
924 val_t
icode___icode_builder___ICodeBuilder___new_register(val_t p0
, val_t p1
){
925 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
927 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
928 fra
.me
.file
= LOCATE_icode___icode_builder
;
930 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___new_register
;
931 fra
.me
.has_broke
= 0;
933 fra
.me
.nitni_local_ref_head
= NULL
;
934 fra
.me
.REG
[0] = NIT_NULL
;
935 fra
.me
.REG
[1] = NIT_NULL
;
938 /* icode/icode_builder.nit:198 */
939 fra
.me
.REG
[1] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[1]);
940 /* icode/icode_builder.nit:199 */
941 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
942 fra
.me
.REG
[0] = CALL_icode___icode_base___IRoutine___registers(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
943 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
944 /* icode/icode_builder.nit:200 */
947 stack_frame_head
= fra
.me
.prev
;
948 return fra
.me
.REG
[1];
950 val_t
icode___icode_builder___ICodeBuilder___mmmodule(val_t p0
){
951 struct {struct stack_frame_t me
;} fra
;
954 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
955 fra
.me
.file
= LOCATE_icode___icode_builder
;
957 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___mmmodule
;
958 fra
.me
.has_broke
= 0;
960 fra
.me
.nitni_local_ref_head
= NULL
;
961 fra
.me
.REG
[0] = NIT_NULL
;
963 /* icode/icode_builder.nit:203 */
964 REGB0
= TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra
.me
.REG
[0])!=NIT_NULL
);
965 if (UNTAG_Bool(REGB0
)) {
967 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_icode___icode_builder
, 203);
969 fra
.me
.REG
[0] = ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra
.me
.REG
[0]);
970 stack_frame_head
= fra
.me
.prev
;
971 return fra
.me
.REG
[0];
973 val_t
icode___icode_builder___ICodeBuilder___iroutine(val_t p0
){
974 struct {struct stack_frame_t me
;} fra
;
977 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
978 fra
.me
.file
= LOCATE_icode___icode_builder
;
980 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___iroutine
;
981 fra
.me
.has_broke
= 0;
983 fra
.me
.nitni_local_ref_head
= NULL
;
984 fra
.me
.REG
[0] = NIT_NULL
;
986 /* icode/icode_builder.nit:206 */
987 REGB0
= TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra
.me
.REG
[0])!=NIT_NULL
);
988 if (UNTAG_Bool(REGB0
)) {
990 nit_abort("Uninitialized attribute %s", "_iroutine", LOCATE_icode___icode_builder
, 206);
992 fra
.me
.REG
[0] = ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra
.me
.REG
[0]);
993 stack_frame_head
= fra
.me
.prev
;
994 return fra
.me
.REG
[0];
996 val_t
icode___icode_builder___ICodeBuilder___seq(val_t p0
){
997 struct {struct stack_frame_t me
;} fra
;
1000 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1001 fra
.me
.file
= LOCATE_icode___icode_builder
;
1003 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___seq
;
1004 fra
.me
.has_broke
= 0;
1005 fra
.me
.REG_size
= 1;
1006 fra
.me
.nitni_local_ref_head
= NULL
;
1007 fra
.me
.REG
[0] = NIT_NULL
;
1009 /* icode/icode_builder.nit:209 */
1010 REGB0
= TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0])!=NIT_NULL
);
1011 if (UNTAG_Bool(REGB0
)) {
1013 nit_abort("Uninitialized attribute %s", "_seq", LOCATE_icode___icode_builder
, 209);
1015 fra
.me
.REG
[0] = ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]);
1016 stack_frame_head
= fra
.me
.prev
;
1017 return fra
.me
.REG
[0];
1019 void icode___icode_builder___ICodeBuilder___seq__eq(val_t p0
, val_t p1
){
1020 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1022 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1023 fra
.me
.file
= LOCATE_icode___icode_builder
;
1025 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___seq__eq
;
1026 fra
.me
.has_broke
= 0;
1027 fra
.me
.REG_size
= 2;
1028 fra
.me
.nitni_local_ref_head
= NULL
;
1029 fra
.me
.REG
[0] = NIT_NULL
;
1030 fra
.me
.REG
[1] = NIT_NULL
;
1033 /* icode/icode_builder.nit:209 */
1034 ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1035 stack_frame_head
= fra
.me
.prev
;
1038 void icode___icode_builder___ICodeBuilder___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1039 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_icode___icode_builder___ICodeBuilder
].i
;
1040 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1042 if (init_table
[itpos0
]) return;
1043 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1044 fra
.me
.file
= LOCATE_icode___icode_builder
;
1046 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___init
;
1047 fra
.me
.has_broke
= 0;
1048 fra
.me
.REG_size
= 3;
1049 fra
.me
.nitni_local_ref_head
= NULL
;
1050 fra
.me
.REG
[0] = NIT_NULL
;
1051 fra
.me
.REG
[1] = NIT_NULL
;
1052 fra
.me
.REG
[2] = NIT_NULL
;
1056 /* icode/icode_builder.nit:214 */
1057 ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1058 /* icode/icode_builder.nit:215 */
1059 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___location(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1060 ATTR_icode___icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1061 /* icode/icode_builder.nit:216 */
1062 ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1063 /* icode/icode_builder.nit:217 */
1064 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1065 ATTR_icode___icode_builder___ICodeBuilder____seq(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1066 stack_frame_head
= fra
.me
.prev
;
1067 init_table
[itpos0
] = 1;
1070 val_t
icode___icode_builder___ICodeBuilder___current_location(val_t p0
){
1071 struct {struct stack_frame_t me
;} fra
;
1073 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1074 fra
.me
.file
= LOCATE_icode___icode_builder
;
1076 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___current_location
;
1077 fra
.me
.has_broke
= 0;
1078 fra
.me
.REG_size
= 1;
1079 fra
.me
.nitni_local_ref_head
= NULL
;
1080 fra
.me
.REG
[0] = NIT_NULL
;
1082 /* icode/icode_builder.nit:220 */
1083 fra
.me
.REG
[0] = ATTR_icode___icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]);
1084 stack_frame_head
= fra
.me
.prev
;
1085 return fra
.me
.REG
[0];
1087 void icode___icode_builder___ICodeBuilder___current_location__eq(val_t p0
, val_t p1
){
1088 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1090 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1091 fra
.me
.file
= LOCATE_icode___icode_builder
;
1093 fra
.me
.meth
= LOCATE_icode___icode_builder___ICodeBuilder___current_location__eq
;
1094 fra
.me
.has_broke
= 0;
1095 fra
.me
.REG_size
= 2;
1096 fra
.me
.nitni_local_ref_head
= NULL
;
1097 fra
.me
.REG
[0] = NIT_NULL
;
1098 fra
.me
.REG
[1] = NIT_NULL
;
1101 /* icode/icode_builder.nit:220 */
1102 ATTR_icode___icode_builder___ICodeBuilder____current_location(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1103 stack_frame_head
= fra
.me
.prev
;
1106 val_t
icode___icode_builder___MMSignature___generate_empty_iroutine(val_t p0
){
1107 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
1114 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1115 fra
.me
.file
= LOCATE_icode___icode_builder
;
1117 fra
.me
.meth
= LOCATE_icode___icode_builder___MMSignature___generate_empty_iroutine
;
1118 fra
.me
.has_broke
= 0;
1119 fra
.me
.REG_size
= 7;
1120 fra
.me
.nitni_local_ref_head
= NULL
;
1121 fra
.me
.REG
[0] = NIT_NULL
;
1122 fra
.me
.REG
[1] = NIT_NULL
;
1123 fra
.me
.REG
[2] = NIT_NULL
;
1124 fra
.me
.REG
[3] = NIT_NULL
;
1125 fra
.me
.REG
[4] = NIT_NULL
;
1126 fra
.me
.REG
[5] = NIT_NULL
;
1127 fra
.me
.REG
[6] = NIT_NULL
;
1129 /* icode/icode_builder.nit:228 */
1130 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___init();
1131 /* icode/icode_builder.nit:229 */
1132 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1133 fra
.me
.REG
[2] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[2]);
1134 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1135 /* icode/icode_builder.nit:230 */
1137 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1138 /* ../lib/standard/kernel.nit:352 */
1140 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1141 if (UNTAG_Bool(REGB2
)) {
1143 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1145 /* ../lib/standard/kernel.nit:232 */
1146 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1147 /* ../lib/standard/kernel.nit:352 */
1148 if (UNTAG_Bool(REGB2
)) {
1149 /* icode/icode_builder.nit:230 */
1151 /* icode/icode_builder.nit:231 */
1152 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB2
);
1153 fra
.me
.REG
[2] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[2]);
1154 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1155 /* ../lib/standard/kernel.nit:354 */
1157 /* ../lib/standard/kernel.nit:235 */
1158 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1159 /* ../lib/standard/kernel.nit:354 */
1162 /* ../lib/standard/kernel.nit:352 */
1167 /* icode/icode_builder.nit:233 */
1168 fra
.me
.REG
[2] = NIT_NULL
;
1169 /* icode/icode_builder.nit:234 */
1170 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1171 /* icode/icode_builder.nit:235 */
1172 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1173 if (UNTAG_Bool(REGB0
)) {
1175 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1176 if (UNTAG_Bool(REGB1
)) {
1177 REGB1
= TAG_Bool(false);
1180 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1184 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1185 if (UNTAG_Bool(REGB0
)) {
1186 /* icode/icode_builder.nit:236 */
1187 fra
.me
.REG
[3] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[3]);
1188 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1190 /* icode/icode_builder.nit:238 */
1191 fra
.me
.REG
[2] = NEW_IRoutine_icode___icode_base___IRoutine___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1192 /* icode/icode_builder.nit:239 */
1193 fra
.me
.REG
[3] = NIT_NULL
;
1194 /* icode/icode_builder.nit:240 */
1195 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1196 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1197 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1198 if (UNTAG_Bool(REGB0
)) {
1199 /* icode/icode_builder.nit:241 */
1200 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
1201 fra
.me
.REG
[3] = fra
.me
.REG
[4];
1202 /* icode/icode_builder.nit:242 */
1203 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1204 /* ../lib/standard/collection/array.nit:269 */
1206 /* ../lib/standard/collection/array.nit:270 */
1207 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1208 if (UNTAG_Bool(REGB1
)) {
1210 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1212 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1213 /* ../lib/standard/collection/array.nit:271 */
1214 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1215 /* ../lib/standard/collection/array.nit:272 */
1217 /* ../lib/standard/collection/array.nit:24 */
1218 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1219 if (UNTAG_Bool(REGB1
)) {
1221 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1223 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1224 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1225 if (UNTAG_Bool(REGB2
)) {
1227 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1229 /* ../lib/standard/kernel.nit:232 */
1230 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1231 /* ../lib/standard/collection/array.nit:272 */
1232 if (UNTAG_Bool(REGB1
)) {
1233 /* ../lib/standard/collection/array.nit:273 */
1234 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1235 if (UNTAG_Bool(REGB1
)) {
1236 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1238 /* ../lib/standard/collection/array.nit:718 */
1239 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1240 /* icode/icode_builder.nit:243 */
1241 fra
.me
.REG
[6] = NEW_IClosureDecl_icode___icode_base___IClosureDecl___init(fra
.me
.REG
[6]);
1242 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1243 if (UNTAG_Bool(REGB1
)) {
1244 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 243);
1246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1247 /* ../lib/standard/collection/array.nit:274 */
1249 /* ../lib/standard/kernel.nit:235 */
1250 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1251 /* ../lib/standard/collection/array.nit:274 */
1254 /* ../lib/standard/collection/array.nit:272 */
1259 /* icode/icode_builder.nit:245 */
1260 CALL_icode___icode_base___IRoutine___closure_decls__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1262 /* icode/icode_builder.nit:248 */
1263 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1264 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1265 fra
.me
.REG
[3] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1266 /* icode/icode_builder.nit:249 */
1268 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1269 /* ../lib/standard/kernel.nit:352 */
1271 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1272 if (UNTAG_Bool(REGB2
)) {
1274 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1276 /* ../lib/standard/kernel.nit:232 */
1277 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1278 /* ../lib/standard/kernel.nit:352 */
1279 if (UNTAG_Bool(REGB2
)) {
1280 /* icode/icode_builder.nit:249 */
1282 /* icode/icode_builder.nit:250 */
1283 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB2
);
1284 /* icode/icode_builder.nit:251 */
1285 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___virtualtype___MMVirtualType
, ID_metamodel___virtualtype___MMVirtualType
)) /*cast MMVirtualType*/;
1286 if (UNTAG_Bool(REGB3
)) {
1287 /* icode/icode_builder.nit:252 */
1289 /* ../lib/standard/kernel.nit:235 */
1290 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1291 /* ../lib/standard/collection/array.nit:278 */
1292 fra
.me
.REG
[4] = fra
.me
.REG
[1];
1293 /* ../lib/standard/collection/array.nit:280 */
1295 REGB4
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1296 if (UNTAG_Bool(REGB4
)) {
1298 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1300 /* ../lib/standard/kernel.nit:233 */
1301 REGB2
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB2
));
1302 /* ../lib/standard/collection/array.nit:280 */
1303 if (UNTAG_Bool(REGB2
)) {
1304 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1305 if (UNTAG_Bool(REGB2
)) {
1307 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1309 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1310 REGB4
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1311 if (UNTAG_Bool(REGB4
)) {
1313 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1315 /* ../lib/standard/kernel.nit:232 */
1316 REGB2
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB2
));
1318 /* ../lib/standard/collection/array.nit:280 */
1319 REGB4
= TAG_Bool(false);
1322 if (UNTAG_Bool(REGB2
)) {
1324 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
1326 /* ../lib/standard/collection/array.nit:281 */
1327 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1328 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1329 if (UNTAG_Bool(REGB2
)) {
1330 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1332 /* ../lib/standard/collection/array.nit:718 */
1333 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB3
)];
1334 /* ../lib/standard/collection/array.nit:281 */
1337 /* icode/icode_builder.nit:252 */
1338 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[5]);
1340 /* ../lib/standard/kernel.nit:354 */
1342 /* ../lib/standard/kernel.nit:235 */
1343 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1344 /* ../lib/standard/kernel.nit:354 */
1347 /* ../lib/standard/kernel.nit:352 */
1352 /* icode/icode_builder.nit:255 */
1355 stack_frame_head
= fra
.me
.prev
;
1356 return fra
.me
.REG
[2];
1358 val_t
icode___icode_builder___MMSignature___generate_empty_iclosuredef(val_t p0
, val_t p1
){
1359 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1364 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1365 fra
.me
.file
= LOCATE_icode___icode_builder
;
1367 fra
.me
.meth
= LOCATE_icode___icode_builder___MMSignature___generate_empty_iclosuredef
;
1368 fra
.me
.has_broke
= 0;
1369 fra
.me
.REG_size
= 5;
1370 fra
.me
.nitni_local_ref_head
= NULL
;
1371 fra
.me
.REG
[0] = NIT_NULL
;
1372 fra
.me
.REG
[1] = NIT_NULL
;
1373 fra
.me
.REG
[2] = NIT_NULL
;
1374 fra
.me
.REG
[3] = NIT_NULL
;
1375 fra
.me
.REG
[4] = NIT_NULL
;
1378 /* icode/icode_builder.nit:261 */
1379 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
1380 /* icode/icode_builder.nit:262 */
1382 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1383 /* ../lib/standard/kernel.nit:352 */
1385 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1386 if (UNTAG_Bool(REGB2
)) {
1388 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1390 /* ../lib/standard/kernel.nit:232 */
1391 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1392 /* ../lib/standard/kernel.nit:352 */
1393 if (UNTAG_Bool(REGB2
)) {
1394 /* icode/icode_builder.nit:262 */
1396 /* icode/icode_builder.nit:263 */
1397 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB2
);
1398 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1399 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1400 /* ../lib/standard/kernel.nit:354 */
1402 /* ../lib/standard/kernel.nit:235 */
1403 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1404 /* ../lib/standard/kernel.nit:354 */
1407 /* ../lib/standard/kernel.nit:352 */
1412 /* icode/icode_builder.nit:265 */
1413 fra
.me
.REG
[3] = NIT_NULL
;
1414 /* icode/icode_builder.nit:266 */
1415 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1416 /* icode/icode_builder.nit:267 */
1417 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1418 if (UNTAG_Bool(REGB0
)) {
1420 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1421 if (UNTAG_Bool(REGB1
)) {
1422 REGB1
= TAG_Bool(false);
1425 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1429 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1430 if (UNTAG_Bool(REGB0
)) {
1431 /* icode/icode_builder.nit:268 */
1432 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1433 fra
.me
.REG
[3] = fra
.me
.REG
[4];
1435 /* icode/icode_builder.nit:270 */
1436 fra
.me
.REG
[3] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1437 /* icode/icode_builder.nit:271 */
1438 fra
.me
.REG
[2] = NIT_NULL
;
1439 /* icode/icode_builder.nit:272 */
1440 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1441 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1442 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1443 if (UNTAG_Bool(REGB0
)) {
1444 /* icode/icode_builder.nit:273 */
1445 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
1446 fra
.me
.REG
[2] = fra
.me
.REG
[4];
1447 /* icode/icode_builder.nit:274 */
1448 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1449 /* ../lib/standard/collection/array.nit:269 */
1451 /* ../lib/standard/collection/array.nit:270 */
1452 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
1453 if (UNTAG_Bool(REGB1
)) {
1455 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1457 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
1458 /* ../lib/standard/collection/array.nit:271 */
1459 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
1460 /* ../lib/standard/collection/array.nit:272 */
1462 /* ../lib/standard/collection/array.nit:24 */
1463 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
1464 if (UNTAG_Bool(REGB1
)) {
1466 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1468 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
1469 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1470 if (UNTAG_Bool(REGB2
)) {
1472 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1474 /* ../lib/standard/kernel.nit:232 */
1475 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1476 /* ../lib/standard/collection/array.nit:272 */
1477 if (UNTAG_Bool(REGB1
)) {
1478 /* ../lib/standard/collection/array.nit:273 */
1479 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1480 if (UNTAG_Bool(REGB1
)) {
1481 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1483 /* ../lib/standard/collection/array.nit:718 */
1484 fra
.me
.REG
[1] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
1485 /* icode/icode_builder.nit:275 */
1486 fra
.me
.REG
[1] = NEW_IClosureDecl_icode___icode_base___IClosureDecl___init(fra
.me
.REG
[1]);
1487 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1488 if (UNTAG_Bool(REGB1
)) {
1489 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_builder
, 275);
1491 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1492 /* ../lib/standard/collection/array.nit:274 */
1494 /* ../lib/standard/kernel.nit:235 */
1495 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1496 /* ../lib/standard/collection/array.nit:274 */
1499 /* ../lib/standard/collection/array.nit:272 */
1504 /* icode/icode_builder.nit:277 */
1505 CALL_icode___icode_base___IRoutine___closure_decls__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1507 /* icode/icode_builder.nit:280 */
1510 stack_frame_head
= fra
.me
.prev
;
1511 return fra
.me
.REG
[3];