1 /* This C file is generated by NIT to compile module syntax___typing. */
2 #include "syntax___typing._sep.h"
3 void syntax___typing___MMSrcModule___do_typing(val_t p0
, val_t p1
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7 fra
.me
.file
= LOCATE_syntax___typing
;
9 fra
.me
.meth
= LOCATE_syntax___typing___MMSrcModule___do_typing
;
12 fra
.me
.nitni_local_ref_head
= NULL
;
13 fra
.me
.REG
[0] = NIT_NULL
;
14 fra
.me
.REG
[1] = NIT_NULL
;
17 /* ./syntax//typing.nit:29 */
18 fra
.me
.REG
[1] = NEW_TypingVisitor_syntax___typing___TypingVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
19 /* ./syntax//typing.nit:30 */
20 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMSrcModule___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
21 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
22 stack_frame_head
= fra
.me
.prev
;
25 void syntax___typing___TypingVisitor___visit(val_t p0
, val_t p1
){
26 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
30 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
31 fra
.me
.file
= LOCATE_syntax___typing
;
33 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___visit
;
36 fra
.me
.nitni_local_ref_head
= NULL
;
37 fra
.me
.REG
[0] = NIT_NULL
;
38 fra
.me
.REG
[1] = NIT_NULL
;
41 /* ./syntax//typing.nit:43 */
42 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
43 if (UNTAG_Bool(REGB0
)) {
45 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
46 if (UNTAG_Bool(REGB1
)) {
47 REGB1
= TAG_Bool(false);
50 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
54 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
55 if (UNTAG_Bool(REGB0
)) {
56 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
57 if (UNTAG_Bool(REGB0
)) {
58 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 43);
60 CALL_syntax___typing___ANode___accept_typing(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
62 stack_frame_head
= fra
.me
.prev
;
65 val_t
syntax___typing___TypingVisitor___scope_ctx(val_t p0
){
66 struct {struct stack_frame_t me
;} fra
;
69 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
70 fra
.me
.file
= LOCATE_syntax___typing
;
72 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___scope_ctx
;
75 fra
.me
.nitni_local_ref_head
= NULL
;
76 fra
.me
.REG
[0] = NIT_NULL
;
78 /* ./syntax//typing.nit:46 */
79 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____scope_ctx(fra
.me
.REG
[0])!=NIT_NULL
);
80 if (UNTAG_Bool(REGB0
)) {
82 nit_abort("Uninitialized attribute %s", "_scope_ctx", LOCATE_syntax___typing
, 46);
84 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____scope_ctx(fra
.me
.REG
[0]);
85 stack_frame_head
= fra
.me
.prev
;
88 val_t
syntax___typing___TypingVisitor___flow_ctx(val_t p0
){
89 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
92 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
93 fra
.me
.file
= LOCATE_syntax___typing
;
95 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___flow_ctx
;
98 fra
.me
.nitni_local_ref_head
= NULL
;
99 fra
.me
.REG
[0] = NIT_NULL
;
100 fra
.me
.REG
[1] = NIT_NULL
;
102 /* ./syntax//typing.nit:49 */
103 fra
.me
.REG
[1] = fra
.me
.REG
[0];
104 /* ./syntax//typing.nit:50 */
105 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____flow_ctx(fra
.me
.REG
[1]);
106 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
107 if (UNTAG_Bool(REGB0
)) {
109 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 50);
113 stack_frame_head
= fra
.me
.prev
;
114 return fra
.me
.REG
[1];
116 void syntax___typing___TypingVisitor___flow_ctx__eq(val_t p0
, val_t p1
){
117 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
119 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
120 fra
.me
.file
= LOCATE_syntax___typing
;
122 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___flow_ctx__eq
;
123 fra
.me
.has_broke
= 0;
125 fra
.me
.nitni_local_ref_head
= NULL
;
126 fra
.me
.REG
[0] = NIT_NULL
;
127 fra
.me
.REG
[1] = NIT_NULL
;
130 /* ./syntax//typing.nit:51 */
131 ATTR_syntax___typing___TypingVisitor____flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
132 stack_frame_head
= fra
.me
.prev
;
135 void syntax___typing___TypingVisitor___mark_is_set(val_t p0
, val_t p1
){
136 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
139 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
140 fra
.me
.file
= LOCATE_syntax___typing
;
142 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___mark_is_set
;
143 fra
.me
.has_broke
= 0;
145 fra
.me
.nitni_local_ref_head
= NULL
;
146 fra
.me
.REG
[0] = NIT_NULL
;
147 fra
.me
.REG
[1] = NIT_NULL
;
148 fra
.me
.REG
[2] = NIT_NULL
;
151 /* ./syntax//typing.nit:56 */
152 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
153 REGB0
= CALL_syntax___flow___FlowContext___is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
154 if (UNTAG_Bool(REGB0
)) {
157 /* ./syntax//typing.nit:57 */
158 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
159 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_setvariable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
160 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
162 stack_frame_head
= fra
.me
.prev
;
165 void syntax___typing___TypingVisitor___mark_unreash(val_t p0
, val_t p1
){
166 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
168 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
169 fra
.me
.file
= LOCATE_syntax___typing
;
171 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___mark_unreash
;
172 fra
.me
.has_broke
= 0;
174 fra
.me
.nitni_local_ref_head
= NULL
;
175 fra
.me
.REG
[0] = NIT_NULL
;
176 fra
.me
.REG
[1] = NIT_NULL
;
177 fra
.me
.REG
[2] = NIT_NULL
;
180 /* ./syntax//typing.nit:63 */
181 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
182 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_unreash(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
183 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
184 stack_frame_head
= fra
.me
.prev
;
187 void syntax___typing___TypingVisitor___enter_visit_block(val_t p0
, val_t p1
){
188 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
192 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
193 fra
.me
.file
= LOCATE_syntax___typing
;
195 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___enter_visit_block
;
196 fra
.me
.has_broke
= 0;
198 fra
.me
.nitni_local_ref_head
= NULL
;
199 fra
.me
.REG
[0] = NIT_NULL
;
200 fra
.me
.REG
[1] = NIT_NULL
;
201 fra
.me
.REG
[2] = NIT_NULL
;
204 /* ./syntax//typing.nit:69 */
205 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
206 if (UNTAG_Bool(REGB0
)) {
208 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
209 if (UNTAG_Bool(REGB1
)) {
210 REGB1
= TAG_Bool(false);
213 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
217 if (UNTAG_Bool(REGB0
)) {
220 /* ./syntax//typing.nit:70 */
221 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
222 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
223 /* ./syntax//typing.nit:71 */
224 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
225 /* ./syntax//typing.nit:72 */
226 fra
.me
.REG
[0] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
227 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
229 stack_frame_head
= fra
.me
.prev
;
232 val_t
syntax___typing___TypingVisitor___base_flow_ctx(val_t p0
){
233 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
236 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
237 fra
.me
.file
= LOCATE_syntax___typing
;
239 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___base_flow_ctx
;
240 fra
.me
.has_broke
= 0;
242 fra
.me
.nitni_local_ref_head
= NULL
;
243 fra
.me
.REG
[0] = NIT_NULL
;
244 fra
.me
.REG
[1] = NIT_NULL
;
246 /* ./syntax//typing.nit:75 */
247 fra
.me
.REG
[1] = fra
.me
.REG
[0];
248 /* ./syntax//typing.nit:76 */
249 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra
.me
.REG
[1]);
250 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
251 if (UNTAG_Bool(REGB0
)) {
253 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 76);
257 stack_frame_head
= fra
.me
.prev
;
258 return fra
.me
.REG
[1];
260 void syntax___typing___TypingVisitor___base_flow_ctx__eq(val_t p0
, val_t p1
){
261 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
263 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
264 fra
.me
.file
= LOCATE_syntax___typing
;
266 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___base_flow_ctx__eq
;
267 fra
.me
.has_broke
= 0;
269 fra
.me
.nitni_local_ref_head
= NULL
;
270 fra
.me
.REG
[0] = NIT_NULL
;
271 fra
.me
.REG
[1] = NIT_NULL
;
274 /* ./syntax//typing.nit:77 */
275 ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
276 stack_frame_head
= fra
.me
.prev
;
279 val_t
syntax___typing___TypingVisitor___self_var(val_t p0
){
280 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
283 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
284 fra
.me
.file
= LOCATE_syntax___typing
;
286 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___self_var
;
287 fra
.me
.has_broke
= 0;
289 fra
.me
.nitni_local_ref_head
= NULL
;
290 fra
.me
.REG
[0] = NIT_NULL
;
291 fra
.me
.REG
[1] = NIT_NULL
;
293 /* ./syntax//typing.nit:79 */
294 fra
.me
.REG
[1] = fra
.me
.REG
[0];
295 /* ./syntax//typing.nit:80 */
296 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____self_var(fra
.me
.REG
[1]);
297 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
298 if (UNTAG_Bool(REGB0
)) {
300 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 80);
304 stack_frame_head
= fra
.me
.prev
;
305 return fra
.me
.REG
[1];
307 void syntax___typing___TypingVisitor___self_var__eq(val_t p0
, val_t p1
){
308 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
310 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
311 fra
.me
.file
= LOCATE_syntax___typing
;
313 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___self_var__eq
;
314 fra
.me
.has_broke
= 0;
316 fra
.me
.nitni_local_ref_head
= NULL
;
317 fra
.me
.REG
[0] = NIT_NULL
;
318 fra
.me
.REG
[1] = NIT_NULL
;
321 /* ./syntax//typing.nit:81 */
322 ATTR_syntax___typing___TypingVisitor____self_var(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
323 stack_frame_head
= fra
.me
.prev
;
326 val_t
syntax___typing___TypingVisitor___top_block(val_t p0
){
327 struct {struct stack_frame_t me
;} fra
;
329 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
330 fra
.me
.file
= LOCATE_syntax___typing
;
332 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___top_block
;
333 fra
.me
.has_broke
= 0;
335 fra
.me
.nitni_local_ref_head
= NULL
;
336 fra
.me
.REG
[0] = NIT_NULL
;
338 /* ./syntax//typing.nit:83 */
339 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____top_block(fra
.me
.REG
[0]);
340 stack_frame_head
= fra
.me
.prev
;
341 return fra
.me
.REG
[0];
343 void syntax___typing___TypingVisitor___top_block__eq(val_t p0
, val_t p1
){
344 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
346 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
347 fra
.me
.file
= LOCATE_syntax___typing
;
349 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___top_block__eq
;
350 fra
.me
.has_broke
= 0;
352 fra
.me
.nitni_local_ref_head
= NULL
;
353 fra
.me
.REG
[0] = NIT_NULL
;
354 fra
.me
.REG
[1] = NIT_NULL
;
357 /* ./syntax//typing.nit:83 */
358 ATTR_syntax___typing___TypingVisitor____top_block(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
359 stack_frame_head
= fra
.me
.prev
;
362 val_t
syntax___typing___TypingVisitor___explicit_super_init_calls(val_t p0
){
363 struct {struct stack_frame_t me
;} fra
;
365 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
366 fra
.me
.file
= LOCATE_syntax___typing
;
368 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls
;
369 fra
.me
.has_broke
= 0;
371 fra
.me
.nitni_local_ref_head
= NULL
;
372 fra
.me
.REG
[0] = NIT_NULL
;
374 /* ./syntax//typing.nit:86 */
375 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]);
376 stack_frame_head
= fra
.me
.prev
;
377 return fra
.me
.REG
[0];
379 void syntax___typing___TypingVisitor___explicit_super_init_calls__eq(val_t p0
, val_t p1
){
380 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
382 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
383 fra
.me
.file
= LOCATE_syntax___typing
;
385 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls__eq
;
386 fra
.me
.has_broke
= 0;
388 fra
.me
.nitni_local_ref_head
= NULL
;
389 fra
.me
.REG
[0] = NIT_NULL
;
390 fra
.me
.REG
[1] = NIT_NULL
;
393 /* ./syntax//typing.nit:86 */
394 ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
395 stack_frame_head
= fra
.me
.prev
;
398 val_t
syntax___typing___TypingVisitor___explicit_other_init_call(val_t p0
){
399 struct {struct stack_frame_t me
;} fra
;
402 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
403 fra
.me
.file
= LOCATE_syntax___typing
;
405 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call
;
406 fra
.me
.has_broke
= 0;
408 fra
.me
.nitni_local_ref_head
= NULL
;
409 fra
.me
.REG
[0] = NIT_NULL
;
411 /* ./syntax//typing.nit:89 */
412 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0])!=NIT_NULL
);
413 if (UNTAG_Bool(REGB0
)) {
415 nit_abort("Uninitialized attribute %s", "_explicit_other_init_call", LOCATE_syntax___typing
, 89);
417 REGB0
= ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]);
418 stack_frame_head
= fra
.me
.prev
;
421 void syntax___typing___TypingVisitor___explicit_other_init_call__eq(val_t p0
, val_t p1
){
422 struct {struct stack_frame_t me
;} fra
;
425 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
426 fra
.me
.file
= LOCATE_syntax___typing
;
428 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call__eq
;
429 fra
.me
.has_broke
= 0;
431 fra
.me
.nitni_local_ref_head
= NULL
;
432 fra
.me
.REG
[0] = NIT_NULL
;
435 /* ./syntax//typing.nit:89 */
436 ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]) = REGB0
;
437 stack_frame_head
= fra
.me
.prev
;
440 void syntax___typing___TypingVisitor___use_if_true_flow_ctx(val_t p0
, val_t p1
){
441 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
445 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
446 fra
.me
.file
= LOCATE_syntax___typing
;
448 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___use_if_true_flow_ctx
;
449 fra
.me
.has_broke
= 0;
451 fra
.me
.nitni_local_ref_head
= NULL
;
452 fra
.me
.REG
[0] = NIT_NULL
;
453 fra
.me
.REG
[1] = NIT_NULL
;
456 /* ./syntax//typing.nit:95 */
457 fra
.me
.REG
[1] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
458 /* ./syntax//typing.nit:96 */
459 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
460 if (UNTAG_Bool(REGB0
)) {
462 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
463 if (UNTAG_Bool(REGB1
)) {
464 REGB1
= TAG_Bool(false);
467 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
471 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
472 if (UNTAG_Bool(REGB0
)) {
473 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
475 stack_frame_head
= fra
.me
.prev
;
478 void syntax___typing___TypingVisitor___use_if_false_flow_ctx(val_t p0
, val_t p1
){
479 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
483 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
484 fra
.me
.file
= LOCATE_syntax___typing
;
486 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___use_if_false_flow_ctx
;
487 fra
.me
.has_broke
= 0;
489 fra
.me
.nitni_local_ref_head
= NULL
;
490 fra
.me
.REG
[0] = NIT_NULL
;
491 fra
.me
.REG
[1] = NIT_NULL
;
494 /* ./syntax//typing.nit:102 */
495 fra
.me
.REG
[1] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
496 /* ./syntax//typing.nit:103 */
497 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
498 if (UNTAG_Bool(REGB0
)) {
500 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
501 if (UNTAG_Bool(REGB1
)) {
502 REGB1
= TAG_Bool(false);
505 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
509 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
510 if (UNTAG_Bool(REGB0
)) {
511 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
513 stack_frame_head
= fra
.me
.prev
;
516 val_t
syntax___typing___TypingVisitor___is_default_closure_definition(val_t p0
){
517 struct {struct stack_frame_t me
;} fra
;
520 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
521 fra
.me
.file
= LOCATE_syntax___typing
;
523 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition
;
524 fra
.me
.has_broke
= 0;
526 fra
.me
.nitni_local_ref_head
= NULL
;
527 fra
.me
.REG
[0] = NIT_NULL
;
529 /* ./syntax//typing.nit:106 */
530 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0])!=NIT_NULL
);
531 if (UNTAG_Bool(REGB0
)) {
533 nit_abort("Uninitialized attribute %s", "_is_default_closure_definition", LOCATE_syntax___typing
, 106);
535 REGB0
= ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]);
536 stack_frame_head
= fra
.me
.prev
;
539 void syntax___typing___TypingVisitor___is_default_closure_definition__eq(val_t p0
, val_t p1
){
540 struct {struct stack_frame_t me
;} fra
;
543 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
544 fra
.me
.file
= LOCATE_syntax___typing
;
546 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition__eq
;
547 fra
.me
.has_broke
= 0;
549 fra
.me
.nitni_local_ref_head
= NULL
;
550 fra
.me
.REG
[0] = NIT_NULL
;
553 /* ./syntax//typing.nit:106 */
554 ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]) = REGB0
;
555 stack_frame_head
= fra
.me
.prev
;
558 val_t
syntax___typing___TypingVisitor___once_count(val_t p0
){
559 struct {struct stack_frame_t me
;} fra
;
562 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
563 fra
.me
.file
= LOCATE_syntax___typing
;
565 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___once_count
;
566 fra
.me
.has_broke
= 0;
568 fra
.me
.nitni_local_ref_head
= NULL
;
569 fra
.me
.REG
[0] = NIT_NULL
;
571 /* ./syntax//typing.nit:109 */
572 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0])!=NIT_NULL
);
573 if (UNTAG_Bool(REGB0
)) {
575 nit_abort("Uninitialized attribute %s", "_once_count", LOCATE_syntax___typing
, 109);
577 REGB0
= ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0]);
578 stack_frame_head
= fra
.me
.prev
;
581 void syntax___typing___TypingVisitor___once_count__eq(val_t p0
, val_t p1
){
582 struct {struct stack_frame_t me
;} fra
;
585 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
586 fra
.me
.file
= LOCATE_syntax___typing
;
588 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___once_count__eq
;
589 fra
.me
.has_broke
= 0;
591 fra
.me
.nitni_local_ref_head
= NULL
;
592 fra
.me
.REG
[0] = NIT_NULL
;
595 /* ./syntax//typing.nit:109 */
596 ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0]) = REGB0
;
597 stack_frame_head
= fra
.me
.prev
;
600 void syntax___typing___TypingVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
601 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___typing___TypingVisitor
].i
;
602 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
604 if (init_table
[itpos0
]) return;
605 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
606 fra
.me
.file
= LOCATE_syntax___typing
;
608 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___init
;
609 fra
.me
.has_broke
= 0;
611 fra
.me
.nitni_local_ref_head
= NULL
;
612 fra
.me
.REG
[0] = NIT_NULL
;
613 fra
.me
.REG
[1] = NIT_NULL
;
614 fra
.me
.REG
[2] = NIT_NULL
;
618 /* ./syntax//typing.nit:112 */
619 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
620 stack_frame_head
= fra
.me
.prev
;
621 init_table
[itpos0
] = 1;
624 val_t
syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
625 struct {struct stack_frame_t me
; val_t MORE_REG
[11];} fra
;
630 static val_t once_value_6
; /* Once value */
631 static val_t once_value_7
; /* Once value */
632 static val_t once_value_8
; /* Once value */
633 static val_t once_value_10
; /* Once value */
634 static val_t once_value_11
; /* Once value */
635 static val_t once_value_12
; /* Once value */
636 static val_t once_value_13
; /* Once value */
637 static val_t once_value_14
; /* Once value */
638 static val_t once_value_15
; /* Once value */
639 static val_t once_value_16
; /* Once value */
640 static val_t once_value_18
; /* Once value */
641 static val_t once_value_19
; /* Once value */
642 static val_t once_value_20
; /* Once value */
643 static val_t once_value_21
; /* Once value */
644 static val_t once_value_22
; /* Once value */
645 static val_t once_value_23
; /* Once value */
646 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
647 fra
.me
.file
= LOCATE_syntax___typing
;
649 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for
;
650 fra
.me
.has_broke
= 0;
651 fra
.me
.REG_size
= 12;
652 fra
.me
.nitni_local_ref_head
= NULL
;
653 fra
.me
.REG
[0] = NIT_NULL
;
654 fra
.me
.REG
[1] = NIT_NULL
;
655 fra
.me
.REG
[2] = NIT_NULL
;
656 fra
.me
.REG
[3] = NIT_NULL
;
657 fra
.me
.REG
[4] = NIT_NULL
;
658 fra
.me
.REG
[5] = NIT_NULL
;
659 fra
.me
.REG
[6] = NIT_NULL
;
660 fra
.me
.REG
[7] = NIT_NULL
;
661 fra
.me
.REG
[8] = NIT_NULL
;
662 fra
.me
.REG
[9] = NIT_NULL
;
663 fra
.me
.REG
[10] = NIT_NULL
;
664 fra
.me
.REG
[11] = NIT_NULL
;
669 /* ./syntax//typing.nit:114 */
670 fra
.me
.REG
[4] = fra
.me
.REG
[0];
671 /* ./syntax//typing.nit:116 */
672 fra
.me
.REG
[5] = fra
.me
.REG
[4];
673 /* ./syntax//typing.nit:119 */
674 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
675 /* ./syntax//typing.nit:120 */
676 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
677 /* ./syntax//typing.nit:121 */
678 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
679 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
680 if (UNTAG_Bool(REGB0
)) {
681 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 121);
683 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
684 fra
.me
.REG
[8] = REGB0
;
685 /* ./syntax//typing.nit:122 */
686 fra
.me
.REG
[9] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
687 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[9])(fra
.me
.REG
[9], (&(fra
.me
)), ((fun_t
)OC_syntax___typing___TypingVisitor___get_default_constructor_for_1
));
688 switch ((&(fra
.me
))->has_broke
) {
690 case 1: (&(fra
.me
))->has_broke
= 0; goto label5
;
692 /* ./../lib/standard//collection//array.nit:24 */
693 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
694 if (UNTAG_Bool(REGB0
)) {
696 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
698 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
699 /* ./syntax//typing.nit:141 */
701 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
702 if (UNTAG_Bool(REGB2
)) {
704 /* ./../lib/standard//kernel.nit:227 */
705 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
706 /* ./syntax//typing.nit:141 */
709 if (UNTAG_Bool(REGB2
)) {
710 /* ./syntax//typing.nit:142 */
711 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
712 fra
.me
.REG
[9] = fra
.me
.REG
[3];
715 /* ./../lib/standard//collection//array.nit:24 */
716 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
717 if (UNTAG_Bool(REGB2
)) {
719 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
721 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
722 /* ./syntax//typing.nit:143 */
724 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
725 if (UNTAG_Bool(REGB0
)) {
727 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
729 /* ./../lib/standard//kernel.nit:234 */
730 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB1
));
731 /* ./syntax//typing.nit:143 */
732 if (UNTAG_Bool(REGB1
)) {
733 /* ./syntax//typing.nit:144 */
734 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
735 /* ./../lib/standard//collection//array.nit:269 */
737 /* ./../lib/standard//collection//array.nit:270 */
738 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
739 if (UNTAG_Bool(REGB2
)) {
741 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
743 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
744 /* ./../lib/standard//collection//array.nit:271 */
745 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
746 /* ./../lib/standard//collection//array.nit:272 */
748 /* ./../lib/standard//collection//array.nit:24 */
749 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
750 if (UNTAG_Bool(REGB2
)) {
752 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
754 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
755 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
756 if (UNTAG_Bool(REGB0
)) {
758 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
760 /* ./../lib/standard//kernel.nit:232 */
761 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
762 /* ./../lib/standard//collection//array.nit:272 */
763 if (UNTAG_Bool(REGB2
)) {
764 /* ./../lib/standard//collection//array.nit:273 */
765 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
766 if (UNTAG_Bool(REGB2
)) {
767 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
769 /* ./../lib/standard//collection//array.nit:718 */
770 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
771 /* ./syntax//typing.nit:146 */
773 fra
.me
.REG
[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
775 fra
.me
.REG
[11] = BOX_NativeString("");
777 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB2
);
778 once_value_6
= fra
.me
.REG
[11];
779 register_static_object(&once_value_6
);
780 } else fra
.me
.REG
[11] = once_value_6
;
781 fra
.me
.REG
[11] = fra
.me
.REG
[11];
782 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
783 fra
.me
.REG
[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
786 fra
.me
.REG
[11] = BOX_NativeString("");
788 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB2
);
789 once_value_7
= fra
.me
.REG
[11];
790 register_static_object(&once_value_7
);
791 } else fra
.me
.REG
[11] = once_value_7
;
792 fra
.me
.REG
[11] = fra
.me
.REG
[11];
793 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
794 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
795 REGB2
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMSignature
, ID_metamodel___static_type___MMSignature
)) /*cast MMSignature*/;
796 if (UNTAG_Bool(REGB2
)) {
798 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 146);
800 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
801 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
803 fra
.me
.REG
[4] = BOX_NativeString("");
805 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB2
);
806 once_value_8
= fra
.me
.REG
[4];
807 register_static_object(&once_value_8
);
808 } else fra
.me
.REG
[4] = once_value_8
;
809 fra
.me
.REG
[4] = fra
.me
.REG
[4];
810 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
811 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
812 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[10]);
813 /* ./../lib/standard//collection//array.nit:274 */
815 /* ./../lib/standard//kernel.nit:235 */
816 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
817 /* ./../lib/standard//collection//array.nit:274 */
820 /* ./../lib/standard//collection//array.nit:272 */
825 /* ./syntax//typing.nit:148 */
827 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
828 if (!once_value_10
) {
829 fra
.me
.REG
[6] = BOX_NativeString("Error: Conflicting default constructor to call for ");
831 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
832 once_value_10
= fra
.me
.REG
[6];
833 register_static_object(&once_value_10
);
834 } else fra
.me
.REG
[6] = once_value_10
;
835 fra
.me
.REG
[6] = fra
.me
.REG
[6];
836 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
837 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
839 if (!once_value_11
) {
840 fra
.me
.REG
[6] = BOX_NativeString(": ");
842 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
843 once_value_11
= fra
.me
.REG
[6];
844 register_static_object(&once_value_11
);
845 } else fra
.me
.REG
[6] = once_value_11
;
846 fra
.me
.REG
[6] = fra
.me
.REG
[6];
847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
848 if (!once_value_12
) {
849 fra
.me
.REG
[6] = BOX_NativeString(", ");
851 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
852 once_value_12
= fra
.me
.REG
[6];
853 register_static_object(&once_value_12
);
854 } else fra
.me
.REG
[6] = once_value_12
;
855 fra
.me
.REG
[6] = fra
.me
.REG
[6];
856 fra
.me
.REG
[6] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
857 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
858 if (!once_value_13
) {
859 fra
.me
.REG
[6] = BOX_NativeString(".");
861 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
862 once_value_13
= fra
.me
.REG
[6];
863 register_static_object(&once_value_13
);
864 } else fra
.me
.REG
[6] = once_value_13
;
865 fra
.me
.REG
[6] = fra
.me
.REG
[6];
866 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
867 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
868 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[8]);
869 /* ./syntax//typing.nit:149 */
870 fra
.me
.REG
[9] = NIT_NULL
;
873 /* ./../lib/standard//collection//array.nit:24 */
874 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
875 if (UNTAG_Bool(REGB1
)) {
877 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
879 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
880 /* ./syntax//typing.nit:150 */
882 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
883 if (UNTAG_Bool(REGB0
)) {
885 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
887 /* ./../lib/standard//kernel.nit:234 */
888 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
889 /* ./syntax//typing.nit:150 */
890 if (UNTAG_Bool(REGB2
)) {
891 /* ./syntax//typing.nit:151 */
892 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
893 /* ./../lib/standard//collection//array.nit:269 */
895 /* ./../lib/standard//collection//array.nit:270 */
896 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
897 if (UNTAG_Bool(REGB1
)) {
899 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
901 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
902 /* ./../lib/standard//collection//array.nit:271 */
903 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
904 /* ./../lib/standard//collection//array.nit:272 */
906 /* ./../lib/standard//collection//array.nit:24 */
907 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
908 if (UNTAG_Bool(REGB1
)) {
910 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
912 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
913 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
914 if (UNTAG_Bool(REGB0
)) {
916 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
918 /* ./../lib/standard//kernel.nit:232 */
919 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
920 /* ./../lib/standard//collection//array.nit:272 */
921 if (UNTAG_Bool(REGB1
)) {
922 /* ./../lib/standard//collection//array.nit:273 */
923 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
924 if (UNTAG_Bool(REGB1
)) {
925 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
927 /* ./../lib/standard//collection//array.nit:718 */
928 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB2
)];
929 /* ./syntax//typing.nit:153 */
931 fra
.me
.REG
[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
932 if (!once_value_14
) {
933 fra
.me
.REG
[4] = BOX_NativeString("");
935 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
936 once_value_14
= fra
.me
.REG
[4];
937 register_static_object(&once_value_14
);
938 } else fra
.me
.REG
[4] = once_value_14
;
939 fra
.me
.REG
[4] = fra
.me
.REG
[4];
940 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
941 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
942 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
943 if (!once_value_15
) {
944 fra
.me
.REG
[4] = BOX_NativeString("");
946 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
947 once_value_15
= fra
.me
.REG
[4];
948 register_static_object(&once_value_15
);
949 } else fra
.me
.REG
[4] = once_value_15
;
950 fra
.me
.REG
[4] = fra
.me
.REG
[4];
951 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
952 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
953 REGB1
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___static_type___MMSignature
, ID_metamodel___static_type___MMSignature
)) /*cast MMSignature*/;
954 if (UNTAG_Bool(REGB1
)) {
956 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 153);
958 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[3]);
960 if (!once_value_16
) {
961 fra
.me
.REG
[3] = BOX_NativeString("");
963 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
964 once_value_16
= fra
.me
.REG
[3];
965 register_static_object(&once_value_16
);
966 } else fra
.me
.REG
[3] = once_value_16
;
967 fra
.me
.REG
[3] = fra
.me
.REG
[3];
968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[3]);
969 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
970 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[10]);
971 /* ./../lib/standard//collection//array.nit:274 */
973 /* ./../lib/standard//kernel.nit:235 */
974 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
975 /* ./../lib/standard//collection//array.nit:274 */
978 /* ./../lib/standard//collection//array.nit:272 */
983 /* ./syntax//typing.nit:155 */
985 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
986 if (!once_value_18
) {
987 fra
.me
.REG
[6] = BOX_NativeString("Error: there is no available compatible constructor in ");
989 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
990 once_value_18
= fra
.me
.REG
[6];
991 register_static_object(&once_value_18
);
992 } else fra
.me
.REG
[6] = once_value_18
;
993 fra
.me
.REG
[6] = fra
.me
.REG
[6];
994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
995 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
996 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
997 if (!once_value_19
) {
998 fra
.me
.REG
[6] = BOX_NativeString(". Discarded candidates are ");
1000 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
1001 once_value_19
= fra
.me
.REG
[6];
1002 register_static_object(&once_value_19
);
1003 } else fra
.me
.REG
[6] = once_value_19
;
1004 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1005 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1006 if (!once_value_20
) {
1007 fra
.me
.REG
[6] = BOX_NativeString(", ");
1009 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
1010 once_value_20
= fra
.me
.REG
[6];
1011 register_static_object(&once_value_20
);
1012 } else fra
.me
.REG
[6] = once_value_20
;
1013 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1014 fra
.me
.REG
[6] = CALL_standard___string___Collection___join(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
1015 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1016 if (!once_value_21
) {
1017 fra
.me
.REG
[6] = BOX_NativeString(".");
1019 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
1020 once_value_21
= fra
.me
.REG
[6];
1021 register_static_object(&once_value_21
);
1022 } else fra
.me
.REG
[6] = once_value_21
;
1023 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1024 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1025 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1026 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[0]);
1027 /* ./syntax//typing.nit:156 */
1028 fra
.me
.REG
[9] = NIT_NULL
;
1031 /* ./syntax//typing.nit:158 */
1033 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
1034 if (!once_value_22
) {
1035 fra
.me
.REG
[6] = BOX_NativeString("Error: there is no available compatible constructor in ");
1036 REGB2
= TAG_Int(55);
1037 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
1038 once_value_22
= fra
.me
.REG
[6];
1039 register_static_object(&once_value_22
);
1040 } else fra
.me
.REG
[6] = once_value_22
;
1041 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1042 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1043 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1044 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
1045 if (!once_value_23
) {
1046 fra
.me
.REG
[2] = BOX_NativeString(".");
1048 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB2
);
1049 once_value_23
= fra
.me
.REG
[2];
1050 register_static_object(&once_value_23
);
1051 } else fra
.me
.REG
[2] = once_value_23
;
1052 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1053 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
1054 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1055 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[0]);
1056 /* ./syntax//typing.nit:159 */
1057 fra
.me
.REG
[9] = NIT_NULL
;
1063 stack_frame_head
= fra
.me
.prev
;
1064 return fra
.me
.REG
[9];
1066 void OC_syntax___typing___TypingVisitor___get_default_constructor_for_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1067 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1074 static val_t once_value_3
; /* Once value */
1075 static val_t once_value_4
; /* Once value */
1076 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1077 fra
.me
.file
= LOCATE_syntax___typing
;
1079 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for
;
1080 fra
.me
.has_broke
= 0;
1081 fra
.me
.REG_size
= 4;
1082 fra
.me
.nitni_local_ref_head
= NULL
;
1083 fra
.me
.REG
[0] = NIT_NULL
;
1084 fra
.me
.REG
[1] = NIT_NULL
;
1085 fra
.me
.REG
[2] = NIT_NULL
;
1086 fra
.me
.REG
[3] = NIT_NULL
;
1087 fra
.me
.closure_ctx
= closctx_param
;
1088 fra
.me
.closure_funs
= CREG
;
1090 CREG
[0] = clos_fun0
;
1091 /* ./syntax//typing.nit:123 */
1092 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[2]);
1093 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1094 if (UNTAG_Bool(REGB0
)) {
1097 /* ./syntax//typing.nit:124 */
1098 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
1099 /* ./syntax//typing.nit:125 */
1100 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
1101 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1102 /* ./syntax//typing.nit:126 */
1103 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
1104 if (UNTAG_Bool(REGB0
)) {
1106 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 126);
1108 /* ./syntax//typing.nit:127 */
1109 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1110 /* ./syntax//typing.nit:128 */
1111 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1112 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(closctx
->REG
[3])(closctx
->REG
[3]);
1113 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
1114 if (UNTAG_Bool(REGB1
)) {
1116 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1119 if (UNTAG_Bool(REGB1
)) {
1120 /* ./syntax//typing.nit:129 */
1122 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1123 if (UNTAG_Bool(REGB2
)) {
1125 /* ./../lib/standard//kernel.nit:227 */
1126 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1127 /* ./syntax//typing.nit:129 */
1130 if (UNTAG_Bool(REGB2
)) {
1131 REGB2
= TAG_Bool(true);
1133 REGB1
= TAG_Bool(IS_EQUAL_OO(closctx
->REG
[8],REGB0
));
1134 if (UNTAG_Bool(REGB1
)) {
1136 /* ./../lib/standard//kernel.nit:227 */
1137 REGB3
= TAG_Bool((closctx
->REG
[8])==(REGB0
));
1138 /* ./syntax//typing.nit:129 */
1141 if (UNTAG_Bool(REGB1
)) {
1142 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(closctx
->REG
[3])(closctx
->REG
[3]);
1143 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1144 if (UNTAG_Bool(REGB1
)) {
1145 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 129);
1147 REGB1
= CALL_metamodel___static_type___MMSignature_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1149 REGB3
= TAG_Bool(false);
1154 if (UNTAG_Bool(REGB2
)) {
1155 /* ./syntax//typing.nit:130 */
1156 closctx
->REG
[9] = fra
.me
.REG
[0];
1157 closctx
->has_broke
= 1;
1160 /* ./syntax//typing.nit:132 */
1161 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1164 /* ./syntax//typing.nit:134 */
1166 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
1167 if (UNTAG_Bool(REGB1
)) {
1169 /* ./../lib/standard//kernel.nit:227 */
1170 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
1171 /* ./syntax//typing.nit:134 */
1174 if (UNTAG_Bool(REGB1
)) {
1175 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1176 if (!once_value_3
) {
1177 if (!once_value_4
) {
1178 fra
.me
.REG
[3] = BOX_NativeString("init");
1180 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
1181 once_value_4
= fra
.me
.REG
[3];
1182 register_static_object(&once_value_4
);
1183 } else fra
.me
.REG
[3] = once_value_4
;
1184 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1185 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1186 once_value_3
= fra
.me
.REG
[3];
1187 register_static_object(&once_value_3
);
1188 } else fra
.me
.REG
[3] = once_value_3
;
1189 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1190 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
1191 if (UNTAG_Bool(REGB1
)) {
1193 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1197 REGB2
= TAG_Bool(false);
1200 if (UNTAG_Bool(REGB1
)) {
1201 /* ./syntax//typing.nit:135 */
1202 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0]);
1203 /* ./syntax//typing.nit:136 */
1204 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1206 /* ./syntax//typing.nit:138 */
1207 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1211 stack_frame_head
= fra
.me
.prev
;
1214 void syntax___typing___ANode___accept_typing(val_t p0
, val_t p1
){
1215 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1217 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1218 fra
.me
.file
= LOCATE_syntax___typing
;
1220 fra
.me
.meth
= LOCATE_syntax___typing___ANode___accept_typing
;
1221 fra
.me
.has_broke
= 0;
1222 fra
.me
.REG_size
= 2;
1223 fra
.me
.nitni_local_ref_head
= NULL
;
1224 fra
.me
.REG
[0] = NIT_NULL
;
1225 fra
.me
.REG
[1] = NIT_NULL
;
1228 /* ./syntax//typing.nit:170 */
1229 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1230 /* ./syntax//typing.nit:171 */
1231 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1232 stack_frame_head
= fra
.me
.prev
;
1235 void syntax___typing___ANode___after_typing(val_t p0
, val_t p1
){
1236 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1238 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1239 fra
.me
.file
= LOCATE_syntax___typing
;
1241 fra
.me
.meth
= LOCATE_syntax___typing___ANode___after_typing
;
1242 fra
.me
.has_broke
= 0;
1243 fra
.me
.REG_size
= 2;
1244 fra
.me
.nitni_local_ref_head
= NULL
;
1245 fra
.me
.REG
[0] = NIT_NULL
;
1246 fra
.me
.REG
[1] = NIT_NULL
;
1249 stack_frame_head
= fra
.me
.prev
;
1252 void syntax___typing___AClassdef___accept_typing(val_t p0
, val_t p1
){
1253 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1256 static val_t once_value_1
; /* Once value */
1257 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1258 fra
.me
.file
= LOCATE_syntax___typing
;
1260 fra
.me
.meth
= LOCATE_syntax___typing___AClassdef___accept_typing
;
1261 fra
.me
.has_broke
= 0;
1262 fra
.me
.REG_size
= 5;
1263 fra
.me
.nitni_local_ref_head
= NULL
;
1264 fra
.me
.REG
[0] = NIT_NULL
;
1265 fra
.me
.REG
[1] = NIT_NULL
;
1266 fra
.me
.REG
[2] = NIT_NULL
;
1267 fra
.me
.REG
[3] = NIT_NULL
;
1268 fra
.me
.REG
[4] = NIT_NULL
;
1271 /* ./syntax//typing.nit:177 */
1272 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1273 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1274 /* ./syntax//typing.nit:179 */
1275 if (!once_value_1
) {
1276 fra
.me
.REG
[4] = BOX_NativeString("self");
1278 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1279 once_value_1
= fra
.me
.REG
[4];
1280 register_static_object(&once_value_1
);
1281 } else fra
.me
.REG
[4] = once_value_1
;
1282 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1283 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1284 fra
.me
.REG
[4] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1285 CALL_syntax___typing___TypingVisitor___self_var__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1286 /* ./syntax//typing.nit:180 */
1287 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1288 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1289 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1290 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1291 /* ./syntax//typing.nit:181 */
1292 CALL_SUPER_syntax___typing___AClassdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1293 stack_frame_head
= fra
.me
.prev
;
1296 val_t
syntax___typing___APropdef___self_var(val_t p0
){
1297 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1300 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1301 fra
.me
.file
= LOCATE_syntax___typing
;
1303 fra
.me
.meth
= LOCATE_syntax___typing___APropdef___self_var
;
1304 fra
.me
.has_broke
= 0;
1305 fra
.me
.REG_size
= 2;
1306 fra
.me
.nitni_local_ref_head
= NULL
;
1307 fra
.me
.REG
[0] = NIT_NULL
;
1308 fra
.me
.REG
[1] = NIT_NULL
;
1310 /* ./syntax//typing.nit:186 */
1311 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1312 fra
.me
.REG
[1] = ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[1]);
1313 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1314 if (UNTAG_Bool(REGB0
)) {
1316 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 186);
1320 stack_frame_head
= fra
.me
.prev
;
1321 return fra
.me
.REG
[1];
1323 void syntax___typing___AAttrPropdef___accept_typing(val_t p0
, val_t p1
){
1324 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1328 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1329 fra
.me
.file
= LOCATE_syntax___typing
;
1331 fra
.me
.meth
= LOCATE_syntax___typing___AAttrPropdef___accept_typing
;
1332 fra
.me
.has_broke
= 0;
1333 fra
.me
.REG_size
= 5;
1334 fra
.me
.nitni_local_ref_head
= NULL
;
1335 fra
.me
.REG
[0] = NIT_NULL
;
1336 fra
.me
.REG
[1] = NIT_NULL
;
1337 fra
.me
.REG
[2] = NIT_NULL
;
1338 fra
.me
.REG
[3] = NIT_NULL
;
1339 fra
.me
.REG
[4] = NIT_NULL
;
1342 /* ./syntax//typing.nit:191 */
1343 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1344 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1345 /* ./syntax//typing.nit:193 */
1346 fra
.me
.REG
[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1347 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1348 /* ./syntax//typing.nit:194 */
1349 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1350 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1351 /* ./syntax//typing.nit:196 */
1352 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1353 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1354 /* ./syntax//typing.nit:197 */
1355 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1356 ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1357 /* ./syntax//typing.nit:198 */
1358 CALL_SUPER_syntax___typing___AAttrPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1359 /* ./syntax//typing.nit:199 */
1360 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1361 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1362 if (UNTAG_Bool(REGB0
)) {
1364 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1365 if (UNTAG_Bool(REGB1
)) {
1366 REGB1
= TAG_Bool(false);
1369 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1373 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1374 if (UNTAG_Bool(REGB0
)) {
1375 /* ./syntax//typing.nit:200 */
1376 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1377 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_parser___parser_nodes___AExpr
, ID_parser___parser_nodes___AExpr
)) /*cast AExpr*/;
1378 if (UNTAG_Bool(REGB0
)) {
1380 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 200);
1382 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1383 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1384 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1385 if (UNTAG_Bool(REGB0
)) {
1386 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 200);
1388 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1389 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
1390 if (UNTAG_Bool(REGB0
)) {
1392 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 200);
1394 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1396 /* ./syntax//typing.nit:202 */
1397 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1398 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1399 stack_frame_head
= fra
.me
.prev
;
1402 void syntax___typing___AMethPropdef___accept_typing(val_t p0
, val_t p1
){
1403 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1405 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1406 fra
.me
.file
= LOCATE_syntax___typing
;
1408 fra
.me
.meth
= LOCATE_syntax___typing___AMethPropdef___accept_typing
;
1409 fra
.me
.has_broke
= 0;
1410 fra
.me
.REG_size
= 5;
1411 fra
.me
.nitni_local_ref_head
= NULL
;
1412 fra
.me
.REG
[0] = NIT_NULL
;
1413 fra
.me
.REG
[1] = NIT_NULL
;
1414 fra
.me
.REG
[2] = NIT_NULL
;
1415 fra
.me
.REG
[3] = NIT_NULL
;
1416 fra
.me
.REG
[4] = NIT_NULL
;
1419 /* ./syntax//typing.nit:207 */
1420 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1421 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1422 /* ./syntax//typing.nit:209 */
1423 fra
.me
.REG
[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1424 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1425 /* ./syntax//typing.nit:210 */
1426 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1427 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1428 /* ./syntax//typing.nit:212 */
1429 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1430 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1431 /* ./syntax//typing.nit:213 */
1432 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1433 ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1434 /* ./syntax//typing.nit:214 */
1435 CALL_SUPER_syntax___typing___AMethPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1436 /* ./syntax//typing.nit:215 */
1437 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1438 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1439 stack_frame_head
= fra
.me
.prev
;
1442 void syntax___typing___AConcreteMethPropdef___after_typing(val_t p0
, val_t p1
){
1443 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1447 static val_t once_value_1
; /* Once value */
1448 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1449 fra
.me
.file
= LOCATE_syntax___typing
;
1451 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteMethPropdef___after_typing
;
1452 fra
.me
.has_broke
= 0;
1453 fra
.me
.REG_size
= 4;
1454 fra
.me
.nitni_local_ref_head
= NULL
;
1455 fra
.me
.REG
[0] = NIT_NULL
;
1456 fra
.me
.REG
[1] = NIT_NULL
;
1457 fra
.me
.REG
[2] = NIT_NULL
;
1458 fra
.me
.REG
[3] = NIT_NULL
;
1461 /* ./syntax//typing.nit:220 */
1462 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1463 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1464 /* ./syntax//typing.nit:222 */
1465 CALL_SUPER_syntax___typing___AConcreteMethPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1466 /* ./syntax//typing.nit:223 */
1467 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1468 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1469 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1470 if (UNTAG_Bool(REGB0
)) {
1471 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1472 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1473 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1474 if (UNTAG_Bool(REGB0
)) {
1475 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 223);
1477 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1478 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1479 if (UNTAG_Bool(REGB0
)) {
1481 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1482 if (UNTAG_Bool(REGB1
)) {
1483 REGB1
= TAG_Bool(false);
1486 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1490 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1492 REGB1
= TAG_Bool(false);
1495 if (UNTAG_Bool(REGB0
)) {
1496 /* ./syntax//typing.nit:224 */
1497 if (!once_value_1
) {
1498 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of function (a 'return' with a value was expected).");
1499 REGB0
= TAG_Int(78);
1500 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
1501 once_value_1
= fra
.me
.REG
[1];
1502 register_static_object(&once_value_1
);
1503 } else fra
.me
.REG
[1] = once_value_1
;
1504 fra
.me
.REG
[1] = fra
.me
.REG
[1];
1505 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
1507 stack_frame_head
= fra
.me
.prev
;
1510 void syntax___typing___AConcreteInitPropdef___accept_typing(val_t p0
, val_t p1
){
1511 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1514 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1515 fra
.me
.file
= LOCATE_syntax___typing
;
1517 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteInitPropdef___accept_typing
;
1518 fra
.me
.has_broke
= 0;
1519 fra
.me
.REG_size
= 5;
1520 fra
.me
.nitni_local_ref_head
= NULL
;
1521 fra
.me
.REG
[0] = NIT_NULL
;
1522 fra
.me
.REG
[1] = NIT_NULL
;
1523 fra
.me
.REG
[2] = NIT_NULL
;
1524 fra
.me
.REG
[3] = NIT_NULL
;
1525 fra
.me
.REG
[4] = NIT_NULL
;
1528 /* ./syntax//typing.nit:230 */
1529 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1530 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1531 /* ./syntax//typing.nit:232 */
1532 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1533 CALL_syntax___typing___TypingVisitor___top_block__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1534 /* ./syntax//typing.nit:233 */
1535 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1536 CALL_syntax___typing___TypingVisitor___explicit_super_init_calls__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1537 /* ./syntax//typing.nit:234 */
1538 REGB0
= TAG_Bool(false);
1539 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1540 /* ./syntax//typing.nit:235 */
1541 CALL_SUPER_syntax___typing___AConcreteInitPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1542 stack_frame_head
= fra
.me
.prev
;
1545 void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0
, val_t p1
){
1546 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
1554 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1555 fra
.me
.file
= LOCATE_syntax___typing
;
1557 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteInitPropdef___after_typing
;
1558 fra
.me
.has_broke
= 0;
1559 fra
.me
.REG_size
= 8;
1560 fra
.me
.nitni_local_ref_head
= NULL
;
1561 fra
.me
.REG
[0] = NIT_NULL
;
1562 fra
.me
.REG
[1] = NIT_NULL
;
1563 fra
.me
.REG
[2] = NIT_NULL
;
1564 fra
.me
.REG
[3] = NIT_NULL
;
1565 fra
.me
.REG
[4] = NIT_NULL
;
1566 fra
.me
.REG
[5] = NIT_NULL
;
1567 fra
.me
.REG
[6] = NIT_NULL
;
1568 fra
.me
.REG
[7] = NIT_NULL
;
1571 /* ./syntax//typing.nit:238 */
1572 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1573 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1574 /* ./syntax//typing.nit:240 */
1575 CALL_SUPER_syntax___typing___AConcreteInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1576 /* ./syntax//typing.nit:241 */
1577 REGB0
= CALL_syntax___typing___TypingVisitor___explicit_other_init_call(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1578 if (UNTAG_Bool(REGB0
)) {
1579 REGB0
= TAG_Bool(true);
1581 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1582 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1583 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1584 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1585 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[4]));
1586 if (UNTAG_Bool(REGB1
)) {
1588 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1591 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1594 if (UNTAG_Bool(REGB0
)) {
1596 /* ./syntax//typing.nit:244 */
1598 /* ./syntax//typing.nit:245 */
1599 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1600 /* ./../lib/standard//collection//array.nit:24 */
1601 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1602 if (UNTAG_Bool(REGB1
)) {
1604 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1606 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1607 /* ./syntax//typing.nit:246 */
1608 fra
.me
.REG
[4] = NIT_NULL
;
1609 /* ./syntax//typing.nit:247 */
1610 fra
.me
.REG
[1] = NIT_NULL
;
1611 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1612 if (UNTAG_Bool(REGB2
)) {
1614 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1616 /* ./../lib/standard//kernel.nit:232 */
1617 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1618 /* ./syntax//typing.nit:248 */
1619 if (UNTAG_Bool(REGB2
)) {
1620 /* ./syntax//typing.nit:249 */
1621 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1622 /* ./../lib/standard//collection//array.nit:278 */
1624 /* ./../lib/standard//collection//array.nit:280 */
1626 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1627 if (UNTAG_Bool(REGB4
)) {
1629 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1631 /* ./../lib/standard//kernel.nit:233 */
1632 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
1633 /* ./../lib/standard//collection//array.nit:280 */
1634 if (UNTAG_Bool(REGB3
)) {
1635 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1636 if (UNTAG_Bool(REGB3
)) {
1638 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1640 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1641 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1642 if (UNTAG_Bool(REGB4
)) {
1644 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1646 /* ./../lib/standard//kernel.nit:232 */
1647 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1649 /* ./../lib/standard//collection//array.nit:280 */
1650 REGB4
= TAG_Bool(false);
1653 if (UNTAG_Bool(REGB3
)) {
1655 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
1657 /* ./../lib/standard//collection//array.nit:281 */
1658 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1659 REGB3
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1660 if (UNTAG_Bool(REGB3
)) {
1661 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1663 /* ./../lib/standard//collection//array.nit:718 */
1664 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB2
)];
1665 /* ./../lib/standard//collection//array.nit:281 */
1668 /* ./syntax//typing.nit:249 */
1669 fra
.me
.REG
[4] = fra
.me
.REG
[5];
1670 /* ./syntax//typing.nit:250 */
1671 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1672 if (UNTAG_Bool(REGB2
)) {
1673 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 250);
1675 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1676 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1677 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1678 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1679 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
1680 fra
.me
.REG
[1] = fra
.me
.REG
[6];
1682 /* ./syntax//typing.nit:252 */
1684 /* ./syntax//typing.nit:253 */
1686 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1687 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1688 fra
.me
.REG
[6] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1689 /* ./../lib/standard//collection//array.nit:24 */
1690 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
1691 if (UNTAG_Bool(REGB3
)) {
1693 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1695 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
1696 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1697 if (UNTAG_Bool(REGB4
)) {
1699 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1701 /* ./../lib/standard//kernel.nit:232 */
1702 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1703 /* ./syntax//typing.nit:253 */
1704 if (UNTAG_Bool(REGB3
)) {
1705 /* ./syntax//typing.nit:254 */
1706 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1707 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1708 fra
.me
.REG
[6] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1709 /* ./../lib/standard//collection//array.nit:278 */
1711 /* ./../lib/standard//collection//array.nit:280 */
1713 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1714 if (UNTAG_Bool(REGB5
)) {
1716 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1718 /* ./../lib/standard//kernel.nit:233 */
1719 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1720 /* ./../lib/standard//collection//array.nit:280 */
1721 if (UNTAG_Bool(REGB4
)) {
1722 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
1723 if (UNTAG_Bool(REGB4
)) {
1725 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1727 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
1728 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1729 if (UNTAG_Bool(REGB5
)) {
1731 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1733 /* ./../lib/standard//kernel.nit:232 */
1734 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1736 /* ./../lib/standard//collection//array.nit:280 */
1737 REGB5
= TAG_Bool(false);
1740 if (UNTAG_Bool(REGB4
)) {
1742 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
1744 /* ./../lib/standard//collection//array.nit:281 */
1745 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
1746 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1747 if (UNTAG_Bool(REGB4
)) {
1748 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1750 /* ./../lib/standard//collection//array.nit:718 */
1751 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB3
)];
1752 /* ./../lib/standard//collection//array.nit:281 */
1755 /* ./syntax//typing.nit:255 */
1756 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1757 REGB3
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1758 if (UNTAG_Bool(REGB3
)) {
1759 REGB3
= TAG_Bool(true);
1761 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1762 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1765 if (UNTAG_Bool(REGB3
)) {
1766 REGB3
= TAG_Bool(true);
1768 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1769 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1772 if (UNTAG_Bool(REGB3
)) {
1773 REGB3
= TAG_Bool(true);
1775 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1776 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1779 if (UNTAG_Bool(REGB3
)) {
1780 /* ./syntax//typing.nit:256 */
1782 /* ./../lib/standard//kernel.nit:235 */
1783 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1784 /* ./syntax//typing.nit:256 */
1787 /* ./syntax//typing.nit:257 */
1788 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1789 if (UNTAG_Bool(REGB3
)) {
1791 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1792 if (UNTAG_Bool(REGB4
)) {
1793 REGB4
= TAG_Bool(false);
1796 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1800 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1801 if (UNTAG_Bool(REGB3
)) {
1802 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1803 REGB3
= CALL_metamodel___partial_order___PartialOrderElement_____leq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
1804 if (UNTAG_Bool(REGB3
)) {
1805 REGB3
= TAG_Bool(true);
1807 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1808 if (UNTAG_Bool(REGB4
)) {
1809 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 257);
1811 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1812 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1816 REGB4
= TAG_Bool(false);
1819 if (UNTAG_Bool(REGB3
)) {
1820 /* ./syntax//typing.nit:258 */
1821 REGB3
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[1]));
1822 if (UNTAG_Bool(REGB3
)) {
1824 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
1827 if (UNTAG_Bool(REGB3
)) {
1829 /* ./../lib/standard//kernel.nit:235 */
1830 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1831 /* ./syntax//typing.nit:258 */
1834 /* ./syntax//typing.nit:259 */
1835 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1836 REGB3
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
1837 if (UNTAG_Bool(REGB3
)) {
1839 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 259);
1841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
1842 /* ./syntax//typing.nit:260 */
1844 /* ./../lib/standard//kernel.nit:235 */
1845 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1846 /* ./syntax//typing.nit:260 */
1848 REGB3
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1849 if (UNTAG_Bool(REGB3
)) {
1851 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1853 /* ./../lib/standard//kernel.nit:232 */
1854 REGB3
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1855 /* ./syntax//typing.nit:261 */
1856 if (UNTAG_Bool(REGB3
)) {
1857 /* ./syntax//typing.nit:262 */
1858 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1859 /* ./../lib/standard//collection//array.nit:278 */
1861 /* ./../lib/standard//collection//array.nit:280 */
1863 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1864 if (UNTAG_Bool(REGB5
)) {
1866 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1868 /* ./../lib/standard//kernel.nit:233 */
1869 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1870 /* ./../lib/standard//collection//array.nit:280 */
1871 if (UNTAG_Bool(REGB4
)) {
1872 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1873 if (UNTAG_Bool(REGB4
)) {
1875 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1877 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1878 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1879 if (UNTAG_Bool(REGB5
)) {
1881 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1883 /* ./../lib/standard//kernel.nit:232 */
1884 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1886 /* ./../lib/standard//collection//array.nit:280 */
1887 REGB5
= TAG_Bool(false);
1890 if (UNTAG_Bool(REGB4
)) {
1892 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
1894 /* ./../lib/standard//collection//array.nit:281 */
1895 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1896 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1897 if (UNTAG_Bool(REGB4
)) {
1898 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1900 /* ./../lib/standard//collection//array.nit:718 */
1901 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
1902 /* ./../lib/standard//collection//array.nit:281 */
1905 /* ./syntax//typing.nit:262 */
1906 fra
.me
.REG
[4] = fra
.me
.REG
[5];
1907 /* ./syntax//typing.nit:263 */
1908 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1909 if (UNTAG_Bool(REGB3
)) {
1910 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 263);
1912 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1913 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1914 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1915 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1916 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
1917 fra
.me
.REG
[1] = fra
.me
.REG
[7];
1919 /* ./syntax//typing.nit:265 */
1920 fra
.me
.REG
[4] = NIT_NULL
;
1921 /* ./syntax//typing.nit:266 */
1922 fra
.me
.REG
[1] = NIT_NULL
;
1925 /* ./syntax//typing.nit:269 */
1926 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1927 fra
.me
.REG
[7] = CALL_syntax___typing___TypingVisitor___get_default_constructor_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[6], fra
.me
.REG
[7]);
1928 /* ./syntax//typing.nit:270 */
1929 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1930 if (UNTAG_Bool(REGB3
)) {
1932 REGB4
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1933 if (UNTAG_Bool(REGB4
)) {
1934 REGB4
= TAG_Bool(false);
1937 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
1941 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1942 if (UNTAG_Bool(REGB3
)) {
1943 /* ./syntax//typing.nit:271 */
1944 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1945 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1947 /* ./syntax//typing.nit:273 */
1949 /* ./../lib/standard//kernel.nit:235 */
1950 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1951 /* ./syntax//typing.nit:273 */
1956 /* ./syntax//typing.nit:253 */
1962 stack_frame_head
= fra
.me
.prev
;
1965 void syntax___typing___AExternInitPropdef___accept_typing(val_t p0
, val_t p1
){
1966 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1969 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1970 fra
.me
.file
= LOCATE_syntax___typing
;
1972 fra
.me
.meth
= LOCATE_syntax___typing___AExternInitPropdef___accept_typing
;
1973 fra
.me
.has_broke
= 0;
1974 fra
.me
.REG_size
= 3;
1975 fra
.me
.nitni_local_ref_head
= NULL
;
1976 fra
.me
.REG
[0] = NIT_NULL
;
1977 fra
.me
.REG
[1] = NIT_NULL
;
1978 fra
.me
.REG
[2] = NIT_NULL
;
1981 /* ./syntax//typing.nit:281 */
1982 fra
.me
.REG
[2] = fra
.me
.REG
[1];
1983 /* ./syntax//typing.nit:283 */
1984 REGB0
= TAG_Bool(false);
1985 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1986 /* ./syntax//typing.nit:284 */
1987 CALL_SUPER_syntax___typing___AExternInitPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1988 stack_frame_head
= fra
.me
.prev
;
1991 void syntax___typing___AExternInitPropdef___after_typing(val_t p0
, val_t p1
){
1992 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1994 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1995 fra
.me
.file
= LOCATE_syntax___typing
;
1997 fra
.me
.meth
= LOCATE_syntax___typing___AExternInitPropdef___after_typing
;
1998 fra
.me
.has_broke
= 0;
1999 fra
.me
.REG_size
= 2;
2000 fra
.me
.nitni_local_ref_head
= NULL
;
2001 fra
.me
.REG
[0] = NIT_NULL
;
2002 fra
.me
.REG
[1] = NIT_NULL
;
2005 /* ./syntax//typing.nit:288 */
2006 CALL_SUPER_syntax___typing___AExternInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2007 stack_frame_head
= fra
.me
.prev
;
2010 void syntax___typing___AParam___after_typing(val_t p0
, val_t p1
){
2011 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2013 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2014 fra
.me
.file
= LOCATE_syntax___typing
;
2016 fra
.me
.meth
= LOCATE_syntax___typing___AParam___after_typing
;
2017 fra
.me
.has_broke
= 0;
2018 fra
.me
.REG_size
= 2;
2019 fra
.me
.nitni_local_ref_head
= NULL
;
2020 fra
.me
.REG
[0] = NIT_NULL
;
2021 fra
.me
.REG
[1] = NIT_NULL
;
2024 /* ./syntax//typing.nit:295 */
2025 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2026 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2027 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2028 stack_frame_head
= fra
.me
.prev
;
2031 val_t
syntax___typing___AClosureDecl___escapable(val_t p0
){
2032 struct {struct stack_frame_t me
;} fra
;
2034 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2035 fra
.me
.file
= LOCATE_syntax___typing
;
2037 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___escapable
;
2038 fra
.me
.has_broke
= 0;
2039 fra
.me
.REG_size
= 1;
2040 fra
.me
.nitni_local_ref_head
= NULL
;
2041 fra
.me
.REG
[0] = NIT_NULL
;
2043 /* ./syntax//typing.nit:300 */
2044 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[0]);
2045 stack_frame_head
= fra
.me
.prev
;
2046 return fra
.me
.REG
[0];
2048 void syntax___typing___AClosureDecl___accept_typing(val_t p0
, val_t p1
){
2049 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
2054 static val_t once_value_1
; /* Once value */
2055 static val_t once_value_2
; /* Once value */
2056 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2057 fra
.me
.file
= LOCATE_syntax___typing
;
2059 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___accept_typing
;
2060 fra
.me
.has_broke
= 0;
2061 fra
.me
.REG_size
= 10;
2062 fra
.me
.nitni_local_ref_head
= NULL
;
2063 fra
.me
.REG
[0] = NIT_NULL
;
2064 fra
.me
.REG
[1] = NIT_NULL
;
2065 fra
.me
.REG
[2] = NIT_NULL
;
2066 fra
.me
.REG
[3] = NIT_NULL
;
2067 fra
.me
.REG
[4] = NIT_NULL
;
2068 fra
.me
.REG
[5] = NIT_NULL
;
2069 fra
.me
.REG
[6] = NIT_NULL
;
2070 fra
.me
.REG
[7] = NIT_NULL
;
2071 fra
.me
.REG
[8] = NIT_NULL
;
2072 fra
.me
.REG
[9] = NIT_NULL
;
2075 /* ./syntax//typing.nit:303 */
2076 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2077 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2078 /* ./syntax//typing.nit:306 */
2079 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2080 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2081 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2082 /* ./syntax//typing.nit:308 */
2083 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2084 /* ./syntax//typing.nit:309 */
2085 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2086 /* ./syntax//typing.nit:310 */
2087 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2088 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
2089 /* ./syntax//typing.nit:312 */
2090 fra
.me
.REG
[6] = NIT_NULL
;
2091 /* ./syntax//typing.nit:313 */
2092 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2093 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2094 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2095 if (UNTAG_Bool(REGB0
)) {
2096 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 313);
2098 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2099 /* ./syntax//typing.nit:314 */
2100 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2101 if (UNTAG_Bool(REGB0
)) {
2103 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2104 if (UNTAG_Bool(REGB1
)) {
2105 REGB1
= TAG_Bool(false);
2108 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
2112 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2113 if (UNTAG_Bool(REGB0
)) {
2114 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
2115 fra
.me
.REG
[6] = fra
.me
.REG
[8];
2117 /* ./syntax//typing.nit:315 */
2118 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2119 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2120 fra
.me
.REG
[8] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[2], fra
.me
.REG
[8], fra
.me
.REG
[6]);
2121 /* ./syntax//typing.nit:316 */
2122 ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[2]) = fra
.me
.REG
[8];
2123 /* ./syntax//typing.nit:317 */
2124 fra
.me
.REG
[9] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2125 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8], NIT_NULL
);
2126 /* ./syntax//typing.nit:319 */
2127 REGB0
= TAG_Bool(true);
2128 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2129 /* ./syntax//typing.nit:321 */
2130 CALL_SUPER_syntax___typing___AClosureDecl___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2131 /* ./syntax//typing.nit:323 */
2132 REGB0
= TAG_Bool(false);
2133 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2134 /* ./syntax//typing.nit:325 */
2135 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2136 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2137 if (UNTAG_Bool(REGB0
)) {
2139 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2140 if (UNTAG_Bool(REGB1
)) {
2141 REGB1
= TAG_Bool(false);
2144 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2148 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2149 if (UNTAG_Bool(REGB0
)) {
2150 /* ./syntax//typing.nit:326 */
2151 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2152 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2153 REGB1
= TAG_Bool(false);
2154 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
2155 if (UNTAG_Bool(REGB2
)) {
2157 /* ./../lib/standard//kernel.nit:195 */
2158 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
2159 /* ./syntax//typing.nit:326 */
2162 if (UNTAG_Bool(REGB2
)) {
2163 /* ./syntax//typing.nit:327 */
2164 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2165 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2166 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2167 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2168 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2169 if (UNTAG_Bool(REGB2
)) {
2171 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2172 if (UNTAG_Bool(REGB1
)) {
2173 REGB1
= TAG_Bool(false);
2176 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2180 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2181 if (UNTAG_Bool(REGB2
)) {
2182 /* ./syntax//typing.nit:328 */
2183 if (!once_value_1
) {
2184 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
2185 REGB2
= TAG_Int(77);
2186 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB2
);
2187 once_value_1
= fra
.me
.REG
[1];
2188 register_static_object(&once_value_1
);
2189 } else fra
.me
.REG
[1] = once_value_1
;
2190 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2191 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
2193 /* ./syntax//typing.nit:329 */
2194 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2195 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2196 REGB2
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2197 if (UNTAG_Bool(REGB2
)) {
2198 fra
.me
.REG
[8] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2199 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2200 if (UNTAG_Bool(REGB2
)) {
2202 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2203 if (UNTAG_Bool(REGB1
)) {
2204 REGB1
= TAG_Bool(false);
2207 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
2211 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2213 REGB1
= TAG_Bool(false);
2216 if (UNTAG_Bool(REGB2
)) {
2217 /* ./syntax//typing.nit:330 */
2218 if (!once_value_2
) {
2219 fra
.me
.REG
[8] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
2220 REGB2
= TAG_Int(80);
2221 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB2
);
2222 once_value_2
= fra
.me
.REG
[8];
2223 register_static_object(&once_value_2
);
2224 } else fra
.me
.REG
[8] = once_value_2
;
2225 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2226 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[8]);
2231 /* ./syntax//typing.nit:334 */
2232 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2233 if (UNTAG_Bool(REGB2
)) {
2235 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2236 if (UNTAG_Bool(REGB1
)) {
2237 REGB1
= TAG_Bool(false);
2240 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2244 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2245 if (UNTAG_Bool(REGB2
)) {
2246 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2247 if (UNTAG_Bool(REGB2
)) {
2248 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 334);
2250 /* ./../lib/standard//collection//array.nit:269 */
2252 /* ./../lib/standard//collection//array.nit:270 */
2253 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2254 if (UNTAG_Bool(REGB1
)) {
2256 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2258 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2259 /* ./../lib/standard//collection//array.nit:271 */
2260 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
2261 /* ./../lib/standard//collection//array.nit:272 */
2263 /* ./../lib/standard//collection//array.nit:24 */
2264 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2265 if (UNTAG_Bool(REGB1
)) {
2267 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2269 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2270 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
2271 if (UNTAG_Bool(REGB0
)) {
2273 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2275 /* ./../lib/standard//kernel.nit:232 */
2276 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
2277 /* ./../lib/standard//collection//array.nit:272 */
2278 if (UNTAG_Bool(REGB1
)) {
2279 /* ./../lib/standard//collection//array.nit:273 */
2280 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2281 if (UNTAG_Bool(REGB1
)) {
2282 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2284 /* ./../lib/standard//collection//array.nit:718 */
2285 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB2
)];
2286 /* ./syntax//typing.nit:335 */
2287 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
2288 /* ./../lib/standard//collection//array.nit:274 */
2290 /* ./../lib/standard//kernel.nit:235 */
2291 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
2292 /* ./../lib/standard//collection//array.nit:274 */
2295 /* ./../lib/standard//collection//array.nit:272 */
2301 /* ./syntax//typing.nit:338 */
2302 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2303 /* ./syntax//typing.nit:339 */
2304 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2305 /* ./syntax//typing.nit:340 */
2306 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2307 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2308 stack_frame_head
= fra
.me
.prev
;
2311 val_t
syntax___typing___AType___stype(val_t p0
){
2312 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2315 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2316 fra
.me
.file
= LOCATE_syntax___typing
;
2318 fra
.me
.meth
= LOCATE_syntax___typing___AType___stype
;
2319 fra
.me
.has_broke
= 0;
2320 fra
.me
.REG_size
= 2;
2321 fra
.me
.nitni_local_ref_head
= NULL
;
2322 fra
.me
.REG
[0] = NIT_NULL
;
2323 fra
.me
.REG
[1] = NIT_NULL
;
2325 /* ./syntax//typing.nit:345 */
2326 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2327 fra
.me
.REG
[1] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[1]);
2328 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2329 if (UNTAG_Bool(REGB0
)) {
2331 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 345);
2335 stack_frame_head
= fra
.me
.prev
;
2336 return fra
.me
.REG
[1];
2338 val_t
syntax___typing___AType___is_typed(val_t p0
){
2339 struct {struct stack_frame_t me
;} fra
;
2343 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2344 fra
.me
.file
= LOCATE_syntax___typing
;
2346 fra
.me
.meth
= LOCATE_syntax___typing___AType___is_typed
;
2347 fra
.me
.has_broke
= 0;
2348 fra
.me
.REG_size
= 1;
2349 fra
.me
.nitni_local_ref_head
= NULL
;
2350 fra
.me
.REG
[0] = NIT_NULL
;
2352 /* ./syntax//typing.nit:346 */
2353 fra
.me
.REG
[0] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]);
2354 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2355 if (UNTAG_Bool(REGB0
)) {
2357 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2358 if (UNTAG_Bool(REGB1
)) {
2359 REGB1
= TAG_Bool(false);
2362 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2366 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2369 stack_frame_head
= fra
.me
.prev
;
2372 void syntax___typing___AType___after_typing(val_t p0
, val_t p1
){
2373 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2375 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2376 fra
.me
.file
= LOCATE_syntax___typing
;
2378 fra
.me
.meth
= LOCATE_syntax___typing___AType___after_typing
;
2379 fra
.me
.has_broke
= 0;
2380 fra
.me
.REG_size
= 2;
2381 fra
.me
.nitni_local_ref_head
= NULL
;
2382 fra
.me
.REG
[0] = NIT_NULL
;
2383 fra
.me
.REG
[1] = NIT_NULL
;
2386 /* ./syntax//typing.nit:351 */
2387 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AType___get_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2388 ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2389 stack_frame_head
= fra
.me
.prev
;
2392 val_t
syntax___typing___AExpr___is_typed(val_t p0
){
2393 struct {struct stack_frame_t me
;} fra
;
2396 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2397 fra
.me
.file
= LOCATE_syntax___typing
;
2399 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_typed
;
2400 fra
.me
.has_broke
= 0;
2401 fra
.me
.REG_size
= 1;
2402 fra
.me
.nitni_local_ref_head
= NULL
;
2403 fra
.me
.REG
[0] = NIT_NULL
;
2405 /* ./syntax//typing.nit:356 */
2406 REGB0
= TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0])!=NIT_NULL
);
2407 if (UNTAG_Bool(REGB0
)) {
2409 nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_syntax___typing
, 356);
2411 REGB0
= ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]);
2412 stack_frame_head
= fra
.me
.prev
;
2415 val_t
syntax___typing___AExpr___is_statement(val_t p0
){
2416 struct {struct stack_frame_t me
;} fra
;
2420 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2421 fra
.me
.file
= LOCATE_syntax___typing
;
2423 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_statement
;
2424 fra
.me
.has_broke
= 0;
2425 fra
.me
.REG_size
= 1;
2426 fra
.me
.nitni_local_ref_head
= NULL
;
2427 fra
.me
.REG
[0] = NIT_NULL
;
2429 /* ./syntax//typing.nit:357 */
2430 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
2431 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2432 if (UNTAG_Bool(REGB0
)) {
2434 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2435 if (UNTAG_Bool(REGB1
)) {
2436 REGB1
= TAG_Bool(false);
2439 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2445 stack_frame_head
= fra
.me
.prev
;
2448 val_t
syntax___typing___AExpr___stype(val_t p0
){
2449 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2452 static val_t once_value_1
; /* Once value */
2453 static val_t once_value_2
; /* Once value */
2454 static val_t once_value_3
; /* Once value */
2455 static val_t once_value_4
; /* Once value */
2456 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2457 fra
.me
.file
= LOCATE_syntax___typing
;
2459 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___stype
;
2460 fra
.me
.has_broke
= 0;
2461 fra
.me
.REG_size
= 4;
2462 fra
.me
.nitni_local_ref_head
= NULL
;
2463 fra
.me
.REG
[0] = NIT_NULL
;
2464 fra
.me
.REG
[1] = NIT_NULL
;
2465 fra
.me
.REG
[2] = NIT_NULL
;
2466 fra
.me
.REG
[3] = NIT_NULL
;
2468 /* ./syntax//typing.nit:358 */
2469 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2470 /* ./syntax//typing.nit:360 */
2471 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2472 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2473 if (UNTAG_Bool(REGB0
)) {
2474 /* ./syntax//typing.nit:361 */
2476 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2477 if (!once_value_1
) {
2478 fra
.me
.REG
[3] = BOX_NativeString("");
2480 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2481 once_value_1
= fra
.me
.REG
[3];
2482 register_static_object(&once_value_1
);
2483 } else fra
.me
.REG
[3] = once_value_1
;
2484 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2485 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2486 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2487 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2488 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2489 if (!once_value_2
) {
2490 fra
.me
.REG
[3] = BOX_NativeString(": not is_typed");
2491 REGB0
= TAG_Int(14);
2492 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2493 once_value_2
= fra
.me
.REG
[3];
2494 register_static_object(&once_value_2
);
2495 } else fra
.me
.REG
[3] = once_value_2
;
2496 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2497 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2498 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2499 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2500 /* ./syntax//typing.nit:362 */
2501 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 362);
2503 /* ./syntax//typing.nit:364 */
2504 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2505 if (UNTAG_Bool(REGB0
)) {
2506 /* ./syntax//typing.nit:365 */
2508 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2509 if (!once_value_3
) {
2510 fra
.me
.REG
[3] = BOX_NativeString("");
2512 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2513 once_value_3
= fra
.me
.REG
[3];
2514 register_static_object(&once_value_3
);
2515 } else fra
.me
.REG
[3] = once_value_3
;
2516 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2517 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2518 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2519 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2520 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2521 if (!once_value_4
) {
2522 fra
.me
.REG
[3] = BOX_NativeString(": is_statement");
2523 REGB0
= TAG_Int(14);
2524 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2525 once_value_4
= fra
.me
.REG
[3];
2526 register_static_object(&once_value_4
);
2527 } else fra
.me
.REG
[3] = once_value_4
;
2528 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2529 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2530 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2531 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2532 /* ./syntax//typing.nit:366 */
2533 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 366);
2535 /* ./syntax//typing.nit:368 */
2536 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[1]);
2537 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2538 if (UNTAG_Bool(REGB0
)) {
2540 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 368);
2544 stack_frame_head
= fra
.me
.prev
;
2545 return fra
.me
.REG
[1];
2547 void syntax___typing___AExpr___after_typing(val_t p0
, val_t p1
){
2548 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2551 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2552 fra
.me
.file
= LOCATE_syntax___typing
;
2554 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___after_typing
;
2555 fra
.me
.has_broke
= 0;
2556 fra
.me
.REG_size
= 2;
2557 fra
.me
.nitni_local_ref_head
= NULL
;
2558 fra
.me
.REG
[0] = NIT_NULL
;
2559 fra
.me
.REG
[1] = NIT_NULL
;
2562 /* ./syntax//typing.nit:375 */
2563 REGB0
= TAG_Bool(true);
2564 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2565 stack_frame_head
= fra
.me
.prev
;
2568 val_t
syntax___typing___AExpr___is_implicit_self(val_t p0
){
2569 struct {struct stack_frame_t me
;} fra
;
2572 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2573 fra
.me
.file
= LOCATE_syntax___typing
;
2575 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_implicit_self
;
2576 fra
.me
.has_broke
= 0;
2577 fra
.me
.REG_size
= 1;
2578 fra
.me
.nitni_local_ref_head
= NULL
;
2579 fra
.me
.REG
[0] = NIT_NULL
;
2581 /* ./syntax//typing.nit:379 */
2582 REGB0
= TAG_Bool(false);
2585 stack_frame_head
= fra
.me
.prev
;
2588 val_t
syntax___typing___AExpr___is_self(val_t p0
){
2589 struct {struct stack_frame_t me
;} fra
;
2592 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2593 fra
.me
.file
= LOCATE_syntax___typing
;
2595 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_self
;
2596 fra
.me
.has_broke
= 0;
2597 fra
.me
.REG_size
= 1;
2598 fra
.me
.nitni_local_ref_head
= NULL
;
2599 fra
.me
.REG
[0] = NIT_NULL
;
2601 /* ./syntax//typing.nit:382 */
2602 REGB0
= TAG_Bool(false);
2605 stack_frame_head
= fra
.me
.prev
;
2608 val_t
syntax___typing___AExpr___its_variable(val_t p0
){
2609 struct {struct stack_frame_t me
;} fra
;
2611 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2612 fra
.me
.file
= LOCATE_syntax___typing
;
2614 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___its_variable
;
2615 fra
.me
.has_broke
= 0;
2616 fra
.me
.REG_size
= 1;
2617 fra
.me
.nitni_local_ref_head
= NULL
;
2618 fra
.me
.REG
[0] = NIT_NULL
;
2620 /* ./syntax//typing.nit:385 */
2621 fra
.me
.REG
[0] = NIT_NULL
;
2624 stack_frame_head
= fra
.me
.prev
;
2625 return fra
.me
.REG
[0];
2627 val_t
syntax___typing___AExpr___if_true_flow_ctx(val_t p0
){
2628 struct {struct stack_frame_t me
;} fra
;
2630 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2631 fra
.me
.file
= LOCATE_syntax___typing
;
2633 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___if_true_flow_ctx
;
2634 fra
.me
.has_broke
= 0;
2635 fra
.me
.REG_size
= 1;
2636 fra
.me
.nitni_local_ref_head
= NULL
;
2637 fra
.me
.REG
[0] = NIT_NULL
;
2639 /* ./syntax//typing.nit:387 */
2640 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]);
2641 stack_frame_head
= fra
.me
.prev
;
2642 return fra
.me
.REG
[0];
2644 val_t
syntax___typing___AExpr___if_false_flow_ctx(val_t p0
){
2645 struct {struct stack_frame_t me
;} fra
;
2647 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2648 fra
.me
.file
= LOCATE_syntax___typing
;
2650 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___if_false_flow_ctx
;
2651 fra
.me
.has_broke
= 0;
2652 fra
.me
.REG_size
= 1;
2653 fra
.me
.nitni_local_ref_head
= NULL
;
2654 fra
.me
.REG
[0] = NIT_NULL
;
2656 /* ./syntax//typing.nit:390 */
2657 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]);
2658 stack_frame_head
= fra
.me
.prev
;
2659 return fra
.me
.REG
[0];
2661 val_t
syntax___typing___AVardeclExpr___variable(val_t p0
){
2662 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2665 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2666 fra
.me
.file
= LOCATE_syntax___typing
;
2668 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___variable
;
2669 fra
.me
.has_broke
= 0;
2670 fra
.me
.REG_size
= 2;
2671 fra
.me
.nitni_local_ref_head
= NULL
;
2672 fra
.me
.REG
[0] = NIT_NULL
;
2673 fra
.me
.REG
[1] = NIT_NULL
;
2675 /* ./syntax//typing.nit:396 */
2676 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2677 fra
.me
.REG
[1] = ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[1]);
2678 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2679 if (UNTAG_Bool(REGB0
)) {
2681 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 396);
2685 stack_frame_head
= fra
.me
.prev
;
2686 return fra
.me
.REG
[1];
2688 void syntax___typing___AVardeclExpr___after_typing(val_t p0
, val_t p1
){
2689 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2693 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2694 fra
.me
.file
= LOCATE_syntax___typing
;
2696 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___after_typing
;
2697 fra
.me
.has_broke
= 0;
2698 fra
.me
.REG_size
= 5;
2699 fra
.me
.nitni_local_ref_head
= NULL
;
2700 fra
.me
.REG
[0] = NIT_NULL
;
2701 fra
.me
.REG
[1] = NIT_NULL
;
2702 fra
.me
.REG
[2] = NIT_NULL
;
2703 fra
.me
.REG
[3] = NIT_NULL
;
2704 fra
.me
.REG
[4] = NIT_NULL
;
2707 /* ./syntax//typing.nit:400 */
2708 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2709 fra
.me
.REG
[2] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2710 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2711 fra
.me
.REG
[3] = NEW_VarVariable_syntax___syntax_base___VarVariable___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2712 /* ./syntax//typing.nit:401 */
2713 ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
2714 /* ./syntax//typing.nit:402 */
2715 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2716 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2717 /* ./syntax//typing.nit:403 */
2718 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2719 /* ./syntax//typing.nit:404 */
2720 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2721 if (UNTAG_Bool(REGB0
)) {
2723 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2724 if (UNTAG_Bool(REGB1
)) {
2725 REGB1
= TAG_Bool(false);
2728 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2732 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2733 if (UNTAG_Bool(REGB0
)) {
2734 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2736 /* ./syntax//typing.nit:406 */
2737 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2738 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2739 if (UNTAG_Bool(REGB0
)) {
2741 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2742 if (UNTAG_Bool(REGB1
)) {
2743 REGB1
= TAG_Bool(false);
2746 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2750 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2751 if (UNTAG_Bool(REGB0
)) {
2752 /* ./syntax//typing.nit:407 */
2753 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2754 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2755 if (UNTAG_Bool(REGB0
)) {
2756 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 407);
2758 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2759 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2760 if (UNTAG_Bool(REGB0
)) {
2763 /* ./syntax//typing.nit:408 */
2764 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2765 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2766 if (UNTAG_Bool(REGB0
)) {
2767 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 408);
2769 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2770 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2771 /* ./syntax//typing.nit:409 */
2772 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2773 if (UNTAG_Bool(REGB0
)) {
2775 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2776 if (UNTAG_Bool(REGB1
)) {
2777 REGB1
= TAG_Bool(false);
2780 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2784 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2785 if (UNTAG_Bool(REGB0
)) {
2786 /* ./syntax//typing.nit:410 */
2787 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2788 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
2791 /* ./syntax//typing.nit:412 */
2792 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2793 if (UNTAG_Bool(REGB0
)) {
2795 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2796 if (UNTAG_Bool(REGB1
)) {
2797 REGB1
= TAG_Bool(false);
2800 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2804 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2805 if (UNTAG_Bool(REGB0
)) {
2806 /* ./syntax//typing.nit:413 */
2807 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2808 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2809 if (UNTAG_Bool(REGB0
)) {
2812 /* ./syntax//typing.nit:414 */
2813 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2814 if (UNTAG_Bool(REGB0
)) {
2815 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 414);
2817 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2818 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2820 /* ./syntax//typing.nit:416 */
2821 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2822 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2823 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2826 /* ./syntax//typing.nit:418 */
2827 REGB0
= TAG_Bool(true);
2828 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2830 stack_frame_head
= fra
.me
.prev
;
2833 void syntax___typing___ABlockExpr___accept_typing(val_t p0
, val_t p1
){
2834 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2837 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2838 fra
.me
.file
= LOCATE_syntax___typing
;
2840 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
2841 fra
.me
.has_broke
= 0;
2842 fra
.me
.REG_size
= 3;
2843 fra
.me
.nitni_local_ref_head
= NULL
;
2844 fra
.me
.REG
[0] = NIT_NULL
;
2845 fra
.me
.REG
[1] = NIT_NULL
;
2846 fra
.me
.REG
[2] = NIT_NULL
;
2849 /* ./syntax//typing.nit:425 */
2850 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2851 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_syntax___typing___ABlockExpr___accept_typing_1
));
2852 /* ./syntax//typing.nit:434 */
2853 REGB0
= TAG_Bool(true);
2854 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2855 stack_frame_head
= fra
.me
.prev
;
2858 void OC_syntax___typing___ABlockExpr___accept_typing_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
2859 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2863 static val_t once_value_2
; /* Once value */
2864 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2865 fra
.me
.file
= LOCATE_syntax___typing
;
2867 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
2868 fra
.me
.has_broke
= 0;
2869 fra
.me
.REG_size
= 2;
2870 fra
.me
.nitni_local_ref_head
= NULL
;
2871 fra
.me
.REG
[0] = NIT_NULL
;
2872 fra
.me
.REG
[1] = NIT_NULL
;
2873 fra
.me
.closure_ctx
= closctx_param
;
2874 fra
.me
.closure_funs
= CREG
;
2876 CREG
[0] = clos_fun0
;
2877 /* ./syntax//typing.nit:426 */
2878 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2879 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2880 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2881 if (UNTAG_Bool(REGB0
)) {
2882 /* ./syntax//typing.nit:427 */
2883 CALL_parser___parser_prod___Visitor___enter_visit(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2885 /* ./syntax//typing.nit:428 */
2886 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2887 REGB0
= CALL_syntax___flow___FlowContext___already_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2888 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2889 if (UNTAG_Bool(REGB0
)) {
2890 /* ./syntax//typing.nit:429 */
2891 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2892 REGB0
= TAG_Bool(true);
2893 CALL_syntax___flow___FlowContext___already_unreash__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
2894 /* ./syntax//typing.nit:430 */
2895 if (!once_value_2
) {
2896 fra
.me
.REG
[1] = BOX_NativeString("Error: unreachable statement.");
2897 REGB0
= TAG_Int(29);
2898 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
2899 once_value_2
= fra
.me
.REG
[1];
2900 register_static_object(&once_value_2
);
2901 } else fra
.me
.REG
[1] = once_value_2
;
2902 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2903 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[1]);
2906 stack_frame_head
= fra
.me
.prev
;
2909 void syntax___typing___AReturnExpr___after_typing(val_t p0
, val_t p1
){
2910 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2914 static val_t once_value_1
; /* Once value */
2915 static val_t once_value_3
; /* Once value */
2916 static val_t once_value_4
; /* Once value */
2917 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2918 fra
.me
.file
= LOCATE_syntax___typing
;
2920 fra
.me
.meth
= LOCATE_syntax___typing___AReturnExpr___after_typing
;
2921 fra
.me
.has_broke
= 0;
2922 fra
.me
.REG_size
= 5;
2923 fra
.me
.nitni_local_ref_head
= NULL
;
2924 fra
.me
.REG
[0] = NIT_NULL
;
2925 fra
.me
.REG
[1] = NIT_NULL
;
2926 fra
.me
.REG
[2] = NIT_NULL
;
2927 fra
.me
.REG
[3] = NIT_NULL
;
2928 fra
.me
.REG
[4] = NIT_NULL
;
2931 /* ./syntax//typing.nit:441 */
2932 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2933 /* ./syntax//typing.nit:442 */
2934 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2935 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2936 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2937 if (UNTAG_Bool(REGB0
)) {
2938 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 442);
2940 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2941 /* ./syntax//typing.nit:444 */
2942 REGB0
= CALL_syntax___typing___TypingVisitor___is_default_closure_definition(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2943 if (UNTAG_Bool(REGB0
)) {
2944 /* ./syntax//typing.nit:445 */
2945 if (!once_value_1
) {
2946 fra
.me
.REG
[3] = BOX_NativeString("Error: 'return' invalid in default closure definitions. Use 'continue' or 'break'.");
2947 REGB0
= TAG_Int(82);
2948 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2949 once_value_1
= fra
.me
.REG
[3];
2950 register_static_object(&once_value_1
);
2951 } else fra
.me
.REG
[3] = once_value_1
;
2952 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2953 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2954 /* ./syntax//typing.nit:446 */
2957 /* ./syntax//typing.nit:449 */
2958 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2959 /* ./syntax//typing.nit:450 */
2960 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2961 if (UNTAG_Bool(REGB0
)) {
2963 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2964 if (UNTAG_Bool(REGB1
)) {
2965 REGB1
= TAG_Bool(false);
2968 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2972 if (UNTAG_Bool(REGB0
)) {
2973 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2974 if (UNTAG_Bool(REGB0
)) {
2976 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2977 if (UNTAG_Bool(REGB1
)) {
2978 REGB1
= TAG_Bool(false);
2981 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2985 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2987 REGB1
= TAG_Bool(false);
2990 if (UNTAG_Bool(REGB0
)) {
2991 /* ./syntax//typing.nit:451 */
2992 if (!once_value_3
) {
2993 fra
.me
.REG
[4] = BOX_NativeString("Error: Return without value in a function.");
2994 REGB0
= TAG_Int(42);
2995 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2996 once_value_3
= fra
.me
.REG
[4];
2997 register_static_object(&once_value_3
);
2998 } else fra
.me
.REG
[4] = once_value_3
;
2999 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3000 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3002 /* ./syntax//typing.nit:452 */
3003 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3004 if (UNTAG_Bool(REGB0
)) {
3006 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3007 if (UNTAG_Bool(REGB1
)) {
3008 REGB1
= TAG_Bool(false);
3011 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3015 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3016 if (UNTAG_Bool(REGB0
)) {
3017 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3018 if (UNTAG_Bool(REGB0
)) {
3020 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3021 if (UNTAG_Bool(REGB1
)) {
3022 REGB1
= TAG_Bool(false);
3025 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3030 REGB1
= TAG_Bool(false);
3033 if (UNTAG_Bool(REGB0
)) {
3034 /* ./syntax//typing.nit:453 */
3035 if (!once_value_4
) {
3036 fra
.me
.REG
[4] = BOX_NativeString("Error: Return with value in a procedure.");
3037 REGB0
= TAG_Int(40);
3038 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3039 once_value_4
= fra
.me
.REG
[4];
3040 register_static_object(&once_value_4
);
3041 } else fra
.me
.REG
[4] = once_value_4
;
3042 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3043 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3045 /* ./syntax//typing.nit:454 */
3046 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3047 if (UNTAG_Bool(REGB0
)) {
3049 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3050 if (UNTAG_Bool(REGB1
)) {
3051 REGB1
= TAG_Bool(false);
3054 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3058 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3059 if (UNTAG_Bool(REGB0
)) {
3060 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3061 if (UNTAG_Bool(REGB0
)) {
3063 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3064 if (UNTAG_Bool(REGB1
)) {
3065 REGB1
= TAG_Bool(false);
3068 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3072 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3074 REGB1
= TAG_Bool(false);
3077 if (UNTAG_Bool(REGB0
)) {
3078 /* ./syntax//typing.nit:455 */
3079 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3083 /* ./syntax//typing.nit:457 */
3084 REGB0
= TAG_Bool(true);
3085 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3087 stack_frame_head
= fra
.me
.prev
;
3090 void syntax___typing___AContinueExpr___after_typing(val_t p0
, val_t p1
){
3091 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3095 static val_t once_value_2
; /* Once value */
3096 static val_t once_value_3
; /* Once value */
3097 static val_t once_value_4
; /* Once value */
3098 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3099 fra
.me
.file
= LOCATE_syntax___typing
;
3101 fra
.me
.meth
= LOCATE_syntax___typing___AContinueExpr___after_typing
;
3102 fra
.me
.has_broke
= 0;
3103 fra
.me
.REG_size
= 5;
3104 fra
.me
.nitni_local_ref_head
= NULL
;
3105 fra
.me
.REG
[0] = NIT_NULL
;
3106 fra
.me
.REG
[1] = NIT_NULL
;
3107 fra
.me
.REG
[2] = NIT_NULL
;
3108 fra
.me
.REG
[3] = NIT_NULL
;
3109 fra
.me
.REG
[4] = NIT_NULL
;
3112 /* ./syntax//typing.nit:462 */
3113 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3114 /* ./syntax//typing.nit:464 */
3115 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3116 /* ./syntax//typing.nit:465 */
3117 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3118 fra
.me
.REG
[3] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3119 /* ./syntax//typing.nit:466 */
3120 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3121 if (UNTAG_Bool(REGB0
)) {
3123 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3124 if (UNTAG_Bool(REGB1
)) {
3125 REGB1
= TAG_Bool(false);
3128 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3132 if (UNTAG_Bool(REGB0
)) {
3135 /* ./syntax//typing.nit:468 */
3136 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3137 if (UNTAG_Bool(REGB0
)) {
3138 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 468);
3140 REGB0
= CALL_syntax___scope___EscapableBlock___is_break_block(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3141 if (UNTAG_Bool(REGB0
)) {
3142 /* ./syntax//typing.nit:469 */
3143 if (!once_value_2
) {
3144 fra
.me
.REG
[4] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
3145 REGB0
= TAG_Int(39);
3146 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3147 once_value_2
= fra
.me
.REG
[4];
3148 register_static_object(&once_value_2
);
3149 } else fra
.me
.REG
[4] = once_value_2
;
3150 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3151 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3152 /* ./syntax//typing.nit:470 */
3155 /* ./syntax//typing.nit:473 */
3156 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3157 if (UNTAG_Bool(REGB0
)) {
3158 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 473);
3160 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableBlock___continue_stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3161 /* ./syntax//typing.nit:474 */
3162 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3163 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3164 if (UNTAG_Bool(REGB0
)) {
3166 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3167 if (UNTAG_Bool(REGB1
)) {
3168 REGB1
= TAG_Bool(false);
3171 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3175 if (UNTAG_Bool(REGB0
)) {
3176 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3177 if (UNTAG_Bool(REGB0
)) {
3179 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3180 if (UNTAG_Bool(REGB1
)) {
3181 REGB1
= TAG_Bool(false);
3184 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3188 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3190 REGB1
= TAG_Bool(false);
3193 if (UNTAG_Bool(REGB0
)) {
3194 /* ./syntax//typing.nit:475 */
3195 if (!once_value_3
) {
3196 fra
.me
.REG
[4] = BOX_NativeString("Error: continue with a value required in this block.");
3197 REGB0
= TAG_Int(52);
3198 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3199 once_value_3
= fra
.me
.REG
[4];
3200 register_static_object(&once_value_3
);
3201 } else fra
.me
.REG
[4] = once_value_3
;
3202 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3203 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3205 /* ./syntax//typing.nit:476 */
3206 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3207 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3208 if (UNTAG_Bool(REGB0
)) {
3210 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3211 if (UNTAG_Bool(REGB1
)) {
3212 REGB1
= TAG_Bool(false);
3215 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3219 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3220 if (UNTAG_Bool(REGB0
)) {
3221 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3222 if (UNTAG_Bool(REGB0
)) {
3224 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3225 if (UNTAG_Bool(REGB1
)) {
3226 REGB1
= TAG_Bool(false);
3229 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3234 REGB1
= TAG_Bool(false);
3237 if (UNTAG_Bool(REGB0
)) {
3238 /* ./syntax//typing.nit:477 */
3239 if (!once_value_4
) {
3240 fra
.me
.REG
[4] = BOX_NativeString("Error: continue without value required in this block.");
3241 REGB0
= TAG_Int(53);
3242 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3243 once_value_4
= fra
.me
.REG
[4];
3244 register_static_object(&once_value_4
);
3245 } else fra
.me
.REG
[4] = once_value_4
;
3246 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3247 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3249 /* ./syntax//typing.nit:478 */
3250 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3251 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3252 if (UNTAG_Bool(REGB0
)) {
3254 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3255 if (UNTAG_Bool(REGB1
)) {
3256 REGB1
= TAG_Bool(false);
3259 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3263 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3264 if (UNTAG_Bool(REGB0
)) {
3265 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3266 if (UNTAG_Bool(REGB0
)) {
3268 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3269 if (UNTAG_Bool(REGB1
)) {
3270 REGB1
= TAG_Bool(false);
3273 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3277 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3279 REGB1
= TAG_Bool(false);
3282 if (UNTAG_Bool(REGB0
)) {
3283 /* ./syntax//typing.nit:479 */
3284 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3285 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_parser___parser_nodes___AExpr
, ID_parser___parser_nodes___AExpr
)) /*cast AExpr*/;
3286 if (UNTAG_Bool(REGB0
)) {
3288 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 479);
3290 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3294 /* ./syntax//typing.nit:481 */
3295 REGB0
= TAG_Bool(true);
3296 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
3298 stack_frame_head
= fra
.me
.prev
;
3301 void syntax___typing___ABreakExpr___after_typing(val_t p0
, val_t p1
){
3302 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3306 static val_t once_value_2
; /* Once value */
3307 static val_t once_value_3
; /* Once value */
3308 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3309 fra
.me
.file
= LOCATE_syntax___typing
;
3311 fra
.me
.meth
= LOCATE_syntax___typing___ABreakExpr___after_typing
;
3312 fra
.me
.has_broke
= 0;
3313 fra
.me
.REG_size
= 6;
3314 fra
.me
.nitni_local_ref_head
= NULL
;
3315 fra
.me
.REG
[0] = NIT_NULL
;
3316 fra
.me
.REG
[1] = NIT_NULL
;
3317 fra
.me
.REG
[2] = NIT_NULL
;
3318 fra
.me
.REG
[3] = NIT_NULL
;
3319 fra
.me
.REG
[4] = NIT_NULL
;
3320 fra
.me
.REG
[5] = NIT_NULL
;
3323 /* ./syntax//typing.nit:486 */
3324 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3325 /* ./syntax//typing.nit:488 */
3326 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3327 /* ./syntax//typing.nit:489 */
3328 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3329 /* ./syntax//typing.nit:490 */
3330 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3331 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3332 /* ./syntax//typing.nit:491 */
3333 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3334 if (UNTAG_Bool(REGB0
)) {
3336 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3337 if (UNTAG_Bool(REGB1
)) {
3338 REGB1
= TAG_Bool(false);
3341 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3345 if (UNTAG_Bool(REGB0
)) {
3348 /* ./syntax//typing.nit:493 */
3349 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3350 if (UNTAG_Bool(REGB0
)) {
3351 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 493);
3353 fra
.me
.REG
[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3355 /* ./syntax//typing.nit:495 */
3356 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3357 if (UNTAG_Bool(REGB0
)) {
3358 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 495);
3360 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3361 /* ./syntax//typing.nit:496 */
3362 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3363 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3364 if (UNTAG_Bool(REGB0
)) {
3366 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3367 if (UNTAG_Bool(REGB1
)) {
3368 REGB1
= TAG_Bool(false);
3371 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3375 if (UNTAG_Bool(REGB0
)) {
3376 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3377 if (UNTAG_Bool(REGB0
)) {
3379 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3380 if (UNTAG_Bool(REGB1
)) {
3381 REGB1
= TAG_Bool(false);
3384 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3388 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3390 REGB1
= TAG_Bool(false);
3393 if (UNTAG_Bool(REGB0
)) {
3394 /* ./syntax//typing.nit:497 */
3395 if (!once_value_2
) {
3396 fra
.me
.REG
[3] = BOX_NativeString("Error: break with a value required in this block.");
3397 REGB0
= TAG_Int(49);
3398 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3399 once_value_2
= fra
.me
.REG
[3];
3400 register_static_object(&once_value_2
);
3401 } else fra
.me
.REG
[3] = once_value_2
;
3402 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3403 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3405 /* ./syntax//typing.nit:498 */
3406 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3407 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3408 if (UNTAG_Bool(REGB0
)) {
3410 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3411 if (UNTAG_Bool(REGB1
)) {
3412 REGB1
= TAG_Bool(false);
3415 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3419 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3420 if (UNTAG_Bool(REGB0
)) {
3421 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3422 if (UNTAG_Bool(REGB0
)) {
3424 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3425 if (UNTAG_Bool(REGB1
)) {
3426 REGB1
= TAG_Bool(false);
3429 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3434 REGB1
= TAG_Bool(false);
3437 if (UNTAG_Bool(REGB0
)) {
3438 /* ./syntax//typing.nit:499 */
3439 if (!once_value_3
) {
3440 fra
.me
.REG
[3] = BOX_NativeString("Error: break without value required in this block.");
3441 REGB0
= TAG_Int(50);
3442 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3443 once_value_3
= fra
.me
.REG
[3];
3444 register_static_object(&once_value_3
);
3445 } else fra
.me
.REG
[3] = once_value_3
;
3446 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3447 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3449 /* ./syntax//typing.nit:500 */
3450 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3451 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3452 if (UNTAG_Bool(REGB0
)) {
3454 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3455 if (UNTAG_Bool(REGB1
)) {
3456 REGB1
= TAG_Bool(false);
3459 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3463 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3464 if (UNTAG_Bool(REGB0
)) {
3465 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3466 if (UNTAG_Bool(REGB0
)) {
3468 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3469 if (UNTAG_Bool(REGB1
)) {
3470 REGB1
= TAG_Bool(false);
3473 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3477 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3479 REGB1
= TAG_Bool(false);
3482 if (UNTAG_Bool(REGB0
)) {
3483 /* ./syntax//typing.nit:502 */
3484 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3485 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_parser___parser_nodes___AExpr
, ID_parser___parser_nodes___AExpr
)) /*cast AExpr*/;
3486 if (UNTAG_Bool(REGB0
)) {
3488 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 502);
3490 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3491 if (UNTAG_Bool(REGB0
)) {
3492 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 502);
3494 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3498 /* ./syntax//typing.nit:504 */
3499 REGB0
= TAG_Bool(true);
3500 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
3502 stack_frame_head
= fra
.me
.prev
;
3505 void syntax___typing___AAbortExpr___after_typing(val_t p0
, val_t p1
){
3506 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3509 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3510 fra
.me
.file
= LOCATE_syntax___typing
;
3512 fra
.me
.meth
= LOCATE_syntax___typing___AAbortExpr___after_typing
;
3513 fra
.me
.has_broke
= 0;
3514 fra
.me
.REG_size
= 2;
3515 fra
.me
.nitni_local_ref_head
= NULL
;
3516 fra
.me
.REG
[0] = NIT_NULL
;
3517 fra
.me
.REG
[1] = NIT_NULL
;
3520 /* ./syntax//typing.nit:511 */
3521 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3522 /* ./syntax//typing.nit:512 */
3523 REGB0
= TAG_Bool(true);
3524 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3525 stack_frame_head
= fra
.me
.prev
;
3528 val_t
syntax___typing___AAbsControl___escapable(val_t p0
){
3529 struct {struct stack_frame_t me
;} fra
;
3531 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3532 fra
.me
.file
= LOCATE_syntax___typing
;
3534 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___escapable
;
3535 fra
.me
.has_broke
= 0;
3536 fra
.me
.REG_size
= 1;
3537 fra
.me
.nitni_local_ref_head
= NULL
;
3538 fra
.me
.REG
[0] = NIT_NULL
;
3540 /* ./syntax//typing.nit:519 */
3541 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]);
3542 stack_frame_head
= fra
.me
.prev
;
3543 return fra
.me
.REG
[0];
3545 void syntax___typing___AAbsControl___process_control(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
3546 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3550 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3551 fra
.me
.file
= LOCATE_syntax___typing
;
3553 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control
;
3554 fra
.me
.has_broke
= 0;
3555 fra
.me
.REG_size
= 7;
3556 fra
.me
.nitni_local_ref_head
= NULL
;
3557 fra
.me
.REG
[0] = NIT_NULL
;
3558 fra
.me
.REG
[1] = NIT_NULL
;
3559 fra
.me
.REG
[2] = NIT_NULL
;
3560 fra
.me
.REG
[3] = NIT_NULL
;
3561 fra
.me
.REG
[4] = NIT_NULL
;
3562 fra
.me
.REG
[5] = NIT_NULL
;
3563 fra
.me
.REG
[6] = NIT_NULL
;
3569 /* ./syntax//typing.nit:526 */
3570 ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3571 /* ./syntax//typing.nit:527 */
3572 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3573 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3574 /* ./syntax//typing.nit:530 */
3575 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3576 /* ./syntax//typing.nit:531 */
3577 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3578 /* ./syntax//typing.nit:532 */
3579 if (UNTAG_Bool(REGB0
)) {
3580 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3581 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3583 /* ./syntax//typing.nit:535 */
3584 CALL_syntax___typing___AAbsControl___process_control_inside(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3585 /* ./syntax//typing.nit:538 */
3586 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3587 REGB1
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3588 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
3589 if (UNTAG_Bool(REGB1
)) {
3590 /* ./syntax//typing.nit:539 */
3591 fra
.me
.REG
[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3592 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3595 /* ./syntax//typing.nit:543 */
3596 fra
.me
.REG
[6] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3597 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3598 if (UNTAG_Bool(REGB1
)) {
3599 /* ./syntax//typing.nit:544 */
3600 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3601 /* ./syntax//typing.nit:545 */
3602 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3604 /* ./syntax//typing.nit:547 */
3605 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3606 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___merge(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3607 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3609 /* ./syntax//typing.nit:550 */
3610 if (UNTAG_Bool(REGB0
)) {
3611 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3613 /* ./syntax//typing.nit:551 */
3614 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3615 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3616 /* ./syntax//typing.nit:552 */
3617 REGB0
= TAG_Bool(true);
3618 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3619 stack_frame_head
= fra
.me
.prev
;
3622 void syntax___typing___AAbsControl___process_control_inside(val_t p0
, val_t p1
){
3623 struct {struct stack_frame_t me
;} fra
;
3625 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3626 fra
.me
.file
= LOCATE_syntax___typing
;
3628 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control_inside
;
3629 fra
.me
.has_broke
= 0;
3630 fra
.me
.REG_size
= 0;
3631 fra
.me
.nitni_local_ref_head
= NULL
;
3632 /* ./syntax//typing.nit:555 */
3633 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 555);
3634 stack_frame_head
= fra
.me
.prev
;
3637 void syntax___typing___ADoExpr___accept_typing(val_t p0
, val_t p1
){
3638 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3641 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3642 fra
.me
.file
= LOCATE_syntax___typing
;
3644 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___accept_typing
;
3645 fra
.me
.has_broke
= 0;
3646 fra
.me
.REG_size
= 4;
3647 fra
.me
.nitni_local_ref_head
= NULL
;
3648 fra
.me
.REG
[0] = NIT_NULL
;
3649 fra
.me
.REG
[1] = NIT_NULL
;
3650 fra
.me
.REG
[2] = NIT_NULL
;
3651 fra
.me
.REG
[3] = NIT_NULL
;
3654 /* ./syntax//typing.nit:563 */
3655 fra
.me
.REG
[2] = NEW_BreakOnlyEscapableBlock_syntax___scope___BreakOnlyEscapableBlock___init(fra
.me
.REG
[0]);
3656 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3657 REGB0
= TAG_Bool(false);
3658 CALL_syntax___typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3659 stack_frame_head
= fra
.me
.prev
;
3662 void syntax___typing___ADoExpr___process_control_inside(val_t p0
, val_t p1
){
3663 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3665 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3666 fra
.me
.file
= LOCATE_syntax___typing
;
3668 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___process_control_inside
;
3669 fra
.me
.has_broke
= 0;
3670 fra
.me
.REG_size
= 2;
3671 fra
.me
.nitni_local_ref_head
= NULL
;
3672 fra
.me
.REG
[0] = NIT_NULL
;
3673 fra
.me
.REG
[1] = NIT_NULL
;
3676 /* ./syntax//typing.nit:568 */
3677 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3678 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3679 stack_frame_head
= fra
.me
.prev
;
3682 void syntax___typing___AIfExpr___accept_typing(val_t p0
, val_t p1
){
3683 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3686 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3687 fra
.me
.file
= LOCATE_syntax___typing
;
3689 fra
.me
.meth
= LOCATE_syntax___typing___AIfExpr___accept_typing
;
3690 fra
.me
.has_broke
= 0;
3691 fra
.me
.REG_size
= 5;
3692 fra
.me
.nitni_local_ref_head
= NULL
;
3693 fra
.me
.REG
[0] = NIT_NULL
;
3694 fra
.me
.REG
[1] = NIT_NULL
;
3695 fra
.me
.REG
[2] = NIT_NULL
;
3696 fra
.me
.REG
[3] = NIT_NULL
;
3697 fra
.me
.REG
[4] = NIT_NULL
;
3700 /* ./syntax//typing.nit:575 */
3701 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3702 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3703 /* ./syntax//typing.nit:576 */
3704 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3705 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3706 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3707 /* ./syntax//typing.nit:579 */
3708 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3709 /* ./syntax//typing.nit:580 */
3710 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3711 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3712 /* ./syntax//typing.nit:583 */
3713 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3714 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3715 /* ./syntax//typing.nit:586 */
3716 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3717 /* ./syntax//typing.nit:589 */
3718 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3719 /* ./syntax//typing.nit:590 */
3720 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3721 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3722 /* ./syntax//typing.nit:593 */
3723 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3724 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3725 /* ./syntax//typing.nit:596 */
3726 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3727 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3728 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___merge_reash(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3729 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3730 /* ./syntax//typing.nit:597 */
3731 REGB0
= TAG_Bool(true);
3732 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3733 stack_frame_head
= fra
.me
.prev
;
3736 void syntax___typing___AWhileExpr___accept_typing(val_t p0
, val_t p1
){
3737 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3740 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3741 fra
.me
.file
= LOCATE_syntax___typing
;
3743 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___accept_typing
;
3744 fra
.me
.has_broke
= 0;
3745 fra
.me
.REG_size
= 4;
3746 fra
.me
.nitni_local_ref_head
= NULL
;
3747 fra
.me
.REG
[0] = NIT_NULL
;
3748 fra
.me
.REG
[1] = NIT_NULL
;
3749 fra
.me
.REG
[2] = NIT_NULL
;
3750 fra
.me
.REG
[3] = NIT_NULL
;
3753 /* ./syntax//typing.nit:605 */
3754 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3755 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3756 REGB0
= TAG_Bool(true);
3757 CALL_syntax___typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3758 stack_frame_head
= fra
.me
.prev
;
3761 void syntax___typing___AWhileExpr___process_control_inside(val_t p0
, val_t p1
){
3762 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3765 static val_t once_value_1
; /* Once value */
3766 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3767 fra
.me
.file
= LOCATE_syntax___typing
;
3769 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___process_control_inside
;
3770 fra
.me
.has_broke
= 0;
3771 fra
.me
.REG_size
= 5;
3772 fra
.me
.nitni_local_ref_head
= NULL
;
3773 fra
.me
.REG
[0] = NIT_NULL
;
3774 fra
.me
.REG
[1] = NIT_NULL
;
3775 fra
.me
.REG
[2] = NIT_NULL
;
3776 fra
.me
.REG
[3] = NIT_NULL
;
3777 fra
.me
.REG
[4] = NIT_NULL
;
3780 /* ./syntax//typing.nit:610 */
3781 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3782 /* ./syntax//typing.nit:613 */
3783 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3784 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3785 /* ./syntax//typing.nit:614 */
3786 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3787 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3788 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
3789 /* ./syntax//typing.nit:616 */
3790 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3791 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_parser___parser_nodes___ATrueExpr
, ID_parser___parser_nodes___ATrueExpr
)) /*cast ATrueExpr*/;
3792 if (UNTAG_Bool(REGB0
)) {
3793 /* ./syntax//typing.nit:617 */
3794 if (!once_value_1
) {
3795 fra
.me
.REG
[4] = BOX_NativeString("Warning: use 'loop' instead of 'while true do'.");
3796 REGB0
= TAG_Int(47);
3797 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3798 once_value_1
= fra
.me
.REG
[4];
3799 register_static_object(&once_value_1
);
3800 } else fra
.me
.REG
[4] = once_value_1
;
3801 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3802 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3804 /* ./syntax//typing.nit:621 */
3805 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3806 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3807 /* ./syntax//typing.nit:624 */
3808 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3809 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3810 /* ./syntax//typing.nit:627 */
3811 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3812 /* ./syntax//typing.nit:628 */
3813 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3814 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3815 /* ./syntax//typing.nit:629 */
3816 fra
.me
.REG
[0] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3817 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3818 if (UNTAG_Bool(REGB0
)) {
3819 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 629);
3821 fra
.me
.REG
[0] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3822 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3823 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3824 stack_frame_head
= fra
.me
.prev
;
3827 void syntax___typing___ALoopExpr___accept_typing(val_t p0
, val_t p1
){
3828 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3831 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3832 fra
.me
.file
= LOCATE_syntax___typing
;
3834 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___accept_typing
;
3835 fra
.me
.has_broke
= 0;
3836 fra
.me
.REG_size
= 4;
3837 fra
.me
.nitni_local_ref_head
= NULL
;
3838 fra
.me
.REG
[0] = NIT_NULL
;
3839 fra
.me
.REG
[1] = NIT_NULL
;
3840 fra
.me
.REG
[2] = NIT_NULL
;
3841 fra
.me
.REG
[3] = NIT_NULL
;
3844 /* ./syntax//typing.nit:637 */
3845 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3846 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3847 REGB0
= TAG_Bool(true);
3848 CALL_syntax___typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3849 stack_frame_head
= fra
.me
.prev
;
3852 void syntax___typing___ALoopExpr___process_control_inside(val_t p0
, val_t p1
){
3853 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3855 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3856 fra
.me
.file
= LOCATE_syntax___typing
;
3858 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___process_control_inside
;
3859 fra
.me
.has_broke
= 0;
3860 fra
.me
.REG_size
= 3;
3861 fra
.me
.nitni_local_ref_head
= NULL
;
3862 fra
.me
.REG
[0] = NIT_NULL
;
3863 fra
.me
.REG
[1] = NIT_NULL
;
3864 fra
.me
.REG
[2] = NIT_NULL
;
3867 /* ./syntax//typing.nit:643 */
3868 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3869 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3870 /* ./syntax//typing.nit:646 */
3871 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3872 stack_frame_head
= fra
.me
.prev
;
3875 val_t
syntax___typing___AForExpr___variables(val_t p0
){
3876 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3879 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3880 fra
.me
.file
= LOCATE_syntax___typing
;
3882 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___variables
;
3883 fra
.me
.has_broke
= 0;
3884 fra
.me
.REG_size
= 2;
3885 fra
.me
.nitni_local_ref_head
= NULL
;
3886 fra
.me
.REG
[0] = NIT_NULL
;
3887 fra
.me
.REG
[1] = NIT_NULL
;
3889 /* ./syntax//typing.nit:653 */
3890 fra
.me
.REG
[1] = fra
.me
.REG
[0];
3891 fra
.me
.REG
[1] = ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[1]);
3892 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
3893 if (UNTAG_Bool(REGB0
)) {
3895 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 653);
3899 stack_frame_head
= fra
.me
.prev
;
3900 return fra
.me
.REG
[1];
3902 void syntax___typing___AForExpr___accept_typing(val_t p0
, val_t p1
){
3903 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3906 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3907 fra
.me
.file
= LOCATE_syntax___typing
;
3909 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___accept_typing
;
3910 fra
.me
.has_broke
= 0;
3911 fra
.me
.REG_size
= 4;
3912 fra
.me
.nitni_local_ref_head
= NULL
;
3913 fra
.me
.REG
[0] = NIT_NULL
;
3914 fra
.me
.REG
[1] = NIT_NULL
;
3915 fra
.me
.REG
[2] = NIT_NULL
;
3916 fra
.me
.REG
[3] = NIT_NULL
;
3919 /* ./syntax//typing.nit:657 */
3920 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3921 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3922 REGB0
= TAG_Bool(true);
3923 CALL_syntax___typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3924 stack_frame_head
= fra
.me
.prev
;
3927 void syntax___typing___AForExpr___process_control_inside(val_t p0
, val_t p1
){
3928 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3930 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3931 fra
.me
.file
= LOCATE_syntax___typing
;
3933 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___process_control_inside
;
3934 fra
.me
.has_broke
= 0;
3935 fra
.me
.REG_size
= 3;
3936 fra
.me
.nitni_local_ref_head
= NULL
;
3937 fra
.me
.REG
[0] = NIT_NULL
;
3938 fra
.me
.REG
[1] = NIT_NULL
;
3939 fra
.me
.REG
[2] = NIT_NULL
;
3942 /* ./syntax//typing.nit:662 */
3943 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3944 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3945 /* ./syntax//typing.nit:663 */
3946 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3947 /* ./syntax//typing.nit:665 */
3948 CALL_syntax___typing___AForExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3949 /* ./syntax//typing.nit:668 */
3950 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3951 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3952 /* ./syntax//typing.nit:671 */
3953 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3954 /* ./syntax//typing.nit:672 */
3955 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3956 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3957 stack_frame_head
= fra
.me
.prev
;
3960 void syntax___typing___AForExpr___do_typing(val_t p0
, val_t p1
){
3961 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
3969 static val_t once_value_3
; /* Once value */
3970 static val_t once_value_4
; /* Once value */
3971 static val_t once_value_5
; /* Once value */
3972 static val_t once_value_6
; /* Once value */
3973 static val_t once_value_7
; /* Once value */
3974 static val_t once_value_8
; /* Once value */
3975 static val_t once_value_9
; /* Once value */
3976 static val_t once_value_10
; /* Once value */
3977 static val_t once_value_11
; /* Once value */
3978 static val_t once_value_12
; /* Once value */
3979 static val_t once_value_13
; /* Once value */
3980 static val_t once_value_14
; /* Once value */
3981 static val_t once_value_15
; /* Once value */
3982 static val_t once_value_16
; /* Once value */
3983 static val_t once_value_17
; /* Once value */
3984 static val_t once_value_18
; /* Once value */
3985 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3986 fra
.me
.file
= LOCATE_syntax___typing
;
3988 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
3989 fra
.me
.has_broke
= 0;
3990 fra
.me
.REG_size
= 8;
3991 fra
.me
.nitni_local_ref_head
= NULL
;
3992 fra
.me
.REG
[0] = NIT_NULL
;
3993 fra
.me
.REG
[1] = NIT_NULL
;
3994 fra
.me
.REG
[2] = NIT_NULL
;
3995 fra
.me
.REG
[3] = NIT_NULL
;
3996 fra
.me
.REG
[4] = NIT_NULL
;
3997 fra
.me
.REG
[5] = NIT_NULL
;
3998 fra
.me
.REG
[6] = NIT_NULL
;
3999 fra
.me
.REG
[7] = NIT_NULL
;
4002 /* ./syntax//typing.nit:678 */
4003 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
4004 /* ./syntax//typing.nit:679 */
4005 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4006 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[3])(fra
.me
.REG
[3], (&(fra
.me
)), ((fun_t
)OC_syntax___typing___AForExpr___do_typing_1
));
4007 /* ./syntax//typing.nit:684 */
4008 ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4009 /* ./syntax//typing.nit:687 */
4010 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4011 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4012 /* ./syntax//typing.nit:688 */
4013 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4014 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4015 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4016 if (UNTAG_Bool(REGB0
)) {
4019 /* ./syntax//typing.nit:689 */
4020 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4021 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4022 /* ./syntax//typing.nit:691 */
4023 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4024 if (UNTAG_Bool(REGB0
)) {
4025 /* ./syntax//typing.nit:692 */
4026 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4027 if (!once_value_3
) {
4028 fra
.me
.REG
[5] = BOX_NativeString("Type error: 'for' on a nullable expression.");
4029 REGB0
= TAG_Int(43);
4030 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4031 once_value_3
= fra
.me
.REG
[5];
4032 register_static_object(&once_value_3
);
4033 } else fra
.me
.REG
[5] = once_value_3
;
4034 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4035 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4036 /* ./syntax//typing.nit:693 */
4039 /* ./syntax//typing.nit:697 */
4040 if (!once_value_4
) {
4041 if (!once_value_5
) {
4042 fra
.me
.REG
[5] = BOX_NativeString("iterate");
4044 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4045 once_value_5
= fra
.me
.REG
[5];
4046 register_static_object(&once_value_5
);
4047 } else fra
.me
.REG
[5] = once_value_5
;
4048 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4049 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4050 once_value_4
= fra
.me
.REG
[5];
4051 register_static_object(&once_value_4
);
4052 } else fra
.me
.REG
[5] = once_value_4
;
4053 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4054 /* ./syntax//typing.nit:698 */
4055 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4056 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4057 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4058 if (UNTAG_Bool(REGB0
)) {
4059 /* ./syntax//typing.nit:699 */
4060 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4062 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4063 if (!once_value_6
) {
4064 fra
.me
.REG
[7] = BOX_NativeString("Type error: Expected a type with an 'iterate' method. Found ");
4065 REGB0
= TAG_Int(60);
4066 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4067 once_value_6
= fra
.me
.REG
[7];
4068 register_static_object(&once_value_6
);
4069 } else fra
.me
.REG
[7] = once_value_6
;
4070 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4071 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4072 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4073 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4074 if (!once_value_7
) {
4075 fra
.me
.REG
[7] = BOX_NativeString(".");
4077 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4078 once_value_7
= fra
.me
.REG
[7];
4079 register_static_object(&once_value_7
);
4080 } else fra
.me
.REG
[7] = once_value_7
;
4081 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4082 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4083 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4084 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
4085 /* ./syntax//typing.nit:700 */
4088 /* ./syntax//typing.nit:702 */
4089 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4090 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
4091 /* ./syntax//typing.nit:703 */
4092 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4093 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4094 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4095 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4096 CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4], REGB0
);
4097 /* ./syntax//typing.nit:704 */
4098 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4099 /* ./syntax//typing.nit:705 */
4100 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4101 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4102 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4103 if (UNTAG_Bool(REGB0
)) {
4104 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4105 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4107 /* ./syntax//typing.nit:706 */
4108 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4110 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4111 if (UNTAG_Bool(REGB2
)) {
4113 /* ./../lib/standard//kernel.nit:227 */
4114 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4115 /* ./syntax//typing.nit:706 */
4118 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4119 if (UNTAG_Bool(REGB2
)) {
4120 /* ./syntax//typing.nit:707 */
4121 if (!once_value_8
) {
4122 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require no arguments.");
4123 REGB2
= TAG_Int(63);
4124 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
4125 once_value_8
= fra
.me
.REG
[5];
4126 register_static_object(&once_value_8
);
4127 } else fra
.me
.REG
[5] = once_value_8
;
4128 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4129 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4130 /* ./syntax//typing.nit:708 */
4133 /* ./syntax//typing.nit:709 */
4134 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4135 /* ./../lib/standard//collection//array.nit:24 */
4136 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4137 if (UNTAG_Bool(REGB2
)) {
4139 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4141 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4142 /* ./syntax//typing.nit:709 */
4144 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4145 if (UNTAG_Bool(REGB0
)) {
4147 /* ./../lib/standard//kernel.nit:227 */
4148 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4149 /* ./syntax//typing.nit:709 */
4152 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4153 if (UNTAG_Bool(REGB0
)) {
4154 /* ./syntax//typing.nit:710 */
4155 if (!once_value_9
) {
4156 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one closure.");
4157 REGB0
= TAG_Int(62);
4158 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4159 once_value_9
= fra
.me
.REG
[5];
4160 register_static_object(&once_value_9
);
4161 } else fra
.me
.REG
[5] = once_value_9
;
4162 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4163 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4164 /* ./syntax//typing.nit:711 */
4168 /* ./syntax//typing.nit:713 */
4169 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4170 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4171 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4172 if (UNTAG_Bool(REGB0
)) {
4173 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 713);
4175 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4176 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4177 /* ./syntax//typing.nit:714 */
4178 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4179 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4180 if (UNTAG_Bool(REGB0
)) {
4182 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4183 if (UNTAG_Bool(REGB1
)) {
4184 REGB1
= TAG_Bool(false);
4187 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
4191 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4192 if (UNTAG_Bool(REGB0
)) {
4193 /* ./syntax//typing.nit:715 */
4194 if (!once_value_10
) {
4195 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one procedural closure.");
4196 REGB0
= TAG_Int(73);
4197 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4198 once_value_10
= fra
.me
.REG
[5];
4199 register_static_object(&once_value_10
);
4200 } else fra
.me
.REG
[5] = once_value_10
;
4201 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4202 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4203 /* ./syntax//typing.nit:716 */
4206 /* ./../lib/standard//collection//array.nit:24 */
4207 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4208 if (UNTAG_Bool(REGB0
)) {
4210 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4212 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4213 /* ./syntax//typing.nit:718 */
4214 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4215 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4216 if (UNTAG_Bool(REGB2
)) {
4218 /* ./../lib/standard//kernel.nit:227 */
4219 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4220 /* ./syntax//typing.nit:718 */
4223 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4224 if (UNTAG_Bool(REGB2
)) {
4225 /* ./syntax//typing.nit:719 */
4226 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4228 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4229 if (UNTAG_Bool(REGB0
)) {
4231 /* ./../lib/standard//kernel.nit:227 */
4232 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4233 /* ./syntax//typing.nit:719 */
4236 if (UNTAG_Bool(REGB0
)) {
4237 /* ./syntax//typing.nit:720 */
4239 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4240 if (!once_value_11
) {
4241 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4242 REGB0
= TAG_Int(16);
4243 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4244 once_value_11
= fra
.me
.REG
[4];
4245 register_static_object(&once_value_11
);
4246 } else fra
.me
.REG
[4] = once_value_11
;
4247 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4248 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4249 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4250 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4251 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4252 if (!once_value_12
) {
4253 fra
.me
.REG
[4] = BOX_NativeString(" variable ");
4254 REGB0
= TAG_Int(10);
4255 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4256 once_value_12
= fra
.me
.REG
[4];
4257 register_static_object(&once_value_12
);
4258 } else fra
.me
.REG
[4] = once_value_12
;
4259 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4260 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4261 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4262 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4263 if (!once_value_13
) {
4264 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4266 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4267 once_value_13
= fra
.me
.REG
[4];
4268 register_static_object(&once_value_13
);
4269 } else fra
.me
.REG
[4] = once_value_13
;
4270 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4271 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4272 /* ./../lib/standard//collection//array.nit:24 */
4273 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4274 if (UNTAG_Bool(REGB0
)) {
4276 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4278 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4279 /* ./syntax//typing.nit:720 */
4280 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4281 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4282 if (!once_value_14
) {
4283 fra
.me
.REG
[4] = BOX_NativeString(".");
4285 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4286 once_value_14
= fra
.me
.REG
[4];
4287 register_static_object(&once_value_14
);
4288 } else fra
.me
.REG
[4] = once_value_14
;
4289 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4290 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4291 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4292 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4294 /* ./syntax//typing.nit:722 */
4296 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4297 if (!once_value_15
) {
4298 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4299 REGB0
= TAG_Int(16);
4300 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4301 once_value_15
= fra
.me
.REG
[4];
4302 register_static_object(&once_value_15
);
4303 } else fra
.me
.REG
[4] = once_value_15
;
4304 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4305 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4306 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4307 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4308 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4309 if (!once_value_16
) {
4310 fra
.me
.REG
[4] = BOX_NativeString(" variables ");
4311 REGB0
= TAG_Int(11);
4312 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4313 once_value_16
= fra
.me
.REG
[4];
4314 register_static_object(&once_value_16
);
4315 } else fra
.me
.REG
[4] = once_value_16
;
4316 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4317 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4318 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4319 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4320 if (!once_value_17
) {
4321 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4323 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4324 once_value_17
= fra
.me
.REG
[4];
4325 register_static_object(&once_value_17
);
4326 } else fra
.me
.REG
[4] = once_value_17
;
4327 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4328 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4329 /* ./../lib/standard//collection//array.nit:24 */
4330 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4331 if (UNTAG_Bool(REGB0
)) {
4333 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4335 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4336 /* ./syntax//typing.nit:722 */
4337 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4338 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4339 if (!once_value_18
) {
4340 fra
.me
.REG
[4] = BOX_NativeString(".");
4342 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4343 once_value_18
= fra
.me
.REG
[4];
4344 register_static_object(&once_value_18
);
4345 } else fra
.me
.REG
[4] = once_value_18
;
4346 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4347 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4348 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4349 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4351 /* ./syntax//typing.nit:724 */
4354 /* ./syntax//typing.nit:728 */
4356 /* ./../lib/standard//collection//array.nit:24 */
4357 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4358 if (UNTAG_Bool(REGB1
)) {
4360 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4362 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4363 /* ./../lib/standard//kernel.nit:352 */
4365 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
4366 if (UNTAG_Bool(REGB2
)) {
4368 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4370 /* ./../lib/standard//kernel.nit:232 */
4371 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
4372 /* ./../lib/standard//kernel.nit:352 */
4373 if (UNTAG_Bool(REGB2
)) {
4374 /* ./syntax//typing.nit:728 */
4376 /* ./../lib/standard//collection//array.nit:278 */
4377 fra
.me
.REG
[5] = fra
.me
.REG
[2];
4379 /* ./../lib/standard//collection//array.nit:280 */
4381 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4382 if (UNTAG_Bool(REGB5
)) {
4384 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4386 /* ./../lib/standard//kernel.nit:233 */
4387 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
4388 /* ./../lib/standard//collection//array.nit:280 */
4389 if (UNTAG_Bool(REGB4
)) {
4390 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4391 if (UNTAG_Bool(REGB4
)) {
4393 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
4395 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4396 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4397 if (UNTAG_Bool(REGB5
)) {
4399 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4401 /* ./../lib/standard//kernel.nit:232 */
4402 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
4404 /* ./../lib/standard//collection//array.nit:280 */
4405 REGB5
= TAG_Bool(false);
4408 if (UNTAG_Bool(REGB4
)) {
4410 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
4412 /* ./../lib/standard//collection//array.nit:281 */
4413 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
4414 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4415 if (UNTAG_Bool(REGB4
)) {
4416 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
4418 /* ./../lib/standard//collection//array.nit:718 */
4419 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
4420 /* ./../lib/standard//collection//array.nit:281 */
4423 /* ./syntax//typing.nit:729 */
4424 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
4425 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4426 if (UNTAG_Bool(REGB2
)) {
4427 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 729);
4429 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4430 /* ./../lib/standard//kernel.nit:354 */
4432 /* ./../lib/standard//kernel.nit:235 */
4433 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
4434 /* ./../lib/standard//kernel.nit:354 */
4437 /* ./../lib/standard//kernel.nit:352 */
4443 stack_frame_head
= fra
.me
.prev
;
4446 void OC_syntax___typing___AForExpr___do_typing_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
4447 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4450 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4451 fra
.me
.file
= LOCATE_syntax___typing
;
4453 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4454 fra
.me
.has_broke
= 0;
4455 fra
.me
.REG_size
= 2;
4456 fra
.me
.nitni_local_ref_head
= NULL
;
4457 fra
.me
.REG
[0] = NIT_NULL
;
4458 fra
.me
.REG
[1] = NIT_NULL
;
4459 fra
.me
.closure_ctx
= closctx_param
;
4460 fra
.me
.closure_funs
= CREG
;
4462 CREG
[0] = clos_fun0
;
4463 /* ./syntax//typing.nit:680 */
4464 fra
.me
.REG
[1] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4465 fra
.me
.REG
[0] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4466 /* ./syntax//typing.nit:681 */
4467 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
4468 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4469 /* ./syntax//typing.nit:682 */
4470 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
4471 stack_frame_head
= fra
.me
.prev
;
4474 void syntax___typing___AAssertExpr___accept_typing(val_t p0
, val_t p1
){
4475 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4479 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4480 fra
.me
.file
= LOCATE_syntax___typing
;
4482 fra
.me
.meth
= LOCATE_syntax___typing___AAssertExpr___accept_typing
;
4483 fra
.me
.has_broke
= 0;
4484 fra
.me
.REG_size
= 4;
4485 fra
.me
.nitni_local_ref_head
= NULL
;
4486 fra
.me
.REG
[0] = NIT_NULL
;
4487 fra
.me
.REG
[1] = NIT_NULL
;
4488 fra
.me
.REG
[2] = NIT_NULL
;
4489 fra
.me
.REG
[3] = NIT_NULL
;
4492 /* ./syntax//typing.nit:738 */
4493 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4494 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4495 /* ./syntax//typing.nit:739 */
4496 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4497 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4498 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4499 /* ./syntax//typing.nit:742 */
4500 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4501 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4502 if (UNTAG_Bool(REGB0
)) {
4504 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4505 if (UNTAG_Bool(REGB1
)) {
4506 REGB1
= TAG_Bool(false);
4509 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4513 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4514 if (UNTAG_Bool(REGB0
)) {
4515 /* ./syntax//typing.nit:743 */
4516 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4517 /* ./syntax//typing.nit:744 */
4518 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4519 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4520 /* ./syntax//typing.nit:745 */
4521 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4522 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4523 /* ./syntax//typing.nit:746 */
4524 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4526 /* ./syntax//typing.nit:750 */
4527 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4528 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4529 /* ./syntax//typing.nit:751 */
4530 REGB0
= TAG_Bool(true);
4531 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4532 stack_frame_head
= fra
.me
.prev
;
4535 val_t
syntax___typing___AVarFormExpr___variable(val_t p0
){
4536 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4539 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4540 fra
.me
.file
= LOCATE_syntax___typing
;
4542 fra
.me
.meth
= LOCATE_syntax___typing___AVarFormExpr___variable
;
4543 fra
.me
.has_broke
= 0;
4544 fra
.me
.REG_size
= 2;
4545 fra
.me
.nitni_local_ref_head
= NULL
;
4546 fra
.me
.REG
[0] = NIT_NULL
;
4547 fra
.me
.REG
[1] = NIT_NULL
;
4549 /* ./syntax//typing.nit:757 */
4550 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4551 fra
.me
.REG
[1] = ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[1]);
4552 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4553 if (UNTAG_Bool(REGB0
)) {
4555 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 757);
4559 stack_frame_head
= fra
.me
.prev
;
4560 return fra
.me
.REG
[1];
4562 val_t
syntax___typing___AVarExpr___its_variable(val_t p0
){
4563 struct {struct stack_frame_t me
;} fra
;
4565 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4566 fra
.me
.file
= LOCATE_syntax___typing
;
4568 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___its_variable
;
4569 fra
.me
.has_broke
= 0;
4570 fra
.me
.REG_size
= 1;
4571 fra
.me
.nitni_local_ref_head
= NULL
;
4572 fra
.me
.REG
[0] = NIT_NULL
;
4574 /* ./syntax//typing.nit:761 */
4575 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4578 stack_frame_head
= fra
.me
.prev
;
4579 return fra
.me
.REG
[0];
4581 void syntax___typing___AVarExpr___after_typing(val_t p0
, val_t p1
){
4582 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4586 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4587 fra
.me
.file
= LOCATE_syntax___typing
;
4589 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___after_typing
;
4590 fra
.me
.has_broke
= 0;
4591 fra
.me
.REG_size
= 4;
4592 fra
.me
.nitni_local_ref_head
= NULL
;
4593 fra
.me
.REG
[0] = NIT_NULL
;
4594 fra
.me
.REG
[1] = NIT_NULL
;
4595 fra
.me
.REG
[2] = NIT_NULL
;
4596 fra
.me
.REG
[3] = NIT_NULL
;
4599 /* ./syntax//typing.nit:765 */
4600 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4601 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4602 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4603 /* ./syntax//typing.nit:766 */
4604 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4605 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4606 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4607 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4608 /* ./syntax//typing.nit:767 */
4609 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
4610 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4611 if (UNTAG_Bool(REGB0
)) {
4613 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4614 if (UNTAG_Bool(REGB1
)) {
4615 REGB1
= TAG_Bool(false);
4618 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4622 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4623 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4624 stack_frame_head
= fra
.me
.prev
;
4627 void syntax___typing___AVarAssignExpr___after_typing(val_t p0
, val_t p1
){
4628 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4632 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4633 fra
.me
.file
= LOCATE_syntax___typing
;
4635 fra
.me
.meth
= LOCATE_syntax___typing___AVarAssignExpr___after_typing
;
4636 fra
.me
.has_broke
= 0;
4637 fra
.me
.REG_size
= 5;
4638 fra
.me
.nitni_local_ref_head
= NULL
;
4639 fra
.me
.REG
[0] = NIT_NULL
;
4640 fra
.me
.REG
[1] = NIT_NULL
;
4641 fra
.me
.REG
[2] = NIT_NULL
;
4642 fra
.me
.REG
[3] = NIT_NULL
;
4643 fra
.me
.REG
[4] = NIT_NULL
;
4646 /* ./syntax//typing.nit:774 */
4647 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4648 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4649 /* ./syntax//typing.nit:777 */
4650 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4651 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4652 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4653 /* ./syntax//typing.nit:778 */
4654 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4655 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4656 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4657 if (UNTAG_Bool(REGB0
)) {
4660 /* ./syntax//typing.nit:779 */
4661 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4662 if (UNTAG_Bool(REGB0
)) {
4664 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4665 if (UNTAG_Bool(REGB1
)) {
4666 REGB1
= TAG_Bool(false);
4669 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4673 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4674 if (UNTAG_Bool(REGB0
)) {
4675 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4676 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4677 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4679 REGB1
= TAG_Bool(false);
4682 if (UNTAG_Bool(REGB0
)) {
4685 /* ./syntax//typing.nit:782 */
4686 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4687 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4688 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4689 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4690 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[4]);
4691 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4692 /* ./syntax//typing.nit:784 */
4693 REGB0
= TAG_Bool(true);
4694 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4696 stack_frame_head
= fra
.me
.prev
;
4699 val_t
syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0
, val_t p1
, val_t p2
){
4700 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4704 static val_t once_value_2
; /* Once value */
4705 static val_t once_value_3
; /* Once value */
4706 static val_t once_value_4
; /* Once value */
4707 static val_t once_value_5
; /* Once value */
4708 static val_t once_value_6
; /* Once value */
4709 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4710 fra
.me
.file
= LOCATE_syntax___typing
;
4712 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing
;
4713 fra
.me
.has_broke
= 0;
4714 fra
.me
.REG_size
= 8;
4715 fra
.me
.nitni_local_ref_head
= NULL
;
4716 fra
.me
.REG
[0] = NIT_NULL
;
4717 fra
.me
.REG
[1] = NIT_NULL
;
4718 fra
.me
.REG
[2] = NIT_NULL
;
4719 fra
.me
.REG
[3] = NIT_NULL
;
4720 fra
.me
.REG
[4] = NIT_NULL
;
4721 fra
.me
.REG
[5] = NIT_NULL
;
4722 fra
.me
.REG
[6] = NIT_NULL
;
4723 fra
.me
.REG
[7] = NIT_NULL
;
4727 /* ./syntax//typing.nit:794 */
4728 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4729 if (UNTAG_Bool(REGB0
)) {
4731 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4732 if (UNTAG_Bool(REGB1
)) {
4733 REGB1
= TAG_Bool(false);
4736 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4740 if (UNTAG_Bool(REGB0
)) {
4741 /* ./syntax//typing.nit:795 */
4742 fra
.me
.REG
[3] = NIT_NULL
;
4745 /* ./syntax//typing.nit:797 */
4746 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4747 fra
.me
.REG
[4] = CALL_syntax___typing___AAssignOp___method_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4748 /* ./syntax//typing.nit:798 */
4749 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
4750 if (UNTAG_Bool(REGB0
)) {
4751 /* ./syntax//typing.nit:799 */
4753 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4754 if (!once_value_2
) {
4755 fra
.me
.REG
[6] = BOX_NativeString("Error: Method '");
4756 REGB0
= TAG_Int(15);
4757 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4758 once_value_2
= fra
.me
.REG
[6];
4759 register_static_object(&once_value_2
);
4760 } else fra
.me
.REG
[6] = once_value_2
;
4761 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4762 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4763 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4764 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4765 if (!once_value_3
) {
4766 fra
.me
.REG
[6] = BOX_NativeString("' call on 'null'.");
4767 REGB0
= TAG_Int(17);
4768 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4769 once_value_3
= fra
.me
.REG
[6];
4770 register_static_object(&once_value_3
);
4771 } else fra
.me
.REG
[6] = once_value_3
;
4772 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4773 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4774 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4775 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4776 /* ./syntax//typing.nit:800 */
4777 fra
.me
.REG
[3] = NIT_NULL
;
4780 /* ./syntax//typing.nit:802 */
4781 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4782 if (UNTAG_Bool(REGB0
)) {
4783 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 802);
4785 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4786 /* ./syntax//typing.nit:803 */
4787 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4788 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4789 if (UNTAG_Bool(REGB0
)) {
4790 /* ./syntax//typing.nit:804 */
4792 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4793 if (!once_value_4
) {
4794 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
4795 REGB0
= TAG_Int(15);
4796 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4797 once_value_4
= fra
.me
.REG
[7];
4798 register_static_object(&once_value_4
);
4799 } else fra
.me
.REG
[7] = once_value_4
;
4800 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4801 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4802 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4803 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4804 if (!once_value_5
) {
4805 fra
.me
.REG
[7] = BOX_NativeString("' doesn't exists in ");
4806 REGB0
= TAG_Int(20);
4807 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4808 once_value_5
= fra
.me
.REG
[7];
4809 register_static_object(&once_value_5
);
4810 } else fra
.me
.REG
[7] = once_value_5
;
4811 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4812 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4813 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4814 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4815 if (!once_value_6
) {
4816 fra
.me
.REG
[7] = BOX_NativeString(".");
4818 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4819 once_value_6
= fra
.me
.REG
[7];
4820 register_static_object(&once_value_6
);
4821 } else fra
.me
.REG
[7] = once_value_6
;
4822 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4823 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4824 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4825 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
4826 /* ./syntax//typing.nit:805 */
4827 fra
.me
.REG
[3] = NIT_NULL
;
4830 /* ./syntax//typing.nit:807 */
4831 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4832 /* ./syntax//typing.nit:808 */
4833 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4834 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4835 REGB0
= TAG_Bool(false);
4836 CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6], REGB0
);
4837 /* ./syntax//typing.nit:809 */
4838 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4839 /* ./syntax//typing.nit:810 */
4840 ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4841 /* ./syntax//typing.nit:811 */
4842 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4844 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
4845 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4846 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
4847 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4848 if (UNTAG_Bool(REGB0
)) {
4849 fra
.me
.REG
[3] = NIT_NULL
;
4852 /* ./syntax//typing.nit:812 */
4853 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4854 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4855 if (UNTAG_Bool(REGB0
)) {
4856 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 812);
4858 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4859 fra
.me
.REG
[3] = fra
.me
.REG
[2];
4862 stack_frame_head
= fra
.me
.prev
;
4863 return fra
.me
.REG
[3];
4865 val_t
syntax___typing___AReassignFormExpr___assign_method(val_t p0
){
4866 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4869 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4870 fra
.me
.file
= LOCATE_syntax___typing
;
4872 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___assign_method
;
4873 fra
.me
.has_broke
= 0;
4874 fra
.me
.REG_size
= 2;
4875 fra
.me
.nitni_local_ref_head
= NULL
;
4876 fra
.me
.REG
[0] = NIT_NULL
;
4877 fra
.me
.REG
[1] = NIT_NULL
;
4879 /* ./syntax//typing.nit:815 */
4880 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4881 fra
.me
.REG
[1] = ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[1]);
4882 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4883 if (UNTAG_Bool(REGB0
)) {
4885 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 815);
4889 stack_frame_head
= fra
.me
.prev
;
4890 return fra
.me
.REG
[1];
4892 void syntax___typing___AVarReassignExpr___after_typing(val_t p0
, val_t p1
){
4893 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4897 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4898 fra
.me
.file
= LOCATE_syntax___typing
;
4900 fra
.me
.meth
= LOCATE_syntax___typing___AVarReassignExpr___after_typing
;
4901 fra
.me
.has_broke
= 0;
4902 fra
.me
.REG_size
= 5;
4903 fra
.me
.nitni_local_ref_head
= NULL
;
4904 fra
.me
.REG
[0] = NIT_NULL
;
4905 fra
.me
.REG
[1] = NIT_NULL
;
4906 fra
.me
.REG
[2] = NIT_NULL
;
4907 fra
.me
.REG
[3] = NIT_NULL
;
4908 fra
.me
.REG
[4] = NIT_NULL
;
4911 /* ./syntax//typing.nit:822 */
4912 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4913 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4914 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4915 /* ./syntax//typing.nit:823 */
4916 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4917 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4918 /* ./syntax//typing.nit:824 */
4919 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4920 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4921 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4922 /* ./syntax//typing.nit:825 */
4923 fra
.me
.REG
[2] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
4924 /* ./syntax//typing.nit:826 */
4925 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4926 if (UNTAG_Bool(REGB0
)) {
4928 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4929 if (UNTAG_Bool(REGB1
)) {
4930 REGB1
= TAG_Bool(false);
4933 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4937 if (UNTAG_Bool(REGB0
)) {
4940 /* ./syntax//typing.nit:829 */
4941 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4942 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4943 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4944 /* ./syntax//typing.nit:830 */
4945 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4946 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4947 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4948 if (UNTAG_Bool(REGB0
)) {
4951 /* ./syntax//typing.nit:831 */
4952 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4953 if (UNTAG_Bool(REGB0
)) {
4955 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4956 if (UNTAG_Bool(REGB1
)) {
4957 REGB1
= TAG_Bool(false);
4960 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4964 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4965 if (UNTAG_Bool(REGB0
)) {
4966 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4967 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
4968 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4970 REGB1
= TAG_Bool(false);
4973 if (UNTAG_Bool(REGB0
)) {
4976 /* ./syntax//typing.nit:834 */
4977 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4978 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4979 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
4980 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4981 /* ./syntax//typing.nit:836 */
4982 REGB0
= TAG_Bool(true);
4983 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4985 stack_frame_head
= fra
.me
.prev
;
4988 val_t
syntax___typing___AAssignOp___method_name(val_t p0
){
4989 struct {struct stack_frame_t me
;} fra
;
4991 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4992 fra
.me
.file
= LOCATE_syntax___typing
;
4994 fra
.me
.meth
= LOCATE_syntax___typing___AAssignOp___method_name
;
4995 fra
.me
.has_broke
= 0;
4996 fra
.me
.REG_size
= 0;
4997 fra
.me
.nitni_local_ref_head
= NULL
;
4998 /* ./syntax//typing.nit:841 */
4999 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 841);
5000 stack_frame_head
= fra
.me
.prev
;
5003 val_t
syntax___typing___APlusAssignOp___method_name(val_t p0
){
5004 struct {struct stack_frame_t me
;} fra
;
5007 static val_t once_value_1
; /* Once value */
5008 static val_t once_value_2
; /* Once value */
5009 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5010 fra
.me
.file
= LOCATE_syntax___typing
;
5012 fra
.me
.meth
= LOCATE_syntax___typing___APlusAssignOp___method_name
;
5013 fra
.me
.has_broke
= 0;
5014 fra
.me
.REG_size
= 1;
5015 fra
.me
.nitni_local_ref_head
= NULL
;
5016 fra
.me
.REG
[0] = NIT_NULL
;
5018 /* ./syntax//typing.nit:844 */
5019 if (!once_value_1
) {
5020 if (!once_value_2
) {
5021 fra
.me
.REG
[0] = BOX_NativeString("+");
5023 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5024 once_value_2
= fra
.me
.REG
[0];
5025 register_static_object(&once_value_2
);
5026 } else fra
.me
.REG
[0] = once_value_2
;
5027 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5028 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5029 once_value_1
= fra
.me
.REG
[0];
5030 register_static_object(&once_value_1
);
5031 } else fra
.me
.REG
[0] = once_value_1
;
5032 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5035 stack_frame_head
= fra
.me
.prev
;
5036 return fra
.me
.REG
[0];
5038 val_t
syntax___typing___AMinusAssignOp___method_name(val_t p0
){
5039 struct {struct stack_frame_t me
;} fra
;
5042 static val_t once_value_1
; /* Once value */
5043 static val_t once_value_2
; /* Once value */
5044 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5045 fra
.me
.file
= LOCATE_syntax___typing
;
5047 fra
.me
.meth
= LOCATE_syntax___typing___AMinusAssignOp___method_name
;
5048 fra
.me
.has_broke
= 0;
5049 fra
.me
.REG_size
= 1;
5050 fra
.me
.nitni_local_ref_head
= NULL
;
5051 fra
.me
.REG
[0] = NIT_NULL
;
5053 /* ./syntax//typing.nit:847 */
5054 if (!once_value_1
) {
5055 if (!once_value_2
) {
5056 fra
.me
.REG
[0] = BOX_NativeString("-");
5058 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5059 once_value_2
= fra
.me
.REG
[0];
5060 register_static_object(&once_value_2
);
5061 } else fra
.me
.REG
[0] = once_value_2
;
5062 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5063 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5064 once_value_1
= fra
.me
.REG
[0];
5065 register_static_object(&once_value_1
);
5066 } else fra
.me
.REG
[0] = once_value_1
;
5067 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5070 stack_frame_head
= fra
.me
.prev
;
5071 return fra
.me
.REG
[0];
5073 val_t
syntax___typing___ASelfExpr___variable(val_t p0
){
5074 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5077 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5078 fra
.me
.file
= LOCATE_syntax___typing
;
5080 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___variable
;
5081 fra
.me
.has_broke
= 0;
5082 fra
.me
.REG_size
= 2;
5083 fra
.me
.nitni_local_ref_head
= NULL
;
5084 fra
.me
.REG
[0] = NIT_NULL
;
5085 fra
.me
.REG
[1] = NIT_NULL
;
5087 /* ./syntax//typing.nit:852 */
5088 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5089 fra
.me
.REG
[1] = ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[1]);
5090 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5091 if (UNTAG_Bool(REGB0
)) {
5093 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 852);
5097 stack_frame_head
= fra
.me
.prev
;
5098 return fra
.me
.REG
[1];
5100 val_t
syntax___typing___ASelfExpr___its_variable(val_t p0
){
5101 struct {struct stack_frame_t me
;} fra
;
5103 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5104 fra
.me
.file
= LOCATE_syntax___typing
;
5106 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___its_variable
;
5107 fra
.me
.has_broke
= 0;
5108 fra
.me
.REG_size
= 1;
5109 fra
.me
.nitni_local_ref_head
= NULL
;
5110 fra
.me
.REG
[0] = NIT_NULL
;
5112 /* ./syntax//typing.nit:854 */
5113 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5116 stack_frame_head
= fra
.me
.prev
;
5117 return fra
.me
.REG
[0];
5119 void syntax___typing___ASelfExpr___after_typing(val_t p0
, val_t p1
){
5120 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5123 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5124 fra
.me
.file
= LOCATE_syntax___typing
;
5126 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___after_typing
;
5127 fra
.me
.has_broke
= 0;
5128 fra
.me
.REG_size
= 3;
5129 fra
.me
.nitni_local_ref_head
= NULL
;
5130 fra
.me
.REG
[0] = NIT_NULL
;
5131 fra
.me
.REG
[1] = NIT_NULL
;
5132 fra
.me
.REG
[2] = NIT_NULL
;
5135 /* ./syntax//typing.nit:858 */
5136 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5137 ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5138 /* ./syntax//typing.nit:859 */
5139 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5140 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5141 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5142 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5143 /* ./syntax//typing.nit:860 */
5144 REGB0
= TAG_Bool(true);
5145 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5146 stack_frame_head
= fra
.me
.prev
;
5149 val_t
syntax___typing___ASelfExpr___is_self(val_t p0
){
5150 struct {struct stack_frame_t me
;} fra
;
5153 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5154 fra
.me
.file
= LOCATE_syntax___typing
;
5156 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___is_self
;
5157 fra
.me
.has_broke
= 0;
5158 fra
.me
.REG_size
= 1;
5159 fra
.me
.nitni_local_ref_head
= NULL
;
5160 fra
.me
.REG
[0] = NIT_NULL
;
5162 /* ./syntax//typing.nit:863 */
5163 REGB0
= TAG_Bool(true);
5166 stack_frame_head
= fra
.me
.prev
;
5169 val_t
syntax___typing___AImplicitSelfExpr___is_implicit_self(val_t p0
){
5170 struct {struct stack_frame_t me
;} fra
;
5173 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5174 fra
.me
.file
= LOCATE_syntax___typing
;
5176 fra
.me
.meth
= LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self
;
5177 fra
.me
.has_broke
= 0;
5178 fra
.me
.REG_size
= 1;
5179 fra
.me
.nitni_local_ref_head
= NULL
;
5180 fra
.me
.REG
[0] = NIT_NULL
;
5182 /* ./syntax//typing.nit:867 */
5183 REGB0
= TAG_Bool(true);
5186 stack_frame_head
= fra
.me
.prev
;
5189 void syntax___typing___AIfexprExpr___accept_typing(val_t p0
, val_t p1
){
5190 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5194 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5195 fra
.me
.file
= LOCATE_syntax___typing
;
5197 fra
.me
.meth
= LOCATE_syntax___typing___AIfexprExpr___accept_typing
;
5198 fra
.me
.has_broke
= 0;
5199 fra
.me
.REG_size
= 5;
5200 fra
.me
.nitni_local_ref_head
= NULL
;
5201 fra
.me
.REG
[0] = NIT_NULL
;
5202 fra
.me
.REG
[1] = NIT_NULL
;
5203 fra
.me
.REG
[2] = NIT_NULL
;
5204 fra
.me
.REG
[3] = NIT_NULL
;
5205 fra
.me
.REG
[4] = NIT_NULL
;
5208 /* ./syntax//typing.nit:873 */
5209 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5210 /* ./syntax//typing.nit:876 */
5211 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5212 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5213 /* ./syntax//typing.nit:877 */
5214 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5215 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5216 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5217 /* ./syntax//typing.nit:880 */
5218 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5219 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5220 /* ./syntax//typing.nit:883 */
5221 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5222 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5223 /* ./syntax//typing.nit:886 */
5224 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5225 /* ./syntax//typing.nit:889 */
5226 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5227 /* ./syntax//typing.nit:890 */
5228 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5229 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5230 /* ./syntax//typing.nit:893 */
5231 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5232 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5233 /* ./syntax//typing.nit:896 */
5234 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5235 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5236 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___merge_reash(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[4], fra
.me
.REG
[3]);
5237 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5238 /* ./syntax//typing.nit:898 */
5240 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5241 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5242 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5243 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5244 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5245 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
, fra
.me
.REG
[3]);
5246 /* ./syntax//typing.nit:899 */
5247 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5248 if (UNTAG_Bool(REGB0
)) {
5250 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5251 if (UNTAG_Bool(REGB1
)) {
5252 REGB1
= TAG_Bool(false);
5255 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5259 if (UNTAG_Bool(REGB0
)) {
5262 /* ./syntax//typing.nit:901 */
5263 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5264 /* ./syntax//typing.nit:902 */
5265 REGB0
= TAG_Bool(true);
5266 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5268 stack_frame_head
= fra
.me
.prev
;
5271 void syntax___typing___ABoolExpr___after_typing(val_t p0
, val_t p1
){
5272 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5275 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5276 fra
.me
.file
= LOCATE_syntax___typing
;
5278 fra
.me
.meth
= LOCATE_syntax___typing___ABoolExpr___after_typing
;
5279 fra
.me
.has_broke
= 0;
5280 fra
.me
.REG_size
= 2;
5281 fra
.me
.nitni_local_ref_head
= NULL
;
5282 fra
.me
.REG
[0] = NIT_NULL
;
5283 fra
.me
.REG
[1] = NIT_NULL
;
5286 /* ./syntax//typing.nit:909 */
5287 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5288 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5289 /* ./syntax//typing.nit:910 */
5290 REGB0
= TAG_Bool(true);
5291 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5292 stack_frame_head
= fra
.me
.prev
;
5295 void syntax___typing___AOrExpr___accept_typing(val_t p0
, val_t p1
){
5296 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5300 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5301 fra
.me
.file
= LOCATE_syntax___typing
;
5303 fra
.me
.meth
= LOCATE_syntax___typing___AOrExpr___accept_typing
;
5304 fra
.me
.has_broke
= 0;
5305 fra
.me
.REG_size
= 5;
5306 fra
.me
.nitni_local_ref_head
= NULL
;
5307 fra
.me
.REG
[0] = NIT_NULL
;
5308 fra
.me
.REG
[1] = NIT_NULL
;
5309 fra
.me
.REG
[2] = NIT_NULL
;
5310 fra
.me
.REG
[3] = NIT_NULL
;
5311 fra
.me
.REG
[4] = NIT_NULL
;
5314 /* ./syntax//typing.nit:917 */
5315 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5316 /* ./syntax//typing.nit:918 */
5317 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5318 /* ./syntax//typing.nit:919 */
5319 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5320 /* ./syntax//typing.nit:922 */
5321 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5322 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5323 /* ./syntax//typing.nit:925 */
5324 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5325 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5326 /* ./syntax//typing.nit:928 */
5327 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5328 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5329 /* ./syntax//typing.nit:929 */
5330 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5331 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5332 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5333 if (UNTAG_Bool(REGB0
)) {
5335 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5336 if (UNTAG_Bool(REGB1
)) {
5337 REGB1
= TAG_Bool(false);
5340 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5344 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5345 if (UNTAG_Bool(REGB0
)) {
5346 /* ./syntax//typing.nit:930 */
5347 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5348 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5349 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5351 /* ./syntax//typing.nit:932 */
5352 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5353 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5355 /* ./syntax//typing.nit:935 */
5356 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5357 /* ./syntax//typing.nit:937 */
5358 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5359 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5360 /* ./syntax//typing.nit:938 */
5361 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5362 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5363 /* ./syntax//typing.nit:939 */
5364 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5365 /* ./syntax//typing.nit:940 */
5366 REGB0
= TAG_Bool(true);
5367 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5368 stack_frame_head
= fra
.me
.prev
;
5371 void syntax___typing___AAndExpr___accept_typing(val_t p0
, val_t p1
){
5372 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5376 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5377 fra
.me
.file
= LOCATE_syntax___typing
;
5379 fra
.me
.meth
= LOCATE_syntax___typing___AAndExpr___accept_typing
;
5380 fra
.me
.has_broke
= 0;
5381 fra
.me
.REG_size
= 5;
5382 fra
.me
.nitni_local_ref_head
= NULL
;
5383 fra
.me
.REG
[0] = NIT_NULL
;
5384 fra
.me
.REG
[1] = NIT_NULL
;
5385 fra
.me
.REG
[2] = NIT_NULL
;
5386 fra
.me
.REG
[3] = NIT_NULL
;
5387 fra
.me
.REG
[4] = NIT_NULL
;
5390 /* ./syntax//typing.nit:947 */
5391 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5392 /* ./syntax//typing.nit:948 */
5393 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5394 /* ./syntax//typing.nit:951 */
5395 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5396 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5397 /* ./syntax//typing.nit:954 */
5398 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5399 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5400 /* ./syntax//typing.nit:957 */
5401 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5402 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5403 /* ./syntax//typing.nit:958 */
5404 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5405 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5406 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5407 if (UNTAG_Bool(REGB0
)) {
5409 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5410 if (UNTAG_Bool(REGB1
)) {
5411 REGB1
= TAG_Bool(false);
5414 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5418 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5419 if (UNTAG_Bool(REGB0
)) {
5420 /* ./syntax//typing.nit:959 */
5421 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5422 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5423 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5425 /* ./syntax//typing.nit:961 */
5426 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5427 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5429 /* ./syntax//typing.nit:964 */
5430 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5431 /* ./syntax//typing.nit:966 */
5432 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5433 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5434 /* ./syntax//typing.nit:967 */
5435 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5436 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5437 /* ./syntax//typing.nit:968 */
5438 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5439 /* ./syntax//typing.nit:969 */
5440 REGB0
= TAG_Bool(true);
5441 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5442 stack_frame_head
= fra
.me
.prev
;
5445 void syntax___typing___ANotExpr___after_typing(val_t p0
, val_t p1
){
5446 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5449 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5450 fra
.me
.file
= LOCATE_syntax___typing
;
5452 fra
.me
.meth
= LOCATE_syntax___typing___ANotExpr___after_typing
;
5453 fra
.me
.has_broke
= 0;
5454 fra
.me
.REG_size
= 4;
5455 fra
.me
.nitni_local_ref_head
= NULL
;
5456 fra
.me
.REG
[0] = NIT_NULL
;
5457 fra
.me
.REG
[1] = NIT_NULL
;
5458 fra
.me
.REG
[2] = NIT_NULL
;
5459 fra
.me
.REG
[3] = NIT_NULL
;
5462 /* ./syntax//typing.nit:976 */
5463 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5464 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5465 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5466 /* ./syntax//typing.nit:979 */
5467 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5468 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[3]);
5469 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5470 /* ./syntax//typing.nit:980 */
5471 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5472 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[3]);
5473 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5474 /* ./syntax//typing.nit:982 */
5475 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5476 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5477 /* ./syntax//typing.nit:983 */
5478 REGB0
= TAG_Bool(true);
5479 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5480 stack_frame_head
= fra
.me
.prev
;
5483 void syntax___typing___AOrElseExpr___after_typing(val_t p0
, val_t p1
){
5484 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5488 static val_t once_value_1
; /* Once value */
5489 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5490 fra
.me
.file
= LOCATE_syntax___typing
;
5492 fra
.me
.meth
= LOCATE_syntax___typing___AOrElseExpr___after_typing
;
5493 fra
.me
.has_broke
= 0;
5494 fra
.me
.REG_size
= 7;
5495 fra
.me
.nitni_local_ref_head
= NULL
;
5496 fra
.me
.REG
[0] = NIT_NULL
;
5497 fra
.me
.REG
[1] = NIT_NULL
;
5498 fra
.me
.REG
[2] = NIT_NULL
;
5499 fra
.me
.REG
[3] = NIT_NULL
;
5500 fra
.me
.REG
[4] = NIT_NULL
;
5501 fra
.me
.REG
[5] = NIT_NULL
;
5502 fra
.me
.REG
[6] = NIT_NULL
;
5505 /* ./syntax//typing.nit:990 */
5506 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5507 /* ./syntax//typing.nit:993 */
5508 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5509 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5510 /* ./syntax//typing.nit:994 */
5511 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5512 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5513 /* ./syntax//typing.nit:997 */
5514 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5515 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5516 /* ./syntax//typing.nit:998 */
5517 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5518 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5519 if (UNTAG_Bool(REGB0
)) {
5520 /* ./syntax//typing.nit:999 */
5521 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5522 if (!once_value_1
) {
5523 fra
.me
.REG
[5] = BOX_NativeString("Warning: left operant of a 'or else' is not a nullable type.");
5524 REGB0
= TAG_Int(60);
5525 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5526 once_value_1
= fra
.me
.REG
[5];
5527 register_static_object(&once_value_1
);
5528 } else fra
.me
.REG
[5] = once_value_1
;
5529 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5530 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
5532 /* ./syntax//typing.nit:1001 */
5533 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5534 fra
.me
.REG
[3] = fra
.me
.REG
[5];
5536 /* ./syntax//typing.nit:1005 */
5537 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5538 fra
.me
.REG
[5] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5539 /* ./syntax//typing.nit:1006 */
5540 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5541 if (UNTAG_Bool(REGB0
)) {
5543 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5544 if (UNTAG_Bool(REGB1
)) {
5545 REGB1
= TAG_Bool(false);
5548 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5552 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5553 if (UNTAG_Bool(REGB0
)) {
5554 /* ./syntax//typing.nit:1007 */
5555 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5556 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5557 CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[6]);
5559 /* ./syntax//typing.nit:1011 */
5560 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5561 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5562 /* ./syntax//typing.nit:1012 */
5563 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5564 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5565 /* ./syntax//typing.nit:1015 */
5566 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5567 /* ./syntax//typing.nit:1018 */
5569 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5570 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5571 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5572 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
5573 /* ./syntax//typing.nit:1019 */
5574 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5575 if (UNTAG_Bool(REGB0
)) {
5577 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5578 if (UNTAG_Bool(REGB1
)) {
5579 REGB1
= TAG_Bool(false);
5582 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5586 if (UNTAG_Bool(REGB0
)) {
5589 /* ./syntax//typing.nit:1021 */
5590 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5591 /* ./syntax//typing.nit:1022 */
5592 REGB0
= TAG_Bool(true);
5593 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5595 stack_frame_head
= fra
.me
.prev
;
5598 void syntax___typing___AIntExpr___after_typing(val_t p0
, val_t p1
){
5599 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5602 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5603 fra
.me
.file
= LOCATE_syntax___typing
;
5605 fra
.me
.meth
= LOCATE_syntax___typing___AIntExpr___after_typing
;
5606 fra
.me
.has_broke
= 0;
5607 fra
.me
.REG_size
= 2;
5608 fra
.me
.nitni_local_ref_head
= NULL
;
5609 fra
.me
.REG
[0] = NIT_NULL
;
5610 fra
.me
.REG
[1] = NIT_NULL
;
5613 /* ./syntax//typing.nit:1029 */
5614 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5615 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5616 /* ./syntax//typing.nit:1030 */
5617 REGB0
= TAG_Bool(true);
5618 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5619 stack_frame_head
= fra
.me
.prev
;
5622 void syntax___typing___AFloatExpr___after_typing(val_t p0
, val_t p1
){
5623 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5626 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5627 fra
.me
.file
= LOCATE_syntax___typing
;
5629 fra
.me
.meth
= LOCATE_syntax___typing___AFloatExpr___after_typing
;
5630 fra
.me
.has_broke
= 0;
5631 fra
.me
.REG_size
= 2;
5632 fra
.me
.nitni_local_ref_head
= NULL
;
5633 fra
.me
.REG
[0] = NIT_NULL
;
5634 fra
.me
.REG
[1] = NIT_NULL
;
5637 /* ./syntax//typing.nit:1037 */
5638 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5639 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5640 /* ./syntax//typing.nit:1038 */
5641 REGB0
= TAG_Bool(true);
5642 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5643 stack_frame_head
= fra
.me
.prev
;
5646 void syntax___typing___ACharExpr___after_typing(val_t p0
, val_t p1
){
5647 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5650 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5651 fra
.me
.file
= LOCATE_syntax___typing
;
5653 fra
.me
.meth
= LOCATE_syntax___typing___ACharExpr___after_typing
;
5654 fra
.me
.has_broke
= 0;
5655 fra
.me
.REG_size
= 2;
5656 fra
.me
.nitni_local_ref_head
= NULL
;
5657 fra
.me
.REG
[0] = NIT_NULL
;
5658 fra
.me
.REG
[1] = NIT_NULL
;
5661 /* ./syntax//typing.nit:1045 */
5662 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5663 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5664 /* ./syntax//typing.nit:1046 */
5665 REGB0
= TAG_Bool(true);
5666 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5667 stack_frame_head
= fra
.me
.prev
;
5670 void syntax___typing___AStringFormExpr___after_typing(val_t p0
, val_t p1
){
5671 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5674 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5675 fra
.me
.file
= LOCATE_syntax___typing
;
5677 fra
.me
.meth
= LOCATE_syntax___typing___AStringFormExpr___after_typing
;
5678 fra
.me
.has_broke
= 0;
5679 fra
.me
.REG_size
= 2;
5680 fra
.me
.nitni_local_ref_head
= NULL
;
5681 fra
.me
.REG
[0] = NIT_NULL
;
5682 fra
.me
.REG
[1] = NIT_NULL
;
5685 /* ./syntax//typing.nit:1053 */
5686 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5687 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5688 /* ./syntax//typing.nit:1054 */
5689 REGB0
= TAG_Bool(true);
5690 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5691 stack_frame_head
= fra
.me
.prev
;
5694 val_t
syntax___typing___ASuperstringExpr___atype(val_t p0
){
5695 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5698 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5699 fra
.me
.file
= LOCATE_syntax___typing
;
5701 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___atype
;
5702 fra
.me
.has_broke
= 0;
5703 fra
.me
.REG_size
= 2;
5704 fra
.me
.nitni_local_ref_head
= NULL
;
5705 fra
.me
.REG
[0] = NIT_NULL
;
5706 fra
.me
.REG
[1] = NIT_NULL
;
5708 /* ./syntax//typing.nit:1059 */
5709 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5710 fra
.me
.REG
[1] = ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[1]);
5711 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5712 if (UNTAG_Bool(REGB0
)) {
5714 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1059);
5718 stack_frame_head
= fra
.me
.prev
;
5719 return fra
.me
.REG
[1];
5721 void syntax___typing___ASuperstringExpr___after_typing(val_t p0
, val_t p1
){
5722 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5725 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5726 fra
.me
.file
= LOCATE_syntax___typing
;
5728 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
5729 fra
.me
.has_broke
= 0;
5730 fra
.me
.REG_size
= 5;
5731 fra
.me
.nitni_local_ref_head
= NULL
;
5732 fra
.me
.REG
[0] = NIT_NULL
;
5733 fra
.me
.REG
[1] = NIT_NULL
;
5734 fra
.me
.REG
[2] = NIT_NULL
;
5735 fra
.me
.REG
[3] = NIT_NULL
;
5736 fra
.me
.REG
[4] = NIT_NULL
;
5739 /* ./syntax//typing.nit:1063 */
5740 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5741 /* ./syntax//typing.nit:1064 */
5742 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5743 /* ./syntax//typing.nit:1065 */
5744 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5745 /* ./syntax//typing.nit:1066 */
5746 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5747 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_syntax___typing___ASuperstringExpr___after_typing_1
));
5748 /* ./syntax//typing.nit:1067 */
5749 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5750 /* ./syntax//typing.nit:1068 */
5751 ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5752 /* ./syntax//typing.nit:1069 */
5753 REGB0
= TAG_Bool(true);
5754 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5755 stack_frame_head
= fra
.me
.prev
;
5758 void OC_syntax___typing___ASuperstringExpr___after_typing_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
5759 struct {struct stack_frame_t me
;} fra
;
5762 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5763 fra
.me
.file
= LOCATE_syntax___typing
;
5765 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
5766 fra
.me
.has_broke
= 0;
5767 fra
.me
.REG_size
= 1;
5768 fra
.me
.nitni_local_ref_head
= NULL
;
5769 fra
.me
.REG
[0] = NIT_NULL
;
5770 fra
.me
.closure_ctx
= closctx_param
;
5771 fra
.me
.closure_funs
= CREG
;
5773 CREG
[0] = clos_fun0
;
5774 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], closctx
->REG
[2]);
5775 stack_frame_head
= fra
.me
.prev
;
5778 void syntax___typing___ANullExpr___after_typing(val_t p0
, val_t p1
){
5779 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5782 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5783 fra
.me
.file
= LOCATE_syntax___typing
;
5785 fra
.me
.meth
= LOCATE_syntax___typing___ANullExpr___after_typing
;
5786 fra
.me
.has_broke
= 0;
5787 fra
.me
.REG_size
= 2;
5788 fra
.me
.nitni_local_ref_head
= NULL
;
5789 fra
.me
.REG
[0] = NIT_NULL
;
5790 fra
.me
.REG
[1] = NIT_NULL
;
5793 /* ./syntax//typing.nit:1076 */
5794 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5795 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5796 /* ./syntax//typing.nit:1077 */
5797 REGB0
= TAG_Bool(true);
5798 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5799 stack_frame_head
= fra
.me
.prev
;
5802 void syntax___typing___AArrayExpr___after_typing(val_t p0
, val_t p1
){
5803 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5807 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5808 fra
.me
.file
= LOCATE_syntax___typing
;
5810 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___after_typing
;
5811 fra
.me
.has_broke
= 0;
5812 fra
.me
.REG_size
= 3;
5813 fra
.me
.nitni_local_ref_head
= NULL
;
5814 fra
.me
.REG
[0] = NIT_NULL
;
5815 fra
.me
.REG
[1] = NIT_NULL
;
5816 fra
.me
.REG
[2] = NIT_NULL
;
5819 /* ./syntax//typing.nit:1084 */
5820 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5821 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
, fra
.me
.REG
[2]);
5822 /* ./syntax//typing.nit:1085 */
5823 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5824 if (UNTAG_Bool(REGB0
)) {
5826 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5827 if (UNTAG_Bool(REGB1
)) {
5828 REGB1
= TAG_Bool(false);
5831 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5835 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5836 if (UNTAG_Bool(REGB0
)) {
5837 CALL_syntax___typing___AArrayExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
5839 stack_frame_head
= fra
.me
.prev
;
5842 void syntax___typing___AArrayExpr___do_typing(val_t p0
, val_t p1
, val_t p2
){
5843 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5846 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5847 fra
.me
.file
= LOCATE_syntax___typing
;
5849 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___do_typing
;
5850 fra
.me
.has_broke
= 0;
5851 fra
.me
.REG_size
= 3;
5852 fra
.me
.nitni_local_ref_head
= NULL
;
5853 fra
.me
.REG
[0] = NIT_NULL
;
5854 fra
.me
.REG
[1] = NIT_NULL
;
5855 fra
.me
.REG
[2] = NIT_NULL
;
5859 /* ./syntax//typing.nit:1090 */
5860 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5861 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5862 /* ./syntax//typing.nit:1091 */
5863 REGB0
= TAG_Bool(true);
5864 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5865 stack_frame_head
= fra
.me
.prev
;
5868 void syntax___typing___ARangeExpr___after_typing(val_t p0
, val_t p1
){
5869 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5873 static val_t once_value_2
; /* Once value */
5874 static val_t once_value_3
; /* Once value */
5875 static val_t once_value_4
; /* Once value */
5876 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5877 fra
.me
.file
= LOCATE_syntax___typing
;
5879 fra
.me
.meth
= LOCATE_syntax___typing___ARangeExpr___after_typing
;
5880 fra
.me
.has_broke
= 0;
5881 fra
.me
.REG_size
= 6;
5882 fra
.me
.nitni_local_ref_head
= NULL
;
5883 fra
.me
.REG
[0] = NIT_NULL
;
5884 fra
.me
.REG
[1] = NIT_NULL
;
5885 fra
.me
.REG
[2] = NIT_NULL
;
5886 fra
.me
.REG
[3] = NIT_NULL
;
5887 fra
.me
.REG
[4] = NIT_NULL
;
5888 fra
.me
.REG
[5] = NIT_NULL
;
5891 /* ./syntax//typing.nit:1098 */
5892 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5893 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5894 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5895 if (UNTAG_Bool(REGB0
)) {
5896 REGB0
= TAG_Bool(true);
5898 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5899 REGB1
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5900 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5903 if (UNTAG_Bool(REGB0
)) {
5906 /* ./syntax//typing.nit:1099 */
5907 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5908 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5909 /* ./syntax//typing.nit:1100 */
5910 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5911 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5912 /* ./syntax//typing.nit:1101 */
5913 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5914 if (UNTAG_Bool(REGB0
)) {
5915 /* ./syntax//typing.nit:1102 */
5916 fra
.me
.REG
[2] = fra
.me
.REG
[3];
5918 /* ./syntax//typing.nit:1103 */
5919 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5920 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5921 if (UNTAG_Bool(REGB0
)) {
5922 /* ./syntax//typing.nit:1104 */
5924 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5925 if (!once_value_2
) {
5926 fra
.me
.REG
[5] = BOX_NativeString("Type error: ");
5927 REGB0
= TAG_Int(12);
5928 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5929 once_value_2
= fra
.me
.REG
[5];
5930 register_static_object(&once_value_2
);
5931 } else fra
.me
.REG
[5] = once_value_2
;
5932 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5933 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5934 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5935 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5936 if (!once_value_3
) {
5937 fra
.me
.REG
[5] = BOX_NativeString(" incompatible with ");
5938 REGB0
= TAG_Int(19);
5939 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5940 once_value_3
= fra
.me
.REG
[5];
5941 register_static_object(&once_value_3
);
5942 } else fra
.me
.REG
[5] = once_value_3
;
5943 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5944 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5945 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5946 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5947 if (!once_value_4
) {
5948 fra
.me
.REG
[3] = BOX_NativeString(".");
5950 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5951 once_value_4
= fra
.me
.REG
[3];
5952 register_static_object(&once_value_4
);
5953 } else fra
.me
.REG
[3] = once_value_4
;
5954 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5955 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5956 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5957 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
5958 /* ./syntax//typing.nit:1105 */
5962 /* ./syntax//typing.nit:1107 */
5963 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_discrete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5964 /* ./syntax//typing.nit:1108 */
5965 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5966 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5967 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5968 if (UNTAG_Bool(REGB0
)) {
5969 REGB0
= TAG_Bool(true);
5971 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5972 REGB1
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5973 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5976 if (UNTAG_Bool(REGB0
)) {
5979 /* ./syntax//typing.nit:1109 */
5980 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5981 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5982 /* ./syntax//typing.nit:1110 */
5983 REGB0
= TAG_Bool(true);
5984 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5986 stack_frame_head
= fra
.me
.prev
;
5989 val_t
syntax___typing___ASuperExpr___init_in_superclass(val_t p0
){
5990 struct {struct stack_frame_t me
;} fra
;
5992 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5993 fra
.me
.file
= LOCATE_syntax___typing
;
5995 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___init_in_superclass
;
5996 fra
.me
.has_broke
= 0;
5997 fra
.me
.REG_size
= 1;
5998 fra
.me
.nitni_local_ref_head
= NULL
;
5999 fra
.me
.REG
[0] = NIT_NULL
;
6001 /* ./syntax//typing.nit:1115 */
6002 fra
.me
.REG
[0] = ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]);
6003 stack_frame_head
= fra
.me
.prev
;
6004 return fra
.me
.REG
[0];
6006 val_t
syntax___typing___ASuperExpr___compute_raw_arguments(val_t p0
){
6007 struct {struct stack_frame_t me
;} fra
;
6009 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6010 fra
.me
.file
= LOCATE_syntax___typing
;
6012 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments
;
6013 fra
.me
.has_broke
= 0;
6014 fra
.me
.REG_size
= 1;
6015 fra
.me
.nitni_local_ref_head
= NULL
;
6016 fra
.me
.REG
[0] = NIT_NULL
;
6018 /* ./syntax//typing.nit:1116 */
6019 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6020 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6023 stack_frame_head
= fra
.me
.prev
;
6024 return fra
.me
.REG
[0];
6026 void syntax___typing___ASuperExpr___after_typing(val_t p0
, val_t p1
){
6027 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
6032 static val_t once_value_1
; /* Once value */
6033 static val_t once_value_2
; /* Once value */
6034 static val_t once_value_3
; /* Once value */
6035 static val_t once_value_5
; /* Once value */
6036 static val_t once_value_6
; /* Once value */
6037 static val_t once_value_8
; /* Once value */
6038 static val_t once_value_9
; /* Once value */
6039 static val_t once_value_10
; /* Once value */
6040 static val_t once_value_11
; /* Once value */
6041 static val_t once_value_12
; /* Once value */
6042 static val_t once_value_13
; /* Once value */
6043 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6044 fra
.me
.file
= LOCATE_syntax___typing
;
6046 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___after_typing
;
6047 fra
.me
.has_broke
= 0;
6048 fra
.me
.REG_size
= 10;
6049 fra
.me
.nitni_local_ref_head
= NULL
;
6050 fra
.me
.REG
[0] = NIT_NULL
;
6051 fra
.me
.REG
[1] = NIT_NULL
;
6052 fra
.me
.REG
[2] = NIT_NULL
;
6053 fra
.me
.REG
[3] = NIT_NULL
;
6054 fra
.me
.REG
[4] = NIT_NULL
;
6055 fra
.me
.REG
[5] = NIT_NULL
;
6056 fra
.me
.REG
[6] = NIT_NULL
;
6057 fra
.me
.REG
[7] = NIT_NULL
;
6058 fra
.me
.REG
[8] = NIT_NULL
;
6059 fra
.me
.REG
[9] = NIT_NULL
;
6062 /* ./syntax//typing.nit:1117 */
6063 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6064 /* ./syntax//typing.nit:1119 */
6065 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6066 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6067 fra
.me
.REG
[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6068 /* ./syntax//typing.nit:1120 */
6069 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6070 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6071 if (UNTAG_Bool(REGB0
)) {
6072 /* ./syntax//typing.nit:1121 */
6073 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6074 REGB0
= TAG_Bool(true);
6075 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
6077 /* ./syntax//typing.nit:1122 */
6078 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6079 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6080 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6081 if (UNTAG_Bool(REGB0
)) {
6082 /* ./syntax//typing.nit:1123 */
6083 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6084 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6085 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6086 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6087 /* ./../lib/standard//collection//array.nit:266 */
6088 fra
.me
.REG
[4] = fra
.me
.REG
[5];
6089 /* ./../lib/standard//collection//array.nit:269 */
6091 /* ./../lib/standard//collection//array.nit:270 */
6092 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6093 if (UNTAG_Bool(REGB1
)) {
6095 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6097 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6098 /* ./../lib/standard//collection//array.nit:271 */
6099 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6100 /* ./../lib/standard//collection//array.nit:272 */
6102 /* ./../lib/standard//collection//array.nit:24 */
6103 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6104 if (UNTAG_Bool(REGB1
)) {
6106 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6108 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6109 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6110 if (UNTAG_Bool(REGB2
)) {
6112 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6114 /* ./../lib/standard//kernel.nit:232 */
6115 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6116 /* ./../lib/standard//collection//array.nit:272 */
6117 if (UNTAG_Bool(REGB1
)) {
6118 /* ./../lib/standard//collection//array.nit:273 */
6119 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6120 if (UNTAG_Bool(REGB1
)) {
6121 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6123 /* ./../lib/standard//collection//array.nit:718 */
6124 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6125 /* ./syntax//typing.nit:1125 */
6126 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6127 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6128 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6129 if (UNTAG_Bool(REGB1
)) {
6130 /* ./syntax//typing.nit:1126 */
6132 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6133 if (!once_value_1
) {
6134 fra
.me
.REG
[9] = BOX_NativeString("Error: ");
6136 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6137 once_value_1
= fra
.me
.REG
[9];
6138 register_static_object(&once_value_1
);
6139 } else fra
.me
.REG
[9] = once_value_1
;
6140 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6141 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6142 fra
.me
.REG
[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6143 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6145 if (!once_value_2
) {
6146 fra
.me
.REG
[9] = BOX_NativeString("::");
6148 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6149 once_value_2
= fra
.me
.REG
[9];
6150 register_static_object(&once_value_2
);
6151 } else fra
.me
.REG
[9] = once_value_2
;
6152 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6153 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6154 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6155 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6156 if (!once_value_3
) {
6157 fra
.me
.REG
[9] = BOX_NativeString(" is not a constructor.");
6158 REGB1
= TAG_Int(22);
6159 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6160 once_value_3
= fra
.me
.REG
[9];
6161 register_static_object(&once_value_3
);
6162 } else fra
.me
.REG
[9] = once_value_3
;
6163 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6164 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6165 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6166 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[8]);
6168 /* ./syntax//typing.nit:1128 */
6169 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6170 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6171 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6172 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6174 /* ./../lib/standard//collection//array.nit:274 */
6176 /* ./../lib/standard//kernel.nit:235 */
6177 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6178 /* ./../lib/standard//collection//array.nit:274 */
6181 /* ./../lib/standard//collection//array.nit:272 */
6186 /* ./syntax//typing.nit:1131 */
6187 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6188 if (UNTAG_Bool(REGB0
)) {
6189 /* ./syntax//typing.nit:1132 */
6191 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6192 if (!once_value_5
) {
6193 fra
.me
.REG
[4] = BOX_NativeString("Error: No contructor named ");
6194 REGB0
= TAG_Int(27);
6195 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6196 once_value_5
= fra
.me
.REG
[4];
6197 register_static_object(&once_value_5
);
6198 } else fra
.me
.REG
[4] = once_value_5
;
6199 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6201 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6202 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6203 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6204 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6205 if (!once_value_6
) {
6206 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses.");
6207 REGB0
= TAG_Int(17);
6208 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6209 once_value_6
= fra
.me
.REG
[4];
6210 register_static_object(&once_value_6
);
6211 } else fra
.me
.REG
[4] = once_value_6
;
6212 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6213 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6214 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6215 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6216 /* ./syntax//typing.nit:1133 */
6219 /* ./../lib/standard//collection//array.nit:24 */
6220 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6221 if (UNTAG_Bool(REGB0
)) {
6223 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6225 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6226 /* ./syntax//typing.nit:1134 */
6228 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6229 if (UNTAG_Bool(REGB2
)) {
6231 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6233 /* ./../lib/standard//kernel.nit:234 */
6234 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
6235 /* ./syntax//typing.nit:1134 */
6236 if (UNTAG_Bool(REGB1
)) {
6237 /* ./syntax//typing.nit:1135 */
6239 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6240 if (!once_value_8
) {
6241 fra
.me
.REG
[4] = BOX_NativeString("Error: Conflicting contructors named ");
6242 REGB1
= TAG_Int(37);
6243 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6244 once_value_8
= fra
.me
.REG
[4];
6245 register_static_object(&once_value_8
);
6246 } else fra
.me
.REG
[4] = once_value_8
;
6247 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6248 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6249 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6250 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6251 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6252 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6253 if (!once_value_9
) {
6254 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses: ");
6255 REGB1
= TAG_Int(18);
6256 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6257 once_value_9
= fra
.me
.REG
[4];
6258 register_static_object(&once_value_9
);
6259 } else fra
.me
.REG
[4] = once_value_9
;
6260 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6261 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6262 if (!once_value_10
) {
6263 fra
.me
.REG
[4] = BOX_NativeString(", ");
6265 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6266 once_value_10
= fra
.me
.REG
[4];
6267 register_static_object(&once_value_10
);
6268 } else fra
.me
.REG
[4] = once_value_10
;
6269 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6270 fra
.me
.REG
[4] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6271 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6272 if (!once_value_11
) {
6273 fra
.me
.REG
[4] = BOX_NativeString(".");
6275 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6276 once_value_11
= fra
.me
.REG
[4];
6277 register_static_object(&once_value_11
);
6278 } else fra
.me
.REG
[4] = once_value_11
;
6279 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6280 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6281 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6282 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6283 /* ./syntax//typing.nit:1136 */
6287 /* ./syntax//typing.nit:1138 */
6288 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6289 /* ./syntax//typing.nit:1139 */
6290 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6291 if (UNTAG_Bool(REGB1
)) {
6293 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1139);
6295 /* ./syntax//typing.nit:1140 */
6296 ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6297 /* ./syntax//typing.nit:1141 */
6298 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[5]);
6299 /* ./syntax//typing.nit:1142 */
6300 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6301 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6303 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
6304 if (UNTAG_Bool(REGB2
)) {
6306 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6308 /* ./../lib/standard//kernel.nit:234 */
6309 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB0
));
6310 /* ./syntax//typing.nit:1142 */
6311 if (UNTAG_Bool(REGB0
)) {
6312 /* ./syntax//typing.nit:1143 */
6313 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6314 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6315 REGB0
= TAG_Bool((fra
.me
.REG
[6]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
6316 if (UNTAG_Bool(REGB0
)) {
6318 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1143);
6320 REGB0
= TAG_Bool(true);
6321 fra
.me
.REG
[6] = CALL_syntax___typing___AAbsSendExpr___get_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[5], REGB0
);
6322 /* ./syntax//typing.nit:1144 */
6323 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6324 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6325 CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[5], fra
.me
.REG
[4]);
6328 /* ./syntax//typing.nit:1147 */
6330 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6331 if (!once_value_12
) {
6332 fra
.me
.REG
[5] = BOX_NativeString("Error: No super method to call for ");
6333 REGB0
= TAG_Int(35);
6334 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6335 once_value_12
= fra
.me
.REG
[5];
6336 register_static_object(&once_value_12
);
6337 } else fra
.me
.REG
[5] = once_value_12
;
6338 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6339 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6340 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6341 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6342 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6343 if (!once_value_13
) {
6344 fra
.me
.REG
[5] = BOX_NativeString(".");
6346 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6347 once_value_13
= fra
.me
.REG
[5];
6348 register_static_object(&once_value_13
);
6349 } else fra
.me
.REG
[5] = once_value_13
;
6350 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6351 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6352 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6353 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
6354 /* ./syntax//typing.nit:1148 */
6358 /* ./syntax//typing.nit:1151 */
6359 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6360 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6361 fra
.me
.REG
[5] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6362 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
6363 if (UNTAG_Bool(REGB0
)) {
6365 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1151);
6367 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6368 if (UNTAG_Bool(REGB0
)) {
6369 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1151);
6371 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6372 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6373 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6374 if (UNTAG_Bool(REGB0
)) {
6376 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6377 if (UNTAG_Bool(REGB1
)) {
6378 REGB1
= TAG_Bool(false);
6381 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6385 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6386 if (UNTAG_Bool(REGB0
)) {
6387 /* ./syntax//typing.nit:1152 */
6388 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___init();
6389 /* ./syntax//typing.nit:1153 */
6390 fra
.me
.REG
[4] = NIT_NULL
;
6391 /* ./../lib/standard//collection//array.nit:269 */
6393 /* ./../lib/standard//collection//array.nit:270 */
6394 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6395 if (UNTAG_Bool(REGB1
)) {
6397 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6399 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6400 /* ./../lib/standard//collection//array.nit:271 */
6401 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
6402 /* ./../lib/standard//collection//array.nit:272 */
6404 /* ./../lib/standard//collection//array.nit:24 */
6405 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6406 if (UNTAG_Bool(REGB1
)) {
6408 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6410 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6411 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6412 if (UNTAG_Bool(REGB2
)) {
6414 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6416 /* ./../lib/standard//kernel.nit:232 */
6417 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6418 /* ./../lib/standard//collection//array.nit:272 */
6419 if (UNTAG_Bool(REGB1
)) {
6420 /* ./../lib/standard//collection//array.nit:273 */
6421 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6422 if (UNTAG_Bool(REGB1
)) {
6423 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6425 /* ./../lib/standard//collection//array.nit:718 */
6426 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6427 /* ./syntax//typing.nit:1155 */
6428 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6429 if (UNTAG_Bool(REGB1
)) {
6431 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1155);
6433 /* ./syntax//typing.nit:1156 */
6434 fra
.me
.REG
[8] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6435 fra
.me
.REG
[8] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6436 REGB1
= TAG_Bool((fra
.me
.REG
[8]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[8], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
6437 if (UNTAG_Bool(REGB1
)) {
6439 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1156);
6441 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6442 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6443 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6444 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6445 if (UNTAG_Bool(REGB1
)) {
6446 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1156);
6448 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6449 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6450 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6451 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6452 if (UNTAG_Bool(REGB1
)) {
6453 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1156);
6455 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6456 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6457 /* ./syntax//typing.nit:1157 */
6458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8]);
6459 /* ./syntax//typing.nit:1158 */
6460 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6461 if (UNTAG_Bool(REGB1
)) {
6463 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6464 if (UNTAG_Bool(REGB2
)) {
6465 REGB2
= TAG_Bool(false);
6468 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6472 if (UNTAG_Bool(REGB1
)) {
6473 REGB1
= TAG_Bool(true);
6475 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6476 if (UNTAG_Bool(REGB2
)) {
6477 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1158);
6479 REGB2
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[8]);
6482 if (UNTAG_Bool(REGB1
)) {
6483 /* ./syntax//typing.nit:1159 */
6484 fra
.me
.REG
[4] = fra
.me
.REG
[8];
6486 /* ./../lib/standard//collection//array.nit:274 */
6488 /* ./../lib/standard//kernel.nit:235 */
6489 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6490 /* ./../lib/standard//collection//array.nit:274 */
6493 /* ./../lib/standard//collection//array.nit:272 */
6498 /* ./../lib/standard//collection//array.nit:269 */
6500 /* ./../lib/standard//collection//array.nit:270 */
6501 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6502 if (UNTAG_Bool(REGB1
)) {
6504 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6506 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6507 /* ./../lib/standard//collection//array.nit:271 */
6508 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
6509 /* ./../lib/standard//collection//array.nit:272 */
6511 /* ./../lib/standard//collection//array.nit:24 */
6512 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6513 if (UNTAG_Bool(REGB1
)) {
6515 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6517 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6518 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6519 if (UNTAG_Bool(REGB2
)) {
6521 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6523 /* ./../lib/standard//kernel.nit:232 */
6524 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6525 /* ./../lib/standard//collection//array.nit:272 */
6526 if (UNTAG_Bool(REGB1
)) {
6527 /* ./../lib/standard//collection//array.nit:273 */
6528 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6529 if (UNTAG_Bool(REGB1
)) {
6530 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6532 /* ./../lib/standard//collection//array.nit:718 */
6533 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6534 /* ./syntax//typing.nit:1163 */
6535 REGB1
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
6536 if (UNTAG_Bool(REGB1
)) {
6538 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1163);
6540 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[4]);
6541 /* ./../lib/standard//collection//array.nit:274 */
6543 /* ./../lib/standard//kernel.nit:235 */
6544 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6545 /* ./../lib/standard//collection//array.nit:274 */
6548 /* ./../lib/standard//collection//array.nit:272 */
6553 /* ./syntax//typing.nit:1165 */
6554 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
6556 /* ./syntax//typing.nit:1167 */
6557 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6558 /* ./syntax//typing.nit:1168 */
6559 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6560 if (UNTAG_Bool(REGB0
)) {
6562 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1168);
6564 /* ./syntax//typing.nit:1169 */
6565 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
6566 /* ./syntax//typing.nit:1170 */
6567 REGB0
= TAG_Bool(true);
6568 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
6570 stack_frame_head
= fra
.me
.prev
;
6573 val_t
syntax___typing___AExternCall___target_class_name(val_t p0
){
6574 struct {struct stack_frame_t me
;} fra
;
6576 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6577 fra
.me
.file
= LOCATE_syntax___typing
;
6579 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_class_name
;
6580 fra
.me
.has_broke
= 0;
6581 fra
.me
.REG_size
= 1;
6582 fra
.me
.nitni_local_ref_head
= NULL
;
6583 fra
.me
.REG
[0] = NIT_NULL
;
6585 /* ./syntax//typing.nit:1175 */
6586 fra
.me
.REG
[0] = NIT_NULL
;
6589 stack_frame_head
= fra
.me
.prev
;
6590 return fra
.me
.REG
[0];
6592 val_t
syntax___typing___AExternCall___target_method_name(val_t p0
){
6593 struct {struct stack_frame_t me
;} fra
;
6595 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6596 fra
.me
.file
= LOCATE_syntax___typing
;
6598 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_method_name
;
6599 fra
.me
.has_broke
= 0;
6600 fra
.me
.REG_size
= 0;
6601 fra
.me
.nitni_local_ref_head
= NULL
;
6602 /* ./syntax//typing.nit:1176 */
6603 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1176);
6604 stack_frame_head
= fra
.me
.prev
;
6607 void syntax___typing___AExternCall___after_typing(val_t p0
, val_t p1
){
6608 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
6612 static val_t once_value_1
; /* Once value */
6613 static val_t once_value_2
; /* Once value */
6614 static val_t once_value_4
; /* Once value */
6615 static val_t once_value_5
; /* Once value */
6616 static val_t once_value_6
; /* Once value */
6617 static val_t once_value_7
; /* Once value */
6618 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6619 fra
.me
.file
= LOCATE_syntax___typing
;
6621 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___after_typing
;
6622 fra
.me
.has_broke
= 0;
6623 fra
.me
.REG_size
= 8;
6624 fra
.me
.nitni_local_ref_head
= NULL
;
6625 fra
.me
.REG
[0] = NIT_NULL
;
6626 fra
.me
.REG
[1] = NIT_NULL
;
6627 fra
.me
.REG
[2] = NIT_NULL
;
6628 fra
.me
.REG
[3] = NIT_NULL
;
6629 fra
.me
.REG
[4] = NIT_NULL
;
6630 fra
.me
.REG
[5] = NIT_NULL
;
6631 fra
.me
.REG
[6] = NIT_NULL
;
6632 fra
.me
.REG
[7] = NIT_NULL
;
6635 /* ./syntax//typing.nit:1178 */
6636 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6637 /* ./syntax//typing.nit:1180 */
6638 fra
.me
.REG
[3] = CALL_syntax___typing___AExternCall___target_class_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6639 /* ./syntax//typing.nit:1181 */
6640 fra
.me
.REG
[4] = CALL_syntax___typing___AExternCall___target_method_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6641 /* ./syntax//typing.nit:1188 */
6642 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6643 if (UNTAG_Bool(REGB0
)) {
6645 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6646 if (UNTAG_Bool(REGB1
)) {
6647 REGB1
= TAG_Bool(false);
6650 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6654 if (UNTAG_Bool(REGB0
)) {
6655 /* ./syntax//typing.nit:1189 */
6656 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6657 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6659 /* ./syntax//typing.nit:1191 */
6660 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6661 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6662 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6663 if (UNTAG_Bool(REGB0
)) {
6664 /* ./syntax//typing.nit:1192 */
6665 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6666 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6667 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6668 /* ./syntax//typing.nit:1193 */
6669 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6670 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6671 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
6672 fra
.me
.REG
[5] = fra
.me
.REG
[6];
6674 /* ./syntax//typing.nit:1195 */
6676 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6677 if (!once_value_1
) {
6678 fra
.me
.REG
[7] = BOX_NativeString("Error: class ");
6679 REGB0
= TAG_Int(13);
6680 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6681 once_value_1
= fra
.me
.REG
[7];
6682 register_static_object(&once_value_1
);
6683 } else fra
.me
.REG
[7] = once_value_1
;
6684 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
6686 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6687 if (UNTAG_Bool(REGB0
)) {
6688 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1195);
6690 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6691 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6692 if (!once_value_2
) {
6693 fra
.me
.REG
[3] = BOX_NativeString(", not found.");
6694 REGB0
= TAG_Int(12);
6695 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6696 once_value_2
= fra
.me
.REG
[3];
6697 register_static_object(&once_value_2
);
6698 } else fra
.me
.REG
[3] = once_value_2
;
6699 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6700 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6701 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6702 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6703 /* ./syntax//typing.nit:1196 */
6707 /* ./syntax//typing.nit:1200 */
6708 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
6709 if (UNTAG_Bool(REGB0
)) {
6710 /* ./syntax//typing.nit:1201 */
6711 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
6712 /* ./syntax//typing.nit:1203 */
6713 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6714 /* ./syntax//typing.nit:1205 */
6715 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6716 if (UNTAG_Bool(REGB0
)) {
6718 /* ./syntax//typing.nit:1208 */
6720 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6721 if (!once_value_4
) {
6722 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
6723 REGB0
= TAG_Int(16);
6724 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6725 once_value_4
= fra
.me
.REG
[7];
6726 register_static_object(&once_value_4
);
6727 } else fra
.me
.REG
[7] = once_value_4
;
6728 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6729 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6730 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6732 if (!once_value_5
) {
6733 fra
.me
.REG
[7] = BOX_NativeString(" is not a method.");
6734 REGB0
= TAG_Int(17);
6735 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6736 once_value_5
= fra
.me
.REG
[7];
6737 register_static_object(&once_value_5
);
6738 } else fra
.me
.REG
[7] = once_value_5
;
6739 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6741 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6742 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6743 /* ./syntax//typing.nit:1209 */
6747 /* ./syntax//typing.nit:1212 */
6749 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6750 if (!once_value_6
) {
6751 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
6752 REGB0
= TAG_Int(16);
6753 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6754 once_value_6
= fra
.me
.REG
[7];
6755 register_static_object(&once_value_6
);
6756 } else fra
.me
.REG
[7] = once_value_6
;
6757 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6759 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6760 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6761 if (!once_value_7
) {
6762 fra
.me
.REG
[4] = BOX_NativeString(" not found in target class.");
6763 REGB0
= TAG_Int(27);
6764 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6765 once_value_7
= fra
.me
.REG
[4];
6766 register_static_object(&once_value_7
);
6767 } else fra
.me
.REG
[4] = once_value_7
;
6768 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6770 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6771 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6772 /* ./syntax//typing.nit:1213 */
6775 /* ./syntax//typing.nit:1216 */
6776 fra
.me
.REG
[6] = NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6777 /* ./syntax//typing.nit:1217 */
6778 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6779 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6780 if (UNTAG_Bool(REGB0
)) {
6782 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1217);
6784 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6787 stack_frame_head
= fra
.me
.prev
;
6790 val_t
syntax___typing___ALocalPropExternCall___target_class_name(val_t p0
){
6791 struct {struct stack_frame_t me
;} fra
;
6793 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6794 fra
.me
.file
= LOCATE_syntax___typing
;
6796 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_class_name
;
6797 fra
.me
.has_broke
= 0;
6798 fra
.me
.REG_size
= 1;
6799 fra
.me
.nitni_local_ref_head
= NULL
;
6800 fra
.me
.REG
[0] = NIT_NULL
;
6802 /* ./syntax//typing.nit:1222 */
6803 fra
.me
.REG
[0] = NIT_NULL
;
6806 stack_frame_head
= fra
.me
.prev
;
6807 return fra
.me
.REG
[0];
6809 val_t
syntax___typing___ALocalPropExternCall___target_method_name(val_t p0
){
6810 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6813 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6814 fra
.me
.file
= LOCATE_syntax___typing
;
6816 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_method_name
;
6817 fra
.me
.has_broke
= 0;
6818 fra
.me
.REG_size
= 2;
6819 fra
.me
.nitni_local_ref_head
= NULL
;
6820 fra
.me
.REG
[0] = NIT_NULL
;
6821 fra
.me
.REG
[1] = NIT_NULL
;
6823 /* ./syntax//typing.nit:1223 */
6824 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6825 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ALocalPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6826 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6827 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_standard___symbol___Symbol
, ID_standard___symbol___Symbol
)) /*cast Symbol*/;
6828 if (UNTAG_Bool(REGB0
)) {
6830 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1223);
6834 stack_frame_head
= fra
.me
.prev
;
6835 return fra
.me
.REG
[1];
6837 void syntax___typing___ASuperExternCall___after_typing(val_t p0
, val_t p1
){
6838 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6841 static val_t once_value_1
; /* Once value */
6842 static val_t once_value_2
; /* Once value */
6843 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6844 fra
.me
.file
= LOCATE_syntax___typing
;
6846 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExternCall___after_typing
;
6847 fra
.me
.has_broke
= 0;
6848 fra
.me
.REG_size
= 4;
6849 fra
.me
.nitni_local_ref_head
= NULL
;
6850 fra
.me
.REG
[0] = NIT_NULL
;
6851 fra
.me
.REG
[1] = NIT_NULL
;
6852 fra
.me
.REG
[2] = NIT_NULL
;
6853 fra
.me
.REG
[3] = NIT_NULL
;
6856 /* ./syntax//typing.nit:1229 */
6857 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6858 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6859 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6860 /* ./syntax//typing.nit:1230 */
6861 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6862 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6863 if (UNTAG_Bool(REGB0
)) {
6864 /* ./syntax//typing.nit:1231 */
6865 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6866 REGB0
= TAG_Bool(true);
6867 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
6869 /* ./syntax//typing.nit:1233 */
6871 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6872 if (!once_value_1
) {
6873 fra
.me
.REG
[3] = BOX_NativeString("Error: No super method to call for ");
6874 REGB0
= TAG_Int(35);
6875 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6876 once_value_1
= fra
.me
.REG
[3];
6877 register_static_object(&once_value_1
);
6878 } else fra
.me
.REG
[3] = once_value_1
;
6879 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6880 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6881 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6882 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6884 if (!once_value_2
) {
6885 fra
.me
.REG
[3] = BOX_NativeString(".");
6887 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6888 once_value_2
= fra
.me
.REG
[3];
6889 register_static_object(&once_value_2
);
6890 } else fra
.me
.REG
[3] = once_value_2
;
6891 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6892 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6893 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6894 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6895 /* ./syntax//typing.nit:1234 */
6899 stack_frame_head
= fra
.me
.prev
;
6902 val_t
syntax___typing___AFullPropExternCall___target_class_name(val_t p0
){
6903 struct {struct stack_frame_t me
;} fra
;
6905 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6906 fra
.me
.file
= LOCATE_syntax___typing
;
6908 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_class_name
;
6909 fra
.me
.has_broke
= 0;
6910 fra
.me
.REG_size
= 1;
6911 fra
.me
.nitni_local_ref_head
= NULL
;
6912 fra
.me
.REG
[0] = NIT_NULL
;
6914 /* ./syntax//typing.nit:1240 */
6915 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AFullPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6916 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6919 stack_frame_head
= fra
.me
.prev
;
6920 return fra
.me
.REG
[0];
6922 val_t
syntax___typing___AFullPropExternCall___target_method_name(val_t p0
){
6923 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6926 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6927 fra
.me
.file
= LOCATE_syntax___typing
;
6929 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_method_name
;
6930 fra
.me
.has_broke
= 0;
6931 fra
.me
.REG_size
= 2;
6932 fra
.me
.nitni_local_ref_head
= NULL
;
6933 fra
.me
.REG
[0] = NIT_NULL
;
6934 fra
.me
.REG
[1] = NIT_NULL
;
6936 /* ./syntax//typing.nit:1241 */
6937 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6938 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AFullPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6939 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6940 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_standard___symbol___Symbol
, ID_standard___symbol___Symbol
)) /*cast Symbol*/;
6941 if (UNTAG_Bool(REGB0
)) {
6943 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1241);
6947 stack_frame_head
= fra
.me
.prev
;
6948 return fra
.me
.REG
[1];
6950 val_t
syntax___typing___AInitPropExternCall___target_class_name(val_t p0
){
6951 struct {struct stack_frame_t me
;} fra
;
6953 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6954 fra
.me
.file
= LOCATE_syntax___typing
;
6956 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_class_name
;
6957 fra
.me
.has_broke
= 0;
6958 fra
.me
.REG_size
= 1;
6959 fra
.me
.nitni_local_ref_head
= NULL
;
6960 fra
.me
.REG
[0] = NIT_NULL
;
6962 /* ./syntax//typing.nit:1245 */
6963 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6964 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6967 stack_frame_head
= fra
.me
.prev
;
6968 return fra
.me
.REG
[0];
6970 val_t
syntax___typing___AInitPropExternCall___target_method_name(val_t p0
){
6971 struct {struct stack_frame_t me
;} fra
;
6974 static val_t once_value_1
; /* Once value */
6975 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6976 fra
.me
.file
= LOCATE_syntax___typing
;
6978 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_method_name
;
6979 fra
.me
.has_broke
= 0;
6980 fra
.me
.REG_size
= 1;
6981 fra
.me
.nitni_local_ref_head
= NULL
;
6982 fra
.me
.REG
[0] = NIT_NULL
;
6984 /* ./syntax//typing.nit:1246 */
6985 if (!once_value_1
) {
6986 fra
.me
.REG
[0] = BOX_NativeString("init");
6988 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
6989 once_value_1
= fra
.me
.REG
[0];
6990 register_static_object(&once_value_1
);
6991 } else fra
.me
.REG
[0] = once_value_1
;
6992 fra
.me
.REG
[0] = fra
.me
.REG
[0];
6993 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6996 stack_frame_head
= fra
.me
.prev
;
6997 return fra
.me
.REG
[0];
6999 val_t
syntax___typing___ACastExternCall___from_type(val_t p0
){
7000 struct {struct stack_frame_t me
;} fra
;
7002 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7003 fra
.me
.file
= LOCATE_syntax___typing
;
7005 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___from_type
;
7006 fra
.me
.has_broke
= 0;
7007 fra
.me
.REG_size
= 0;
7008 fra
.me
.nitni_local_ref_head
= NULL
;
7009 /* ./syntax//typing.nit:1250 */
7010 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1250);
7011 stack_frame_head
= fra
.me
.prev
;
7014 val_t
syntax___typing___ACastExternCall___to_type(val_t p0
){
7015 struct {struct stack_frame_t me
;} fra
;
7017 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7018 fra
.me
.file
= LOCATE_syntax___typing
;
7020 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___to_type
;
7021 fra
.me
.has_broke
= 0;
7022 fra
.me
.REG_size
= 0;
7023 fra
.me
.nitni_local_ref_head
= NULL
;
7024 /* ./syntax//typing.nit:1251 */
7025 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1251);
7026 stack_frame_head
= fra
.me
.prev
;
7029 void syntax___typing___ACastExternCall___after_typing(val_t p0
, val_t p1
){
7030 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7034 static val_t once_value_1
; /* Once value */
7035 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7036 fra
.me
.file
= LOCATE_syntax___typing
;
7038 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___after_typing
;
7039 fra
.me
.has_broke
= 0;
7040 fra
.me
.REG_size
= 4;
7041 fra
.me
.nitni_local_ref_head
= NULL
;
7042 fra
.me
.REG
[0] = NIT_NULL
;
7043 fra
.me
.REG
[1] = NIT_NULL
;
7044 fra
.me
.REG
[2] = NIT_NULL
;
7045 fra
.me
.REG
[3] = NIT_NULL
;
7048 /* ./syntax//typing.nit:1255 */
7049 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7050 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7051 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
7052 if (UNTAG_Bool(REGB0
)) {
7054 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7057 if (UNTAG_Bool(REGB0
)) {
7058 /* ./syntax//typing.nit:1257 */
7059 if (!once_value_1
) {
7060 fra
.me
.REG
[3] = BOX_NativeString("Attepting to cast from and to the same type.");
7061 REGB0
= TAG_Int(44);
7062 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7063 once_value_1
= fra
.me
.REG
[3];
7064 register_static_object(&once_value_1
);
7065 } else fra
.me
.REG
[3] = once_value_1
;
7066 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7067 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
7069 /* ./syntax//typing.nit:1260 */
7070 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7071 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7072 fra
.me
.REG
[2] = NEW_MMImportedCast_metamodel___static_type___MMImportedCast___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
7073 /* ./syntax//typing.nit:1261 */
7074 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7075 /* ./syntax//typing.nit:1262 */
7076 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
7077 if (UNTAG_Bool(REGB0
)) {
7079 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1262);
7081 /* ./syntax//typing.nit:1263 */
7082 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7083 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7084 stack_frame_head
= fra
.me
.prev
;
7087 val_t
syntax___typing___ACastAsExternCall___from_type(val_t p0
){
7088 struct {struct stack_frame_t me
;} fra
;
7090 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7091 fra
.me
.file
= LOCATE_syntax___typing
;
7093 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___from_type
;
7094 fra
.me
.has_broke
= 0;
7095 fra
.me
.REG_size
= 1;
7096 fra
.me
.nitni_local_ref_head
= NULL
;
7097 fra
.me
.REG
[0] = NIT_NULL
;
7099 /* ./syntax//typing.nit:1268 */
7100 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7101 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7104 stack_frame_head
= fra
.me
.prev
;
7105 return fra
.me
.REG
[0];
7107 val_t
syntax___typing___ACastAsExternCall___to_type(val_t p0
){
7108 struct {struct stack_frame_t me
;} fra
;
7110 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7111 fra
.me
.file
= LOCATE_syntax___typing
;
7113 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___to_type
;
7114 fra
.me
.has_broke
= 0;
7115 fra
.me
.REG_size
= 1;
7116 fra
.me
.nitni_local_ref_head
= NULL
;
7117 fra
.me
.REG
[0] = NIT_NULL
;
7119 /* ./syntax//typing.nit:1269 */
7120 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7121 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7124 stack_frame_head
= fra
.me
.prev
;
7125 return fra
.me
.REG
[0];
7127 val_t
syntax___typing___AAsNullableExternCall___from_type(val_t p0
){
7128 struct {struct stack_frame_t me
;} fra
;
7130 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7131 fra
.me
.file
= LOCATE_syntax___typing
;
7133 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___from_type
;
7134 fra
.me
.has_broke
= 0;
7135 fra
.me
.REG_size
= 1;
7136 fra
.me
.nitni_local_ref_head
= NULL
;
7137 fra
.me
.REG
[0] = NIT_NULL
;
7139 /* ./syntax//typing.nit:1273 */
7140 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7141 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7144 stack_frame_head
= fra
.me
.prev
;
7145 return fra
.me
.REG
[0];
7147 val_t
syntax___typing___AAsNullableExternCall___to_type(val_t p0
){
7148 struct {struct stack_frame_t me
;} fra
;
7150 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7151 fra
.me
.file
= LOCATE_syntax___typing
;
7153 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___to_type
;
7154 fra
.me
.has_broke
= 0;
7155 fra
.me
.REG_size
= 1;
7156 fra
.me
.nitni_local_ref_head
= NULL
;
7157 fra
.me
.REG
[0] = NIT_NULL
;
7159 /* ./syntax//typing.nit:1274 */
7160 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7161 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7162 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7165 stack_frame_head
= fra
.me
.prev
;
7166 return fra
.me
.REG
[0];
7168 val_t
syntax___typing___AAsNotNullableExternCall___from_type(val_t p0
){
7169 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7172 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7173 fra
.me
.file
= LOCATE_syntax___typing
;
7175 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___from_type
;
7176 fra
.me
.has_broke
= 0;
7177 fra
.me
.REG_size
= 2;
7178 fra
.me
.nitni_local_ref_head
= NULL
;
7179 fra
.me
.REG
[0] = NIT_NULL
;
7180 fra
.me
.REG
[1] = NIT_NULL
;
7182 /* ./syntax//typing.nit:1280 */
7183 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7184 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7185 /* ./syntax//typing.nit:1281 */
7186 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7187 if (UNTAG_Bool(REGB0
)) {
7188 /* ./syntax//typing.nit:1283 */
7189 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7192 /* ./syntax//typing.nit:1285 */
7193 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7194 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7198 stack_frame_head
= fra
.me
.prev
;
7199 return fra
.me
.REG
[1];
7201 val_t
syntax___typing___AAsNotNullableExternCall___to_type(val_t p0
){
7202 struct {struct stack_frame_t me
;} fra
;
7204 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7205 fra
.me
.file
= LOCATE_syntax___typing
;
7207 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___to_type
;
7208 fra
.me
.has_broke
= 0;
7209 fra
.me
.REG_size
= 1;
7210 fra
.me
.nitni_local_ref_head
= NULL
;
7211 fra
.me
.REG
[0] = NIT_NULL
;
7213 /* ./syntax//typing.nit:1288 */
7214 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7215 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7216 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7219 stack_frame_head
= fra
.me
.prev
;
7220 return fra
.me
.REG
[0];
7222 val_t
syntax___typing___AAttrFormExpr___prop(val_t p0
){
7223 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7226 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7227 fra
.me
.file
= LOCATE_syntax___typing
;
7229 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___prop
;
7230 fra
.me
.has_broke
= 0;
7231 fra
.me
.REG_size
= 2;
7232 fra
.me
.nitni_local_ref_head
= NULL
;
7233 fra
.me
.REG
[0] = NIT_NULL
;
7234 fra
.me
.REG
[1] = NIT_NULL
;
7236 /* ./syntax//typing.nit:1292 */
7237 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7238 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[1]);
7239 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7240 if (UNTAG_Bool(REGB0
)) {
7242 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1292);
7246 stack_frame_head
= fra
.me
.prev
;
7247 return fra
.me
.REG
[1];
7249 val_t
syntax___typing___AAttrFormExpr___attr_type(val_t p0
){
7250 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7253 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7254 fra
.me
.file
= LOCATE_syntax___typing
;
7256 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___attr_type
;
7257 fra
.me
.has_broke
= 0;
7258 fra
.me
.REG_size
= 2;
7259 fra
.me
.nitni_local_ref_head
= NULL
;
7260 fra
.me
.REG
[0] = NIT_NULL
;
7261 fra
.me
.REG
[1] = NIT_NULL
;
7263 /* ./syntax//typing.nit:1295 */
7264 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7265 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[1]);
7266 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7267 if (UNTAG_Bool(REGB0
)) {
7269 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1295);
7273 stack_frame_head
= fra
.me
.prev
;
7274 return fra
.me
.REG
[1];
7276 void syntax___typing___AAttrFormExpr___do_typing(val_t p0
, val_t p1
){
7277 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7282 static val_t once_value_2
; /* Once value */
7283 static val_t once_value_3
; /* Once value */
7284 static val_t once_value_4
; /* Once value */
7285 static val_t once_value_5
; /* Once value */
7286 static val_t once_value_6
; /* Once value */
7287 static val_t once_value_7
; /* Once value */
7288 static val_t once_value_8
; /* Once value */
7289 static val_t once_value_9
; /* Once value */
7290 static val_t once_value_10
; /* Once value */
7291 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7292 fra
.me
.file
= LOCATE_syntax___typing
;
7294 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___do_typing
;
7295 fra
.me
.has_broke
= 0;
7296 fra
.me
.REG_size
= 7;
7297 fra
.me
.nitni_local_ref_head
= NULL
;
7298 fra
.me
.REG
[0] = NIT_NULL
;
7299 fra
.me
.REG
[1] = NIT_NULL
;
7300 fra
.me
.REG
[2] = NIT_NULL
;
7301 fra
.me
.REG
[3] = NIT_NULL
;
7302 fra
.me
.REG
[4] = NIT_NULL
;
7303 fra
.me
.REG
[5] = NIT_NULL
;
7304 fra
.me
.REG
[6] = NIT_NULL
;
7307 /* ./syntax//typing.nit:1301 */
7308 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7309 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7310 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7311 if (UNTAG_Bool(REGB0
)) {
7314 /* ./syntax//typing.nit:1302 */
7315 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7316 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7317 /* ./syntax//typing.nit:1303 */
7318 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7319 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7320 /* ./syntax//typing.nit:1304 */
7321 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
7322 if (UNTAG_Bool(REGB0
)) {
7323 /* ./syntax//typing.nit:1305 */
7325 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7326 if (!once_value_2
) {
7327 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute '");
7328 REGB0
= TAG_Int(18);
7329 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7330 once_value_2
= fra
.me
.REG
[5];
7331 register_static_object(&once_value_2
);
7332 } else fra
.me
.REG
[5] = once_value_2
;
7333 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7334 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7335 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7336 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7337 if (!once_value_3
) {
7338 fra
.me
.REG
[5] = BOX_NativeString("' access on 'null'.");
7339 REGB0
= TAG_Int(19);
7340 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7341 once_value_3
= fra
.me
.REG
[5];
7342 register_static_object(&once_value_3
);
7343 } else fra
.me
.REG
[5] = once_value_3
;
7344 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7346 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7347 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7348 /* ./syntax//typing.nit:1306 */
7351 /* ./syntax//typing.nit:1308 */
7352 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7353 /* ./syntax//typing.nit:1309 */
7354 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7355 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7356 if (UNTAG_Bool(REGB0
)) {
7357 /* ./syntax//typing.nit:1310 */
7359 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7360 if (!once_value_4
) {
7361 fra
.me
.REG
[6] = BOX_NativeString("Error: Attribute ");
7362 REGB0
= TAG_Int(17);
7363 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7364 once_value_4
= fra
.me
.REG
[6];
7365 register_static_object(&once_value_4
);
7366 } else fra
.me
.REG
[6] = once_value_4
;
7367 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7368 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7369 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7370 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7371 if (!once_value_5
) {
7372 fra
.me
.REG
[6] = BOX_NativeString(" doesn't exists in ");
7373 REGB0
= TAG_Int(19);
7374 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7375 once_value_5
= fra
.me
.REG
[6];
7376 register_static_object(&once_value_5
);
7377 } else fra
.me
.REG
[6] = once_value_5
;
7378 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7379 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7380 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7381 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7382 if (!once_value_6
) {
7383 fra
.me
.REG
[6] = BOX_NativeString(".");
7385 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7386 once_value_6
= fra
.me
.REG
[6];
7387 register_static_object(&once_value_6
);
7388 } else fra
.me
.REG
[6] = once_value_6
;
7389 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7390 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7391 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7392 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7393 /* ./syntax//typing.nit:1311 */
7396 /* ./syntax//typing.nit:1313 */
7397 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_attribute(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7398 /* ./syntax//typing.nit:1314 */
7399 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7400 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7401 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7402 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7403 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7405 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
7406 if (UNTAG_Bool(REGB2
)) {
7408 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7410 /* ./../lib/standard//kernel.nit:232 */
7411 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
7412 /* ./syntax//typing.nit:1314 */
7413 if (UNTAG_Bool(REGB1
)) {
7414 /* ./syntax//typing.nit:1315 */
7416 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
7417 if (!once_value_7
) {
7418 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute ");
7419 REGB1
= TAG_Int(17);
7420 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
7421 once_value_7
= fra
.me
.REG
[5];
7422 register_static_object(&once_value_7
);
7423 } else fra
.me
.REG
[5] = once_value_7
;
7424 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7425 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
7426 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7427 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7428 if (!once_value_8
) {
7429 fra
.me
.REG
[3] = BOX_NativeString(" from ");
7431 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7432 once_value_8
= fra
.me
.REG
[3];
7433 register_static_object(&once_value_8
);
7434 } else fra
.me
.REG
[3] = once_value_8
;
7435 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7436 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7437 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7438 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7439 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7440 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7442 if (!once_value_9
) {
7443 fra
.me
.REG
[3] = BOX_NativeString(" is invisible in ");
7444 REGB1
= TAG_Int(17);
7445 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7446 once_value_9
= fra
.me
.REG
[3];
7447 register_static_object(&once_value_9
);
7448 } else fra
.me
.REG
[3] = once_value_9
;
7449 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7451 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7452 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7453 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7454 if (!once_value_10
) {
7455 fra
.me
.REG
[3] = BOX_NativeString("");
7457 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7458 once_value_10
= fra
.me
.REG
[3];
7459 register_static_object(&once_value_10
);
7460 } else fra
.me
.REG
[3] = once_value_10
;
7461 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7462 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7463 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7464 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
7466 /* ./syntax//typing.nit:1317 */
7467 ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
7468 /* ./syntax//typing.nit:1318 */
7469 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7470 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7471 /* ./syntax//typing.nit:1319 */
7472 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7473 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7474 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7475 if (UNTAG_Bool(REGB1
)) {
7476 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7477 if (UNTAG_Bool(REGB1
)) {
7478 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1319);
7480 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7481 fra
.me
.REG
[2] = fra
.me
.REG
[4];
7483 /* ./syntax//typing.nit:1320 */
7484 ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
7486 stack_frame_head
= fra
.me
.prev
;
7489 void syntax___typing___AAttrExpr___after_typing(val_t p0
, val_t p1
){
7490 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7494 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7495 fra
.me
.file
= LOCATE_syntax___typing
;
7497 fra
.me
.meth
= LOCATE_syntax___typing___AAttrExpr___after_typing
;
7498 fra
.me
.has_broke
= 0;
7499 fra
.me
.REG_size
= 2;
7500 fra
.me
.nitni_local_ref_head
= NULL
;
7501 fra
.me
.REG
[0] = NIT_NULL
;
7502 fra
.me
.REG
[1] = NIT_NULL
;
7505 /* ./syntax//typing.nit:1327 */
7506 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7507 /* ./syntax//typing.nit:1328 */
7508 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7509 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7510 if (UNTAG_Bool(REGB0
)) {
7512 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7513 if (UNTAG_Bool(REGB1
)) {
7514 REGB1
= TAG_Bool(false);
7517 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7521 if (UNTAG_Bool(REGB0
)) {
7524 /* ./syntax//typing.nit:1329 */
7525 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7526 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7527 /* ./syntax//typing.nit:1330 */
7528 REGB0
= TAG_Bool(true);
7529 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7531 stack_frame_head
= fra
.me
.prev
;
7534 void syntax___typing___AAttrAssignExpr___after_typing(val_t p0
, val_t p1
){
7535 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7539 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7540 fra
.me
.file
= LOCATE_syntax___typing
;
7542 fra
.me
.meth
= LOCATE_syntax___typing___AAttrAssignExpr___after_typing
;
7543 fra
.me
.has_broke
= 0;
7544 fra
.me
.REG_size
= 4;
7545 fra
.me
.nitni_local_ref_head
= NULL
;
7546 fra
.me
.REG
[0] = NIT_NULL
;
7547 fra
.me
.REG
[1] = NIT_NULL
;
7548 fra
.me
.REG
[2] = NIT_NULL
;
7549 fra
.me
.REG
[3] = NIT_NULL
;
7552 /* ./syntax//typing.nit:1337 */
7553 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7554 /* ./syntax//typing.nit:1338 */
7555 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7556 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7557 if (UNTAG_Bool(REGB0
)) {
7559 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7560 if (UNTAG_Bool(REGB1
)) {
7561 REGB1
= TAG_Bool(false);
7564 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7568 if (UNTAG_Bool(REGB0
)) {
7571 /* ./syntax//typing.nit:1339 */
7572 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7573 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7574 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
7575 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7576 if (UNTAG_Bool(REGB0
)) {
7579 /* ./syntax//typing.nit:1340 */
7580 REGB0
= TAG_Bool(true);
7581 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7583 stack_frame_head
= fra
.me
.prev
;
7586 void syntax___typing___AAttrReassignExpr___after_typing(val_t p0
, val_t p1
){
7587 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7591 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7592 fra
.me
.file
= LOCATE_syntax___typing
;
7594 fra
.me
.meth
= LOCATE_syntax___typing___AAttrReassignExpr___after_typing
;
7595 fra
.me
.has_broke
= 0;
7596 fra
.me
.REG_size
= 4;
7597 fra
.me
.nitni_local_ref_head
= NULL
;
7598 fra
.me
.REG
[0] = NIT_NULL
;
7599 fra
.me
.REG
[1] = NIT_NULL
;
7600 fra
.me
.REG
[2] = NIT_NULL
;
7601 fra
.me
.REG
[3] = NIT_NULL
;
7604 /* ./syntax//typing.nit:1347 */
7605 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7606 /* ./syntax//typing.nit:1348 */
7607 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7608 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7609 if (UNTAG_Bool(REGB0
)) {
7611 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7612 if (UNTAG_Bool(REGB1
)) {
7613 REGB1
= TAG_Bool(false);
7616 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7620 if (UNTAG_Bool(REGB0
)) {
7623 /* ./syntax//typing.nit:1349 */
7624 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7625 fra
.me
.REG
[2] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
7626 /* ./syntax//typing.nit:1350 */
7627 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7628 if (UNTAG_Bool(REGB0
)) {
7630 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7631 if (UNTAG_Bool(REGB1
)) {
7632 REGB1
= TAG_Bool(false);
7635 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7639 if (UNTAG_Bool(REGB0
)) {
7642 /* ./syntax//typing.nit:1351 */
7643 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7644 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7645 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
7646 /* ./syntax//typing.nit:1352 */
7647 REGB0
= TAG_Bool(true);
7648 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7650 stack_frame_head
= fra
.me
.prev
;
7653 void syntax___typing___AIssetAttrExpr___after_typing(val_t p0
, val_t p1
){
7654 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7658 static val_t once_value_2
; /* Once value */
7659 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7660 fra
.me
.file
= LOCATE_syntax___typing
;
7662 fra
.me
.meth
= LOCATE_syntax___typing___AIssetAttrExpr___after_typing
;
7663 fra
.me
.has_broke
= 0;
7664 fra
.me
.REG_size
= 3;
7665 fra
.me
.nitni_local_ref_head
= NULL
;
7666 fra
.me
.REG
[0] = NIT_NULL
;
7667 fra
.me
.REG
[1] = NIT_NULL
;
7668 fra
.me
.REG
[2] = NIT_NULL
;
7671 /* ./syntax//typing.nit:1359 */
7672 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7673 /* ./syntax//typing.nit:1360 */
7674 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7675 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7676 if (UNTAG_Bool(REGB0
)) {
7678 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7679 if (UNTAG_Bool(REGB1
)) {
7680 REGB1
= TAG_Bool(false);
7683 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7687 if (UNTAG_Bool(REGB0
)) {
7690 /* ./syntax//typing.nit:1361 */
7691 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7692 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7693 if (UNTAG_Bool(REGB0
)) {
7694 /* ./syntax//typing.nit:1362 */
7695 if (!once_value_2
) {
7696 fra
.me
.REG
[2] = BOX_NativeString("Error: isset on a nullable attribute.");
7697 REGB0
= TAG_Int(37);
7698 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7699 once_value_2
= fra
.me
.REG
[2];
7700 register_static_object(&once_value_2
);
7701 } else fra
.me
.REG
[2] = once_value_2
;
7702 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7703 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
7705 /* ./syntax//typing.nit:1364 */
7706 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7707 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7708 /* ./syntax//typing.nit:1365 */
7709 REGB0
= TAG_Bool(true);
7710 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7712 stack_frame_head
= fra
.me
.prev
;
7715 val_t
syntax___typing___AAbsAbsSendExpr___prop_signature(val_t p0
){
7716 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7719 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7720 fra
.me
.file
= LOCATE_syntax___typing
;
7722 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature
;
7723 fra
.me
.has_broke
= 0;
7724 fra
.me
.REG_size
= 2;
7725 fra
.me
.nitni_local_ref_head
= NULL
;
7726 fra
.me
.REG
[0] = NIT_NULL
;
7727 fra
.me
.REG
[1] = NIT_NULL
;
7729 /* ./syntax//typing.nit:1370 */
7730 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7731 /* ./syntax//typing.nit:1371 */
7732 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[1]);
7733 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7734 if (UNTAG_Bool(REGB0
)) {
7736 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1371);
7740 stack_frame_head
= fra
.me
.prev
;
7741 return fra
.me
.REG
[1];
7743 val_t
syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0
){
7744 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7748 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7749 fra
.me
.file
= LOCATE_syntax___typing
;
7751 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments
;
7752 fra
.me
.has_broke
= 0;
7753 fra
.me
.REG_size
= 4;
7754 fra
.me
.nitni_local_ref_head
= NULL
;
7755 fra
.me
.REG
[0] = NIT_NULL
;
7756 fra
.me
.REG
[1] = NIT_NULL
;
7757 fra
.me
.REG
[2] = NIT_NULL
;
7758 fra
.me
.REG
[3] = NIT_NULL
;
7760 /* ./syntax//typing.nit:1377 */
7761 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]);
7762 /* ./syntax//typing.nit:1378 */
7763 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7764 if (UNTAG_Bool(REGB0
)) {
7766 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7767 if (UNTAG_Bool(REGB1
)) {
7768 REGB1
= TAG_Bool(false);
7771 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7775 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7776 if (UNTAG_Bool(REGB0
)) {
7777 /* ./syntax//typing.nit:1379 */
7778 fra
.me
.REG
[2] = fra
.me
.REG
[1];
7781 /* ./syntax//typing.nit:1381 */
7782 fra
.me
.REG
[3] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7783 fra
.me
.REG
[1] = fra
.me
.REG
[3];
7784 /* ./syntax//typing.nit:1382 */
7785 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7786 if (UNTAG_Bool(REGB0
)) {
7788 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7789 if (UNTAG_Bool(REGB1
)) {
7790 REGB1
= TAG_Bool(false);
7793 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7797 if (UNTAG_Bool(REGB0
)) {
7798 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
7799 fra
.me
.REG
[1] = fra
.me
.REG
[3];
7801 /* ./syntax//typing.nit:1383 */
7802 ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7803 /* ./syntax//typing.nit:1384 */
7804 fra
.me
.REG
[2] = fra
.me
.REG
[1];
7808 stack_frame_head
= fra
.me
.prev
;
7809 return fra
.me
.REG
[2];
7811 val_t
syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0
){
7812 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7815 static val_t once_value_1
; /* Once value */
7816 static val_t once_value_2
; /* Once value */
7817 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7818 fra
.me
.file
= LOCATE_syntax___typing
;
7820 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments
;
7821 fra
.me
.has_broke
= 0;
7822 fra
.me
.REG_size
= 3;
7823 fra
.me
.nitni_local_ref_head
= NULL
;
7824 fra
.me
.REG
[0] = NIT_NULL
;
7825 fra
.me
.REG
[1] = NIT_NULL
;
7826 fra
.me
.REG
[2] = NIT_NULL
;
7828 /* ./syntax//typing.nit:1392 */
7830 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7831 if (!once_value_1
) {
7832 fra
.me
.REG
[2] = BOX_NativeString("");
7834 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7835 once_value_1
= fra
.me
.REG
[2];
7836 register_static_object(&once_value_1
);
7837 } else fra
.me
.REG
[2] = once_value_1
;
7838 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7839 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7840 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7841 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7842 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7843 if (!once_value_2
) {
7844 fra
.me
.REG
[2] = BOX_NativeString(" no compute_raw_arguments");
7845 REGB0
= TAG_Int(25);
7846 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7847 once_value_2
= fra
.me
.REG
[2];
7848 register_static_object(&once_value_2
);
7849 } else fra
.me
.REG
[2] = once_value_2
;
7850 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7852 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7853 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7854 /* ./syntax//typing.nit:1393 */
7855 fra
.me
.REG
[1] = NIT_NULL
;
7858 stack_frame_head
= fra
.me
.prev
;
7859 return fra
.me
.REG
[1];
7861 val_t
syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
7862 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7876 static val_t once_value_1
; /* Once value */
7877 static val_t once_value_2
; /* Once value */
7878 static val_t once_value_3
; /* Once value */
7879 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7880 fra
.me
.file
= LOCATE_syntax___typing
;
7882 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature
;
7883 fra
.me
.has_broke
= 0;
7884 fra
.me
.REG_size
= 7;
7885 fra
.me
.nitni_local_ref_head
= NULL
;
7886 fra
.me
.REG
[0] = NIT_NULL
;
7887 fra
.me
.REG
[1] = NIT_NULL
;
7888 fra
.me
.REG
[2] = NIT_NULL
;
7889 fra
.me
.REG
[3] = NIT_NULL
;
7890 fra
.me
.REG
[4] = NIT_NULL
;
7891 fra
.me
.REG
[5] = NIT_NULL
;
7892 fra
.me
.REG
[6] = NIT_NULL
;
7898 /* ./syntax//typing.nit:1399 */
7899 REGB0
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7900 /* ./syntax//typing.nit:1400 */
7901 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7902 /* ./syntax//typing.nit:1402 */
7903 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7904 if (UNTAG_Bool(REGB2
)) {
7906 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7907 if (UNTAG_Bool(REGB3
)) {
7908 REGB3
= TAG_Bool(false);
7911 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7915 if (UNTAG_Bool(REGB2
)) {
7918 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7919 if (UNTAG_Bool(REGB3
)) {
7920 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1402);
7922 /* ./../lib/standard//collection//array.nit:24 */
7923 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7924 if (UNTAG_Bool(REGB3
)) {
7926 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
7928 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7929 /* ./syntax//typing.nit:1402 */
7932 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
7933 if (UNTAG_Bool(REGB3
)) {
7935 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7937 /* ./../lib/standard//kernel.nit:234 */
7938 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7939 /* ./syntax//typing.nit:1403 */
7940 if (UNTAG_Bool(REGB3
)) {
7941 REGB3
= TAG_Bool(true);
7943 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
7944 if (UNTAG_Bool(REGB4
)) {
7946 /* ./../lib/standard//kernel.nit:227 */
7947 REGB5
= TAG_Bool((REGB1
)==(REGB2
));
7948 /* ./syntax//typing.nit:1403 */
7951 REGB4
= TAG_Bool(!UNTAG_Bool(REGB4
));
7952 if (UNTAG_Bool(REGB4
)) {
7954 /* ./../lib/standard//kernel.nit:236 */
7955 REGB4
= TAG_Int(-UNTAG_Int(REGB4
));
7956 /* ./syntax//typing.nit:1403 */
7957 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB4
));
7958 if (UNTAG_Bool(REGB5
)) {
7960 /* ./../lib/standard//kernel.nit:227 */
7961 REGB4
= TAG_Bool((REGB0
)==(REGB4
));
7962 /* ./syntax//typing.nit:1403 */
7966 REGB4
= TAG_Bool(false);
7971 if (UNTAG_Bool(REGB3
)) {
7972 /* ./syntax//typing.nit:1404 */
7974 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3
);
7975 if (!once_value_1
) {
7976 fra
.me
.REG
[6] = BOX_NativeString("Error: arity mismatch; prototype is '");
7977 REGB3
= TAG_Int(37);
7978 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB3
);
7979 once_value_1
= fra
.me
.REG
[6];
7980 register_static_object(&once_value_1
);
7981 } else fra
.me
.REG
[6] = once_value_1
;
7982 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7983 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7984 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7985 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7986 if (!once_value_2
) {
7987 fra
.me
.REG
[3] = BOX_NativeString("");
7989 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
7990 once_value_2
= fra
.me
.REG
[3];
7991 register_static_object(&once_value_2
);
7992 } else fra
.me
.REG
[3] = once_value_2
;
7993 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7995 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7996 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7997 if (!once_value_3
) {
7998 fra
.me
.REG
[3] = BOX_NativeString("'.");
8000 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
8001 once_value_3
= fra
.me
.REG
[3];
8002 register_static_object(&once_value_3
);
8003 } else fra
.me
.REG
[3] = once_value_3
;
8004 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8005 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8006 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8007 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8008 /* ./syntax//typing.nit:1405 */
8009 REGB3
= TAG_Bool(false);
8012 /* ./syntax//typing.nit:1407 */
8014 /* ./syntax//typing.nit:1408 */
8016 /* ./../lib/standard//kernel.nit:347 */
8018 /* ./../lib/standard//kernel.nit:352 */
8020 REGB7
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
8021 if (UNTAG_Bool(REGB7
)) {
8023 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8025 /* ./../lib/standard//kernel.nit:232 */
8026 REGB7
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
8027 /* ./../lib/standard//kernel.nit:352 */
8028 if (UNTAG_Bool(REGB7
)) {
8029 /* ./syntax//typing.nit:1408 */
8031 /* ./syntax//typing.nit:1410 */
8032 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB7
);
8033 /* ./syntax//typing.nit:1411 */
8034 REGB8
= TAG_Bool(IS_EQUAL_OO(REGB7
,REGB0
));
8035 if (UNTAG_Bool(REGB8
)) {
8037 /* ./../lib/standard//kernel.nit:227 */
8038 REGB7
= TAG_Bool((REGB7
)==(REGB0
));
8039 /* ./syntax//typing.nit:1411 */
8042 if (UNTAG_Bool(REGB8
)) {
8043 /* ./syntax//typing.nit:1412 */
8045 /* ./../lib/standard//kernel.nit:237 */
8046 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
8047 /* ./../lib/standard//kernel.nit:341 */
8049 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8050 if (UNTAG_Bool(REGB9
)) {
8052 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8054 /* ./../lib/standard//kernel.nit:231 */
8055 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<=UNTAG_Int(REGB7
));
8056 /* ./../lib/standard//kernel.nit:341 */
8057 if (UNTAG_Bool(REGB9
)) {
8058 /* ./syntax//typing.nit:1413 */
8059 REGB9
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8060 if (UNTAG_Bool(REGB9
)) {
8061 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1413);
8063 /* ./../lib/standard//collection//array.nit:278 */
8064 fra
.me
.REG
[0] = fra
.me
.REG
[4];
8066 /* ./../lib/standard//collection//array.nit:280 */
8067 REGB10
= TAG_Int(0);
8068 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
8069 if (UNTAG_Bool(REGB11
)) {
8071 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8073 /* ./../lib/standard//kernel.nit:233 */
8074 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)>=UNTAG_Int(REGB10
));
8075 /* ./../lib/standard//collection//array.nit:280 */
8076 if (UNTAG_Bool(REGB10
)) {
8077 REGB10
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
8078 if (UNTAG_Bool(REGB10
)) {
8080 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8082 REGB10
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
8083 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
8084 if (UNTAG_Bool(REGB11
)) {
8086 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8088 /* ./../lib/standard//kernel.nit:232 */
8089 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)<UNTAG_Int(REGB10
));
8091 /* ./../lib/standard//collection//array.nit:280 */
8092 REGB11
= TAG_Bool(false);
8095 if (UNTAG_Bool(REGB10
)) {
8097 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
8099 /* ./../lib/standard//collection//array.nit:281 */
8100 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
8101 REGB10
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
8102 if (UNTAG_Bool(REGB10
)) {
8103 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8105 /* ./../lib/standard//collection//array.nit:718 */
8106 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB9
)];
8107 /* ./../lib/standard//collection//array.nit:281 */
8110 /* ./syntax//typing.nit:1414 */
8111 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8112 /* ./syntax//typing.nit:1415 */
8114 /* ./../lib/standard//kernel.nit:235 */
8115 REGB9
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB9
));
8116 /* ./syntax//typing.nit:1415 */
8118 /* ./../lib/standard//kernel.nit:343 */
8120 /* ./../lib/standard//kernel.nit:235 */
8121 REGB9
= TAG_Int(UNTAG_Int(REGB8
)+UNTAG_Int(REGB9
));
8122 /* ./../lib/standard//kernel.nit:343 */
8125 /* ./../lib/standard//kernel.nit:341 */
8131 /* ./syntax//typing.nit:1418 */
8132 REGB8
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8133 if (UNTAG_Bool(REGB8
)) {
8134 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1418);
8136 /* ./../lib/standard//collection//array.nit:278 */
8137 fra
.me
.REG
[3] = fra
.me
.REG
[4];
8139 /* ./../lib/standard//collection//array.nit:280 */
8141 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8142 if (UNTAG_Bool(REGB9
)) {
8144 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8146 /* ./../lib/standard//kernel.nit:233 */
8147 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB7
));
8148 /* ./../lib/standard//collection//array.nit:280 */
8149 if (UNTAG_Bool(REGB7
)) {
8150 REGB7
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
8151 if (UNTAG_Bool(REGB7
)) {
8153 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8155 REGB7
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
8156 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8157 if (UNTAG_Bool(REGB9
)) {
8159 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8161 /* ./../lib/standard//kernel.nit:232 */
8162 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB7
));
8164 /* ./../lib/standard//collection//array.nit:280 */
8165 REGB9
= TAG_Bool(false);
8168 if (UNTAG_Bool(REGB7
)) {
8170 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
8172 /* ./../lib/standard//collection//array.nit:281 */
8173 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
8174 REGB7
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8175 if (UNTAG_Bool(REGB7
)) {
8176 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8178 /* ./../lib/standard//collection//array.nit:718 */
8179 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB8
)];
8180 /* ./../lib/standard//collection//array.nit:281 */
8183 /* ./syntax//typing.nit:1418 */
8184 fra
.me
.REG
[0] = fra
.me
.REG
[3];
8185 /* ./syntax//typing.nit:1419 */
8186 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8187 /* ./syntax//typing.nit:1420 */
8189 /* ./../lib/standard//kernel.nit:235 */
8190 REGB8
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB8
));
8191 /* ./syntax//typing.nit:1420 */
8194 /* ./../lib/standard//kernel.nit:354 */
8196 /* ./../lib/standard//kernel.nit:235 */
8197 REGB8
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB8
));
8198 /* ./../lib/standard//kernel.nit:354 */
8201 /* ./../lib/standard//kernel.nit:352 */
8206 /* ./syntax//typing.nit:1423 */
8207 REGB4
= TAG_Bool(true);
8211 stack_frame_head
= fra
.me
.prev
;
8214 val_t
syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8215 struct {struct stack_frame_t me
; val_t MORE_REG
[16];} fra
;
8223 static val_t once_value_2
; /* Once value */
8224 static val_t once_value_3
; /* Once value */
8225 static val_t once_value_4
; /* Once value */
8226 static val_t once_value_5
; /* Once value */
8227 static val_t once_value_6
; /* Once value */
8228 static val_t once_value_7
; /* Once value */
8229 static val_t once_value_8
; /* Once value */
8230 static val_t once_value_11
; /* Once value */
8231 static val_t once_value_12
; /* Once value */
8232 static val_t once_value_13
; /* Once value */
8233 static val_t once_value_14
; /* Once value */
8234 static val_t once_value_15
; /* Once value */
8235 static val_t once_value_16
; /* Once value */
8236 static val_t once_value_18
; /* Once value */
8237 static val_t once_value_19
; /* Once value */
8238 static val_t once_value_20
; /* Once value */
8239 static val_t once_value_21
; /* Once value */
8240 static val_t once_value_22
; /* Once value */
8241 static val_t once_value_24
; /* Once value */
8242 static val_t once_value_25
; /* Once value */
8243 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8244 fra
.me
.file
= LOCATE_syntax___typing
;
8246 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures
;
8247 fra
.me
.has_broke
= 0;
8248 fra
.me
.REG_size
= 17;
8249 fra
.me
.nitni_local_ref_head
= NULL
;
8250 fra
.me
.REG
[0] = NIT_NULL
;
8251 fra
.me
.REG
[1] = NIT_NULL
;
8252 fra
.me
.REG
[2] = NIT_NULL
;
8253 fra
.me
.REG
[3] = NIT_NULL
;
8254 fra
.me
.REG
[4] = NIT_NULL
;
8255 fra
.me
.REG
[5] = NIT_NULL
;
8256 fra
.me
.REG
[6] = NIT_NULL
;
8257 fra
.me
.REG
[7] = NIT_NULL
;
8258 fra
.me
.REG
[8] = NIT_NULL
;
8259 fra
.me
.REG
[9] = NIT_NULL
;
8260 fra
.me
.REG
[10] = NIT_NULL
;
8261 fra
.me
.REG
[11] = NIT_NULL
;
8262 fra
.me
.REG
[12] = NIT_NULL
;
8263 fra
.me
.REG
[13] = NIT_NULL
;
8264 fra
.me
.REG
[14] = NIT_NULL
;
8265 fra
.me
.REG
[15] = NIT_NULL
;
8266 fra
.me
.REG
[16] = NIT_NULL
;
8272 /* ./syntax//typing.nit:1429 */
8273 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8274 /* ./syntax//typing.nit:1430 */
8275 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8276 /* ./syntax//typing.nit:1431 */
8278 /* ./../lib/standard//collection//array.nit:266 */
8279 fra
.me
.REG
[7] = fra
.me
.REG
[6];
8280 /* ./../lib/standard//collection//array.nit:269 */
8282 /* ./../lib/standard//collection//array.nit:270 */
8283 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8284 if (UNTAG_Bool(REGB2
)) {
8286 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
8288 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8289 /* ./../lib/standard//collection//array.nit:271 */
8290 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8291 /* ./../lib/standard//collection//array.nit:272 */
8293 /* ./../lib/standard//collection//array.nit:24 */
8294 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8295 if (UNTAG_Bool(REGB2
)) {
8297 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8299 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8300 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8301 if (UNTAG_Bool(REGB3
)) {
8303 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8305 /* ./../lib/standard//kernel.nit:232 */
8306 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
8307 /* ./../lib/standard//collection//array.nit:272 */
8308 if (UNTAG_Bool(REGB2
)) {
8309 /* ./../lib/standard//collection//array.nit:273 */
8310 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8311 if (UNTAG_Bool(REGB2
)) {
8312 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
8314 /* ./../lib/standard//collection//array.nit:718 */
8315 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
8316 /* ./syntax//typing.nit:1433 */
8317 REGB2
= CALL_metamodel___static_type___MMClosure___is_optional(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8318 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8319 if (UNTAG_Bool(REGB2
)) {
8321 /* ./../lib/standard//kernel.nit:235 */
8322 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
8323 /* ./syntax//typing.nit:1433 */
8326 /* ./../lib/standard//collection//array.nit:274 */
8328 /* ./../lib/standard//kernel.nit:235 */
8329 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
8330 /* ./../lib/standard//collection//array.nit:274 */
8333 /* ./../lib/standard//collection//array.nit:272 */
8338 /* ./syntax//typing.nit:1435 */
8340 /* ./syntax//typing.nit:1436 */
8341 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8342 if (UNTAG_Bool(REGB2
)) {
8344 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8345 if (UNTAG_Bool(REGB3
)) {
8346 REGB3
= TAG_Bool(false);
8349 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8353 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8354 if (UNTAG_Bool(REGB2
)) {
8355 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8356 if (UNTAG_Bool(REGB2
)) {
8357 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1436);
8359 /* ./../lib/standard//collection//array.nit:24 */
8360 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8361 if (UNTAG_Bool(REGB2
)) {
8363 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8365 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8366 /* ./syntax//typing.nit:1436 */
8369 /* ./../lib/standard//collection//array.nit:24 */
8370 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8371 if (UNTAG_Bool(REGB2
)) {
8373 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8375 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8376 /* ./syntax//typing.nit:1437 */
8378 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8379 if (UNTAG_Bool(REGB4
)) {
8381 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8383 /* ./../lib/standard//kernel.nit:234 */
8384 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
8385 /* ./syntax//typing.nit:1437 */
8386 if (UNTAG_Bool(REGB3
)) {
8387 /* ./syntax//typing.nit:1438 */
8389 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
8390 if (UNTAG_Bool(REGB2
)) {
8392 /* ./../lib/standard//kernel.nit:227 */
8393 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
8394 /* ./syntax//typing.nit:1438 */
8397 if (UNTAG_Bool(REGB2
)) {
8399 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
8400 if (UNTAG_Bool(REGB3
)) {
8402 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8404 /* ./../lib/standard//kernel.nit:234 */
8405 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB2
));
8407 /* ./syntax//typing.nit:1438 */
8408 REGB3
= TAG_Bool(false);
8411 if (UNTAG_Bool(REGB2
)) {
8412 /* ./syntax//typing.nit:1439 */
8414 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8415 if (!once_value_2
) {
8416 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8418 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8419 once_value_2
= fra
.me
.REG
[7];
8420 register_static_object(&once_value_2
);
8421 } else fra
.me
.REG
[7] = once_value_2
;
8422 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8423 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8424 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8425 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8426 if (!once_value_3
) {
8427 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8428 REGB2
= TAG_Int(10);
8429 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8430 once_value_3
= fra
.me
.REG
[7];
8431 register_static_object(&once_value_3
);
8432 } else fra
.me
.REG
[7] = once_value_3
;
8433 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8434 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8435 /* ./../lib/standard//collection//array.nit:24 */
8436 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8437 if (UNTAG_Bool(REGB2
)) {
8439 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8441 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8442 /* ./syntax//typing.nit:1439 */
8443 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8444 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8445 if (!once_value_4
) {
8446 fra
.me
.REG
[7] = BOX_NativeString(" blocks.");
8448 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8449 once_value_4
= fra
.me
.REG
[7];
8450 register_static_object(&once_value_4
);
8451 } else fra
.me
.REG
[7] = once_value_4
;
8452 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8453 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8454 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8455 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8457 /* ./../lib/standard//collection//array.nit:24 */
8458 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8459 if (UNTAG_Bool(REGB2
)) {
8461 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8463 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8464 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8465 if (UNTAG_Bool(REGB3
)) {
8467 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8469 /* ./../lib/standard//kernel.nit:234 */
8470 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8471 /* ./syntax//typing.nit:1440 */
8472 if (UNTAG_Bool(REGB2
)) {
8473 REGB2
= TAG_Bool(true);
8475 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8476 if (UNTAG_Bool(REGB3
)) {
8478 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8480 /* ./../lib/standard//kernel.nit:232 */
8481 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
8482 /* ./syntax//typing.nit:1440 */
8485 if (UNTAG_Bool(REGB2
)) {
8486 /* ./syntax//typing.nit:1441 */
8488 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8489 if (!once_value_5
) {
8490 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8492 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8493 once_value_5
= fra
.me
.REG
[7];
8494 register_static_object(&once_value_5
);
8495 } else fra
.me
.REG
[7] = once_value_5
;
8496 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8497 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8498 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8499 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8500 if (!once_value_6
) {
8501 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8502 REGB2
= TAG_Int(10);
8503 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8504 once_value_6
= fra
.me
.REG
[7];
8505 register_static_object(&once_value_6
);
8506 } else fra
.me
.REG
[7] = once_value_6
;
8507 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8508 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8509 /* ./../lib/standard//collection//array.nit:24 */
8510 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8511 if (UNTAG_Bool(REGB2
)) {
8513 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8515 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8516 /* ./syntax//typing.nit:1441 */
8517 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8518 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8519 if (!once_value_7
) {
8520 fra
.me
.REG
[7] = BOX_NativeString(" blocks, ");
8522 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8523 once_value_7
= fra
.me
.REG
[7];
8524 register_static_object(&once_value_7
);
8525 } else fra
.me
.REG
[7] = once_value_7
;
8526 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8527 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8528 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8529 if (UNTAG_Bool(REGB2
)) {
8530 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1441);
8532 /* ./../lib/standard//collection//array.nit:24 */
8533 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8534 if (UNTAG_Bool(REGB2
)) {
8536 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8538 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8539 /* ./syntax//typing.nit:1441 */
8540 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8541 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8542 if (!once_value_8
) {
8543 fra
.me
.REG
[7] = BOX_NativeString(" found.");
8545 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8546 once_value_8
= fra
.me
.REG
[7];
8547 register_static_object(&once_value_8
);
8548 } else fra
.me
.REG
[7] = once_value_8
;
8549 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8550 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8551 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8552 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8554 /* ./syntax//typing.nit:1444 */
8555 fra
.me
.REG
[8] = NIT_NULL
;
8556 /* ./syntax//typing.nit:1445 */
8557 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8558 if (UNTAG_Bool(REGB2
)) {
8560 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8561 if (UNTAG_Bool(REGB0
)) {
8562 REGB0
= TAG_Bool(false);
8565 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8569 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8570 if (UNTAG_Bool(REGB2
)) {
8571 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
8572 fra
.me
.REG
[8] = fra
.me
.REG
[7];
8574 /* ./syntax//typing.nit:1448 */
8576 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8577 if (UNTAG_Bool(REGB0
)) {
8579 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8581 /* ./../lib/standard//kernel.nit:234 */
8582 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8583 /* ./syntax//typing.nit:1448 */
8584 if (UNTAG_Bool(REGB2
)) {
8586 /* ./../lib/standard//kernel.nit:237 */
8587 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
8588 /* ./syntax//typing.nit:1448 */
8589 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8590 if (UNTAG_Bool(REGB0
)) {
8591 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1448);
8593 /* ./../lib/standard//collection//array.nit:278 */
8594 fra
.me
.REG
[7] = fra
.me
.REG
[4];
8595 /* ./../lib/standard//collection//array.nit:280 */
8597 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8598 if (UNTAG_Bool(REGB3
)) {
8600 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8602 /* ./../lib/standard//kernel.nit:233 */
8603 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
8604 /* ./../lib/standard//collection//array.nit:280 */
8605 if (UNTAG_Bool(REGB0
)) {
8606 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8607 if (UNTAG_Bool(REGB0
)) {
8609 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8611 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8612 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8613 if (UNTAG_Bool(REGB3
)) {
8615 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8617 /* ./../lib/standard//kernel.nit:232 */
8618 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8620 /* ./../lib/standard//collection//array.nit:280 */
8621 REGB3
= TAG_Bool(false);
8624 if (UNTAG_Bool(REGB0
)) {
8626 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
8628 /* ./../lib/standard//collection//array.nit:281 */
8629 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8630 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8631 if (UNTAG_Bool(REGB0
)) {
8632 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8634 /* ./../lib/standard//collection//array.nit:718 */
8635 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB2
)];
8636 /* ./../lib/standard//collection//array.nit:281 */
8639 /* ./syntax//typing.nit:1448 */
8640 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8641 if (UNTAG_Bool(REGB2
)) {
8642 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1448);
8644 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8646 fra
.me
.REG
[7] = NIT_NULL
;
8648 /* ./syntax//typing.nit:1451 */
8650 /* ./../lib/standard//kernel.nit:347 */
8652 /* ./../lib/standard//kernel.nit:352 */
8654 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8655 if (UNTAG_Bool(REGB3
)) {
8657 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8659 /* ./../lib/standard//kernel.nit:232 */
8660 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8661 /* ./../lib/standard//kernel.nit:352 */
8662 if (UNTAG_Bool(REGB3
)) {
8663 /* ./syntax//typing.nit:1451 */
8665 /* ./syntax//typing.nit:1452 */
8666 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8667 if (UNTAG_Bool(REGB4
)) {
8668 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1452);
8670 /* ./../lib/standard//collection//array.nit:278 */
8671 fra
.me
.REG
[9] = fra
.me
.REG
[4];
8672 /* ./../lib/standard//collection//array.nit:280 */
8674 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
8675 if (UNTAG_Bool(REGB5
)) {
8677 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8679 /* ./../lib/standard//kernel.nit:233 */
8680 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
8681 /* ./../lib/standard//collection//array.nit:280 */
8682 if (UNTAG_Bool(REGB4
)) {
8683 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
8684 if (UNTAG_Bool(REGB4
)) {
8686 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8688 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
8689 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
8690 if (UNTAG_Bool(REGB5
)) {
8692 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8694 /* ./../lib/standard//kernel.nit:232 */
8695 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
8697 /* ./../lib/standard//collection//array.nit:280 */
8698 REGB5
= TAG_Bool(false);
8701 if (UNTAG_Bool(REGB4
)) {
8703 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
8705 /* ./../lib/standard//collection//array.nit:281 */
8706 fra
.me
.REG
[9] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
8707 REGB4
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
8708 if (UNTAG_Bool(REGB4
)) {
8709 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8711 /* ./../lib/standard//collection//array.nit:718 */
8712 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB3
)];
8713 /* ./../lib/standard//collection//array.nit:281 */
8716 /* ./syntax//typing.nit:1453 */
8717 fra
.me
.REG
[10] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8718 fra
.me
.REG
[10] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8719 /* ./syntax//typing.nit:1454 */
8720 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMSignature___closure_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[10]);
8721 /* ./syntax//typing.nit:1455 */
8722 REGB3
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
8723 if (UNTAG_Bool(REGB3
)) {
8725 REGB4
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
8726 if (UNTAG_Bool(REGB4
)) {
8727 REGB4
= TAG_Bool(false);
8730 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[11])(fra
.me
.REG
[11], NIT_NULL
);
8734 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
8735 if (UNTAG_Bool(REGB3
)) {
8736 /* ./syntax//typing.nit:1456 */
8737 fra
.me
.REG
[11] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[9], fra
.me
.REG
[11], fra
.me
.REG
[8]);
8738 /* ./syntax//typing.nit:1457 */
8739 fra
.me
.REG
[12] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8740 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[11], fra
.me
.REG
[7]);
8741 /* ./syntax//typing.nit:1458 */
8742 CALL_syntax___typing___AClosureDef___accept_typing2(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[1], fra
.me
.REG
[11]);
8743 /* ./syntax//typing.nit:1459 */
8744 fra
.me
.REG
[11] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8745 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
8747 /* ./../lib/standard//collection//array.nit:24 */
8748 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8749 if (UNTAG_Bool(REGB3
)) {
8751 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8753 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8754 /* ./syntax//typing.nit:1460 */
8756 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB3
,REGB4
));
8757 if (UNTAG_Bool(REGB5
)) {
8759 /* ./../lib/standard//kernel.nit:227 */
8760 REGB4
= TAG_Bool((REGB3
)==(REGB4
));
8761 /* ./syntax//typing.nit:1460 */
8764 if (UNTAG_Bool(REGB5
)) {
8765 /* ./syntax//typing.nit:1461 */
8766 fra
.me
.REG
[11] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8768 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
8769 if (!once_value_11
) {
8770 fra
.me
.REG
[13] = BOX_NativeString("Error: no closure named '!");
8771 REGB5
= TAG_Int(26);
8772 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8773 once_value_11
= fra
.me
.REG
[13];
8774 register_static_object(&once_value_11
);
8775 } else fra
.me
.REG
[13] = once_value_11
;
8776 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8777 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8778 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8779 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8780 if (!once_value_12
) {
8781 fra
.me
.REG
[13] = BOX_NativeString("' in ");
8783 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8784 once_value_12
= fra
.me
.REG
[13];
8785 register_static_object(&once_value_12
);
8786 } else fra
.me
.REG
[13] = once_value_12
;
8787 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8789 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8791 if (!once_value_13
) {
8792 fra
.me
.REG
[13] = BOX_NativeString("; only closure is !");
8793 REGB5
= TAG_Int(19);
8794 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8795 once_value_13
= fra
.me
.REG
[13];
8796 register_static_object(&once_value_13
);
8797 } else fra
.me
.REG
[13] = once_value_13
;
8798 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8800 fra
.me
.REG
[13] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8801 REGB5
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
8802 if (UNTAG_Bool(REGB5
)) {
8803 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1461);
8805 fra
.me
.REG
[13] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8806 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8807 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8808 if (!once_value_14
) {
8809 fra
.me
.REG
[13] = BOX_NativeString(".");
8811 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8812 once_value_14
= fra
.me
.REG
[13];
8813 register_static_object(&once_value_14
);
8814 } else fra
.me
.REG
[13] = once_value_14
;
8815 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8817 fra
.me
.REG
[12] = CALL_standard___string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
8818 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[11], fra
.me
.REG
[12]);
8820 /* ./syntax//typing.nit:1463 */
8821 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___init();
8822 /* ./../lib/standard//collection//array.nit:266 */
8823 fra
.me
.REG
[11] = fra
.me
.REG
[6];
8824 /* ./../lib/standard//collection//array.nit:269 */
8826 /* ./../lib/standard//collection//array.nit:270 */
8827 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
8828 if (UNTAG_Bool(REGB4
)) {
8830 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
8832 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
8833 /* ./../lib/standard//collection//array.nit:271 */
8834 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[11]);
8835 /* ./../lib/standard//collection//array.nit:272 */
8837 /* ./../lib/standard//collection//array.nit:24 */
8838 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
8839 if (UNTAG_Bool(REGB4
)) {
8841 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8843 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
8844 REGB3
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5
), VTID_standard___kernel___Comparable___OTHER(REGB5
))) /*cast OTHER*/;
8845 if (UNTAG_Bool(REGB3
)) {
8847 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8849 /* ./../lib/standard//kernel.nit:232 */
8850 REGB4
= TAG_Bool(UNTAG_Int(REGB5
)<UNTAG_Int(REGB4
));
8851 /* ./../lib/standard//collection//array.nit:272 */
8852 if (UNTAG_Bool(REGB4
)) {
8853 /* ./../lib/standard//collection//array.nit:273 */
8854 REGB4
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
8855 if (UNTAG_Bool(REGB4
)) {
8856 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
8858 /* ./../lib/standard//collection//array.nit:718 */
8859 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB5
)];
8860 /* ./syntax//typing.nit:1465 */
8862 fra
.me
.REG
[15] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4
);
8863 if (!once_value_15
) {
8864 fra
.me
.REG
[16] = BOX_NativeString("!");
8866 fra
.me
.REG
[16] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[16], REGB4
);
8867 once_value_15
= fra
.me
.REG
[16];
8868 register_static_object(&once_value_15
);
8869 } else fra
.me
.REG
[16] = once_value_15
;
8870 fra
.me
.REG
[16] = fra
.me
.REG
[16];
8871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[16]);
8872 fra
.me
.REG
[14] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
8873 fra
.me
.REG
[14] = CALL_standard___string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
8874 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
8875 if (!once_value_16
) {
8876 fra
.me
.REG
[14] = BOX_NativeString("");
8878 fra
.me
.REG
[14] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[14], REGB4
);
8879 once_value_16
= fra
.me
.REG
[14];
8880 register_static_object(&once_value_16
);
8881 } else fra
.me
.REG
[14] = once_value_16
;
8882 fra
.me
.REG
[14] = fra
.me
.REG
[14];
8883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
8884 fra
.me
.REG
[15] = CALL_standard___string___Object___to_s(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
8885 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[15]);
8886 /* ./../lib/standard//collection//array.nit:274 */
8888 /* ./../lib/standard//kernel.nit:235 */
8889 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
8890 /* ./../lib/standard//collection//array.nit:274 */
8893 /* ./../lib/standard//collection//array.nit:272 */
8898 /* ./syntax//typing.nit:1467 */
8899 fra
.me
.REG
[9] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8901 fra
.me
.REG
[13] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
8902 if (!once_value_18
) {
8903 fra
.me
.REG
[11] = BOX_NativeString("Error: no closure named '!");
8904 REGB5
= TAG_Int(26);
8905 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB5
);
8906 once_value_18
= fra
.me
.REG
[11];
8907 register_static_object(&once_value_18
);
8908 } else fra
.me
.REG
[11] = once_value_18
;
8909 fra
.me
.REG
[11] = fra
.me
.REG
[11];
8910 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[11]);
8911 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8912 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8913 if (!once_value_19
) {
8914 fra
.me
.REG
[10] = BOX_NativeString("' in ");
8916 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8917 once_value_19
= fra
.me
.REG
[10];
8918 register_static_object(&once_value_19
);
8919 } else fra
.me
.REG
[10] = once_value_19
;
8920 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8921 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8922 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8923 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8924 if (!once_value_20
) {
8925 fra
.me
.REG
[10] = BOX_NativeString("; only closures are ");
8926 REGB5
= TAG_Int(20);
8927 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8928 once_value_20
= fra
.me
.REG
[10];
8929 register_static_object(&once_value_20
);
8930 } else fra
.me
.REG
[10] = once_value_20
;
8931 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8932 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8933 if (!once_value_21
) {
8934 fra
.me
.REG
[10] = BOX_NativeString(",");
8936 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8937 once_value_21
= fra
.me
.REG
[10];
8938 register_static_object(&once_value_21
);
8939 } else fra
.me
.REG
[10] = once_value_21
;
8940 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8941 fra
.me
.REG
[10] = CALL_standard___string___Collection___join(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[10]);
8942 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8943 if (!once_value_22
) {
8944 fra
.me
.REG
[10] = BOX_NativeString(".");
8946 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8947 once_value_22
= fra
.me
.REG
[10];
8948 register_static_object(&once_value_22
);
8949 } else fra
.me
.REG
[10] = once_value_22
;
8950 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8951 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8952 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8953 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[13]);
8956 /* ./../lib/standard//kernel.nit:354 */
8958 /* ./../lib/standard//kernel.nit:235 */
8959 REGB5
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB5
));
8960 /* ./../lib/standard//kernel.nit:354 */
8963 /* ./../lib/standard//kernel.nit:352 */
8968 /* ./syntax//typing.nit:1472 */
8969 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8970 if (UNTAG_Bool(REGB2
)) {
8972 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8973 if (UNTAG_Bool(REGB0
)) {
8974 REGB0
= TAG_Bool(false);
8977 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
8981 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8982 if (UNTAG_Bool(REGB2
)) {
8983 /* ./syntax//typing.nit:1473 */
8984 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[8]);
8985 fra
.me
.REG
[5] = fra
.me
.REG
[8];
8990 /* ./syntax//typing.nit:1476 */
8992 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
8993 if (UNTAG_Bool(REGB0
)) {
8995 /* ./../lib/standard//kernel.nit:227 */
8996 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
8997 /* ./syntax//typing.nit:1476 */
9000 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9001 if (UNTAG_Bool(REGB0
)) {
9002 /* ./syntax//typing.nit:1477 */
9004 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9005 if (!once_value_24
) {
9006 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
9008 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
9009 once_value_24
= fra
.me
.REG
[6];
9010 register_static_object(&once_value_24
);
9011 } else fra
.me
.REG
[6] = once_value_24
;
9012 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9013 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
9014 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9015 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9016 if (!once_value_25
) {
9017 fra
.me
.REG
[3] = BOX_NativeString(" does not require blocks.");
9018 REGB0
= TAG_Int(25);
9019 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9020 once_value_25
= fra
.me
.REG
[3];
9021 register_static_object(&once_value_25
);
9022 } else fra
.me
.REG
[3] = once_value_25
;
9023 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9024 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9025 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9026 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
9029 /* ./syntax//typing.nit:1479 */
9032 stack_frame_head
= fra
.me
.prev
;
9033 return fra
.me
.REG
[5];
9035 void syntax___typing___AAbsSendExpr___do_typing(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
, val_t p5
, val_t p6
, val_t p7
){
9036 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
9041 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9042 fra
.me
.file
= LOCATE_syntax___typing
;
9044 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___do_typing
;
9045 fra
.me
.has_broke
= 0;
9046 fra
.me
.REG_size
= 7;
9047 fra
.me
.nitni_local_ref_head
= NULL
;
9048 fra
.me
.REG
[0] = NIT_NULL
;
9049 fra
.me
.REG
[1] = NIT_NULL
;
9050 fra
.me
.REG
[2] = NIT_NULL
;
9051 fra
.me
.REG
[3] = NIT_NULL
;
9052 fra
.me
.REG
[4] = NIT_NULL
;
9053 fra
.me
.REG
[5] = NIT_NULL
;
9054 fra
.me
.REG
[6] = NIT_NULL
;
9063 /* ./syntax//typing.nit:1487 */
9064 fra
.me
.REG
[3] = CALL_syntax___typing___AAbsSendExpr___get_property(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
, fra
.me
.REG
[3]);
9065 /* ./syntax//typing.nit:1488 */
9066 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9067 if (UNTAG_Bool(REGB0
)) {
9069 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9070 if (UNTAG_Bool(REGB2
)) {
9071 REGB2
= TAG_Bool(false);
9074 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9078 if (UNTAG_Bool(REGB0
)) {
9081 /* ./syntax//typing.nit:1489 */
9082 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsSendExpr___get_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB1
);
9083 /* ./syntax//typing.nit:1490 */
9084 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9085 if (UNTAG_Bool(REGB1
)) {
9086 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1490);
9088 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9089 REGB1
= CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6], fra
.me
.REG
[4]);
9090 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9091 if (UNTAG_Bool(REGB1
)) {
9094 /* ./syntax//typing.nit:1491 */
9095 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9096 if (UNTAG_Bool(REGB1
)) {
9097 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1491);
9099 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9100 fra
.me
.REG
[5] = CALL_syntax___typing___AAbsAbsSendExpr___process_closures(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4], fra
.me
.REG
[5]);
9101 /* ./syntax//typing.nit:1492 */
9102 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9103 if (UNTAG_Bool(REGB1
)) {
9105 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9106 if (UNTAG_Bool(REGB0
)) {
9107 REGB0
= TAG_Bool(false);
9110 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9114 if (UNTAG_Bool(REGB1
)) {
9115 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9116 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9117 if (UNTAG_Bool(REGB1
)) {
9119 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9120 if (UNTAG_Bool(REGB0
)) {
9121 REGB0
= TAG_Bool(false);
9124 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9128 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9130 REGB0
= TAG_Bool(false);
9133 if (UNTAG_Bool(REGB1
)) {
9136 /* ./syntax//typing.nit:1493 */
9137 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
9138 /* ./syntax//typing.nit:1494 */
9139 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9140 /* ./syntax//typing.nit:1495 */
9141 ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
9143 stack_frame_head
= fra
.me
.prev
;
9146 val_t
syntax___typing___AAbsSendExpr___get_property(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9147 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
9153 static val_t once_value_1
; /* Once value */
9154 static val_t once_value_2
; /* Once value */
9155 static val_t once_value_3
; /* Once value */
9156 static val_t once_value_4
; /* Once value */
9157 static val_t once_value_5
; /* Once value */
9158 static val_t once_value_6
; /* Once value */
9159 static val_t once_value_8
; /* Once value */
9160 static val_t once_value_9
; /* Once value */
9161 static val_t once_value_10
; /* Once value */
9162 static val_t once_value_11
; /* Once value */
9163 static val_t once_value_12
; /* Once value */
9164 static val_t once_value_13
; /* Once value */
9165 static val_t once_value_14
; /* Once value */
9166 static val_t once_value_15
; /* Once value */
9167 static val_t once_value_16
; /* Once value */
9168 static val_t once_value_17
; /* Once value */
9169 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9170 fra
.me
.file
= LOCATE_syntax___typing
;
9172 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_property
;
9173 fra
.me
.has_broke
= 0;
9174 fra
.me
.REG_size
= 10;
9175 fra
.me
.nitni_local_ref_head
= NULL
;
9176 fra
.me
.REG
[0] = NIT_NULL
;
9177 fra
.me
.REG
[1] = NIT_NULL
;
9178 fra
.me
.REG
[2] = NIT_NULL
;
9179 fra
.me
.REG
[3] = NIT_NULL
;
9180 fra
.me
.REG
[4] = NIT_NULL
;
9181 fra
.me
.REG
[5] = NIT_NULL
;
9182 fra
.me
.REG
[6] = NIT_NULL
;
9183 fra
.me
.REG
[7] = NIT_NULL
;
9184 fra
.me
.REG
[8] = NIT_NULL
;
9185 fra
.me
.REG
[9] = NIT_NULL
;
9191 /* ./syntax//typing.nit:1500 */
9192 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
9193 if (UNTAG_Bool(REGB1
)) {
9194 /* ./syntax//typing.nit:1501 */
9195 if (!once_value_1
) {
9196 if (!once_value_2
) {
9197 fra
.me
.REG
[4] = BOX_NativeString("==");
9199 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
9200 once_value_2
= fra
.me
.REG
[4];
9201 register_static_object(&once_value_2
);
9202 } else fra
.me
.REG
[4] = once_value_2
;
9203 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9204 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9205 once_value_1
= fra
.me
.REG
[4];
9206 register_static_object(&once_value_1
);
9207 } else fra
.me
.REG
[4] = once_value_1
;
9208 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9209 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9210 if (UNTAG_Bool(REGB1
)) {
9212 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9215 if (UNTAG_Bool(REGB1
)) {
9216 REGB1
= TAG_Bool(true);
9218 if (!once_value_3
) {
9219 if (!once_value_4
) {
9220 fra
.me
.REG
[4] = BOX_NativeString("!=");
9222 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB2
);
9223 once_value_4
= fra
.me
.REG
[4];
9224 register_static_object(&once_value_4
);
9225 } else fra
.me
.REG
[4] = once_value_4
;
9226 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9227 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9228 once_value_3
= fra
.me
.REG
[4];
9229 register_static_object(&once_value_3
);
9230 } else fra
.me
.REG
[4] = once_value_3
;
9231 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9232 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9233 if (UNTAG_Bool(REGB2
)) {
9235 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9240 if (UNTAG_Bool(REGB1
)) {
9241 /* ./syntax//typing.nit:1503 */
9242 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9243 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9244 fra
.me
.REG
[2] = fra
.me
.REG
[4];
9246 /* ./syntax//typing.nit:1505 */
9248 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9249 if (!once_value_5
) {
9250 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9251 REGB1
= TAG_Int(15);
9252 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9253 once_value_5
= fra
.me
.REG
[5];
9254 register_static_object(&once_value_5
);
9255 } else fra
.me
.REG
[5] = once_value_5
;
9256 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9257 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9258 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9259 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9260 if (!once_value_6
) {
9261 fra
.me
.REG
[5] = BOX_NativeString("' call on 'null'.");
9262 REGB1
= TAG_Int(17);
9263 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9264 once_value_6
= fra
.me
.REG
[5];
9265 register_static_object(&once_value_6
);
9266 } else fra
.me
.REG
[5] = once_value_6
;
9267 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9268 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9269 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9270 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9271 /* ./syntax//typing.nit:1506 */
9272 fra
.me
.REG
[4] = NIT_NULL
;
9276 /* ./syntax//typing.nit:1509 */
9277 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9278 /* ./syntax//typing.nit:1510 */
9279 fra
.me
.REG
[6] = NIT_NULL
;
9280 /* ./syntax//typing.nit:1511 */
9281 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9282 if (UNTAG_Bool(REGB1
)) {
9283 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9284 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9286 /* ./syntax//typing.nit:1512 */
9287 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9288 if (UNTAG_Bool(REGB1
)) {
9290 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9291 if (UNTAG_Bool(REGB2
)) {
9292 REGB2
= TAG_Bool(false);
9295 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9299 if (UNTAG_Bool(REGB1
)) {
9300 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9301 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9302 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9304 REGB2
= TAG_Bool(false);
9307 if (UNTAG_Bool(REGB1
)) {
9308 /* ./syntax//typing.nit:1513 */
9309 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9310 /* ./../lib/standard//collection//array.nit:24 */
9311 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9312 if (UNTAG_Bool(REGB1
)) {
9314 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9316 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9317 /* ./syntax//typing.nit:1514 */
9319 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
9320 if (UNTAG_Bool(REGB3
)) {
9322 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9324 /* ./../lib/standard//kernel.nit:234 */
9325 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
9326 /* ./syntax//typing.nit:1514 */
9327 if (UNTAG_Bool(REGB2
)) {
9328 /* ./syntax//typing.nit:1515 */
9330 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
9331 if (!once_value_8
) {
9332 fra
.me
.REG
[9] = BOX_NativeString("Error: Ambigous method name '");
9333 REGB2
= TAG_Int(29);
9334 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9335 once_value_8
= fra
.me
.REG
[9];
9336 register_static_object(&once_value_8
);
9337 } else fra
.me
.REG
[9] = once_value_8
;
9338 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9339 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9340 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9341 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9342 if (!once_value_9
) {
9343 fra
.me
.REG
[9] = BOX_NativeString("' for ");
9345 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9346 once_value_9
= fra
.me
.REG
[9];
9347 register_static_object(&once_value_9
);
9348 } else fra
.me
.REG
[9] = once_value_9
;
9349 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9350 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9351 if (!once_value_10
) {
9352 fra
.me
.REG
[9] = BOX_NativeString(", ");
9354 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9355 once_value_10
= fra
.me
.REG
[9];
9356 register_static_object(&once_value_10
);
9357 } else fra
.me
.REG
[9] = once_value_10
;
9358 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9359 fra
.me
.REG
[9] = CALL_standard___string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
9360 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9361 if (!once_value_11
) {
9362 fra
.me
.REG
[9] = BOX_NativeString(". Use explicit designation.");
9363 REGB2
= TAG_Int(27);
9364 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9365 once_value_11
= fra
.me
.REG
[9];
9366 register_static_object(&once_value_11
);
9367 } else fra
.me
.REG
[9] = once_value_11
;
9368 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9369 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9370 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9371 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
9372 /* ./syntax//typing.nit:1516 */
9373 fra
.me
.REG
[4] = NIT_NULL
;
9376 /* ./../lib/standard//collection//array.nit:24 */
9377 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9378 if (UNTAG_Bool(REGB2
)) {
9380 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9382 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9383 /* ./syntax//typing.nit:1517 */
9385 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
9386 if (UNTAG_Bool(REGB3
)) {
9388 /* ./../lib/standard//kernel.nit:227 */
9389 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
9390 /* ./syntax//typing.nit:1517 */
9393 if (UNTAG_Bool(REGB3
)) {
9394 /* ./syntax//typing.nit:1518 */
9395 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9396 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9397 if (UNTAG_Bool(REGB3
)) {
9398 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1518);
9400 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9401 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
9402 /* ./syntax//typing.nit:1519 */
9403 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
9404 if (UNTAG_Bool(REGB3
)) {
9406 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1519);
9408 /* ./syntax//typing.nit:1520 */
9409 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9413 /* ./syntax//typing.nit:1524 */
9414 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9415 if (UNTAG_Bool(REGB3
)) {
9417 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9418 if (UNTAG_Bool(REGB1
)) {
9419 REGB1
= TAG_Bool(false);
9422 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9426 if (UNTAG_Bool(REGB3
)) {
9427 /* ./syntax//typing.nit:1525 */
9428 if (UNTAG_Bool(REGB0
)) {
9429 /* ./syntax//typing.nit:1526 */
9431 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9432 if (!once_value_12
) {
9433 fra
.me
.REG
[5] = BOX_NativeString("Error: Method or variable '");
9434 REGB0
= TAG_Int(27);
9435 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9436 once_value_12
= fra
.me
.REG
[5];
9437 register_static_object(&once_value_12
);
9438 } else fra
.me
.REG
[5] = once_value_12
;
9439 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9441 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9442 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9443 if (!once_value_13
) {
9444 fra
.me
.REG
[5] = BOX_NativeString("' unknown in ");
9445 REGB0
= TAG_Int(13);
9446 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9447 once_value_13
= fra
.me
.REG
[5];
9448 register_static_object(&once_value_13
);
9449 } else fra
.me
.REG
[5] = once_value_13
;
9450 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9451 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9452 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9453 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9454 if (!once_value_14
) {
9455 fra
.me
.REG
[5] = BOX_NativeString(".");
9457 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9458 once_value_14
= fra
.me
.REG
[5];
9459 register_static_object(&once_value_14
);
9460 } else fra
.me
.REG
[5] = once_value_14
;
9461 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9462 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9463 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9464 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9466 /* ./syntax//typing.nit:1528 */
9468 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9469 if (!once_value_15
) {
9470 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9471 REGB0
= TAG_Int(15);
9472 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9473 once_value_15
= fra
.me
.REG
[5];
9474 register_static_object(&once_value_15
);
9475 } else fra
.me
.REG
[5] = once_value_15
;
9476 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9477 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9478 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9479 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9480 if (!once_value_16
) {
9481 fra
.me
.REG
[3] = BOX_NativeString("' doesn't exists in ");
9482 REGB0
= TAG_Int(20);
9483 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9484 once_value_16
= fra
.me
.REG
[3];
9485 register_static_object(&once_value_16
);
9486 } else fra
.me
.REG
[3] = once_value_16
;
9487 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9488 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9489 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9490 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9491 if (!once_value_17
) {
9492 fra
.me
.REG
[2] = BOX_NativeString(".");
9494 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
9495 once_value_17
= fra
.me
.REG
[2];
9496 register_static_object(&once_value_17
);
9497 } else fra
.me
.REG
[2] = once_value_17
;
9498 fra
.me
.REG
[2] = fra
.me
.REG
[2];
9499 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9500 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9501 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9503 /* ./syntax//typing.nit:1530 */
9504 fra
.me
.REG
[4] = NIT_NULL
;
9507 /* ./syntax//typing.nit:1532 */
9508 fra
.me
.REG
[4] = fra
.me
.REG
[6];
9511 stack_frame_head
= fra
.me
.prev
;
9512 return fra
.me
.REG
[4];
9514 val_t
syntax___typing___AAbsSendExpr___get_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9515 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
9518 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9519 fra
.me
.file
= LOCATE_syntax___typing
;
9521 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_signature
;
9522 fra
.me
.has_broke
= 0;
9523 fra
.me
.REG_size
= 6;
9524 fra
.me
.nitni_local_ref_head
= NULL
;
9525 fra
.me
.REG
[0] = NIT_NULL
;
9526 fra
.me
.REG
[1] = NIT_NULL
;
9527 fra
.me
.REG
[2] = NIT_NULL
;
9528 fra
.me
.REG
[3] = NIT_NULL
;
9529 fra
.me
.REG
[4] = NIT_NULL
;
9530 fra
.me
.REG
[5] = NIT_NULL
;
9536 /* ./syntax//typing.nit:1538 */
9537 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9538 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9539 CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5], REGB0
);
9540 /* ./syntax//typing.nit:1539 */
9541 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
9542 /* ./syntax//typing.nit:1540 */
9543 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9544 if (UNTAG_Bool(REGB0
)) {
9545 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9546 fra
.me
.REG
[2] = fra
.me
.REG
[3];
9548 /* ./syntax//typing.nit:1541 */
9551 stack_frame_head
= fra
.me
.prev
;
9552 return fra
.me
.REG
[2];
9554 val_t
syntax___typing___AAbsSendExpr___prop(val_t p0
){
9555 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9558 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9559 fra
.me
.file
= LOCATE_syntax___typing
;
9561 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___prop
;
9562 fra
.me
.has_broke
= 0;
9563 fra
.me
.REG_size
= 2;
9564 fra
.me
.nitni_local_ref_head
= NULL
;
9565 fra
.me
.REG
[0] = NIT_NULL
;
9566 fra
.me
.REG
[1] = NIT_NULL
;
9568 /* ./syntax//typing.nit:1544 */
9569 fra
.me
.REG
[1] = fra
.me
.REG
[0];
9570 /* ./syntax//typing.nit:1545 */
9571 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[1]);
9572 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
9573 if (UNTAG_Bool(REGB0
)) {
9575 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1545);
9579 stack_frame_head
= fra
.me
.prev
;
9580 return fra
.me
.REG
[1];
9582 val_t
syntax___typing___AAbsSendExpr___return_type(val_t p0
){
9583 struct {struct stack_frame_t me
;} fra
;
9585 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9586 fra
.me
.file
= LOCATE_syntax___typing
;
9588 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___return_type
;
9589 fra
.me
.has_broke
= 0;
9590 fra
.me
.REG_size
= 1;
9591 fra
.me
.nitni_local_ref_head
= NULL
;
9592 fra
.me
.REG
[0] = NIT_NULL
;
9594 /* ./syntax//typing.nit:1548 */
9595 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]);
9596 stack_frame_head
= fra
.me
.prev
;
9597 return fra
.me
.REG
[0];
9599 void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0
, val_t p1
, val_t p2
){
9600 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
9605 static val_t once_value_1
; /* Once value */
9606 static val_t once_value_2
; /* Once value */
9607 static val_t once_value_3
; /* Once value */
9608 static val_t once_value_4
; /* Once value */
9609 static val_t once_value_5
; /* Once value */
9610 static val_t once_value_6
; /* Once value */
9611 static val_t once_value_7
; /* Once value */
9612 static val_t once_value_8
; /* Once value */
9613 static val_t once_value_9
; /* Once value */
9614 static val_t once_value_10
; /* Once value */
9615 static val_t once_value_11
; /* Once value */
9616 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9617 fra
.me
.file
= LOCATE_syntax___typing
;
9619 fra
.me
.meth
= LOCATE_syntax___typing___ASuperInitCall___register_super_init_call
;
9620 fra
.me
.has_broke
= 0;
9621 fra
.me
.REG_size
= 11;
9622 fra
.me
.nitni_local_ref_head
= NULL
;
9623 fra
.me
.REG
[0] = NIT_NULL
;
9624 fra
.me
.REG
[1] = NIT_NULL
;
9625 fra
.me
.REG
[2] = NIT_NULL
;
9626 fra
.me
.REG
[3] = NIT_NULL
;
9627 fra
.me
.REG
[4] = NIT_NULL
;
9628 fra
.me
.REG
[5] = NIT_NULL
;
9629 fra
.me
.REG
[6] = NIT_NULL
;
9630 fra
.me
.REG
[7] = NIT_NULL
;
9631 fra
.me
.REG
[8] = NIT_NULL
;
9632 fra
.me
.REG
[9] = NIT_NULL
;
9633 fra
.me
.REG
[10] = NIT_NULL
;
9637 /* ./syntax//typing.nit:1555 */
9638 fra
.me
.REG
[3] = fra
.me
.REG
[0];
9639 /* ./syntax//typing.nit:1557 */
9640 fra
.me
.REG
[4] = CALL_parser___parser_prod___ANode___parent(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9641 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9642 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[4],fra
.me
.REG
[5]));
9643 if (UNTAG_Bool(REGB0
)) {
9645 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9646 if (UNTAG_Bool(REGB1
)) {
9647 REGB1
= TAG_Bool(false);
9650 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9654 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9655 if (UNTAG_Bool(REGB0
)) {
9656 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9657 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[5]));
9658 if (UNTAG_Bool(REGB0
)) {
9660 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9663 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9665 REGB1
= TAG_Bool(false);
9668 if (UNTAG_Bool(REGB0
)) {
9669 /* ./syntax//typing.nit:1558 */
9671 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9672 if (!once_value_1
) {
9673 fra
.me
.REG
[4] = BOX_NativeString("Error: Constructor invocation ");
9674 REGB0
= TAG_Int(30);
9675 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9676 once_value_1
= fra
.me
.REG
[4];
9677 register_static_object(&once_value_1
);
9678 } else fra
.me
.REG
[4] = once_value_1
;
9679 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9680 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9681 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9682 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9683 if (!once_value_2
) {
9684 fra
.me
.REG
[4] = BOX_NativeString(" must not be in nested block.");
9685 REGB0
= TAG_Int(29);
9686 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9687 once_value_2
= fra
.me
.REG
[4];
9688 register_static_object(&once_value_2
);
9689 } else fra
.me
.REG
[4] = once_value_2
;
9690 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9691 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9692 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9693 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
9695 /* ./syntax//typing.nit:1560 */
9696 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9697 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9698 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9699 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9700 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9701 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9702 /* ./syntax//typing.nit:1561 */
9703 fra
.me
.REG
[5] = NIT_NULL
;
9704 /* ./syntax//typing.nit:1562 */
9705 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___explicit_super_init_calls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9706 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
9707 if (UNTAG_Bool(REGB0
)) {
9709 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1562);
9711 /* ./syntax//typing.nit:1563 */
9712 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9713 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9714 if (UNTAG_Bool(REGB0
)) {
9715 /* ./syntax//typing.nit:1564 */
9716 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9717 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
9718 if (UNTAG_Bool(REGB0
)) {
9719 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1564);
9721 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9722 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9723 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9724 fra
.me
.REG
[5] = fra
.me
.REG
[0];
9726 /* ./syntax//typing.nit:1566 */
9727 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9728 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9729 fra
.me
.REG
[0] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9730 /* ./syntax//typing.nit:1567 */
9731 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9732 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
9733 if (UNTAG_Bool(REGB0
)) {
9735 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
9738 if (UNTAG_Bool(REGB0
)) {
9739 /* ./syntax//typing.nit:1568 */
9740 REGB0
= TAG_Bool(true);
9741 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
9743 /* ./syntax//typing.nit:1569 */
9744 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
9745 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9746 if (UNTAG_Bool(REGB0
)) {
9747 /* ./syntax//typing.nit:1570 */
9749 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9750 if (!once_value_3
) {
9751 fra
.me
.REG
[8] = BOX_NativeString("Error: Constructor of class ");
9752 REGB0
= TAG_Int(28);
9753 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9754 once_value_3
= fra
.me
.REG
[8];
9755 register_static_object(&once_value_3
);
9756 } else fra
.me
.REG
[8] = once_value_3
;
9757 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9759 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9760 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9761 if (!once_value_4
) {
9762 fra
.me
.REG
[8] = BOX_NativeString(" must be one in ");
9763 REGB0
= TAG_Int(16);
9764 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9765 once_value_4
= fra
.me
.REG
[8];
9766 register_static_object(&once_value_4
);
9767 } else fra
.me
.REG
[8] = once_value_4
;
9768 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9770 if (!once_value_5
) {
9771 fra
.me
.REG
[8] = BOX_NativeString(", ");
9773 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9774 once_value_5
= fra
.me
.REG
[8];
9775 register_static_object(&once_value_5
);
9776 } else fra
.me
.REG
[8] = once_value_5
;
9777 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9778 fra
.me
.REG
[8] = CALL_standard___string___Collection___join(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[8]);
9779 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9780 if (!once_value_6
) {
9781 fra
.me
.REG
[8] = BOX_NativeString(".");
9783 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9784 once_value_6
= fra
.me
.REG
[8];
9785 register_static_object(&once_value_6
);
9786 } else fra
.me
.REG
[8] = once_value_6
;
9787 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9789 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9790 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
9792 /* ./syntax//typing.nit:1571 */
9793 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[4],fra
.me
.REG
[5]));
9794 if (UNTAG_Bool(REGB0
)) {
9796 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9799 if (UNTAG_Bool(REGB0
)) {
9800 /* ./syntax//typing.nit:1572 */
9802 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9803 if (!once_value_7
) {
9804 fra
.me
.REG
[8] = BOX_NativeString("Error: Only one super constructor invocation of class ");
9805 REGB0
= TAG_Int(54);
9806 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9807 once_value_7
= fra
.me
.REG
[8];
9808 register_static_object(&once_value_7
);
9809 } else fra
.me
.REG
[8] = once_value_7
;
9810 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9811 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9812 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9813 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9814 if (!once_value_8
) {
9815 fra
.me
.REG
[8] = BOX_NativeString(" is allowed.");
9816 REGB0
= TAG_Int(12);
9817 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9818 once_value_8
= fra
.me
.REG
[8];
9819 register_static_object(&once_value_8
);
9820 } else fra
.me
.REG
[8] = once_value_8
;
9821 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9822 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9823 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9824 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
9826 /* ./../lib/standard//collection//array.nit:269 */
9828 /* ./../lib/standard//collection//array.nit:270 */
9829 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
9830 if (UNTAG_Bool(REGB1
)) {
9832 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
9834 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
9835 /* ./../lib/standard//collection//array.nit:271 */
9836 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
9837 /* ./../lib/standard//collection//array.nit:272 */
9839 /* ./../lib/standard//collection//array.nit:24 */
9840 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
9841 if (UNTAG_Bool(REGB1
)) {
9843 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9845 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
9846 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
9847 if (UNTAG_Bool(REGB2
)) {
9849 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9851 /* ./../lib/standard//kernel.nit:232 */
9852 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
9853 /* ./../lib/standard//collection//array.nit:272 */
9854 if (UNTAG_Bool(REGB1
)) {
9855 /* ./../lib/standard//collection//array.nit:273 */
9856 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9857 if (UNTAG_Bool(REGB1
)) {
9858 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
9860 /* ./../lib/standard//collection//array.nit:718 */
9861 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
9862 /* ./syntax//typing.nit:1575 */
9863 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[8],fra
.me
.REG
[5]));
9864 if (UNTAG_Bool(REGB1
)) {
9866 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[5]);
9869 if (UNTAG_Bool(REGB1
)) {
9870 /* ./syntax//typing.nit:1576 */
9871 fra
.me
.REG
[5] = NIT_NULL
;
9873 /* ./syntax//typing.nit:1577 */
9874 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[8],fra
.me
.REG
[4]));
9875 if (UNTAG_Bool(REGB1
)) {
9877 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[4]);
9880 if (UNTAG_Bool(REGB1
)) {
9881 /* ./syntax//typing.nit:1578 */
9882 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9883 if (UNTAG_Bool(REGB1
)) {
9885 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9886 if (UNTAG_Bool(REGB2
)) {
9887 REGB2
= TAG_Bool(false);
9890 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9894 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9895 if (UNTAG_Bool(REGB1
)) {
9896 /* ./syntax//typing.nit:1579 */
9898 fra
.me
.REG
[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9899 if (!once_value_9
) {
9900 fra
.me
.REG
[10] = BOX_NativeString("Error: Constructor of ");
9901 REGB1
= TAG_Int(22);
9902 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB1
);
9903 once_value_9
= fra
.me
.REG
[10];
9904 register_static_object(&once_value_9
);
9905 } else fra
.me
.REG
[10] = once_value_9
;
9906 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9907 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
9908 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9909 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9910 if (!once_value_10
) {
9911 fra
.me
.REG
[8] = BOX_NativeString(" must be invoked before constructor of ");
9912 REGB1
= TAG_Int(39);
9913 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
9914 once_value_10
= fra
.me
.REG
[8];
9915 register_static_object(&once_value_10
);
9916 } else fra
.me
.REG
[8] = once_value_10
;
9917 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9918 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9919 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9920 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9921 if (!once_value_11
) {
9922 fra
.me
.REG
[8] = BOX_NativeString("");
9924 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
9925 once_value_11
= fra
.me
.REG
[8];
9926 register_static_object(&once_value_11
);
9927 } else fra
.me
.REG
[8] = once_value_11
;
9928 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9929 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9930 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9931 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[9]);
9933 /* ./syntax//typing.nit:1581 */
9934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
9935 /* ./syntax//typing.nit:1582 */
9939 /* ./../lib/standard//collection//array.nit:274 */
9941 /* ./../lib/standard//kernel.nit:235 */
9942 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
9943 /* ./../lib/standard//collection//array.nit:274 */
9946 /* ./../lib/standard//collection//array.nit:272 */
9955 stack_frame_head
= fra
.me
.prev
;
9958 val_t
syntax___typing___ANewExpr___compute_raw_arguments(val_t p0
){
9959 struct {struct stack_frame_t me
;} fra
;
9961 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9962 fra
.me
.file
= LOCATE_syntax___typing
;
9964 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___compute_raw_arguments
;
9965 fra
.me
.has_broke
= 0;
9966 fra
.me
.REG_size
= 1;
9967 fra
.me
.nitni_local_ref_head
= NULL
;
9968 fra
.me
.REG
[0] = NIT_NULL
;
9970 /* ./syntax//typing.nit:1591 */
9971 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ANewExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9972 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9975 stack_frame_head
= fra
.me
.prev
;
9976 return fra
.me
.REG
[0];
9978 void syntax___typing___ANewExpr___after_typing(val_t p0
, val_t p1
){
9979 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
9983 static val_t once_value_2
; /* Once value */
9984 static val_t once_value_3
; /* Once value */
9985 static val_t once_value_4
; /* Once value */
9986 static val_t once_value_5
; /* Once value */
9987 static val_t once_value_6
; /* Once value */
9988 static val_t once_value_7
; /* Once value */
9989 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9990 fra
.me
.file
= LOCATE_syntax___typing
;
9992 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___after_typing
;
9993 fra
.me
.has_broke
= 0;
9994 fra
.me
.REG_size
= 5;
9995 fra
.me
.nitni_local_ref_head
= NULL
;
9996 fra
.me
.REG
[0] = NIT_NULL
;
9997 fra
.me
.REG
[1] = NIT_NULL
;
9998 fra
.me
.REG
[2] = NIT_NULL
;
9999 fra
.me
.REG
[3] = NIT_NULL
;
10000 fra
.me
.REG
[4] = NIT_NULL
;
10001 fra
.me
.REG
[0] = p0
;
10002 fra
.me
.REG
[1] = p1
;
10003 /* ./syntax//typing.nit:1594 */
10004 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10005 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10006 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10007 if (UNTAG_Bool(REGB0
)) {
10010 /* ./syntax//typing.nit:1595 */
10011 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10012 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10013 /* ./syntax//typing.nit:1596 */
10014 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10015 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10016 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10017 if (UNTAG_Bool(REGB0
)) {
10018 /* ./syntax//typing.nit:1597 */
10019 REGB0
= TAG_Int(3);
10020 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10021 if (!once_value_2
) {
10022 fra
.me
.REG
[4] = BOX_NativeString("Error: try to instantiate abstract class ");
10023 REGB0
= TAG_Int(41);
10024 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10025 once_value_2
= fra
.me
.REG
[4];
10026 register_static_object(&once_value_2
);
10027 } else fra
.me
.REG
[4] = once_value_2
;
10028 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10029 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10030 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10031 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10032 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10033 if (!once_value_3
) {
10034 fra
.me
.REG
[4] = BOX_NativeString(".");
10035 REGB0
= TAG_Int(1);
10036 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10037 once_value_3
= fra
.me
.REG
[4];
10038 register_static_object(&once_value_3
);
10039 } else fra
.me
.REG
[4] = once_value_3
;
10040 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10041 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10042 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10043 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10044 /* ./syntax//typing.nit:1598 */
10047 /* ./syntax//typing.nit:1601 */
10048 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10049 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10050 if (UNTAG_Bool(REGB0
)) {
10052 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10053 if (UNTAG_Bool(REGB1
)) {
10054 REGB1
= TAG_Bool(false);
10057 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10061 if (UNTAG_Bool(REGB0
)) {
10062 /* ./syntax//typing.nit:1602 */
10063 if (!once_value_4
) {
10064 if (!once_value_5
) {
10065 fra
.me
.REG
[3] = BOX_NativeString("init");
10066 REGB0
= TAG_Int(4);
10067 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
10068 once_value_5
= fra
.me
.REG
[3];
10069 register_static_object(&once_value_5
);
10070 } else fra
.me
.REG
[3] = once_value_5
;
10071 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10072 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10073 once_value_4
= fra
.me
.REG
[3];
10074 register_static_object(&once_value_4
);
10075 } else fra
.me
.REG
[3] = once_value_4
;
10076 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10078 /* ./syntax//typing.nit:1604 */
10079 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10080 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10081 if (UNTAG_Bool(REGB0
)) {
10082 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1604);
10084 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10085 fra
.me
.REG
[3] = fra
.me
.REG
[4];
10087 /* ./syntax//typing.nit:1607 */
10088 REGB0
= TAG_Bool(false);
10089 REGB1
= TAG_Bool(false);
10090 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10091 CALL_syntax___typing___AAbsSendExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
, REGB1
, fra
.me
.REG
[3], fra
.me
.REG
[4], NIT_NULL
);
10092 /* ./syntax//typing.nit:1608 */
10093 fra
.me
.REG
[4] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
10094 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10095 if (UNTAG_Bool(REGB1
)) {
10097 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10098 if (UNTAG_Bool(REGB0
)) {
10099 REGB0
= TAG_Bool(false);
10102 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10106 if (UNTAG_Bool(REGB1
)) {
10109 /* ./syntax//typing.nit:1610 */
10110 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10111 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10112 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10113 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10114 if (UNTAG_Bool(REGB1
)) {
10115 /* ./syntax//typing.nit:1611 */
10116 REGB1
= TAG_Int(3);
10117 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10118 if (!once_value_6
) {
10119 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
10120 REGB1
= TAG_Int(7);
10121 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
10122 once_value_6
= fra
.me
.REG
[3];
10123 register_static_object(&once_value_6
);
10124 } else fra
.me
.REG
[3] = once_value_6
;
10125 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10126 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10127 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10128 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10129 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10130 if (!once_value_7
) {
10131 fra
.me
.REG
[3] = BOX_NativeString(" is not a constructor.");
10132 REGB1
= TAG_Int(22);
10133 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
10134 once_value_7
= fra
.me
.REG
[3];
10135 register_static_object(&once_value_7
);
10136 } else fra
.me
.REG
[3] = once_value_7
;
10137 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10138 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10139 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10140 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
10141 /* ./syntax//typing.nit:1612 */
10144 /* ./syntax//typing.nit:1614 */
10145 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10146 /* ./syntax//typing.nit:1615 */
10147 REGB1
= TAG_Bool(true);
10148 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
10150 stack_frame_head
= fra
.me
.prev
;
10153 val_t
syntax___typing___ASendExpr___name(val_t p0
){
10154 struct {struct stack_frame_t me
;} fra
;
10156 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10157 fra
.me
.file
= LOCATE_syntax___typing
;
10158 fra
.me
.line
= 1621;
10159 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___name
;
10160 fra
.me
.has_broke
= 0;
10161 fra
.me
.REG_size
= 0;
10162 fra
.me
.nitni_local_ref_head
= NULL
;
10163 /* ./syntax//typing.nit:1621 */
10164 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1621);
10165 stack_frame_head
= fra
.me
.prev
;
10168 val_t
syntax___typing___ASendExpr___closure_defs(val_t p0
){
10169 struct {struct stack_frame_t me
;} fra
;
10171 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10172 fra
.me
.file
= LOCATE_syntax___typing
;
10173 fra
.me
.line
= 1624;
10174 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___closure_defs
;
10175 fra
.me
.has_broke
= 0;
10176 fra
.me
.REG_size
= 1;
10177 fra
.me
.nitni_local_ref_head
= NULL
;
10178 fra
.me
.REG
[0] = NIT_NULL
;
10179 fra
.me
.REG
[0] = p0
;
10180 /* ./syntax//typing.nit:1625 */
10181 fra
.me
.REG
[0] = NIT_NULL
;
10184 stack_frame_head
= fra
.me
.prev
;
10185 return fra
.me
.REG
[0];
10187 void syntax___typing___ASendExpr___after_typing(val_t p0
, val_t p1
){
10188 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10190 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10191 fra
.me
.file
= LOCATE_syntax___typing
;
10192 fra
.me
.line
= 1627;
10193 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___after_typing
;
10194 fra
.me
.has_broke
= 0;
10195 fra
.me
.REG_size
= 2;
10196 fra
.me
.nitni_local_ref_head
= NULL
;
10197 fra
.me
.REG
[0] = NIT_NULL
;
10198 fra
.me
.REG
[1] = NIT_NULL
;
10199 fra
.me
.REG
[0] = p0
;
10200 fra
.me
.REG
[1] = p1
;
10201 /* ./syntax//typing.nit:1629 */
10202 CALL_syntax___typing___ASendExpr___do_all_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10203 stack_frame_head
= fra
.me
.prev
;
10206 void syntax___typing___ASendExpr___do_all_typing(val_t p0
, val_t p1
){
10207 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10211 static val_t once_value_2
; /* Once value */
10212 static val_t once_value_3
; /* Once value */
10213 static val_t once_value_4
; /* Once value */
10214 static val_t once_value_5
; /* Once value */
10215 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10216 fra
.me
.file
= LOCATE_syntax___typing
;
10217 fra
.me
.line
= 1632;
10218 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___do_all_typing
;
10219 fra
.me
.has_broke
= 0;
10220 fra
.me
.REG_size
= 7;
10221 fra
.me
.nitni_local_ref_head
= NULL
;
10222 fra
.me
.REG
[0] = NIT_NULL
;
10223 fra
.me
.REG
[1] = NIT_NULL
;
10224 fra
.me
.REG
[2] = NIT_NULL
;
10225 fra
.me
.REG
[3] = NIT_NULL
;
10226 fra
.me
.REG
[4] = NIT_NULL
;
10227 fra
.me
.REG
[5] = NIT_NULL
;
10228 fra
.me
.REG
[6] = NIT_NULL
;
10229 fra
.me
.REG
[0] = p0
;
10230 fra
.me
.REG
[1] = p1
;
10231 /* ./syntax//typing.nit:1632 */
10232 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10233 /* ./syntax//typing.nit:1634 */
10234 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10235 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10236 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10237 if (UNTAG_Bool(REGB0
)) {
10240 /* ./syntax//typing.nit:1635 */
10241 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10242 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10243 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10244 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10245 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10246 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10247 fra
.me
.REG
[4] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10248 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10249 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10250 CALL_syntax___typing___AAbsSendExpr___do_typing(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[3], REGB0
, REGB1
, fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
10251 /* ./syntax//typing.nit:1636 */
10252 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10253 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10254 if (UNTAG_Bool(REGB1
)) {
10256 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10257 if (UNTAG_Bool(REGB0
)) {
10258 REGB0
= TAG_Bool(false);
10261 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
10265 if (UNTAG_Bool(REGB1
)) {
10268 /* ./syntax//typing.nit:1637 */
10269 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10270 REGB1
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
10271 if (UNTAG_Bool(REGB1
)) {
10273 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1637);
10275 /* ./syntax//typing.nit:1639 */
10276 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10277 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10278 if (UNTAG_Bool(REGB1
)) {
10279 /* ./syntax//typing.nit:1640 */
10280 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10281 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10282 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10283 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10284 if (UNTAG_Bool(REGB1
)) {
10285 /* ./syntax//typing.nit:1641 */
10286 REGB1
= TAG_Int(3);
10287 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10288 if (!once_value_2
) {
10289 fra
.me
.REG
[5] = BOX_NativeString("Error: try to invoke constructor ");
10290 REGB1
= TAG_Int(33);
10291 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10292 once_value_2
= fra
.me
.REG
[5];
10293 register_static_object(&once_value_2
);
10294 } else fra
.me
.REG
[5] = once_value_2
;
10295 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10296 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10297 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10298 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10299 if (!once_value_3
) {
10300 fra
.me
.REG
[5] = BOX_NativeString(" in a method.");
10301 REGB1
= TAG_Int(13);
10302 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10303 once_value_3
= fra
.me
.REG
[5];
10304 register_static_object(&once_value_3
);
10305 } else fra
.me
.REG
[5] = once_value_3
;
10306 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10307 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10308 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10309 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10311 /* ./syntax//typing.nit:1642 */
10312 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10313 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10314 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10315 if (UNTAG_Bool(REGB1
)) {
10316 /* ./syntax//typing.nit:1643 */
10317 REGB1
= TAG_Int(3);
10318 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10319 if (!once_value_4
) {
10320 fra
.me
.REG
[5] = BOX_NativeString("Error: constructor ");
10321 REGB1
= TAG_Int(19);
10322 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10323 once_value_4
= fra
.me
.REG
[5];
10324 register_static_object(&once_value_4
);
10325 } else fra
.me
.REG
[5] = once_value_4
;
10326 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10327 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10328 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10329 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10330 if (!once_value_5
) {
10331 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
10332 REGB1
= TAG_Int(26);
10333 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10334 once_value_5
= fra
.me
.REG
[5];
10335 register_static_object(&once_value_5
);
10336 } else fra
.me
.REG
[5] = once_value_5
;
10337 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10338 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10339 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10340 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10342 /* ./syntax//typing.nit:1645 */
10343 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[6]);
10347 /* ./syntax//typing.nit:1649 */
10348 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AAbsSendExpr___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10349 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
10350 /* ./syntax//typing.nit:1650 */
10351 REGB1
= TAG_Bool(true);
10352 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB1
;
10354 stack_frame_head
= fra
.me
.prev
;
10357 val_t
syntax___typing___ASendReassignExpr___read_prop(val_t p0
){
10358 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10361 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10362 fra
.me
.file
= LOCATE_syntax___typing
;
10363 fra
.me
.line
= 1655;
10364 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___read_prop
;
10365 fra
.me
.has_broke
= 0;
10366 fra
.me
.REG_size
= 2;
10367 fra
.me
.nitni_local_ref_head
= NULL
;
10368 fra
.me
.REG
[0] = NIT_NULL
;
10369 fra
.me
.REG
[1] = NIT_NULL
;
10370 fra
.me
.REG
[0] = p0
;
10371 /* ./syntax//typing.nit:1655 */
10372 fra
.me
.REG
[1] = fra
.me
.REG
[0];
10373 fra
.me
.REG
[1] = ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[1]);
10374 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
10375 if (UNTAG_Bool(REGB0
)) {
10377 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1655);
10381 stack_frame_head
= fra
.me
.prev
;
10382 return fra
.me
.REG
[1];
10384 void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0
, val_t p1
){
10385 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10390 static val_t once_value_2
; /* Once value */
10391 static val_t once_value_3
; /* Once value */
10392 static val_t once_value_4
; /* Once value */
10393 static val_t once_value_5
; /* Once value */
10394 static val_t once_value_6
; /* Once value */
10395 static val_t once_value_7
; /* Once value */
10396 static val_t once_value_8
; /* Once value */
10397 static val_t once_value_9
; /* Once value */
10398 static val_t once_value_10
; /* Once value */
10399 static val_t once_value_11
; /* Once value */
10400 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10401 fra
.me
.file
= LOCATE_syntax___typing
;
10402 fra
.me
.line
= 1657;
10403 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___do_all_typing
;
10404 fra
.me
.has_broke
= 0;
10405 fra
.me
.REG_size
= 7;
10406 fra
.me
.nitni_local_ref_head
= NULL
;
10407 fra
.me
.REG
[0] = NIT_NULL
;
10408 fra
.me
.REG
[1] = NIT_NULL
;
10409 fra
.me
.REG
[2] = NIT_NULL
;
10410 fra
.me
.REG
[3] = NIT_NULL
;
10411 fra
.me
.REG
[4] = NIT_NULL
;
10412 fra
.me
.REG
[5] = NIT_NULL
;
10413 fra
.me
.REG
[6] = NIT_NULL
;
10414 fra
.me
.REG
[0] = p0
;
10415 fra
.me
.REG
[1] = p1
;
10416 /* ./syntax//typing.nit:1657 */
10417 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10418 /* ./syntax//typing.nit:1659 */
10419 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10420 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10421 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10422 if (UNTAG_Bool(REGB0
)) {
10425 /* ./syntax//typing.nit:1660 */
10426 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10427 /* ./syntax//typing.nit:1661 */
10428 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10429 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10430 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10431 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10432 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10433 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10434 fra
.me
.REG
[5] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10435 CALL_syntax___typing___AAbsSendExpr___do_typing(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[4], REGB0
, REGB1
, fra
.me
.REG
[5], fra
.me
.REG
[3], NIT_NULL
);
10436 /* ./syntax//typing.nit:1662 */
10437 fra
.me
.REG
[5] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10438 /* ./syntax//typing.nit:1663 */
10439 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10440 if (UNTAG_Bool(REGB1
)) {
10442 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10443 if (UNTAG_Bool(REGB0
)) {
10444 REGB0
= TAG_Bool(false);
10447 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
10451 if (UNTAG_Bool(REGB1
)) {
10454 /* ./syntax//typing.nit:1664 */
10455 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10456 if (UNTAG_Bool(REGB1
)) {
10457 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1664);
10459 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10460 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10461 if (UNTAG_Bool(REGB1
)) {
10462 /* ./syntax//typing.nit:1665 */
10463 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10464 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10465 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10466 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10467 if (UNTAG_Bool(REGB1
)) {
10468 /* ./syntax//typing.nit:1666 */
10469 REGB1
= TAG_Int(3);
10470 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10471 if (!once_value_2
) {
10472 fra
.me
.REG
[6] = BOX_NativeString("Error: try to invoke constructor ");
10473 REGB1
= TAG_Int(33);
10474 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10475 once_value_2
= fra
.me
.REG
[6];
10476 register_static_object(&once_value_2
);
10477 } else fra
.me
.REG
[6] = once_value_2
;
10478 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10479 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10480 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10481 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10482 if (!once_value_3
) {
10483 fra
.me
.REG
[6] = BOX_NativeString(" in a method.");
10484 REGB1
= TAG_Int(13);
10485 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10486 once_value_3
= fra
.me
.REG
[6];
10487 register_static_object(&once_value_3
);
10488 } else fra
.me
.REG
[6] = once_value_3
;
10489 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10490 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10491 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10492 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10494 /* ./syntax//typing.nit:1667 */
10495 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10496 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10497 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10498 if (UNTAG_Bool(REGB1
)) {
10499 /* ./syntax//typing.nit:1668 */
10500 REGB1
= TAG_Int(3);
10501 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10502 if (!once_value_4
) {
10503 fra
.me
.REG
[6] = BOX_NativeString("Error: constructor ");
10504 REGB1
= TAG_Int(19);
10505 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10506 once_value_4
= fra
.me
.REG
[6];
10507 register_static_object(&once_value_4
);
10508 } else fra
.me
.REG
[6] = once_value_4
;
10509 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10511 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10512 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10513 if (!once_value_5
) {
10514 fra
.me
.REG
[6] = BOX_NativeString(" is not invoken on 'self'.");
10515 REGB1
= TAG_Int(26);
10516 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10517 once_value_5
= fra
.me
.REG
[6];
10518 register_static_object(&once_value_5
);
10519 } else fra
.me
.REG
[6] = once_value_5
;
10520 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10521 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10522 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10523 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10527 /* ./syntax//typing.nit:1671 */
10528 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10529 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10530 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10531 if (UNTAG_Bool(REGB1
)) {
10532 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1671);
10534 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10535 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10536 REGB1
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
10537 if (UNTAG_Bool(REGB1
)) {
10539 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1671);
10541 /* ./syntax//typing.nit:1672 */
10542 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10543 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10544 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10545 if (UNTAG_Bool(REGB1
)) {
10546 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10547 fra
.me
.REG
[4] = fra
.me
.REG
[0];
10549 /* ./syntax//typing.nit:1674 */
10550 fra
.me
.REG
[4] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[4]);
10551 /* ./syntax//typing.nit:1675 */
10552 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10553 if (UNTAG_Bool(REGB1
)) {
10555 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10556 if (UNTAG_Bool(REGB0
)) {
10557 REGB0
= TAG_Bool(false);
10560 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10564 if (UNTAG_Bool(REGB1
)) {
10567 /* ./syntax//typing.nit:1676 */
10568 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10569 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10570 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4], fra
.me
.REG
[0]);
10571 /* ./syntax//typing.nit:1678 */
10572 ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
10573 /* ./syntax//typing.nit:1679 */
10574 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10575 fra
.me
.REG
[3] = fra
.me
.REG
[0];
10576 /* ./syntax//typing.nit:1680 */
10577 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10578 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
10579 /* ./syntax//typing.nit:1682 */
10580 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10581 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10582 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10583 REGB1
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10584 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10585 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10586 REGB2
= TAG_Int(3);
10587 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
10588 if (!once_value_6
) {
10589 fra
.me
.REG
[6] = BOX_NativeString("");
10590 REGB2
= TAG_Int(0);
10591 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10592 once_value_6
= fra
.me
.REG
[6];
10593 register_static_object(&once_value_6
);
10594 } else fra
.me
.REG
[6] = once_value_6
;
10595 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10596 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10597 fra
.me
.REG
[6] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10598 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10599 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10600 if (!once_value_7
) {
10601 fra
.me
.REG
[6] = BOX_NativeString("=");
10602 REGB2
= TAG_Int(1);
10603 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10604 once_value_7
= fra
.me
.REG
[6];
10605 register_static_object(&once_value_7
);
10606 } else fra
.me
.REG
[6] = once_value_7
;
10607 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10608 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10609 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10610 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10611 CALL_syntax___typing___AAbsSendExpr___do_typing(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[0], REGB1
, REGB0
, fra
.me
.REG
[4], fra
.me
.REG
[3], NIT_NULL
);
10612 /* ./syntax//typing.nit:1683 */
10613 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10614 if (UNTAG_Bool(REGB0
)) {
10615 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1683);
10617 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10618 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10619 if (UNTAG_Bool(REGB0
)) {
10620 /* ./syntax//typing.nit:1684 */
10621 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10622 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10623 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10624 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10625 if (UNTAG_Bool(REGB0
)) {
10626 /* ./syntax//typing.nit:1685 */
10627 REGB0
= TAG_Int(3);
10628 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10629 if (!once_value_8
) {
10630 fra
.me
.REG
[4] = BOX_NativeString("Error: try to invoke constructor ");
10631 REGB0
= TAG_Int(33);
10632 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10633 once_value_8
= fra
.me
.REG
[4];
10634 register_static_object(&once_value_8
);
10635 } else fra
.me
.REG
[4] = once_value_8
;
10636 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10637 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10638 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10640 if (!once_value_9
) {
10641 fra
.me
.REG
[4] = BOX_NativeString(" in a method.");
10642 REGB0
= TAG_Int(13);
10643 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10644 once_value_9
= fra
.me
.REG
[4];
10645 register_static_object(&once_value_9
);
10646 } else fra
.me
.REG
[4] = once_value_9
;
10647 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10648 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10649 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10650 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
10652 /* ./syntax//typing.nit:1686 */
10653 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10654 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10655 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10656 if (UNTAG_Bool(REGB0
)) {
10657 /* ./syntax//typing.nit:1687 */
10658 REGB0
= TAG_Int(3);
10659 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10660 if (!once_value_10
) {
10661 fra
.me
.REG
[4] = BOX_NativeString("Error: constructor ");
10662 REGB0
= TAG_Int(19);
10663 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10664 once_value_10
= fra
.me
.REG
[4];
10665 register_static_object(&once_value_10
);
10666 } else fra
.me
.REG
[4] = once_value_10
;
10667 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10668 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10669 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10670 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10671 if (!once_value_11
) {
10672 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
10673 REGB0
= TAG_Int(26);
10674 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
10675 once_value_11
= fra
.me
.REG
[5];
10676 register_static_object(&once_value_11
);
10677 } else fra
.me
.REG
[5] = once_value_11
;
10678 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10679 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10680 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10681 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
10685 /* ./syntax//typing.nit:1691 */
10686 REGB0
= TAG_Bool(true);
10687 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
10689 stack_frame_head
= fra
.me
.prev
;
10692 val_t
syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0
){
10693 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10696 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10697 fra
.me
.file
= LOCATE_syntax___typing
;
10698 fra
.me
.line
= 1696;
10699 fra
.me
.meth
= LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments
;
10700 fra
.me
.has_broke
= 0;
10701 fra
.me
.REG_size
= 2;
10702 fra
.me
.nitni_local_ref_head
= NULL
;
10703 fra
.me
.REG
[0] = NIT_NULL
;
10704 fra
.me
.REG
[1] = NIT_NULL
;
10705 fra
.me
.REG
[0] = p0
;
10706 /* ./syntax//typing.nit:1696 */
10707 REGB0
= TAG_Int(1);
10708 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10709 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
10713 stack_frame_head
= fra
.me
.prev
;
10714 return fra
.me
.REG
[1];
10716 val_t
syntax___typing___AEqExpr___name(val_t p0
){
10717 struct {struct stack_frame_t me
;} fra
;
10720 static val_t once_value_1
; /* Once value */
10721 static val_t once_value_2
; /* Once value */
10722 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10723 fra
.me
.file
= LOCATE_syntax___typing
;
10724 fra
.me
.line
= 1699;
10725 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___name
;
10726 fra
.me
.has_broke
= 0;
10727 fra
.me
.REG_size
= 1;
10728 fra
.me
.nitni_local_ref_head
= NULL
;
10729 fra
.me
.REG
[0] = NIT_NULL
;
10730 fra
.me
.REG
[0] = p0
;
10731 /* ./syntax//typing.nit:1699 */
10732 if (!once_value_1
) {
10733 if (!once_value_2
) {
10734 fra
.me
.REG
[0] = BOX_NativeString("==");
10735 REGB0
= TAG_Int(2);
10736 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10737 once_value_2
= fra
.me
.REG
[0];
10738 register_static_object(&once_value_2
);
10739 } else fra
.me
.REG
[0] = once_value_2
;
10740 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10741 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10742 once_value_1
= fra
.me
.REG
[0];
10743 register_static_object(&once_value_1
);
10744 } else fra
.me
.REG
[0] = once_value_1
;
10745 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10748 stack_frame_head
= fra
.me
.prev
;
10749 return fra
.me
.REG
[0];
10751 void syntax___typing___AEqExpr___after_typing(val_t p0
, val_t p1
){
10752 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
10756 static val_t once_value_2
; /* Once value */
10757 static val_t once_value_3
; /* Once value */
10758 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10759 fra
.me
.file
= LOCATE_syntax___typing
;
10760 fra
.me
.line
= 1700;
10761 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___after_typing
;
10762 fra
.me
.has_broke
= 0;
10763 fra
.me
.REG_size
= 4;
10764 fra
.me
.nitni_local_ref_head
= NULL
;
10765 fra
.me
.REG
[0] = NIT_NULL
;
10766 fra
.me
.REG
[1] = NIT_NULL
;
10767 fra
.me
.REG
[2] = NIT_NULL
;
10768 fra
.me
.REG
[3] = NIT_NULL
;
10769 fra
.me
.REG
[0] = p0
;
10770 fra
.me
.REG
[1] = p1
;
10771 /* ./syntax//typing.nit:1700 */
10772 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10773 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10774 /* ./syntax//typing.nit:1702 */
10775 CALL_SUPER_syntax___typing___AEqExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10776 /* ./syntax//typing.nit:1703 */
10777 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10778 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10779 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10780 if (UNTAG_Bool(REGB0
)) {
10781 REGB0
= TAG_Bool(true);
10783 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10784 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10785 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10788 if (UNTAG_Bool(REGB0
)) {
10791 /* ./syntax//typing.nit:1704 */
10792 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10793 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10794 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10795 if (UNTAG_Bool(REGB0
)) {
10796 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10797 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10798 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10799 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10801 REGB1
= TAG_Bool(false);
10804 if (UNTAG_Bool(REGB0
)) {
10805 REGB0
= TAG_Bool(true);
10807 /* ./syntax//typing.nit:1705 */
10808 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10809 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10810 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10811 /* ./syntax//typing.nit:1704 */
10814 if (UNTAG_Bool(REGB0
)) {
10815 /* ./syntax//typing.nit:1705 */
10816 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10817 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10818 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10819 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10821 /* ./syntax//typing.nit:1704 */
10822 REGB1
= TAG_Bool(false);
10825 if (UNTAG_Bool(REGB0
)) {
10826 /* ./syntax//typing.nit:1706 */
10827 if (!once_value_2
) {
10828 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
10829 REGB0
= TAG_Int(59);
10830 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10831 once_value_2
= fra
.me
.REG
[1];
10832 register_static_object(&once_value_2
);
10833 } else fra
.me
.REG
[1] = once_value_2
;
10834 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10835 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10837 /* ./syntax//typing.nit:1709 */
10838 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10839 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10840 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10841 if (UNTAG_Bool(REGB0
)) {
10842 /* ./syntax//typing.nit:1710 */
10843 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10844 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10845 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10846 if (UNTAG_Bool(REGB0
)) {
10847 /* ./syntax//typing.nit:1711 */
10848 if (!once_value_3
) {
10849 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
10850 REGB0
= TAG_Int(43);
10851 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10852 once_value_3
= fra
.me
.REG
[1];
10853 register_static_object(&once_value_3
);
10854 } else fra
.me
.REG
[1] = once_value_3
;
10855 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10856 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10858 /* ./syntax//typing.nit:1713 */
10859 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10860 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10863 /* ./syntax//typing.nit:1715 */
10864 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10865 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10866 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10867 if (UNTAG_Bool(REGB0
)) {
10868 /* ./syntax//typing.nit:1716 */
10869 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10870 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10874 stack_frame_head
= fra
.me
.prev
;
10877 void syntax___typing___AEqExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
10878 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10882 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10883 fra
.me
.file
= LOCATE_syntax___typing
;
10884 fra
.me
.line
= 1720;
10885 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___try_to_isa
;
10886 fra
.me
.has_broke
= 0;
10887 fra
.me
.REG_size
= 5;
10888 fra
.me
.nitni_local_ref_head
= NULL
;
10889 fra
.me
.REG
[0] = NIT_NULL
;
10890 fra
.me
.REG
[1] = NIT_NULL
;
10891 fra
.me
.REG
[2] = NIT_NULL
;
10892 fra
.me
.REG
[3] = NIT_NULL
;
10893 fra
.me
.REG
[4] = NIT_NULL
;
10894 fra
.me
.REG
[0] = p0
;
10895 fra
.me
.REG
[1] = p1
;
10896 fra
.me
.REG
[2] = p2
;
10897 /* ./syntax//typing.nit:1722 */
10898 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10899 /* ./syntax//typing.nit:1723 */
10900 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10901 if (UNTAG_Bool(REGB0
)) {
10903 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10904 if (UNTAG_Bool(REGB1
)) {
10905 REGB1
= TAG_Bool(false);
10908 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10912 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10913 if (UNTAG_Bool(REGB0
)) {
10914 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10915 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
10917 REGB1
= TAG_Bool(false);
10920 if (UNTAG_Bool(REGB0
)) {
10921 /* ./syntax//typing.nit:1724 */
10922 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10923 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10924 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10925 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
10926 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10927 /* ./syntax//typing.nit:1725 */
10928 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10929 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10930 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10931 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
10933 stack_frame_head
= fra
.me
.prev
;
10936 val_t
syntax___typing___ANeExpr___name(val_t p0
){
10937 struct {struct stack_frame_t me
;} fra
;
10940 static val_t once_value_1
; /* Once value */
10941 static val_t once_value_2
; /* Once value */
10942 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10943 fra
.me
.file
= LOCATE_syntax___typing
;
10944 fra
.me
.line
= 1730;
10945 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___name
;
10946 fra
.me
.has_broke
= 0;
10947 fra
.me
.REG_size
= 1;
10948 fra
.me
.nitni_local_ref_head
= NULL
;
10949 fra
.me
.REG
[0] = NIT_NULL
;
10950 fra
.me
.REG
[0] = p0
;
10951 /* ./syntax//typing.nit:1730 */
10952 if (!once_value_1
) {
10953 if (!once_value_2
) {
10954 fra
.me
.REG
[0] = BOX_NativeString("!=");
10955 REGB0
= TAG_Int(2);
10956 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10957 once_value_2
= fra
.me
.REG
[0];
10958 register_static_object(&once_value_2
);
10959 } else fra
.me
.REG
[0] = once_value_2
;
10960 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10961 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10962 once_value_1
= fra
.me
.REG
[0];
10963 register_static_object(&once_value_1
);
10964 } else fra
.me
.REG
[0] = once_value_1
;
10965 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10968 stack_frame_head
= fra
.me
.prev
;
10969 return fra
.me
.REG
[0];
10971 void syntax___typing___ANeExpr___after_typing(val_t p0
, val_t p1
){
10972 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
10976 static val_t once_value_2
; /* Once value */
10977 static val_t once_value_3
; /* Once value */
10978 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10979 fra
.me
.file
= LOCATE_syntax___typing
;
10980 fra
.me
.line
= 1731;
10981 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___after_typing
;
10982 fra
.me
.has_broke
= 0;
10983 fra
.me
.REG_size
= 4;
10984 fra
.me
.nitni_local_ref_head
= NULL
;
10985 fra
.me
.REG
[0] = NIT_NULL
;
10986 fra
.me
.REG
[1] = NIT_NULL
;
10987 fra
.me
.REG
[2] = NIT_NULL
;
10988 fra
.me
.REG
[3] = NIT_NULL
;
10989 fra
.me
.REG
[0] = p0
;
10990 fra
.me
.REG
[1] = p1
;
10991 /* ./syntax//typing.nit:1731 */
10992 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10993 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10994 /* ./syntax//typing.nit:1733 */
10995 CALL_SUPER_syntax___typing___ANeExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10996 /* ./syntax//typing.nit:1734 */
10997 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10998 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10999 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11000 if (UNTAG_Bool(REGB0
)) {
11001 REGB0
= TAG_Bool(true);
11003 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11004 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11005 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
11008 if (UNTAG_Bool(REGB0
)) {
11011 /* ./syntax//typing.nit:1735 */
11012 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11013 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11014 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11015 if (UNTAG_Bool(REGB0
)) {
11016 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11017 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11018 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11019 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11021 REGB1
= TAG_Bool(false);
11024 if (UNTAG_Bool(REGB0
)) {
11025 REGB0
= TAG_Bool(true);
11027 /* ./syntax//typing.nit:1736 */
11028 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11029 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11030 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11031 /* ./syntax//typing.nit:1735 */
11034 if (UNTAG_Bool(REGB0
)) {
11035 /* ./syntax//typing.nit:1736 */
11036 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11037 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11038 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11039 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11041 /* ./syntax//typing.nit:1735 */
11042 REGB1
= TAG_Bool(false);
11045 if (UNTAG_Bool(REGB0
)) {
11046 /* ./syntax//typing.nit:1737 */
11047 if (!once_value_2
) {
11048 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
11049 REGB0
= TAG_Int(59);
11050 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11051 once_value_2
= fra
.me
.REG
[1];
11052 register_static_object(&once_value_2
);
11053 } else fra
.me
.REG
[1] = once_value_2
;
11054 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11055 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11057 /* ./syntax//typing.nit:1740 */
11058 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11059 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11060 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11061 if (UNTAG_Bool(REGB0
)) {
11062 /* ./syntax//typing.nit:1741 */
11063 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11064 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11065 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11066 if (UNTAG_Bool(REGB0
)) {
11067 /* ./syntax//typing.nit:1742 */
11068 if (!once_value_3
) {
11069 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
11070 REGB0
= TAG_Int(43);
11071 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11072 once_value_3
= fra
.me
.REG
[1];
11073 register_static_object(&once_value_3
);
11074 } else fra
.me
.REG
[1] = once_value_3
;
11075 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11076 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11078 /* ./syntax//typing.nit:1744 */
11079 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11080 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11083 /* ./syntax//typing.nit:1746 */
11084 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11085 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11086 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11087 if (UNTAG_Bool(REGB0
)) {
11088 /* ./syntax//typing.nit:1747 */
11089 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11090 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11094 stack_frame_head
= fra
.me
.prev
;
11097 void syntax___typing___ANeExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
11098 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11102 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11103 fra
.me
.file
= LOCATE_syntax___typing
;
11104 fra
.me
.line
= 1751;
11105 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___try_to_isa
;
11106 fra
.me
.has_broke
= 0;
11107 fra
.me
.REG_size
= 5;
11108 fra
.me
.nitni_local_ref_head
= NULL
;
11109 fra
.me
.REG
[0] = NIT_NULL
;
11110 fra
.me
.REG
[1] = NIT_NULL
;
11111 fra
.me
.REG
[2] = NIT_NULL
;
11112 fra
.me
.REG
[3] = NIT_NULL
;
11113 fra
.me
.REG
[4] = NIT_NULL
;
11114 fra
.me
.REG
[0] = p0
;
11115 fra
.me
.REG
[1] = p1
;
11116 fra
.me
.REG
[2] = p2
;
11117 /* ./syntax//typing.nit:1753 */
11118 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11119 /* ./syntax//typing.nit:1754 */
11120 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11121 if (UNTAG_Bool(REGB0
)) {
11123 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11124 if (UNTAG_Bool(REGB1
)) {
11125 REGB1
= TAG_Bool(false);
11128 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11132 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11133 if (UNTAG_Bool(REGB0
)) {
11134 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11135 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
11137 REGB1
= TAG_Bool(false);
11140 if (UNTAG_Bool(REGB0
)) {
11141 /* ./syntax//typing.nit:1755 */
11142 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11143 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11144 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11145 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
11146 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11147 /* ./syntax//typing.nit:1756 */
11148 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11149 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11150 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11151 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
11153 stack_frame_head
= fra
.me
.prev
;
11156 val_t
syntax___typing___ALtExpr___name(val_t p0
){
11157 struct {struct stack_frame_t me
;} fra
;
11160 static val_t once_value_1
; /* Once value */
11161 static val_t once_value_2
; /* Once value */
11162 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11163 fra
.me
.file
= LOCATE_syntax___typing
;
11164 fra
.me
.line
= 1761;
11165 fra
.me
.meth
= LOCATE_syntax___typing___ALtExpr___name
;
11166 fra
.me
.has_broke
= 0;
11167 fra
.me
.REG_size
= 1;
11168 fra
.me
.nitni_local_ref_head
= NULL
;
11169 fra
.me
.REG
[0] = NIT_NULL
;
11170 fra
.me
.REG
[0] = p0
;
11171 /* ./syntax//typing.nit:1761 */
11172 if (!once_value_1
) {
11173 if (!once_value_2
) {
11174 fra
.me
.REG
[0] = BOX_NativeString("<");
11175 REGB0
= TAG_Int(1);
11176 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11177 once_value_2
= fra
.me
.REG
[0];
11178 register_static_object(&once_value_2
);
11179 } else fra
.me
.REG
[0] = once_value_2
;
11180 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11181 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11182 once_value_1
= fra
.me
.REG
[0];
11183 register_static_object(&once_value_1
);
11184 } else fra
.me
.REG
[0] = once_value_1
;
11185 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11188 stack_frame_head
= fra
.me
.prev
;
11189 return fra
.me
.REG
[0];
11191 val_t
syntax___typing___ALeExpr___name(val_t p0
){
11192 struct {struct stack_frame_t me
;} fra
;
11195 static val_t once_value_1
; /* Once value */
11196 static val_t once_value_2
; /* Once value */
11197 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11198 fra
.me
.file
= LOCATE_syntax___typing
;
11199 fra
.me
.line
= 1764;
11200 fra
.me
.meth
= LOCATE_syntax___typing___ALeExpr___name
;
11201 fra
.me
.has_broke
= 0;
11202 fra
.me
.REG_size
= 1;
11203 fra
.me
.nitni_local_ref_head
= NULL
;
11204 fra
.me
.REG
[0] = NIT_NULL
;
11205 fra
.me
.REG
[0] = p0
;
11206 /* ./syntax//typing.nit:1764 */
11207 if (!once_value_1
) {
11208 if (!once_value_2
) {
11209 fra
.me
.REG
[0] = BOX_NativeString("<=");
11210 REGB0
= TAG_Int(2);
11211 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11212 once_value_2
= fra
.me
.REG
[0];
11213 register_static_object(&once_value_2
);
11214 } else fra
.me
.REG
[0] = once_value_2
;
11215 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11216 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11217 once_value_1
= fra
.me
.REG
[0];
11218 register_static_object(&once_value_1
);
11219 } else fra
.me
.REG
[0] = once_value_1
;
11220 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11223 stack_frame_head
= fra
.me
.prev
;
11224 return fra
.me
.REG
[0];
11226 val_t
syntax___typing___ALlExpr___name(val_t p0
){
11227 struct {struct stack_frame_t me
;} fra
;
11230 static val_t once_value_1
; /* Once value */
11231 static val_t once_value_2
; /* Once value */
11232 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11233 fra
.me
.file
= LOCATE_syntax___typing
;
11234 fra
.me
.line
= 1767;
11235 fra
.me
.meth
= LOCATE_syntax___typing___ALlExpr___name
;
11236 fra
.me
.has_broke
= 0;
11237 fra
.me
.REG_size
= 1;
11238 fra
.me
.nitni_local_ref_head
= NULL
;
11239 fra
.me
.REG
[0] = NIT_NULL
;
11240 fra
.me
.REG
[0] = p0
;
11241 /* ./syntax//typing.nit:1767 */
11242 if (!once_value_1
) {
11243 if (!once_value_2
) {
11244 fra
.me
.REG
[0] = BOX_NativeString("<<");
11245 REGB0
= TAG_Int(2);
11246 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11247 once_value_2
= fra
.me
.REG
[0];
11248 register_static_object(&once_value_2
);
11249 } else fra
.me
.REG
[0] = once_value_2
;
11250 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11251 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11252 once_value_1
= fra
.me
.REG
[0];
11253 register_static_object(&once_value_1
);
11254 } else fra
.me
.REG
[0] = once_value_1
;
11255 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11258 stack_frame_head
= fra
.me
.prev
;
11259 return fra
.me
.REG
[0];
11261 val_t
syntax___typing___AGtExpr___name(val_t p0
){
11262 struct {struct stack_frame_t me
;} fra
;
11265 static val_t once_value_1
; /* Once value */
11266 static val_t once_value_2
; /* Once value */
11267 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11268 fra
.me
.file
= LOCATE_syntax___typing
;
11269 fra
.me
.line
= 1770;
11270 fra
.me
.meth
= LOCATE_syntax___typing___AGtExpr___name
;
11271 fra
.me
.has_broke
= 0;
11272 fra
.me
.REG_size
= 1;
11273 fra
.me
.nitni_local_ref_head
= NULL
;
11274 fra
.me
.REG
[0] = NIT_NULL
;
11275 fra
.me
.REG
[0] = p0
;
11276 /* ./syntax//typing.nit:1770 */
11277 if (!once_value_1
) {
11278 if (!once_value_2
) {
11279 fra
.me
.REG
[0] = BOX_NativeString(">");
11280 REGB0
= TAG_Int(1);
11281 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11282 once_value_2
= fra
.me
.REG
[0];
11283 register_static_object(&once_value_2
);
11284 } else fra
.me
.REG
[0] = once_value_2
;
11285 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11286 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11287 once_value_1
= fra
.me
.REG
[0];
11288 register_static_object(&once_value_1
);
11289 } else fra
.me
.REG
[0] = once_value_1
;
11290 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11293 stack_frame_head
= fra
.me
.prev
;
11294 return fra
.me
.REG
[0];
11296 val_t
syntax___typing___AGeExpr___name(val_t p0
){
11297 struct {struct stack_frame_t me
;} fra
;
11300 static val_t once_value_1
; /* Once value */
11301 static val_t once_value_2
; /* Once value */
11302 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11303 fra
.me
.file
= LOCATE_syntax___typing
;
11304 fra
.me
.line
= 1773;
11305 fra
.me
.meth
= LOCATE_syntax___typing___AGeExpr___name
;
11306 fra
.me
.has_broke
= 0;
11307 fra
.me
.REG_size
= 1;
11308 fra
.me
.nitni_local_ref_head
= NULL
;
11309 fra
.me
.REG
[0] = NIT_NULL
;
11310 fra
.me
.REG
[0] = p0
;
11311 /* ./syntax//typing.nit:1773 */
11312 if (!once_value_1
) {
11313 if (!once_value_2
) {
11314 fra
.me
.REG
[0] = BOX_NativeString(">=");
11315 REGB0
= TAG_Int(2);
11316 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11317 once_value_2
= fra
.me
.REG
[0];
11318 register_static_object(&once_value_2
);
11319 } else fra
.me
.REG
[0] = once_value_2
;
11320 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11321 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11322 once_value_1
= fra
.me
.REG
[0];
11323 register_static_object(&once_value_1
);
11324 } else fra
.me
.REG
[0] = once_value_1
;
11325 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11328 stack_frame_head
= fra
.me
.prev
;
11329 return fra
.me
.REG
[0];
11331 val_t
syntax___typing___AGgExpr___name(val_t p0
){
11332 struct {struct stack_frame_t me
;} fra
;
11335 static val_t once_value_1
; /* Once value */
11336 static val_t once_value_2
; /* Once value */
11337 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11338 fra
.me
.file
= LOCATE_syntax___typing
;
11339 fra
.me
.line
= 1776;
11340 fra
.me
.meth
= LOCATE_syntax___typing___AGgExpr___name
;
11341 fra
.me
.has_broke
= 0;
11342 fra
.me
.REG_size
= 1;
11343 fra
.me
.nitni_local_ref_head
= NULL
;
11344 fra
.me
.REG
[0] = NIT_NULL
;
11345 fra
.me
.REG
[0] = p0
;
11346 /* ./syntax//typing.nit:1776 */
11347 if (!once_value_1
) {
11348 if (!once_value_2
) {
11349 fra
.me
.REG
[0] = BOX_NativeString(">>");
11350 REGB0
= TAG_Int(2);
11351 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11352 once_value_2
= fra
.me
.REG
[0];
11353 register_static_object(&once_value_2
);
11354 } else fra
.me
.REG
[0] = once_value_2
;
11355 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11356 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11357 once_value_1
= fra
.me
.REG
[0];
11358 register_static_object(&once_value_1
);
11359 } else fra
.me
.REG
[0] = once_value_1
;
11360 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11363 stack_frame_head
= fra
.me
.prev
;
11364 return fra
.me
.REG
[0];
11366 val_t
syntax___typing___APlusExpr___name(val_t p0
){
11367 struct {struct stack_frame_t me
;} fra
;
11370 static val_t once_value_1
; /* Once value */
11371 static val_t once_value_2
; /* Once value */
11372 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11373 fra
.me
.file
= LOCATE_syntax___typing
;
11374 fra
.me
.line
= 1779;
11375 fra
.me
.meth
= LOCATE_syntax___typing___APlusExpr___name
;
11376 fra
.me
.has_broke
= 0;
11377 fra
.me
.REG_size
= 1;
11378 fra
.me
.nitni_local_ref_head
= NULL
;
11379 fra
.me
.REG
[0] = NIT_NULL
;
11380 fra
.me
.REG
[0] = p0
;
11381 /* ./syntax//typing.nit:1779 */
11382 if (!once_value_1
) {
11383 if (!once_value_2
) {
11384 fra
.me
.REG
[0] = BOX_NativeString("+");
11385 REGB0
= TAG_Int(1);
11386 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11387 once_value_2
= fra
.me
.REG
[0];
11388 register_static_object(&once_value_2
);
11389 } else fra
.me
.REG
[0] = once_value_2
;
11390 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11391 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11392 once_value_1
= fra
.me
.REG
[0];
11393 register_static_object(&once_value_1
);
11394 } else fra
.me
.REG
[0] = once_value_1
;
11395 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11398 stack_frame_head
= fra
.me
.prev
;
11399 return fra
.me
.REG
[0];
11401 val_t
syntax___typing___AMinusExpr___name(val_t p0
){
11402 struct {struct stack_frame_t me
;} fra
;
11405 static val_t once_value_1
; /* Once value */
11406 static val_t once_value_2
; /* Once value */
11407 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11408 fra
.me
.file
= LOCATE_syntax___typing
;
11409 fra
.me
.line
= 1782;
11410 fra
.me
.meth
= LOCATE_syntax___typing___AMinusExpr___name
;
11411 fra
.me
.has_broke
= 0;
11412 fra
.me
.REG_size
= 1;
11413 fra
.me
.nitni_local_ref_head
= NULL
;
11414 fra
.me
.REG
[0] = NIT_NULL
;
11415 fra
.me
.REG
[0] = p0
;
11416 /* ./syntax//typing.nit:1782 */
11417 if (!once_value_1
) {
11418 if (!once_value_2
) {
11419 fra
.me
.REG
[0] = BOX_NativeString("-");
11420 REGB0
= TAG_Int(1);
11421 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11422 once_value_2
= fra
.me
.REG
[0];
11423 register_static_object(&once_value_2
);
11424 } else fra
.me
.REG
[0] = once_value_2
;
11425 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11426 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11427 once_value_1
= fra
.me
.REG
[0];
11428 register_static_object(&once_value_1
);
11429 } else fra
.me
.REG
[0] = once_value_1
;
11430 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11433 stack_frame_head
= fra
.me
.prev
;
11434 return fra
.me
.REG
[0];
11436 val_t
syntax___typing___AStarshipExpr___name(val_t p0
){
11437 struct {struct stack_frame_t me
;} fra
;
11440 static val_t once_value_1
; /* Once value */
11441 static val_t once_value_2
; /* Once value */
11442 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11443 fra
.me
.file
= LOCATE_syntax___typing
;
11444 fra
.me
.line
= 1785;
11445 fra
.me
.meth
= LOCATE_syntax___typing___AStarshipExpr___name
;
11446 fra
.me
.has_broke
= 0;
11447 fra
.me
.REG_size
= 1;
11448 fra
.me
.nitni_local_ref_head
= NULL
;
11449 fra
.me
.REG
[0] = NIT_NULL
;
11450 fra
.me
.REG
[0] = p0
;
11451 /* ./syntax//typing.nit:1785 */
11452 if (!once_value_1
) {
11453 if (!once_value_2
) {
11454 fra
.me
.REG
[0] = BOX_NativeString("<=>");
11455 REGB0
= TAG_Int(3);
11456 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11457 once_value_2
= fra
.me
.REG
[0];
11458 register_static_object(&once_value_2
);
11459 } else fra
.me
.REG
[0] = once_value_2
;
11460 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11461 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11462 once_value_1
= fra
.me
.REG
[0];
11463 register_static_object(&once_value_1
);
11464 } else fra
.me
.REG
[0] = once_value_1
;
11465 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11468 stack_frame_head
= fra
.me
.prev
;
11469 return fra
.me
.REG
[0];
11471 val_t
syntax___typing___AStarExpr___name(val_t p0
){
11472 struct {struct stack_frame_t me
;} fra
;
11475 static val_t once_value_1
; /* Once value */
11476 static val_t once_value_2
; /* Once value */
11477 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11478 fra
.me
.file
= LOCATE_syntax___typing
;
11479 fra
.me
.line
= 1788;
11480 fra
.me
.meth
= LOCATE_syntax___typing___AStarExpr___name
;
11481 fra
.me
.has_broke
= 0;
11482 fra
.me
.REG_size
= 1;
11483 fra
.me
.nitni_local_ref_head
= NULL
;
11484 fra
.me
.REG
[0] = NIT_NULL
;
11485 fra
.me
.REG
[0] = p0
;
11486 /* ./syntax//typing.nit:1788 */
11487 if (!once_value_1
) {
11488 if (!once_value_2
) {
11489 fra
.me
.REG
[0] = BOX_NativeString("*");
11490 REGB0
= TAG_Int(1);
11491 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11492 once_value_2
= fra
.me
.REG
[0];
11493 register_static_object(&once_value_2
);
11494 } else fra
.me
.REG
[0] = once_value_2
;
11495 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11496 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11497 once_value_1
= fra
.me
.REG
[0];
11498 register_static_object(&once_value_1
);
11499 } else fra
.me
.REG
[0] = once_value_1
;
11500 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11503 stack_frame_head
= fra
.me
.prev
;
11504 return fra
.me
.REG
[0];
11506 val_t
syntax___typing___ASlashExpr___name(val_t p0
){
11507 struct {struct stack_frame_t me
;} fra
;
11510 static val_t once_value_1
; /* Once value */
11511 static val_t once_value_2
; /* Once value */
11512 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11513 fra
.me
.file
= LOCATE_syntax___typing
;
11514 fra
.me
.line
= 1791;
11515 fra
.me
.meth
= LOCATE_syntax___typing___ASlashExpr___name
;
11516 fra
.me
.has_broke
= 0;
11517 fra
.me
.REG_size
= 1;
11518 fra
.me
.nitni_local_ref_head
= NULL
;
11519 fra
.me
.REG
[0] = NIT_NULL
;
11520 fra
.me
.REG
[0] = p0
;
11521 /* ./syntax//typing.nit:1791 */
11522 if (!once_value_1
) {
11523 if (!once_value_2
) {
11524 fra
.me
.REG
[0] = BOX_NativeString("/");
11525 REGB0
= TAG_Int(1);
11526 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11527 once_value_2
= fra
.me
.REG
[0];
11528 register_static_object(&once_value_2
);
11529 } else fra
.me
.REG
[0] = once_value_2
;
11530 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11531 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11532 once_value_1
= fra
.me
.REG
[0];
11533 register_static_object(&once_value_1
);
11534 } else fra
.me
.REG
[0] = once_value_1
;
11535 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11538 stack_frame_head
= fra
.me
.prev
;
11539 return fra
.me
.REG
[0];
11541 val_t
syntax___typing___APercentExpr___name(val_t p0
){
11542 struct {struct stack_frame_t me
;} fra
;
11545 static val_t once_value_1
; /* Once value */
11546 static val_t once_value_2
; /* Once value */
11547 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11548 fra
.me
.file
= LOCATE_syntax___typing
;
11549 fra
.me
.line
= 1794;
11550 fra
.me
.meth
= LOCATE_syntax___typing___APercentExpr___name
;
11551 fra
.me
.has_broke
= 0;
11552 fra
.me
.REG_size
= 1;
11553 fra
.me
.nitni_local_ref_head
= NULL
;
11554 fra
.me
.REG
[0] = NIT_NULL
;
11555 fra
.me
.REG
[0] = p0
;
11556 /* ./syntax//typing.nit:1794 */
11557 if (!once_value_1
) {
11558 if (!once_value_2
) {
11559 fra
.me
.REG
[0] = BOX_NativeString("%");
11560 REGB0
= TAG_Int(1);
11561 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11562 once_value_2
= fra
.me
.REG
[0];
11563 register_static_object(&once_value_2
);
11564 } else fra
.me
.REG
[0] = once_value_2
;
11565 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11566 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11567 once_value_1
= fra
.me
.REG
[0];
11568 register_static_object(&once_value_1
);
11569 } else fra
.me
.REG
[0] = once_value_1
;
11570 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11573 stack_frame_head
= fra
.me
.prev
;
11574 return fra
.me
.REG
[0];
11576 val_t
syntax___typing___AUminusExpr___name(val_t p0
){
11577 struct {struct stack_frame_t me
;} fra
;
11580 static val_t once_value_1
; /* Once value */
11581 static val_t once_value_2
; /* Once value */
11582 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11583 fra
.me
.file
= LOCATE_syntax___typing
;
11584 fra
.me
.line
= 1798;
11585 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___name
;
11586 fra
.me
.has_broke
= 0;
11587 fra
.me
.REG_size
= 1;
11588 fra
.me
.nitni_local_ref_head
= NULL
;
11589 fra
.me
.REG
[0] = NIT_NULL
;
11590 fra
.me
.REG
[0] = p0
;
11591 /* ./syntax//typing.nit:1798 */
11592 if (!once_value_1
) {
11593 if (!once_value_2
) {
11594 fra
.me
.REG
[0] = BOX_NativeString("unary -");
11595 REGB0
= TAG_Int(7);
11596 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11597 once_value_2
= fra
.me
.REG
[0];
11598 register_static_object(&once_value_2
);
11599 } else fra
.me
.REG
[0] = once_value_2
;
11600 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11601 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11602 once_value_1
= fra
.me
.REG
[0];
11603 register_static_object(&once_value_1
);
11604 } else fra
.me
.REG
[0] = once_value_1
;
11605 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11608 stack_frame_head
= fra
.me
.prev
;
11609 return fra
.me
.REG
[0];
11611 val_t
syntax___typing___AUminusExpr___compute_raw_arguments(val_t p0
){
11612 struct {struct stack_frame_t me
;} fra
;
11614 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11615 fra
.me
.file
= LOCATE_syntax___typing
;
11616 fra
.me
.line
= 1799;
11617 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments
;
11618 fra
.me
.has_broke
= 0;
11619 fra
.me
.REG_size
= 1;
11620 fra
.me
.nitni_local_ref_head
= NULL
;
11621 fra
.me
.REG
[0] = NIT_NULL
;
11622 fra
.me
.REG
[0] = p0
;
11623 /* ./syntax//typing.nit:1799 */
11624 fra
.me
.REG
[0] = NIT_NULL
;
11627 stack_frame_head
= fra
.me
.prev
;
11628 return fra
.me
.REG
[0];
11630 void syntax___typing___ACallFormExpr___after_typing(val_t p0
, val_t p1
){
11631 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
11635 static val_t once_value_1
; /* Once value */
11636 static val_t once_value_2
; /* Once value */
11637 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11638 fra
.me
.file
= LOCATE_syntax___typing
;
11639 fra
.me
.line
= 1803;
11640 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___after_typing
;
11641 fra
.me
.has_broke
= 0;
11642 fra
.me
.REG_size
= 9;
11643 fra
.me
.nitni_local_ref_head
= NULL
;
11644 fra
.me
.REG
[0] = NIT_NULL
;
11645 fra
.me
.REG
[1] = NIT_NULL
;
11646 fra
.me
.REG
[2] = NIT_NULL
;
11647 fra
.me
.REG
[3] = NIT_NULL
;
11648 fra
.me
.REG
[4] = NIT_NULL
;
11649 fra
.me
.REG
[5] = NIT_NULL
;
11650 fra
.me
.REG
[6] = NIT_NULL
;
11651 fra
.me
.REG
[7] = NIT_NULL
;
11652 fra
.me
.REG
[8] = NIT_NULL
;
11653 fra
.me
.REG
[0] = p0
;
11654 fra
.me
.REG
[1] = p1
;
11655 /* ./syntax//typing.nit:1803 */
11656 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11657 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11658 /* ./syntax//typing.nit:1805 */
11659 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11660 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11661 if (UNTAG_Bool(REGB0
)) {
11662 /* ./syntax//typing.nit:1806 */
11663 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11664 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11665 /* ./syntax//typing.nit:1807 */
11666 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11667 fra
.me
.REG
[5] = CALL_syntax___scope___ScopeContext_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
11668 /* ./syntax//typing.nit:1808 */
11669 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
11670 if (UNTAG_Bool(REGB0
)) {
11672 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
11673 if (UNTAG_Bool(REGB1
)) {
11674 REGB1
= TAG_Bool(false);
11677 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
11681 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11682 if (UNTAG_Bool(REGB0
)) {
11683 /* ./syntax//typing.nit:1810 */
11684 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_syntax___syntax_base___ClosureVariable
, ID_syntax___syntax_base___ClosureVariable
)) /*cast ClosureVariable*/;
11685 if (UNTAG_Bool(REGB0
)) {
11686 /* ./syntax//typing.nit:1811 */
11687 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11688 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11689 fra
.me
.REG
[8] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11690 fra
.me
.REG
[8] = NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
11691 /* ./syntax//typing.nit:1812 */
11692 ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
11694 /* ./syntax//typing.nit:1814 */
11695 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11696 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
11697 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11698 if (UNTAG_Bool(REGB0
)) {
11699 /* ./syntax//typing.nit:1815 */
11700 REGB0
= TAG_Int(3);
11701 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11702 if (!once_value_1
) {
11703 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
11704 REGB0
= TAG_Int(7);
11705 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
11706 once_value_1
= fra
.me
.REG
[6];
11707 register_static_object(&once_value_1
);
11708 } else fra
.me
.REG
[6] = once_value_1
;
11709 fra
.me
.REG
[6] = fra
.me
.REG
[6];
11710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
11711 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11712 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
11713 if (!once_value_2
) {
11714 fra
.me
.REG
[4] = BOX_NativeString(" is variable, not a function.");
11715 REGB0
= TAG_Int(29);
11716 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
11717 once_value_2
= fra
.me
.REG
[4];
11718 register_static_object(&once_value_2
);
11719 } else fra
.me
.REG
[4] = once_value_2
;
11720 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11721 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
11722 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
11723 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
11724 /* ./syntax//typing.nit:1816 */
11727 /* ./syntax//typing.nit:1818 */
11728 fra
.me
.REG
[7] = CALL_syntax___typing___ACallFormExpr___variable_create(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
11729 fra
.me
.REG
[8] = fra
.me
.REG
[7];
11730 /* ./syntax//typing.nit:1819 */
11731 ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
11733 /* ./syntax//typing.nit:1821 */
11734 CALL_parser___parser_prod___ANode___replace_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
11735 /* ./syntax//typing.nit:1822 */
11736 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
11737 /* ./syntax//typing.nit:1823 */
11741 /* ./syntax//typing.nit:1827 */
11742 CALL_SUPER_syntax___typing___ACallFormExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11744 stack_frame_head
= fra
.me
.prev
;
11747 val_t
syntax___typing___ACallFormExpr___closure_defs(val_t p0
){
11748 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11751 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11752 fra
.me
.file
= LOCATE_syntax___typing
;
11753 fra
.me
.line
= 1830;
11754 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___closure_defs
;
11755 fra
.me
.has_broke
= 0;
11756 fra
.me
.REG_size
= 2;
11757 fra
.me
.nitni_local_ref_head
= NULL
;
11758 fra
.me
.REG
[0] = NIT_NULL
;
11759 fra
.me
.REG
[1] = NIT_NULL
;
11760 fra
.me
.REG
[0] = p0
;
11761 /* ./syntax//typing.nit:1832 */
11762 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11763 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11764 if (UNTAG_Bool(REGB0
)) {
11765 /* ./syntax//typing.nit:1833 */
11766 fra
.me
.REG
[1] = NIT_NULL
;
11769 /* ./syntax//typing.nit:1835 */
11770 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11771 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11772 fra
.me
.REG
[1] = fra
.me
.REG
[0];
11776 stack_frame_head
= fra
.me
.prev
;
11777 return fra
.me
.REG
[1];
11779 val_t
syntax___typing___ACallFormExpr___variable_create(val_t p0
, val_t p1
){
11780 struct {struct stack_frame_t me
;} fra
;
11782 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11783 fra
.me
.file
= LOCATE_syntax___typing
;
11784 fra
.me
.line
= 1839;
11785 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___variable_create
;
11786 fra
.me
.has_broke
= 0;
11787 fra
.me
.REG_size
= 0;
11788 fra
.me
.nitni_local_ref_head
= NULL
;
11789 /* ./syntax//typing.nit:1839 */
11790 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1839);
11791 stack_frame_head
= fra
.me
.prev
;
11794 val_t
syntax___typing___ACallExpr___variable_create(val_t p0
, val_t p1
){
11795 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11797 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11798 fra
.me
.file
= LOCATE_syntax___typing
;
11799 fra
.me
.line
= 1844;
11800 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___variable_create
;
11801 fra
.me
.has_broke
= 0;
11802 fra
.me
.REG_size
= 2;
11803 fra
.me
.nitni_local_ref_head
= NULL
;
11804 fra
.me
.REG
[0] = NIT_NULL
;
11805 fra
.me
.REG
[1] = NIT_NULL
;
11806 fra
.me
.REG
[0] = p0
;
11807 fra
.me
.REG
[1] = p1
;
11808 /* ./syntax//typing.nit:1846 */
11809 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11810 fra
.me
.REG
[0] = NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(fra
.me
.REG
[0]);
11813 stack_frame_head
= fra
.me
.prev
;
11814 return fra
.me
.REG
[0];
11816 val_t
syntax___typing___ACallExpr___name(val_t p0
){
11817 struct {struct stack_frame_t me
;} fra
;
11819 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11820 fra
.me
.file
= LOCATE_syntax___typing
;
11821 fra
.me
.line
= 1849;
11822 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___name
;
11823 fra
.me
.has_broke
= 0;
11824 fra
.me
.REG_size
= 1;
11825 fra
.me
.nitni_local_ref_head
= NULL
;
11826 fra
.me
.REG
[0] = NIT_NULL
;
11827 fra
.me
.REG
[0] = p0
;
11828 /* ./syntax//typing.nit:1849 */
11829 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11830 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11833 stack_frame_head
= fra
.me
.prev
;
11834 return fra
.me
.REG
[0];
11836 val_t
syntax___typing___ACallExpr___compute_raw_arguments(val_t p0
){
11837 struct {struct stack_frame_t me
;} fra
;
11839 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11840 fra
.me
.file
= LOCATE_syntax___typing
;
11841 fra
.me
.line
= 1850;
11842 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___compute_raw_arguments
;
11843 fra
.me
.has_broke
= 0;
11844 fra
.me
.REG_size
= 1;
11845 fra
.me
.nitni_local_ref_head
= NULL
;
11846 fra
.me
.REG
[0] = NIT_NULL
;
11847 fra
.me
.REG
[0] = p0
;
11848 /* ./syntax//typing.nit:1850 */
11849 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11850 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11853 stack_frame_head
= fra
.me
.prev
;
11854 return fra
.me
.REG
[0];
11856 val_t
syntax___typing___ACallAssignExpr___variable_create(val_t p0
, val_t p1
){
11857 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
11859 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11860 fra
.me
.file
= LOCATE_syntax___typing
;
11861 fra
.me
.line
= 1854;
11862 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___variable_create
;
11863 fra
.me
.has_broke
= 0;
11864 fra
.me
.REG_size
= 3;
11865 fra
.me
.nitni_local_ref_head
= NULL
;
11866 fra
.me
.REG
[0] = NIT_NULL
;
11867 fra
.me
.REG
[1] = NIT_NULL
;
11868 fra
.me
.REG
[2] = NIT_NULL
;
11869 fra
.me
.REG
[0] = p0
;
11870 fra
.me
.REG
[1] = p1
;
11871 /* ./syntax//typing.nit:1856 */
11872 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11873 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_assign(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11874 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11875 fra
.me
.REG
[0] = NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
11878 stack_frame_head
= fra
.me
.prev
;
11879 return fra
.me
.REG
[0];
11881 val_t
syntax___typing___ACallAssignExpr___name(val_t p0
){
11882 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11885 static val_t once_value_1
; /* Once value */
11886 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11887 fra
.me
.file
= LOCATE_syntax___typing
;
11888 fra
.me
.line
= 1859;
11889 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___name
;
11890 fra
.me
.has_broke
= 0;
11891 fra
.me
.REG_size
= 2;
11892 fra
.me
.nitni_local_ref_head
= NULL
;
11893 fra
.me
.REG
[0] = NIT_NULL
;
11894 fra
.me
.REG
[1] = NIT_NULL
;
11895 fra
.me
.REG
[0] = p0
;
11896 /* ./syntax//typing.nit:1859 */
11897 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11898 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11899 if (!once_value_1
) {
11900 fra
.me
.REG
[1] = BOX_NativeString("=");
11901 REGB0
= TAG_Int(1);
11902 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11903 once_value_1
= fra
.me
.REG
[1];
11904 register_static_object(&once_value_1
);
11905 } else fra
.me
.REG
[1] = once_value_1
;
11906 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11907 fra
.me
.REG
[1] = CALL_standard___string___String_____plus(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11908 fra
.me
.REG
[1] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11911 stack_frame_head
= fra
.me
.prev
;
11912 return fra
.me
.REG
[1];
11914 val_t
syntax___typing___ACallAssignExpr___compute_raw_arguments(val_t p0
){
11915 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11917 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11918 fra
.me
.file
= LOCATE_syntax___typing
;
11919 fra
.me
.line
= 1860;
11920 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments
;
11921 fra
.me
.has_broke
= 0;
11922 fra
.me
.REG_size
= 2;
11923 fra
.me
.nitni_local_ref_head
= NULL
;
11924 fra
.me
.REG
[0] = NIT_NULL
;
11925 fra
.me
.REG
[1] = NIT_NULL
;
11926 fra
.me
.REG
[0] = p0
;
11927 /* ./syntax//typing.nit:1861 */
11928 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11929 fra
.me
.REG
[1] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11930 /* ./syntax//typing.nit:1862 */
11931 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11932 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11933 /* ./syntax//typing.nit:1863 */
11936 stack_frame_head
= fra
.me
.prev
;
11937 return fra
.me
.REG
[1];
11939 val_t
syntax___typing___ACallReassignExpr___variable_create(val_t p0
, val_t p1
){
11940 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
11942 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11943 fra
.me
.file
= LOCATE_syntax___typing
;
11944 fra
.me
.line
= 1868;
11945 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___variable_create
;
11946 fra
.me
.has_broke
= 0;
11947 fra
.me
.REG_size
= 3;
11948 fra
.me
.nitni_local_ref_head
= NULL
;
11949 fra
.me
.REG
[0] = NIT_NULL
;
11950 fra
.me
.REG
[1] = NIT_NULL
;
11951 fra
.me
.REG
[2] = NIT_NULL
;
11952 fra
.me
.REG
[0] = p0
;
11953 fra
.me
.REG
[1] = p1
;
11954 /* ./syntax//typing.nit:1870 */
11955 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11956 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11957 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11958 fra
.me
.REG
[0] = NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
11961 stack_frame_head
= fra
.me
.prev
;
11962 return fra
.me
.REG
[0];
11964 val_t
syntax___typing___ACallReassignExpr___name(val_t p0
){
11965 struct {struct stack_frame_t me
;} fra
;
11967 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11968 fra
.me
.file
= LOCATE_syntax___typing
;
11969 fra
.me
.line
= 1873;
11970 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___name
;
11971 fra
.me
.has_broke
= 0;
11972 fra
.me
.REG_size
= 1;
11973 fra
.me
.nitni_local_ref_head
= NULL
;
11974 fra
.me
.REG
[0] = NIT_NULL
;
11975 fra
.me
.REG
[0] = p0
;
11976 /* ./syntax//typing.nit:1873 */
11977 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11978 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11981 stack_frame_head
= fra
.me
.prev
;
11982 return fra
.me
.REG
[0];
11984 val_t
syntax___typing___ACallReassignExpr___compute_raw_arguments(val_t p0
){
11985 struct {struct stack_frame_t me
;} fra
;
11987 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11988 fra
.me
.file
= LOCATE_syntax___typing
;
11989 fra
.me
.line
= 1874;
11990 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments
;
11991 fra
.me
.has_broke
= 0;
11992 fra
.me
.REG_size
= 1;
11993 fra
.me
.nitni_local_ref_head
= NULL
;
11994 fra
.me
.REG
[0] = NIT_NULL
;
11995 fra
.me
.REG
[0] = p0
;
11996 /* ./syntax//typing.nit:1874 */
11997 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11998 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12001 stack_frame_head
= fra
.me
.prev
;
12002 return fra
.me
.REG
[0];
12004 val_t
syntax___typing___ABraExpr___name(val_t p0
){
12005 struct {struct stack_frame_t me
;} fra
;
12008 static val_t once_value_1
; /* Once value */
12009 static val_t once_value_2
; /* Once value */
12010 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12011 fra
.me
.file
= LOCATE_syntax___typing
;
12012 fra
.me
.line
= 1878;
12013 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___name
;
12014 fra
.me
.has_broke
= 0;
12015 fra
.me
.REG_size
= 1;
12016 fra
.me
.nitni_local_ref_head
= NULL
;
12017 fra
.me
.REG
[0] = NIT_NULL
;
12018 fra
.me
.REG
[0] = p0
;
12019 /* ./syntax//typing.nit:1878 */
12020 if (!once_value_1
) {
12021 if (!once_value_2
) {
12022 fra
.me
.REG
[0] = BOX_NativeString("[]");
12023 REGB0
= TAG_Int(2);
12024 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12025 once_value_2
= fra
.me
.REG
[0];
12026 register_static_object(&once_value_2
);
12027 } else fra
.me
.REG
[0] = once_value_2
;
12028 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12029 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12030 once_value_1
= fra
.me
.REG
[0];
12031 register_static_object(&once_value_1
);
12032 } else fra
.me
.REG
[0] = once_value_1
;
12033 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12036 stack_frame_head
= fra
.me
.prev
;
12037 return fra
.me
.REG
[0];
12039 val_t
syntax___typing___ABraExpr___compute_raw_arguments(val_t p0
){
12040 struct {struct stack_frame_t me
;} fra
;
12042 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12043 fra
.me
.file
= LOCATE_syntax___typing
;
12044 fra
.me
.line
= 1879;
12045 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___compute_raw_arguments
;
12046 fra
.me
.has_broke
= 0;
12047 fra
.me
.REG_size
= 1;
12048 fra
.me
.nitni_local_ref_head
= NULL
;
12049 fra
.me
.REG
[0] = NIT_NULL
;
12050 fra
.me
.REG
[0] = p0
;
12051 /* ./syntax//typing.nit:1879 */
12052 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12053 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12056 stack_frame_head
= fra
.me
.prev
;
12057 return fra
.me
.REG
[0];
12059 val_t
syntax___typing___ABraExpr___closure_defs(val_t p0
){
12060 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12063 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12064 fra
.me
.file
= LOCATE_syntax___typing
;
12065 fra
.me
.line
= 1880;
12066 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___closure_defs
;
12067 fra
.me
.has_broke
= 0;
12068 fra
.me
.REG_size
= 2;
12069 fra
.me
.nitni_local_ref_head
= NULL
;
12070 fra
.me
.REG
[0] = NIT_NULL
;
12071 fra
.me
.REG
[1] = NIT_NULL
;
12072 fra
.me
.REG
[0] = p0
;
12073 /* ./syntax//typing.nit:1882 */
12074 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12075 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12076 if (UNTAG_Bool(REGB0
)) {
12077 /* ./syntax//typing.nit:1883 */
12078 fra
.me
.REG
[1] = NIT_NULL
;
12081 /* ./syntax//typing.nit:1885 */
12082 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12083 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12084 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12088 stack_frame_head
= fra
.me
.prev
;
12089 return fra
.me
.REG
[1];
12091 val_t
syntax___typing___ABraAssignExpr___name(val_t p0
){
12092 struct {struct stack_frame_t me
;} fra
;
12095 static val_t once_value_1
; /* Once value */
12096 static val_t once_value_2
; /* Once value */
12097 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12098 fra
.me
.file
= LOCATE_syntax___typing
;
12099 fra
.me
.line
= 1891;
12100 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___name
;
12101 fra
.me
.has_broke
= 0;
12102 fra
.me
.REG_size
= 1;
12103 fra
.me
.nitni_local_ref_head
= NULL
;
12104 fra
.me
.REG
[0] = NIT_NULL
;
12105 fra
.me
.REG
[0] = p0
;
12106 /* ./syntax//typing.nit:1891 */
12107 if (!once_value_1
) {
12108 if (!once_value_2
) {
12109 fra
.me
.REG
[0] = BOX_NativeString("[]=");
12110 REGB0
= TAG_Int(3);
12111 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12112 once_value_2
= fra
.me
.REG
[0];
12113 register_static_object(&once_value_2
);
12114 } else fra
.me
.REG
[0] = once_value_2
;
12115 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12116 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12117 once_value_1
= fra
.me
.REG
[0];
12118 register_static_object(&once_value_1
);
12119 } else fra
.me
.REG
[0] = once_value_1
;
12120 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12123 stack_frame_head
= fra
.me
.prev
;
12124 return fra
.me
.REG
[0];
12126 val_t
syntax___typing___ABraAssignExpr___compute_raw_arguments(val_t p0
){
12127 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12129 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12130 fra
.me
.file
= LOCATE_syntax___typing
;
12131 fra
.me
.line
= 1892;
12132 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments
;
12133 fra
.me
.has_broke
= 0;
12134 fra
.me
.REG_size
= 2;
12135 fra
.me
.nitni_local_ref_head
= NULL
;
12136 fra
.me
.REG
[0] = NIT_NULL
;
12137 fra
.me
.REG
[1] = NIT_NULL
;
12138 fra
.me
.REG
[0] = p0
;
12139 /* ./syntax//typing.nit:1893 */
12140 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12141 fra
.me
.REG
[1] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12142 /* ./syntax//typing.nit:1894 */
12143 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12145 /* ./syntax//typing.nit:1895 */
12148 stack_frame_head
= fra
.me
.prev
;
12149 return fra
.me
.REG
[1];
12151 val_t
syntax___typing___ABraReassignExpr___name(val_t p0
){
12152 struct {struct stack_frame_t me
;} fra
;
12155 static val_t once_value_1
; /* Once value */
12156 static val_t once_value_2
; /* Once value */
12157 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12158 fra
.me
.file
= LOCATE_syntax___typing
;
12159 fra
.me
.line
= 1900;
12160 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___name
;
12161 fra
.me
.has_broke
= 0;
12162 fra
.me
.REG_size
= 1;
12163 fra
.me
.nitni_local_ref_head
= NULL
;
12164 fra
.me
.REG
[0] = NIT_NULL
;
12165 fra
.me
.REG
[0] = p0
;
12166 /* ./syntax//typing.nit:1900 */
12167 if (!once_value_1
) {
12168 if (!once_value_2
) {
12169 fra
.me
.REG
[0] = BOX_NativeString("[]");
12170 REGB0
= TAG_Int(2);
12171 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12172 once_value_2
= fra
.me
.REG
[0];
12173 register_static_object(&once_value_2
);
12174 } else fra
.me
.REG
[0] = once_value_2
;
12175 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12176 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12177 once_value_1
= fra
.me
.REG
[0];
12178 register_static_object(&once_value_1
);
12179 } else fra
.me
.REG
[0] = once_value_1
;
12180 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12183 stack_frame_head
= fra
.me
.prev
;
12184 return fra
.me
.REG
[0];
12186 val_t
syntax___typing___ABraReassignExpr___compute_raw_arguments(val_t p0
){
12187 struct {struct stack_frame_t me
;} fra
;
12189 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12190 fra
.me
.file
= LOCATE_syntax___typing
;
12191 fra
.me
.line
= 1901;
12192 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments
;
12193 fra
.me
.has_broke
= 0;
12194 fra
.me
.REG_size
= 1;
12195 fra
.me
.nitni_local_ref_head
= NULL
;
12196 fra
.me
.REG
[0] = NIT_NULL
;
12197 fra
.me
.REG
[0] = p0
;
12198 /* ./syntax//typing.nit:1901 */
12199 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12200 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12203 stack_frame_head
= fra
.me
.prev
;
12204 return fra
.me
.REG
[0];
12206 val_t
syntax___typing___AInitExpr___name(val_t p0
){
12207 struct {struct stack_frame_t me
;} fra
;
12210 static val_t once_value_1
; /* Once value */
12211 static val_t once_value_2
; /* Once value */
12212 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12213 fra
.me
.file
= LOCATE_syntax___typing
;
12214 fra
.me
.line
= 1905;
12215 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___name
;
12216 fra
.me
.has_broke
= 0;
12217 fra
.me
.REG_size
= 1;
12218 fra
.me
.nitni_local_ref_head
= NULL
;
12219 fra
.me
.REG
[0] = NIT_NULL
;
12220 fra
.me
.REG
[0] = p0
;
12221 /* ./syntax//typing.nit:1905 */
12222 if (!once_value_1
) {
12223 if (!once_value_2
) {
12224 fra
.me
.REG
[0] = BOX_NativeString("init");
12225 REGB0
= TAG_Int(4);
12226 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12227 once_value_2
= fra
.me
.REG
[0];
12228 register_static_object(&once_value_2
);
12229 } else fra
.me
.REG
[0] = once_value_2
;
12230 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12231 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12232 once_value_1
= fra
.me
.REG
[0];
12233 register_static_object(&once_value_1
);
12234 } else fra
.me
.REG
[0] = once_value_1
;
12235 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12238 stack_frame_head
= fra
.me
.prev
;
12239 return fra
.me
.REG
[0];
12241 val_t
syntax___typing___AInitExpr___compute_raw_arguments(val_t p0
){
12242 struct {struct stack_frame_t me
;} fra
;
12244 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12245 fra
.me
.file
= LOCATE_syntax___typing
;
12246 fra
.me
.line
= 1906;
12247 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___compute_raw_arguments
;
12248 fra
.me
.has_broke
= 0;
12249 fra
.me
.REG_size
= 1;
12250 fra
.me
.nitni_local_ref_head
= NULL
;
12251 fra
.me
.REG
[0] = NIT_NULL
;
12252 fra
.me
.REG
[0] = p0
;
12253 /* ./syntax//typing.nit:1906 */
12254 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12255 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12258 stack_frame_head
= fra
.me
.prev
;
12259 return fra
.me
.REG
[0];
12261 val_t
syntax___typing___AClosureCallExpr___variable(val_t p0
){
12262 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12265 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12266 fra
.me
.file
= LOCATE_syntax___typing
;
12267 fra
.me
.line
= 1911;
12268 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___variable
;
12269 fra
.me
.has_broke
= 0;
12270 fra
.me
.REG_size
= 2;
12271 fra
.me
.nitni_local_ref_head
= NULL
;
12272 fra
.me
.REG
[0] = NIT_NULL
;
12273 fra
.me
.REG
[1] = NIT_NULL
;
12274 fra
.me
.REG
[0] = p0
;
12275 /* ./syntax//typing.nit:1911 */
12276 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12277 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[1]);
12278 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12279 if (UNTAG_Bool(REGB0
)) {
12281 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1911);
12285 stack_frame_head
= fra
.me
.prev
;
12286 return fra
.me
.REG
[1];
12288 val_t
syntax___typing___AClosureCallExpr___compute_raw_arguments(val_t p0
){
12289 struct {struct stack_frame_t me
;} fra
;
12291 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12292 fra
.me
.file
= LOCATE_syntax___typing
;
12293 fra
.me
.line
= 1912;
12294 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments
;
12295 fra
.me
.has_broke
= 0;
12296 fra
.me
.REG_size
= 1;
12297 fra
.me
.nitni_local_ref_head
= NULL
;
12298 fra
.me
.REG
[0] = NIT_NULL
;
12299 fra
.me
.REG
[0] = p0
;
12300 /* ./syntax//typing.nit:1912 */
12301 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AClosureCallExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12302 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12305 stack_frame_head
= fra
.me
.prev
;
12306 return fra
.me
.REG
[0];
12308 void syntax___typing___AClosureCallExpr___after_typing(val_t p0
, val_t p1
){
12309 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12313 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12314 fra
.me
.file
= LOCATE_syntax___typing
;
12315 fra
.me
.line
= 1914;
12316 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___after_typing
;
12317 fra
.me
.has_broke
= 0;
12318 fra
.me
.REG_size
= 5;
12319 fra
.me
.nitni_local_ref_head
= NULL
;
12320 fra
.me
.REG
[0] = NIT_NULL
;
12321 fra
.me
.REG
[1] = NIT_NULL
;
12322 fra
.me
.REG
[2] = NIT_NULL
;
12323 fra
.me
.REG
[3] = NIT_NULL
;
12324 fra
.me
.REG
[4] = NIT_NULL
;
12325 fra
.me
.REG
[0] = p0
;
12326 fra
.me
.REG
[1] = p1
;
12327 /* ./syntax//typing.nit:1916 */
12328 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12329 /* ./syntax//typing.nit:1917 */
12330 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12331 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12332 if (UNTAG_Bool(REGB0
)) {
12333 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12335 /* ./syntax//typing.nit:1918 */
12336 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12337 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12338 /* ./syntax//typing.nit:1919 */
12339 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12340 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12341 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12342 REGB0
= CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[4]);
12343 /* ./syntax//typing.nit:1920 */
12344 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12345 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12346 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
12347 if (UNTAG_Bool(REGB1
)) {
12348 /* ./syntax//typing.nit:1921 */
12349 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12350 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12351 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12352 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12353 CALL_syntax___typing___AAbsAbsSendExpr___process_closures(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4], fra
.me
.REG
[3]);
12355 /* ./syntax//typing.nit:1923 */
12356 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12357 if (UNTAG_Bool(REGB0
)) {
12360 /* ./syntax//typing.nit:1924 */
12361 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12362 /* ./syntax//typing.nit:1925 */
12363 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12364 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12365 /* ./syntax//typing.nit:1926 */
12366 REGB0
= TAG_Bool(true);
12367 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12369 stack_frame_head
= fra
.me
.prev
;
12372 val_t
syntax___typing___AClosureId___to_symbol(val_t p0
){
12373 struct {struct stack_frame_t me
;} fra
;
12375 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12376 fra
.me
.file
= LOCATE_syntax___typing
;
12377 fra
.me
.line
= 1931;
12378 fra
.me
.meth
= LOCATE_syntax___typing___AClosureId___to_symbol
;
12379 fra
.me
.has_broke
= 0;
12380 fra
.me
.REG_size
= 0;
12381 fra
.me
.nitni_local_ref_head
= NULL
;
12382 /* ./syntax//typing.nit:1931 */
12383 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1931);
12384 stack_frame_head
= fra
.me
.prev
;
12387 val_t
syntax___typing___ASimpleClosureId___to_symbol(val_t p0
){
12388 struct {struct stack_frame_t me
;} fra
;
12390 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12391 fra
.me
.file
= LOCATE_syntax___typing
;
12392 fra
.me
.line
= 1934;
12393 fra
.me
.meth
= LOCATE_syntax___typing___ASimpleClosureId___to_symbol
;
12394 fra
.me
.has_broke
= 0;
12395 fra
.me
.REG_size
= 1;
12396 fra
.me
.nitni_local_ref_head
= NULL
;
12397 fra
.me
.REG
[0] = NIT_NULL
;
12398 fra
.me
.REG
[0] = p0
;
12399 /* ./syntax//typing.nit:1934 */
12400 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASimpleClosureId___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12401 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12404 stack_frame_head
= fra
.me
.prev
;
12405 return fra
.me
.REG
[0];
12407 val_t
syntax___typing___ABreakClosureId___to_symbol(val_t p0
){
12408 struct {struct stack_frame_t me
;} fra
;
12410 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12411 fra
.me
.file
= LOCATE_syntax___typing
;
12412 fra
.me
.line
= 1937;
12413 fra
.me
.meth
= LOCATE_syntax___typing___ABreakClosureId___to_symbol
;
12414 fra
.me
.has_broke
= 0;
12415 fra
.me
.REG_size
= 1;
12416 fra
.me
.nitni_local_ref_head
= NULL
;
12417 fra
.me
.REG
[0] = NIT_NULL
;
12418 fra
.me
.REG
[0] = p0
;
12419 /* ./syntax//typing.nit:1937 */
12420 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12421 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12424 stack_frame_head
= fra
.me
.prev
;
12425 return fra
.me
.REG
[0];
12427 val_t
syntax___typing___AClosureDef___closure(val_t p0
){
12428 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12431 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12432 fra
.me
.file
= LOCATE_syntax___typing
;
12433 fra
.me
.line
= 1942;
12434 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___closure
;
12435 fra
.me
.has_broke
= 0;
12436 fra
.me
.REG_size
= 2;
12437 fra
.me
.nitni_local_ref_head
= NULL
;
12438 fra
.me
.REG
[0] = NIT_NULL
;
12439 fra
.me
.REG
[1] = NIT_NULL
;
12440 fra
.me
.REG
[0] = p0
;
12441 /* ./syntax//typing.nit:1942 */
12442 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12443 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[1]);
12444 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12445 if (UNTAG_Bool(REGB0
)) {
12447 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1942);
12451 stack_frame_head
= fra
.me
.prev
;
12452 return fra
.me
.REG
[1];
12454 val_t
syntax___typing___AClosureDef___escapable(val_t p0
){
12455 struct {struct stack_frame_t me
;} fra
;
12457 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12458 fra
.me
.file
= LOCATE_syntax___typing
;
12459 fra
.me
.line
= 1944;
12460 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___escapable
;
12461 fra
.me
.has_broke
= 0;
12462 fra
.me
.REG_size
= 1;
12463 fra
.me
.nitni_local_ref_head
= NULL
;
12464 fra
.me
.REG
[0] = NIT_NULL
;
12465 fra
.me
.REG
[0] = p0
;
12466 /* ./syntax//typing.nit:1944 */
12467 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]);
12468 stack_frame_head
= fra
.me
.prev
;
12469 return fra
.me
.REG
[0];
12471 void syntax___typing___AClosureDef___accept_typing(val_t p0
, val_t p1
){
12472 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12475 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12476 fra
.me
.file
= LOCATE_syntax___typing
;
12477 fra
.me
.line
= 1948;
12478 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing
;
12479 fra
.me
.has_broke
= 0;
12480 fra
.me
.REG_size
= 3;
12481 fra
.me
.nitni_local_ref_head
= NULL
;
12482 fra
.me
.REG
[0] = NIT_NULL
;
12483 fra
.me
.REG
[1] = NIT_NULL
;
12484 fra
.me
.REG
[2] = NIT_NULL
;
12485 fra
.me
.REG
[0] = p0
;
12486 fra
.me
.REG
[1] = p1
;
12487 /* ./syntax//typing.nit:1948 */
12488 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12489 /* ./syntax//typing.nit:1951 */
12490 REGB0
= TAG_Bool(ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2])!=NIT_NULL
);
12491 if (UNTAG_Bool(REGB0
)) {
12493 nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_syntax___typing
, 1951);
12495 REGB0
= ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2]);
12496 if (UNTAG_Bool(REGB0
)) {
12497 CALL_SUPER_syntax___typing___AClosureDef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12499 stack_frame_head
= fra
.me
.prev
;
12502 void syntax___typing___AClosureDef___accept_typing2(val_t p0
, val_t p1
, val_t p2
){
12503 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
12509 static val_t once_value_1
; /* Once value */
12510 static val_t once_value_2
; /* Once value */
12511 static val_t once_value_3
; /* Once value */
12512 static val_t once_value_6
; /* Once value */
12513 static val_t once_value_7
; /* Once value */
12514 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12515 fra
.me
.file
= LOCATE_syntax___typing
;
12516 fra
.me
.line
= 1954;
12517 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing2
;
12518 fra
.me
.has_broke
= 0;
12519 fra
.me
.REG_size
= 8;
12520 fra
.me
.nitni_local_ref_head
= NULL
;
12521 fra
.me
.REG
[0] = NIT_NULL
;
12522 fra
.me
.REG
[1] = NIT_NULL
;
12523 fra
.me
.REG
[2] = NIT_NULL
;
12524 fra
.me
.REG
[3] = NIT_NULL
;
12525 fra
.me
.REG
[4] = NIT_NULL
;
12526 fra
.me
.REG
[5] = NIT_NULL
;
12527 fra
.me
.REG
[6] = NIT_NULL
;
12528 fra
.me
.REG
[7] = NIT_NULL
;
12529 fra
.me
.REG
[0] = p0
;
12530 fra
.me
.REG
[1] = p1
;
12531 fra
.me
.REG
[2] = p2
;
12532 /* ./syntax//typing.nit:1956 */
12533 ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12534 /* ./syntax//typing.nit:1958 */
12535 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12536 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12537 /* ./syntax//typing.nit:1959 */
12538 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12539 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12540 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12541 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
12542 if (UNTAG_Bool(REGB2
)) {
12544 /* ./../lib/standard//kernel.nit:227 */
12545 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
12546 /* ./syntax//typing.nit:1959 */
12549 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
12550 if (UNTAG_Bool(REGB2
)) {
12551 /* ./syntax//typing.nit:1960 */
12552 REGB2
= TAG_Int(5);
12553 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
12554 if (!once_value_1
) {
12555 fra
.me
.REG
[5] = BOX_NativeString("Error: ");
12556 REGB2
= TAG_Int(7);
12557 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12558 once_value_1
= fra
.me
.REG
[5];
12559 register_static_object(&once_value_1
);
12560 } else fra
.me
.REG
[5] = once_value_1
;
12561 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12562 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12563 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12564 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
12565 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12566 if (!once_value_2
) {
12567 fra
.me
.REG
[5] = BOX_NativeString(" automatic variable names expected, ");
12568 REGB2
= TAG_Int(36);
12569 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12570 once_value_2
= fra
.me
.REG
[5];
12571 register_static_object(&once_value_2
);
12572 } else fra
.me
.REG
[5] = once_value_2
;
12573 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12574 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12575 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12576 REGB2
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
12577 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
12578 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12579 if (!once_value_3
) {
12580 fra
.me
.REG
[5] = BOX_NativeString(" found.");
12581 REGB2
= TAG_Int(7);
12582 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12583 once_value_3
= fra
.me
.REG
[5];
12584 register_static_object(&once_value_3
);
12585 } else fra
.me
.REG
[5] = once_value_3
;
12586 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12587 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12588 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12589 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12590 /* ./syntax//typing.nit:1961 */
12593 /* ./syntax//typing.nit:1964 */
12594 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12595 ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12596 /* ./syntax//typing.nit:1966 */
12597 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12598 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
12599 /* ./syntax//typing.nit:1967 */
12600 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12601 /* ./syntax//typing.nit:1968 */
12602 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12603 /* ./syntax//typing.nit:1969 */
12604 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12605 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
12606 /* ./syntax//typing.nit:1970 */
12607 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
12608 CALL_syntax___syntax_base___AClosureDef___variables__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
12609 /* ./syntax//typing.nit:1971 */
12610 REGB2
= TAG_Int(0);
12611 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12612 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
12613 /* ./../lib/standard//kernel.nit:352 */
12615 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
12616 if (UNTAG_Bool(REGB0
)) {
12618 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
12620 /* ./../lib/standard//kernel.nit:232 */
12621 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
12622 /* ./../lib/standard//kernel.nit:352 */
12623 if (UNTAG_Bool(REGB0
)) {
12624 /* ./syntax//typing.nit:1971 */
12626 /* ./syntax//typing.nit:1972 */
12627 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12628 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
12629 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
12630 if (UNTAG_Bool(REGB3
)) {
12631 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1972);
12633 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
12634 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12635 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
12636 fra
.me
.REG
[7] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12637 /* ./syntax//typing.nit:1973 */
12638 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12639 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
12640 if (UNTAG_Bool(REGB3
)) {
12641 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1973);
12643 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12644 /* ./syntax//typing.nit:1974 */
12645 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
12646 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
12647 /* ./syntax//typing.nit:1975 */
12648 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12649 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12650 /* ./../lib/standard//kernel.nit:354 */
12651 REGB0
= TAG_Int(1);
12652 /* ./../lib/standard//kernel.nit:235 */
12653 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
12654 /* ./../lib/standard//kernel.nit:354 */
12657 /* ./../lib/standard//kernel.nit:352 */
12662 /* ./syntax//typing.nit:1978 */
12663 REGB2
= TAG_Bool(true);
12664 ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[0]) = REGB2
;
12665 /* ./syntax//typing.nit:1979 */
12666 CALL_syntax___typing___ANode___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12667 /* ./syntax//typing.nit:1981 */
12668 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12669 REGB2
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12670 REGB1
= TAG_Bool(false);
12671 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
12672 if (UNTAG_Bool(REGB0
)) {
12674 /* ./../lib/standard//kernel.nit:195 */
12675 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
12676 /* ./syntax//typing.nit:1981 */
12679 if (UNTAG_Bool(REGB0
)) {
12680 /* ./syntax//typing.nit:1982 */
12681 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12682 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12683 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12684 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12685 if (UNTAG_Bool(REGB0
)) {
12687 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12688 if (UNTAG_Bool(REGB1
)) {
12689 REGB1
= TAG_Bool(false);
12692 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12696 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12697 if (UNTAG_Bool(REGB0
)) {
12698 /* ./syntax//typing.nit:1983 */
12699 if (!once_value_6
) {
12700 fra
.me
.REG
[3] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
12701 REGB0
= TAG_Int(77);
12702 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12703 once_value_6
= fra
.me
.REG
[3];
12704 register_static_object(&once_value_6
);
12705 } else fra
.me
.REG
[3] = once_value_6
;
12706 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12707 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12709 /* ./syntax//typing.nit:1984 */
12710 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12711 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12712 if (UNTAG_Bool(REGB0
)) {
12713 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12714 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
12715 if (UNTAG_Bool(REGB0
)) {
12717 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
12718 if (UNTAG_Bool(REGB1
)) {
12719 REGB1
= TAG_Bool(false);
12722 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
12726 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12728 REGB1
= TAG_Bool(false);
12731 if (UNTAG_Bool(REGB0
)) {
12732 /* ./syntax//typing.nit:1985 */
12733 if (!once_value_7
) {
12734 fra
.me
.REG
[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
12735 REGB0
= TAG_Int(80);
12736 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
12737 once_value_7
= fra
.me
.REG
[2];
12738 register_static_object(&once_value_7
);
12739 } else fra
.me
.REG
[2] = once_value_7
;
12740 fra
.me
.REG
[2] = fra
.me
.REG
[2];
12741 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
12745 /* ./syntax//typing.nit:1988 */
12746 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
12747 /* ./syntax//typing.nit:1989 */
12748 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
12749 /* ./syntax//typing.nit:1990 */
12750 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12751 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12753 stack_frame_head
= fra
.me
.prev
;
12756 void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
12757 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
12761 static val_t once_value_2
; /* Once value */
12762 static val_t once_value_3
; /* Once value */
12763 static val_t once_value_4
; /* Once value */
12764 static val_t once_value_5
; /* Once value */
12765 static val_t once_value_6
; /* Once value */
12766 static val_t once_value_7
; /* Once value */
12767 static val_t once_value_8
; /* Once value */
12768 static val_t once_value_9
; /* Once value */
12769 static val_t once_value_10
; /* Once value */
12770 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12771 fra
.me
.file
= LOCATE_syntax___typing
;
12772 fra
.me
.line
= 1996;
12773 fra
.me
.meth
= LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast
;
12774 fra
.me
.has_broke
= 0;
12775 fra
.me
.REG_size
= 6;
12776 fra
.me
.nitni_local_ref_head
= NULL
;
12777 fra
.me
.REG
[0] = NIT_NULL
;
12778 fra
.me
.REG
[1] = NIT_NULL
;
12779 fra
.me
.REG
[2] = NIT_NULL
;
12780 fra
.me
.REG
[3] = NIT_NULL
;
12781 fra
.me
.REG
[4] = NIT_NULL
;
12782 fra
.me
.REG
[5] = NIT_NULL
;
12783 fra
.me
.REG
[0] = p0
;
12784 fra
.me
.REG
[1] = p1
;
12785 fra
.me
.REG
[2] = p2
;
12786 fra
.me
.REG
[3] = p3
;
12787 /* ./syntax//typing.nit:1998 */
12788 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
12789 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12790 if (UNTAG_Bool(REGB0
)) {
12793 /* ./syntax//typing.nit:1999 */
12794 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12795 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12796 if (UNTAG_Bool(REGB0
)) {
12799 /* ./syntax//typing.nit:2000 */
12800 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12801 /* ./syntax//typing.nit:2001 */
12802 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12803 /* ./syntax//typing.nit:2002 */
12804 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
12805 if (UNTAG_Bool(REGB0
)) {
12807 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
12810 if (UNTAG_Bool(REGB0
)) {
12811 /* ./syntax//typing.nit:2003 */
12812 REGB0
= TAG_Int(3);
12813 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12814 if (!once_value_2
) {
12815 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
12816 REGB0
= TAG_Int(33);
12817 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12818 once_value_2
= fra
.me
.REG
[5];
12819 register_static_object(&once_value_2
);
12820 } else fra
.me
.REG
[5] = once_value_2
;
12821 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12822 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12823 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12824 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12825 if (!once_value_3
) {
12826 fra
.me
.REG
[5] = BOX_NativeString(".");
12827 REGB0
= TAG_Int(1);
12828 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12829 once_value_3
= fra
.me
.REG
[5];
12830 register_static_object(&once_value_3
);
12831 } else fra
.me
.REG
[5] = once_value_3
;
12832 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12833 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12834 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12835 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12837 /* ./syntax//typing.nit:2004 */
12838 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
12839 if (UNTAG_Bool(REGB0
)) {
12840 /* ./syntax//typing.nit:2005 */
12841 REGB0
= TAG_Int(5);
12842 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12843 if (!once_value_4
) {
12844 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
12845 REGB0
= TAG_Int(33);
12846 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12847 once_value_4
= fra
.me
.REG
[5];
12848 register_static_object(&once_value_4
);
12849 } else fra
.me
.REG
[5] = once_value_4
;
12850 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12852 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12853 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12854 if (!once_value_5
) {
12855 fra
.me
.REG
[5] = BOX_NativeString(" since it is a ");
12856 REGB0
= TAG_Int(15);
12857 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12858 once_value_5
= fra
.me
.REG
[5];
12859 register_static_object(&once_value_5
);
12860 } else fra
.me
.REG
[5] = once_value_5
;
12861 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12863 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12864 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12865 if (!once_value_6
) {
12866 fra
.me
.REG
[5] = BOX_NativeString(".");
12867 REGB0
= TAG_Int(1);
12868 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12869 once_value_6
= fra
.me
.REG
[5];
12870 register_static_object(&once_value_6
);
12871 } else fra
.me
.REG
[5] = once_value_6
;
12872 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12873 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12874 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12875 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12877 /* ./syntax//typing.nit:2006 */
12878 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
12879 if (UNTAG_Bool(REGB0
)) {
12880 /* ./syntax//typing.nit:2008 */
12881 REGB0
= TAG_Int(3);
12882 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12883 if (!once_value_7
) {
12884 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is null therefore cannot be a ");
12885 REGB0
= TAG_Int(50);
12886 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12887 once_value_7
= fra
.me
.REG
[5];
12888 register_static_object(&once_value_7
);
12889 } else fra
.me
.REG
[5] = once_value_7
;
12890 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12891 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12892 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12893 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12894 if (!once_value_8
) {
12895 fra
.me
.REG
[5] = BOX_NativeString(".");
12896 REGB0
= TAG_Int(1);
12897 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12898 once_value_8
= fra
.me
.REG
[5];
12899 register_static_object(&once_value_8
);
12900 } else fra
.me
.REG
[5] = once_value_8
;
12901 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12902 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12903 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12904 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12906 /* ./syntax//typing.nit:2009 */
12907 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12908 if (UNTAG_Bool(REGB0
)) {
12909 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12910 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
12911 if (UNTAG_Bool(REGB0
)) {
12913 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
12917 REGB1
= TAG_Bool(false);
12920 if (UNTAG_Bool(REGB0
)) {
12921 /* ./syntax//typing.nit:2010 */
12922 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___type_formal___MMTypeFormal
, ID_metamodel___type_formal___MMTypeFormal
)) /*cast MMTypeFormal*/;
12923 if (UNTAG_Bool(REGB0
)) {
12924 fra
.me
.REG
[3] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12925 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12927 REGB1
= TAG_Bool(false);
12930 if (UNTAG_Bool(REGB0
)) {
12932 /* ./syntax//typing.nit:2016 */
12933 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AIsaExpr
, ID_parser___parser_nodes___AIsaExpr
)) /*cast AIsaExpr*/;
12934 if (UNTAG_Bool(REGB0
)) {
12935 /* ./syntax//typing.nit:2017 */
12936 if (!once_value_9
) {
12937 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '!= null'.");
12938 REGB0
= TAG_Int(26);
12939 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12940 once_value_9
= fra
.me
.REG
[3];
12941 register_static_object(&once_value_9
);
12942 } else fra
.me
.REG
[3] = once_value_9
;
12943 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12944 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12946 /* ./syntax//typing.nit:2019 */
12947 if (!once_value_10
) {
12948 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
12949 REGB0
= TAG_Int(32);
12950 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12951 once_value_10
= fra
.me
.REG
[3];
12952 register_static_object(&once_value_10
);
12953 } else fra
.me
.REG
[3] = once_value_10
;
12954 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12955 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12963 stack_frame_head
= fra
.me
.prev
;
12966 void syntax___typing___AIsaExpr___after_typing(val_t p0
, val_t p1
){
12967 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12971 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12972 fra
.me
.file
= LOCATE_syntax___typing
;
12973 fra
.me
.line
= 2027;
12974 fra
.me
.meth
= LOCATE_syntax___typing___AIsaExpr___after_typing
;
12975 fra
.me
.has_broke
= 0;
12976 fra
.me
.REG_size
= 5;
12977 fra
.me
.nitni_local_ref_head
= NULL
;
12978 fra
.me
.REG
[0] = NIT_NULL
;
12979 fra
.me
.REG
[1] = NIT_NULL
;
12980 fra
.me
.REG
[2] = NIT_NULL
;
12981 fra
.me
.REG
[3] = NIT_NULL
;
12982 fra
.me
.REG
[4] = NIT_NULL
;
12983 fra
.me
.REG
[0] = p0
;
12984 fra
.me
.REG
[1] = p1
;
12985 /* ./syntax//typing.nit:2029 */
12986 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12987 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12988 CALL_syntax___typing___ATypeCheckExpr___check_expr_cast(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
12989 /* ./syntax//typing.nit:2030 */
12990 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12991 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12992 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12993 if (UNTAG_Bool(REGB0
)) {
12996 /* ./syntax//typing.nit:2031 */
12997 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12998 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12999 /* ./syntax//typing.nit:2032 */
13000 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13001 if (UNTAG_Bool(REGB0
)) {
13003 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13004 if (UNTAG_Bool(REGB1
)) {
13005 REGB1
= TAG_Bool(false);
13008 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13012 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13013 if (UNTAG_Bool(REGB0
)) {
13014 /* ./syntax//typing.nit:2033 */
13015 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13016 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13017 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13018 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[4]);
13019 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13021 /* ./syntax//typing.nit:2035 */
13022 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13023 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13024 /* ./syntax//typing.nit:2036 */
13025 REGB0
= TAG_Bool(true);
13026 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13028 stack_frame_head
= fra
.me
.prev
;
13031 void syntax___typing___AAsCastExpr___after_typing(val_t p0
, val_t p1
){
13032 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
13036 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13037 fra
.me
.file
= LOCATE_syntax___typing
;
13038 fra
.me
.line
= 2042;
13039 fra
.me
.meth
= LOCATE_syntax___typing___AAsCastExpr___after_typing
;
13040 fra
.me
.has_broke
= 0;
13041 fra
.me
.REG_size
= 4;
13042 fra
.me
.nitni_local_ref_head
= NULL
;
13043 fra
.me
.REG
[0] = NIT_NULL
;
13044 fra
.me
.REG
[1] = NIT_NULL
;
13045 fra
.me
.REG
[2] = NIT_NULL
;
13046 fra
.me
.REG
[3] = NIT_NULL
;
13047 fra
.me
.REG
[0] = p0
;
13048 fra
.me
.REG
[1] = p1
;
13049 /* ./syntax//typing.nit:2044 */
13050 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13051 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13052 CALL_syntax___typing___ATypeCheckExpr___check_expr_cast(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
13053 /* ./syntax//typing.nit:2045 */
13054 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13055 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13056 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13057 if (UNTAG_Bool(REGB0
)) {
13060 /* ./syntax//typing.nit:2046 */
13061 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13062 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13063 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
13064 /* ./syntax//typing.nit:2047 */
13065 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
13066 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13067 if (UNTAG_Bool(REGB0
)) {
13069 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13070 if (UNTAG_Bool(REGB1
)) {
13071 REGB1
= TAG_Bool(false);
13074 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13078 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13079 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13081 stack_frame_head
= fra
.me
.prev
;
13084 void syntax___typing___AAsNotnullExpr___after_typing(val_t p0
, val_t p1
){
13085 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13088 static val_t once_value_2
; /* Once value */
13089 static val_t once_value_3
; /* Once value */
13090 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13091 fra
.me
.file
= LOCATE_syntax___typing
;
13092 fra
.me
.line
= 2052;
13093 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotnullExpr___after_typing
;
13094 fra
.me
.has_broke
= 0;
13095 fra
.me
.REG_size
= 5;
13096 fra
.me
.nitni_local_ref_head
= NULL
;
13097 fra
.me
.REG
[0] = NIT_NULL
;
13098 fra
.me
.REG
[1] = NIT_NULL
;
13099 fra
.me
.REG
[2] = NIT_NULL
;
13100 fra
.me
.REG
[3] = NIT_NULL
;
13101 fra
.me
.REG
[4] = NIT_NULL
;
13102 fra
.me
.REG
[0] = p0
;
13103 fra
.me
.REG
[1] = p1
;
13104 /* ./syntax//typing.nit:2054 */
13105 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13106 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13107 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13108 if (UNTAG_Bool(REGB0
)) {
13111 /* ./syntax//typing.nit:2055 */
13112 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13113 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13114 /* ./syntax//typing.nit:2056 */
13115 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
13116 if (UNTAG_Bool(REGB0
)) {
13117 /* ./syntax//typing.nit:2057 */
13118 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13119 if (!once_value_2
) {
13120 fra
.me
.REG
[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
13121 REGB0
= TAG_Int(43);
13122 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
13123 once_value_2
= fra
.me
.REG
[4];
13124 register_static_object(&once_value_2
);
13125 } else fra
.me
.REG
[4] = once_value_2
;
13126 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13127 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
13128 /* ./syntax//typing.nit:2058 */
13131 /* ./syntax//typing.nit:2059 */
13132 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13133 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13134 if (UNTAG_Bool(REGB0
)) {
13135 /* ./syntax//typing.nit:2060 */
13136 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13137 if (!once_value_3
) {
13138 fra
.me
.REG
[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
13139 REGB0
= TAG_Int(45);
13140 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
13141 once_value_3
= fra
.me
.REG
[4];
13142 register_static_object(&once_value_3
);
13143 } else fra
.me
.REG
[4] = once_value_3
;
13144 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13145 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
13148 /* ./syntax//typing.nit:2062 */
13149 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13150 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13151 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13152 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13153 /* ./syntax//typing.nit:2063 */
13154 REGB0
= TAG_Bool(true);
13155 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13157 stack_frame_head
= fra
.me
.prev
;
13160 void syntax___typing___AProxyExpr___after_typing(val_t p0
, val_t p1
){
13161 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
13164 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13165 fra
.me
.file
= LOCATE_syntax___typing
;
13166 fra
.me
.line
= 2068;
13167 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___after_typing
;
13168 fra
.me
.has_broke
= 0;
13169 fra
.me
.REG_size
= 2;
13170 fra
.me
.nitni_local_ref_head
= NULL
;
13171 fra
.me
.REG
[0] = NIT_NULL
;
13172 fra
.me
.REG
[1] = NIT_NULL
;
13173 fra
.me
.REG
[0] = p0
;
13174 fra
.me
.REG
[1] = p1
;
13175 /* ./syntax//typing.nit:2070 */
13176 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13177 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13178 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13179 if (UNTAG_Bool(REGB0
)) {
13182 /* ./syntax//typing.nit:2071 */
13183 REGB0
= TAG_Bool(true);
13184 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13185 /* ./syntax//typing.nit:2072 */
13186 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13187 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13188 if (UNTAG_Bool(REGB0
)) {
13191 /* ./syntax//typing.nit:2073 */
13192 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13193 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13194 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13196 stack_frame_head
= fra
.me
.prev
;
13199 void syntax___typing___AOnceExpr___accept_typing(val_t p0
, val_t p1
){
13200 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13205 static val_t once_value_1
; /* Once value */
13206 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13207 fra
.me
.file
= LOCATE_syntax___typing
;
13208 fra
.me
.line
= 2078;
13209 fra
.me
.meth
= LOCATE_syntax___typing___AOnceExpr___accept_typing
;
13210 fra
.me
.has_broke
= 0;
13211 fra
.me
.REG_size
= 5;
13212 fra
.me
.nitni_local_ref_head
= NULL
;
13213 fra
.me
.REG
[0] = NIT_NULL
;
13214 fra
.me
.REG
[1] = NIT_NULL
;
13215 fra
.me
.REG
[2] = NIT_NULL
;
13216 fra
.me
.REG
[3] = NIT_NULL
;
13217 fra
.me
.REG
[4] = NIT_NULL
;
13218 fra
.me
.REG
[0] = p0
;
13219 fra
.me
.REG
[1] = p1
;
13220 /* ./syntax//typing.nit:2078 */
13221 fra
.me
.REG
[2] = fra
.me
.REG
[0];
13222 fra
.me
.REG
[3] = fra
.me
.REG
[1];
13223 /* ./syntax//typing.nit:2080 */
13224 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13225 REGB1
= TAG_Int(0);
13226 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
13227 if (UNTAG_Bool(REGB2
)) {
13229 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
13231 /* ./../lib/standard//kernel.nit:234 */
13232 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
13233 /* ./syntax//typing.nit:2080 */
13234 if (UNTAG_Bool(REGB1
)) {
13235 /* ./syntax//typing.nit:2081 */
13236 if (!once_value_1
) {
13237 fra
.me
.REG
[4] = BOX_NativeString("Useless once in a once expression.");
13238 REGB1
= TAG_Int(34);
13239 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
13240 once_value_1
= fra
.me
.REG
[4];
13241 register_static_object(&once_value_1
);
13242 } else fra
.me
.REG
[4] = once_value_1
;
13243 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13244 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
13246 /* ./syntax//typing.nit:2083 */
13247 REGB1
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13248 REGB0
= TAG_Int(1);
13249 /* ./../lib/standard//kernel.nit:235 */
13250 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
13251 /* ./syntax//typing.nit:2083 */
13252 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13253 /* ./syntax//typing.nit:2085 */
13254 CALL_SUPER_syntax___typing___AOnceExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
13255 /* ./syntax//typing.nit:2087 */
13256 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13257 REGB1
= TAG_Int(1);
13258 /* ./../lib/standard//kernel.nit:237 */
13259 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
13260 /* ./syntax//typing.nit:2087 */
13261 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
13262 stack_frame_head
= fra
.me
.prev
;