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___ASignature___after_typing(val_t p0
, val_t p1
){
2011 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2015 static val_t once_value_1
; /* Once value */
2016 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2017 fra
.me
.file
= LOCATE_syntax___typing
;
2019 fra
.me
.meth
= LOCATE_syntax___typing___ASignature___after_typing
;
2020 fra
.me
.has_broke
= 0;
2021 fra
.me
.REG_size
= 3;
2022 fra
.me
.nitni_local_ref_head
= NULL
;
2023 fra
.me
.REG
[0] = NIT_NULL
;
2024 fra
.me
.REG
[1] = NIT_NULL
;
2025 fra
.me
.REG
[2] = NIT_NULL
;
2028 /* syntax/typing.nit:295 */
2029 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ASignature___n_opar(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2030 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2031 if (UNTAG_Bool(REGB0
)) {
2033 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2034 if (UNTAG_Bool(REGB1
)) {
2035 REGB1
= TAG_Bool(false);
2038 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2042 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2043 if (UNTAG_Bool(REGB0
)) {
2044 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ASignature___n_params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2045 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2047 REGB1
= TAG_Bool(false);
2050 if (UNTAG_Bool(REGB0
)) {
2051 /* syntax/typing.nit:296 */
2052 if (!once_value_1
) {
2053 fra
.me
.REG
[2] = BOX_NativeString("Warning: superfluous parentheses.");
2054 REGB0
= TAG_Int(33);
2055 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2056 once_value_1
= fra
.me
.REG
[2];
2057 register_static_object(&once_value_1
);
2058 } else fra
.me
.REG
[2] = once_value_1
;
2059 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2060 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2062 stack_frame_head
= fra
.me
.prev
;
2065 void syntax___typing___AParam___after_typing(val_t p0
, val_t p1
){
2066 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2068 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2069 fra
.me
.file
= LOCATE_syntax___typing
;
2071 fra
.me
.meth
= LOCATE_syntax___typing___AParam___after_typing
;
2072 fra
.me
.has_broke
= 0;
2073 fra
.me
.REG_size
= 2;
2074 fra
.me
.nitni_local_ref_head
= NULL
;
2075 fra
.me
.REG
[0] = NIT_NULL
;
2076 fra
.me
.REG
[1] = NIT_NULL
;
2079 /* syntax/typing.nit:304 */
2080 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2081 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2082 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2083 stack_frame_head
= fra
.me
.prev
;
2086 val_t
syntax___typing___AClosureDecl___escapable(val_t p0
){
2087 struct {struct stack_frame_t me
;} fra
;
2089 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2090 fra
.me
.file
= LOCATE_syntax___typing
;
2092 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___escapable
;
2093 fra
.me
.has_broke
= 0;
2094 fra
.me
.REG_size
= 1;
2095 fra
.me
.nitni_local_ref_head
= NULL
;
2096 fra
.me
.REG
[0] = NIT_NULL
;
2098 /* syntax/typing.nit:309 */
2099 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[0]);
2100 stack_frame_head
= fra
.me
.prev
;
2101 return fra
.me
.REG
[0];
2103 void syntax___typing___AClosureDecl___accept_typing(val_t p0
, val_t p1
){
2104 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
2109 static val_t once_value_1
; /* Once value */
2110 static val_t once_value_2
; /* Once value */
2111 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2112 fra
.me
.file
= LOCATE_syntax___typing
;
2114 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___accept_typing
;
2115 fra
.me
.has_broke
= 0;
2116 fra
.me
.REG_size
= 10;
2117 fra
.me
.nitni_local_ref_head
= NULL
;
2118 fra
.me
.REG
[0] = NIT_NULL
;
2119 fra
.me
.REG
[1] = NIT_NULL
;
2120 fra
.me
.REG
[2] = NIT_NULL
;
2121 fra
.me
.REG
[3] = NIT_NULL
;
2122 fra
.me
.REG
[4] = NIT_NULL
;
2123 fra
.me
.REG
[5] = NIT_NULL
;
2124 fra
.me
.REG
[6] = NIT_NULL
;
2125 fra
.me
.REG
[7] = NIT_NULL
;
2126 fra
.me
.REG
[8] = NIT_NULL
;
2127 fra
.me
.REG
[9] = NIT_NULL
;
2130 /* syntax/typing.nit:312 */
2131 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2132 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2133 /* syntax/typing.nit:315 */
2134 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2135 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2136 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2137 /* syntax/typing.nit:317 */
2138 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2139 /* syntax/typing.nit:318 */
2140 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2141 /* syntax/typing.nit:319 */
2142 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2143 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
2144 /* syntax/typing.nit:321 */
2145 fra
.me
.REG
[6] = NIT_NULL
;
2146 /* syntax/typing.nit:322 */
2147 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2148 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2149 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2150 if (UNTAG_Bool(REGB0
)) {
2151 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 322);
2153 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2154 /* syntax/typing.nit:323 */
2155 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2156 if (UNTAG_Bool(REGB0
)) {
2158 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2159 if (UNTAG_Bool(REGB1
)) {
2160 REGB1
= TAG_Bool(false);
2163 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
2167 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2168 if (UNTAG_Bool(REGB0
)) {
2169 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
2170 fra
.me
.REG
[6] = fra
.me
.REG
[8];
2172 /* syntax/typing.nit:324 */
2173 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2174 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2175 fra
.me
.REG
[8] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[2], fra
.me
.REG
[8], fra
.me
.REG
[6]);
2176 /* syntax/typing.nit:325 */
2177 ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[2]) = fra
.me
.REG
[8];
2178 /* syntax/typing.nit:326 */
2179 fra
.me
.REG
[9] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2180 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8], NIT_NULL
);
2181 /* syntax/typing.nit:328 */
2182 REGB0
= TAG_Bool(true);
2183 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2184 /* syntax/typing.nit:330 */
2185 CALL_SUPER_syntax___typing___AClosureDecl___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2186 /* syntax/typing.nit:332 */
2187 REGB0
= TAG_Bool(false);
2188 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2189 /* syntax/typing.nit:334 */
2190 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2191 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2192 if (UNTAG_Bool(REGB0
)) {
2194 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2195 if (UNTAG_Bool(REGB1
)) {
2196 REGB1
= TAG_Bool(false);
2199 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2203 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2204 if (UNTAG_Bool(REGB0
)) {
2205 /* syntax/typing.nit:335 */
2206 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2207 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2208 REGB1
= TAG_Bool(false);
2209 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
2210 if (UNTAG_Bool(REGB2
)) {
2212 /* ../lib/standard/kernel.nit:195 */
2213 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
2214 /* syntax/typing.nit:335 */
2217 if (UNTAG_Bool(REGB2
)) {
2218 /* syntax/typing.nit:336 */
2219 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2220 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2221 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2222 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2223 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2224 if (UNTAG_Bool(REGB2
)) {
2226 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2227 if (UNTAG_Bool(REGB1
)) {
2228 REGB1
= TAG_Bool(false);
2231 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2235 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2236 if (UNTAG_Bool(REGB2
)) {
2237 /* syntax/typing.nit:337 */
2238 if (!once_value_1
) {
2239 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
2240 REGB2
= TAG_Int(77);
2241 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB2
);
2242 once_value_1
= fra
.me
.REG
[1];
2243 register_static_object(&once_value_1
);
2244 } else fra
.me
.REG
[1] = once_value_1
;
2245 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2246 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
2248 /* syntax/typing.nit:338 */
2249 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2250 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2251 REGB2
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2252 if (UNTAG_Bool(REGB2
)) {
2253 fra
.me
.REG
[8] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2254 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2255 if (UNTAG_Bool(REGB2
)) {
2257 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2258 if (UNTAG_Bool(REGB1
)) {
2259 REGB1
= TAG_Bool(false);
2262 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
2266 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2268 REGB1
= TAG_Bool(false);
2271 if (UNTAG_Bool(REGB2
)) {
2272 /* syntax/typing.nit:339 */
2273 if (!once_value_2
) {
2274 fra
.me
.REG
[8] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
2275 REGB2
= TAG_Int(80);
2276 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB2
);
2277 once_value_2
= fra
.me
.REG
[8];
2278 register_static_object(&once_value_2
);
2279 } else fra
.me
.REG
[8] = once_value_2
;
2280 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2281 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[8]);
2286 /* syntax/typing.nit:343 */
2287 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2288 if (UNTAG_Bool(REGB2
)) {
2290 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2291 if (UNTAG_Bool(REGB1
)) {
2292 REGB1
= TAG_Bool(false);
2295 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2299 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2300 if (UNTAG_Bool(REGB2
)) {
2301 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2302 if (UNTAG_Bool(REGB2
)) {
2303 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 343);
2305 /* ../lib/standard/collection/array.nit:269 */
2307 /* ../lib/standard/collection/array.nit:270 */
2308 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2309 if (UNTAG_Bool(REGB1
)) {
2311 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2313 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2314 /* ../lib/standard/collection/array.nit:271 */
2315 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
2316 /* ../lib/standard/collection/array.nit:272 */
2318 /* ../lib/standard/collection/array.nit:24 */
2319 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2320 if (UNTAG_Bool(REGB1
)) {
2322 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2324 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2325 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
2326 if (UNTAG_Bool(REGB0
)) {
2328 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2330 /* ../lib/standard/kernel.nit:232 */
2331 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
2332 /* ../lib/standard/collection/array.nit:272 */
2333 if (UNTAG_Bool(REGB1
)) {
2334 /* ../lib/standard/collection/array.nit:273 */
2335 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2336 if (UNTAG_Bool(REGB1
)) {
2337 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2339 /* ../lib/standard/collection/array.nit:718 */
2340 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB2
)];
2341 /* syntax/typing.nit:344 */
2342 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
2343 /* ../lib/standard/collection/array.nit:274 */
2345 /* ../lib/standard/kernel.nit:235 */
2346 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
2347 /* ../lib/standard/collection/array.nit:274 */
2350 /* ../lib/standard/collection/array.nit:272 */
2356 /* syntax/typing.nit:347 */
2357 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2358 /* syntax/typing.nit:348 */
2359 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2360 /* syntax/typing.nit:349 */
2361 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2362 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2363 stack_frame_head
= fra
.me
.prev
;
2366 val_t
syntax___typing___AType___stype(val_t p0
){
2367 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2370 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2371 fra
.me
.file
= LOCATE_syntax___typing
;
2373 fra
.me
.meth
= LOCATE_syntax___typing___AType___stype
;
2374 fra
.me
.has_broke
= 0;
2375 fra
.me
.REG_size
= 2;
2376 fra
.me
.nitni_local_ref_head
= NULL
;
2377 fra
.me
.REG
[0] = NIT_NULL
;
2378 fra
.me
.REG
[1] = NIT_NULL
;
2380 /* syntax/typing.nit:354 */
2381 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2382 fra
.me
.REG
[1] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[1]);
2383 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2384 if (UNTAG_Bool(REGB0
)) {
2386 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 354);
2390 stack_frame_head
= fra
.me
.prev
;
2391 return fra
.me
.REG
[1];
2393 val_t
syntax___typing___AType___is_typed(val_t p0
){
2394 struct {struct stack_frame_t me
;} fra
;
2398 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2399 fra
.me
.file
= LOCATE_syntax___typing
;
2401 fra
.me
.meth
= LOCATE_syntax___typing___AType___is_typed
;
2402 fra
.me
.has_broke
= 0;
2403 fra
.me
.REG_size
= 1;
2404 fra
.me
.nitni_local_ref_head
= NULL
;
2405 fra
.me
.REG
[0] = NIT_NULL
;
2407 /* syntax/typing.nit:355 */
2408 fra
.me
.REG
[0] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]);
2409 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2410 if (UNTAG_Bool(REGB0
)) {
2412 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2413 if (UNTAG_Bool(REGB1
)) {
2414 REGB1
= TAG_Bool(false);
2417 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2421 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2424 stack_frame_head
= fra
.me
.prev
;
2427 void syntax___typing___AType___after_typing(val_t p0
, val_t p1
){
2428 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2430 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2431 fra
.me
.file
= LOCATE_syntax___typing
;
2433 fra
.me
.meth
= LOCATE_syntax___typing___AType___after_typing
;
2434 fra
.me
.has_broke
= 0;
2435 fra
.me
.REG_size
= 2;
2436 fra
.me
.nitni_local_ref_head
= NULL
;
2437 fra
.me
.REG
[0] = NIT_NULL
;
2438 fra
.me
.REG
[1] = NIT_NULL
;
2441 /* syntax/typing.nit:360 */
2442 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AType___get_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2443 ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2444 stack_frame_head
= fra
.me
.prev
;
2447 val_t
syntax___typing___AExpr___is_typed(val_t p0
){
2448 struct {struct stack_frame_t me
;} fra
;
2451 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2452 fra
.me
.file
= LOCATE_syntax___typing
;
2454 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_typed
;
2455 fra
.me
.has_broke
= 0;
2456 fra
.me
.REG_size
= 1;
2457 fra
.me
.nitni_local_ref_head
= NULL
;
2458 fra
.me
.REG
[0] = NIT_NULL
;
2460 /* syntax/typing.nit:365 */
2461 REGB0
= TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0])!=NIT_NULL
);
2462 if (UNTAG_Bool(REGB0
)) {
2464 nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_syntax___typing
, 365);
2466 REGB0
= ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]);
2467 stack_frame_head
= fra
.me
.prev
;
2470 val_t
syntax___typing___AExpr___is_statement(val_t p0
){
2471 struct {struct stack_frame_t me
;} fra
;
2475 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2476 fra
.me
.file
= LOCATE_syntax___typing
;
2478 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_statement
;
2479 fra
.me
.has_broke
= 0;
2480 fra
.me
.REG_size
= 1;
2481 fra
.me
.nitni_local_ref_head
= NULL
;
2482 fra
.me
.REG
[0] = NIT_NULL
;
2484 /* syntax/typing.nit:366 */
2485 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
2486 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2487 if (UNTAG_Bool(REGB0
)) {
2489 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2490 if (UNTAG_Bool(REGB1
)) {
2491 REGB1
= TAG_Bool(false);
2494 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2500 stack_frame_head
= fra
.me
.prev
;
2503 val_t
syntax___typing___AExpr___stype(val_t p0
){
2504 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2507 static val_t once_value_1
; /* Once value */
2508 static val_t once_value_2
; /* Once value */
2509 static val_t once_value_3
; /* Once value */
2510 static val_t once_value_4
; /* Once value */
2511 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2512 fra
.me
.file
= LOCATE_syntax___typing
;
2514 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___stype
;
2515 fra
.me
.has_broke
= 0;
2516 fra
.me
.REG_size
= 4;
2517 fra
.me
.nitni_local_ref_head
= NULL
;
2518 fra
.me
.REG
[0] = NIT_NULL
;
2519 fra
.me
.REG
[1] = NIT_NULL
;
2520 fra
.me
.REG
[2] = NIT_NULL
;
2521 fra
.me
.REG
[3] = NIT_NULL
;
2523 /* syntax/typing.nit:367 */
2524 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2525 /* syntax/typing.nit:369 */
2526 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2527 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2528 if (UNTAG_Bool(REGB0
)) {
2529 /* syntax/typing.nit:370 */
2531 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2532 if (!once_value_1
) {
2533 fra
.me
.REG
[3] = BOX_NativeString("");
2535 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2536 once_value_1
= fra
.me
.REG
[3];
2537 register_static_object(&once_value_1
);
2538 } else fra
.me
.REG
[3] = once_value_1
;
2539 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2540 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2541 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2542 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2543 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2544 if (!once_value_2
) {
2545 fra
.me
.REG
[3] = BOX_NativeString(": not is_typed");
2546 REGB0
= TAG_Int(14);
2547 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2548 once_value_2
= fra
.me
.REG
[3];
2549 register_static_object(&once_value_2
);
2550 } else fra
.me
.REG
[3] = once_value_2
;
2551 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2552 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2553 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2554 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2555 /* syntax/typing.nit:371 */
2556 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 371);
2558 /* syntax/typing.nit:373 */
2559 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2560 if (UNTAG_Bool(REGB0
)) {
2561 /* syntax/typing.nit:374 */
2563 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2564 if (!once_value_3
) {
2565 fra
.me
.REG
[3] = BOX_NativeString("");
2567 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2568 once_value_3
= fra
.me
.REG
[3];
2569 register_static_object(&once_value_3
);
2570 } else fra
.me
.REG
[3] = once_value_3
;
2571 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2572 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2573 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2574 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2575 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2576 if (!once_value_4
) {
2577 fra
.me
.REG
[3] = BOX_NativeString(": is_statement");
2578 REGB0
= TAG_Int(14);
2579 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2580 once_value_4
= fra
.me
.REG
[3];
2581 register_static_object(&once_value_4
);
2582 } else fra
.me
.REG
[3] = once_value_4
;
2583 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2585 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2586 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2587 /* syntax/typing.nit:375 */
2588 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 375);
2590 /* syntax/typing.nit:377 */
2591 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[1]);
2592 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2593 if (UNTAG_Bool(REGB0
)) {
2595 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 377);
2599 stack_frame_head
= fra
.me
.prev
;
2600 return fra
.me
.REG
[1];
2602 void syntax___typing___AExpr___after_typing(val_t p0
, val_t p1
){
2603 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2606 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2607 fra
.me
.file
= LOCATE_syntax___typing
;
2609 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___after_typing
;
2610 fra
.me
.has_broke
= 0;
2611 fra
.me
.REG_size
= 2;
2612 fra
.me
.nitni_local_ref_head
= NULL
;
2613 fra
.me
.REG
[0] = NIT_NULL
;
2614 fra
.me
.REG
[1] = NIT_NULL
;
2617 /* syntax/typing.nit:384 */
2618 REGB0
= TAG_Bool(true);
2619 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2620 stack_frame_head
= fra
.me
.prev
;
2623 val_t
syntax___typing___AExpr___is_implicit_self(val_t p0
){
2624 struct {struct stack_frame_t me
;} fra
;
2627 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2628 fra
.me
.file
= LOCATE_syntax___typing
;
2630 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_implicit_self
;
2631 fra
.me
.has_broke
= 0;
2632 fra
.me
.REG_size
= 1;
2633 fra
.me
.nitni_local_ref_head
= NULL
;
2634 fra
.me
.REG
[0] = NIT_NULL
;
2636 /* syntax/typing.nit:388 */
2637 REGB0
= TAG_Bool(false);
2640 stack_frame_head
= fra
.me
.prev
;
2643 val_t
syntax___typing___AExpr___is_self(val_t p0
){
2644 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___is_self
;
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:391 */
2657 REGB0
= TAG_Bool(false);
2660 stack_frame_head
= fra
.me
.prev
;
2663 val_t
syntax___typing___AExpr___its_variable(val_t p0
){
2664 struct {struct stack_frame_t me
;} fra
;
2666 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2667 fra
.me
.file
= LOCATE_syntax___typing
;
2669 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___its_variable
;
2670 fra
.me
.has_broke
= 0;
2671 fra
.me
.REG_size
= 1;
2672 fra
.me
.nitni_local_ref_head
= NULL
;
2673 fra
.me
.REG
[0] = NIT_NULL
;
2675 /* syntax/typing.nit:394 */
2676 fra
.me
.REG
[0] = NIT_NULL
;
2679 stack_frame_head
= fra
.me
.prev
;
2680 return fra
.me
.REG
[0];
2682 val_t
syntax___typing___AExpr___if_true_flow_ctx(val_t p0
){
2683 struct {struct stack_frame_t me
;} fra
;
2685 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2686 fra
.me
.file
= LOCATE_syntax___typing
;
2688 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___if_true_flow_ctx
;
2689 fra
.me
.has_broke
= 0;
2690 fra
.me
.REG_size
= 1;
2691 fra
.me
.nitni_local_ref_head
= NULL
;
2692 fra
.me
.REG
[0] = NIT_NULL
;
2694 /* syntax/typing.nit:396 */
2695 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]);
2696 stack_frame_head
= fra
.me
.prev
;
2697 return fra
.me
.REG
[0];
2699 val_t
syntax___typing___AExpr___if_false_flow_ctx(val_t p0
){
2700 struct {struct stack_frame_t me
;} fra
;
2702 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2703 fra
.me
.file
= LOCATE_syntax___typing
;
2705 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___if_false_flow_ctx
;
2706 fra
.me
.has_broke
= 0;
2707 fra
.me
.REG_size
= 1;
2708 fra
.me
.nitni_local_ref_head
= NULL
;
2709 fra
.me
.REG
[0] = NIT_NULL
;
2711 /* syntax/typing.nit:399 */
2712 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]);
2713 stack_frame_head
= fra
.me
.prev
;
2714 return fra
.me
.REG
[0];
2716 void syntax___typing___AExpr___warn_parentheses(val_t p0
, val_t p1
){
2717 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2719 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2720 fra
.me
.file
= LOCATE_syntax___typing
;
2722 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___warn_parentheses
;
2723 fra
.me
.has_broke
= 0;
2724 fra
.me
.REG_size
= 2;
2725 fra
.me
.nitni_local_ref_head
= NULL
;
2726 fra
.me
.REG
[0] = NIT_NULL
;
2727 fra
.me
.REG
[1] = NIT_NULL
;
2730 stack_frame_head
= fra
.me
.prev
;
2733 void syntax___typing___AParExpr___warn_parentheses(val_t p0
, val_t p1
){
2734 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2737 static val_t once_value_1
; /* Once value */
2738 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2739 fra
.me
.file
= LOCATE_syntax___typing
;
2741 fra
.me
.meth
= LOCATE_syntax___typing___AParExpr___warn_parentheses
;
2742 fra
.me
.has_broke
= 0;
2743 fra
.me
.REG_size
= 3;
2744 fra
.me
.nitni_local_ref_head
= NULL
;
2745 fra
.me
.REG
[0] = NIT_NULL
;
2746 fra
.me
.REG
[1] = NIT_NULL
;
2747 fra
.me
.REG
[2] = NIT_NULL
;
2750 /* syntax/typing.nit:411 */
2751 if (!once_value_1
) {
2752 fra
.me
.REG
[2] = BOX_NativeString("Warning: superfluous parentheses.");
2753 REGB0
= TAG_Int(33);
2754 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2755 once_value_1
= fra
.me
.REG
[2];
2756 register_static_object(&once_value_1
);
2757 } else fra
.me
.REG
[2] = once_value_1
;
2758 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2759 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2760 stack_frame_head
= fra
.me
.prev
;
2763 void syntax___typing___AParExprs___after_typing(val_t p0
, val_t p1
){
2764 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2767 static val_t once_value_1
; /* Once value */
2768 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2769 fra
.me
.file
= LOCATE_syntax___typing
;
2771 fra
.me
.meth
= LOCATE_syntax___typing___AParExprs___after_typing
;
2772 fra
.me
.has_broke
= 0;
2773 fra
.me
.REG_size
= 3;
2774 fra
.me
.nitni_local_ref_head
= NULL
;
2775 fra
.me
.REG
[0] = NIT_NULL
;
2776 fra
.me
.REG
[1] = NIT_NULL
;
2777 fra
.me
.REG
[2] = NIT_NULL
;
2780 /* syntax/typing.nit:418 */
2781 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2782 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2783 if (UNTAG_Bool(REGB0
)) {
2784 /* syntax/typing.nit:419 */
2785 if (!once_value_1
) {
2786 fra
.me
.REG
[2] = BOX_NativeString("Warning: superfluous parentheses.");
2787 REGB0
= TAG_Int(33);
2788 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2789 once_value_1
= fra
.me
.REG
[2];
2790 register_static_object(&once_value_1
);
2791 } else fra
.me
.REG
[2] = once_value_1
;
2792 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2793 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2795 stack_frame_head
= fra
.me
.prev
;
2798 val_t
syntax___typing___AVardeclExpr___variable(val_t p0
){
2799 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2802 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2803 fra
.me
.file
= LOCATE_syntax___typing
;
2805 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___variable
;
2806 fra
.me
.has_broke
= 0;
2807 fra
.me
.REG_size
= 2;
2808 fra
.me
.nitni_local_ref_head
= NULL
;
2809 fra
.me
.REG
[0] = NIT_NULL
;
2810 fra
.me
.REG
[1] = NIT_NULL
;
2812 /* syntax/typing.nit:426 */
2813 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2814 fra
.me
.REG
[1] = ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[1]);
2815 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2816 if (UNTAG_Bool(REGB0
)) {
2818 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 426);
2822 stack_frame_head
= fra
.me
.prev
;
2823 return fra
.me
.REG
[1];
2825 void syntax___typing___AVardeclExpr___after_typing(val_t p0
, val_t p1
){
2826 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2830 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2831 fra
.me
.file
= LOCATE_syntax___typing
;
2833 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___after_typing
;
2834 fra
.me
.has_broke
= 0;
2835 fra
.me
.REG_size
= 5;
2836 fra
.me
.nitni_local_ref_head
= NULL
;
2837 fra
.me
.REG
[0] = NIT_NULL
;
2838 fra
.me
.REG
[1] = NIT_NULL
;
2839 fra
.me
.REG
[2] = NIT_NULL
;
2840 fra
.me
.REG
[3] = NIT_NULL
;
2841 fra
.me
.REG
[4] = NIT_NULL
;
2844 /* syntax/typing.nit:430 */
2845 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2846 fra
.me
.REG
[2] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2847 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2848 fra
.me
.REG
[3] = NEW_VarVariable_syntax___syntax_base___VarVariable___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2849 /* syntax/typing.nit:431 */
2850 ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
2851 /* syntax/typing.nit:432 */
2852 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2853 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2854 /* syntax/typing.nit:433 */
2855 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2856 /* syntax/typing.nit:434 */
2857 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2858 if (UNTAG_Bool(REGB0
)) {
2860 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2861 if (UNTAG_Bool(REGB1
)) {
2862 REGB1
= TAG_Bool(false);
2865 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2869 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2870 if (UNTAG_Bool(REGB0
)) {
2871 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2873 /* syntax/typing.nit:436 */
2874 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2875 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2876 if (UNTAG_Bool(REGB0
)) {
2878 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2879 if (UNTAG_Bool(REGB1
)) {
2880 REGB1
= TAG_Bool(false);
2883 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2887 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2888 if (UNTAG_Bool(REGB0
)) {
2889 /* syntax/typing.nit:437 */
2890 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2891 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2892 if (UNTAG_Bool(REGB0
)) {
2893 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 437);
2895 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2896 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2897 if (UNTAG_Bool(REGB0
)) {
2900 /* syntax/typing.nit:438 */
2901 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2902 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2903 if (UNTAG_Bool(REGB0
)) {
2904 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 438);
2906 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2907 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2908 /* syntax/typing.nit:439 */
2909 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2910 if (UNTAG_Bool(REGB0
)) {
2912 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2913 if (UNTAG_Bool(REGB1
)) {
2914 REGB1
= TAG_Bool(false);
2917 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2921 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2922 if (UNTAG_Bool(REGB0
)) {
2923 /* syntax/typing.nit:440 */
2924 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2925 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
2928 /* syntax/typing.nit:442 */
2929 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2930 if (UNTAG_Bool(REGB0
)) {
2932 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2933 if (UNTAG_Bool(REGB1
)) {
2934 REGB1
= TAG_Bool(false);
2937 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2941 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2942 if (UNTAG_Bool(REGB0
)) {
2943 /* syntax/typing.nit:443 */
2944 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2945 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2946 if (UNTAG_Bool(REGB0
)) {
2949 /* syntax/typing.nit:444 */
2950 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2951 if (UNTAG_Bool(REGB0
)) {
2952 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 444);
2954 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2955 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2957 /* syntax/typing.nit:446 */
2958 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2959 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2960 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2963 /* syntax/typing.nit:448 */
2964 REGB0
= TAG_Bool(true);
2965 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2967 stack_frame_head
= fra
.me
.prev
;
2970 void syntax___typing___ABlockExpr___accept_typing(val_t p0
, val_t p1
){
2971 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2974 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2975 fra
.me
.file
= LOCATE_syntax___typing
;
2977 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
2978 fra
.me
.has_broke
= 0;
2979 fra
.me
.REG_size
= 3;
2980 fra
.me
.nitni_local_ref_head
= NULL
;
2981 fra
.me
.REG
[0] = NIT_NULL
;
2982 fra
.me
.REG
[1] = NIT_NULL
;
2983 fra
.me
.REG
[2] = NIT_NULL
;
2986 /* syntax/typing.nit:455 */
2987 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2988 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
));
2989 /* syntax/typing.nit:464 */
2990 REGB0
= TAG_Bool(true);
2991 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2992 stack_frame_head
= fra
.me
.prev
;
2995 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
){
2996 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3000 static val_t once_value_2
; /* Once value */
3001 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3002 fra
.me
.file
= LOCATE_syntax___typing
;
3004 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
3005 fra
.me
.has_broke
= 0;
3006 fra
.me
.REG_size
= 2;
3007 fra
.me
.nitni_local_ref_head
= NULL
;
3008 fra
.me
.REG
[0] = NIT_NULL
;
3009 fra
.me
.REG
[1] = NIT_NULL
;
3010 fra
.me
.closure_ctx
= closctx_param
;
3011 fra
.me
.closure_funs
= CREG
;
3013 CREG
[0] = clos_fun0
;
3014 /* syntax/typing.nit:456 */
3015 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3016 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3017 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3018 if (UNTAG_Bool(REGB0
)) {
3019 /* syntax/typing.nit:457 */
3020 CALL_parser___parser_prod___Visitor___enter_visit(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
3022 /* syntax/typing.nit:458 */
3023 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3024 REGB0
= CALL_syntax___flow___FlowContext___already_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3025 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3026 if (UNTAG_Bool(REGB0
)) {
3027 /* syntax/typing.nit:459 */
3028 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3029 REGB0
= TAG_Bool(true);
3030 CALL_syntax___flow___FlowContext___already_unreash__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
3031 /* syntax/typing.nit:460 */
3032 if (!once_value_2
) {
3033 fra
.me
.REG
[1] = BOX_NativeString("Error: unreachable statement.");
3034 REGB0
= TAG_Int(29);
3035 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
3036 once_value_2
= fra
.me
.REG
[1];
3037 register_static_object(&once_value_2
);
3038 } else fra
.me
.REG
[1] = once_value_2
;
3039 fra
.me
.REG
[1] = fra
.me
.REG
[1];
3040 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[1]);
3043 stack_frame_head
= fra
.me
.prev
;
3046 void syntax___typing___AReturnExpr___after_typing(val_t p0
, val_t p1
){
3047 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3051 static val_t once_value_1
; /* Once value */
3052 static val_t once_value_3
; /* Once value */
3053 static val_t once_value_4
; /* Once value */
3054 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3055 fra
.me
.file
= LOCATE_syntax___typing
;
3057 fra
.me
.meth
= LOCATE_syntax___typing___AReturnExpr___after_typing
;
3058 fra
.me
.has_broke
= 0;
3059 fra
.me
.REG_size
= 5;
3060 fra
.me
.nitni_local_ref_head
= NULL
;
3061 fra
.me
.REG
[0] = NIT_NULL
;
3062 fra
.me
.REG
[1] = NIT_NULL
;
3063 fra
.me
.REG
[2] = NIT_NULL
;
3064 fra
.me
.REG
[3] = NIT_NULL
;
3065 fra
.me
.REG
[4] = NIT_NULL
;
3068 /* syntax/typing.nit:471 */
3069 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3070 /* syntax/typing.nit:472 */
3071 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3072 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3073 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3074 if (UNTAG_Bool(REGB0
)) {
3075 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 472);
3077 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3078 /* syntax/typing.nit:474 */
3079 REGB0
= CALL_syntax___typing___TypingVisitor___is_default_closure_definition(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3080 if (UNTAG_Bool(REGB0
)) {
3081 /* syntax/typing.nit:475 */
3082 if (!once_value_1
) {
3083 fra
.me
.REG
[3] = BOX_NativeString("Error: 'return' invalid in default closure definitions. Use 'continue' or 'break'.");
3084 REGB0
= TAG_Int(82);
3085 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3086 once_value_1
= fra
.me
.REG
[3];
3087 register_static_object(&once_value_1
);
3088 } else fra
.me
.REG
[3] = once_value_1
;
3089 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3090 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3091 /* syntax/typing.nit:476 */
3094 /* syntax/typing.nit:479 */
3095 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3096 /* syntax/typing.nit:480 */
3097 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3098 if (UNTAG_Bool(REGB0
)) {
3100 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3101 if (UNTAG_Bool(REGB1
)) {
3102 REGB1
= TAG_Bool(false);
3105 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3109 if (UNTAG_Bool(REGB0
)) {
3110 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3111 if (UNTAG_Bool(REGB0
)) {
3113 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3114 if (UNTAG_Bool(REGB1
)) {
3115 REGB1
= TAG_Bool(false);
3118 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3122 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3124 REGB1
= TAG_Bool(false);
3127 if (UNTAG_Bool(REGB0
)) {
3128 /* syntax/typing.nit:481 */
3129 if (!once_value_3
) {
3130 fra
.me
.REG
[4] = BOX_NativeString("Error: Return without value in a function.");
3131 REGB0
= TAG_Int(42);
3132 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3133 once_value_3
= fra
.me
.REG
[4];
3134 register_static_object(&once_value_3
);
3135 } else fra
.me
.REG
[4] = once_value_3
;
3136 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3137 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3139 /* syntax/typing.nit:482 */
3140 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3141 if (UNTAG_Bool(REGB0
)) {
3143 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3144 if (UNTAG_Bool(REGB1
)) {
3145 REGB1
= TAG_Bool(false);
3148 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3152 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3153 if (UNTAG_Bool(REGB0
)) {
3154 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3155 if (UNTAG_Bool(REGB0
)) {
3157 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3158 if (UNTAG_Bool(REGB1
)) {
3159 REGB1
= TAG_Bool(false);
3162 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3167 REGB1
= TAG_Bool(false);
3170 if (UNTAG_Bool(REGB0
)) {
3171 /* syntax/typing.nit:483 */
3172 if (!once_value_4
) {
3173 fra
.me
.REG
[4] = BOX_NativeString("Error: Return with value in a procedure.");
3174 REGB0
= TAG_Int(40);
3175 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3176 once_value_4
= fra
.me
.REG
[4];
3177 register_static_object(&once_value_4
);
3178 } else fra
.me
.REG
[4] = once_value_4
;
3179 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3180 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3182 /* syntax/typing.nit:484 */
3183 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3184 if (UNTAG_Bool(REGB0
)) {
3186 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3187 if (UNTAG_Bool(REGB1
)) {
3188 REGB1
= TAG_Bool(false);
3191 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3195 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3196 if (UNTAG_Bool(REGB0
)) {
3197 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3198 if (UNTAG_Bool(REGB0
)) {
3200 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3201 if (UNTAG_Bool(REGB1
)) {
3202 REGB1
= TAG_Bool(false);
3205 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3209 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3211 REGB1
= TAG_Bool(false);
3214 if (UNTAG_Bool(REGB0
)) {
3215 /* syntax/typing.nit:485 */
3216 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3220 /* syntax/typing.nit:487 */
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
);
3233 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3234 if (UNTAG_Bool(REGB0
)) {
3235 /* syntax/typing.nit:488 */
3236 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3237 if (UNTAG_Bool(REGB0
)) {
3238 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 488);
3240 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3242 /* syntax/typing.nit:490 */
3243 REGB0
= TAG_Bool(true);
3244 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3246 stack_frame_head
= fra
.me
.prev
;
3249 void syntax___typing___AContinueExpr___after_typing(val_t p0
, val_t p1
){
3250 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3254 static val_t once_value_2
; /* Once value */
3255 static val_t once_value_3
; /* Once value */
3256 static val_t once_value_4
; /* Once value */
3257 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3258 fra
.me
.file
= LOCATE_syntax___typing
;
3260 fra
.me
.meth
= LOCATE_syntax___typing___AContinueExpr___after_typing
;
3261 fra
.me
.has_broke
= 0;
3262 fra
.me
.REG_size
= 5;
3263 fra
.me
.nitni_local_ref_head
= NULL
;
3264 fra
.me
.REG
[0] = NIT_NULL
;
3265 fra
.me
.REG
[1] = NIT_NULL
;
3266 fra
.me
.REG
[2] = NIT_NULL
;
3267 fra
.me
.REG
[3] = NIT_NULL
;
3268 fra
.me
.REG
[4] = NIT_NULL
;
3271 /* syntax/typing.nit:497 */
3272 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3273 /* syntax/typing.nit:498 */
3274 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3275 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3276 /* syntax/typing.nit:499 */
3277 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3278 if (UNTAG_Bool(REGB0
)) {
3280 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3281 if (UNTAG_Bool(REGB1
)) {
3282 REGB1
= TAG_Bool(false);
3285 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3289 if (UNTAG_Bool(REGB0
)) {
3292 /* syntax/typing.nit:501 */
3293 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3294 if (UNTAG_Bool(REGB0
)) {
3295 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 501);
3297 REGB0
= CALL_syntax___scope___EscapableBlock___is_break_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3298 if (UNTAG_Bool(REGB0
)) {
3299 /* syntax/typing.nit:502 */
3300 if (!once_value_2
) {
3301 fra
.me
.REG
[3] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
3302 REGB0
= TAG_Int(39);
3303 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3304 once_value_2
= fra
.me
.REG
[3];
3305 register_static_object(&once_value_2
);
3306 } else fra
.me
.REG
[3] = once_value_2
;
3307 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3308 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3309 /* syntax/typing.nit:503 */
3312 /* syntax/typing.nit:506 */
3313 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3314 if (UNTAG_Bool(REGB0
)) {
3315 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 506);
3317 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___continue_stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3318 /* syntax/typing.nit:507 */
3319 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3320 /* syntax/typing.nit:508 */
3321 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3322 if (UNTAG_Bool(REGB0
)) {
3324 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3325 if (UNTAG_Bool(REGB1
)) {
3326 REGB1
= TAG_Bool(false);
3329 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3333 if (UNTAG_Bool(REGB0
)) {
3334 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3335 if (UNTAG_Bool(REGB0
)) {
3337 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3338 if (UNTAG_Bool(REGB1
)) {
3339 REGB1
= TAG_Bool(false);
3342 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3346 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3348 REGB1
= TAG_Bool(false);
3351 if (UNTAG_Bool(REGB0
)) {
3352 /* syntax/typing.nit:509 */
3353 if (!once_value_3
) {
3354 fra
.me
.REG
[4] = BOX_NativeString("Error: continue with a value required in this block.");
3355 REGB0
= TAG_Int(52);
3356 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3357 once_value_3
= fra
.me
.REG
[4];
3358 register_static_object(&once_value_3
);
3359 } else fra
.me
.REG
[4] = once_value_3
;
3360 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3361 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3363 /* syntax/typing.nit:510 */
3364 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3365 if (UNTAG_Bool(REGB0
)) {
3367 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3368 if (UNTAG_Bool(REGB1
)) {
3369 REGB1
= TAG_Bool(false);
3372 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3376 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3377 if (UNTAG_Bool(REGB0
)) {
3378 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3379 if (UNTAG_Bool(REGB0
)) {
3381 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3382 if (UNTAG_Bool(REGB1
)) {
3383 REGB1
= TAG_Bool(false);
3386 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3391 REGB1
= TAG_Bool(false);
3394 if (UNTAG_Bool(REGB0
)) {
3395 /* syntax/typing.nit:511 */
3396 if (!once_value_4
) {
3397 fra
.me
.REG
[4] = BOX_NativeString("Error: continue without value required in this block.");
3398 REGB0
= TAG_Int(53);
3399 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3400 once_value_4
= fra
.me
.REG
[4];
3401 register_static_object(&once_value_4
);
3402 } else fra
.me
.REG
[4] = once_value_4
;
3403 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3404 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3406 /* syntax/typing.nit:512 */
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
[2]==NIT_NULL
);
3422 if (UNTAG_Bool(REGB0
)) {
3424 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3425 if (UNTAG_Bool(REGB1
)) {
3426 REGB1
= TAG_Bool(false);
3429 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3433 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3435 REGB1
= TAG_Bool(false);
3438 if (UNTAG_Bool(REGB0
)) {
3439 /* syntax/typing.nit:513 */
3440 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3444 /* syntax/typing.nit:515 */
3445 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3446 if (UNTAG_Bool(REGB0
)) {
3448 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3449 if (UNTAG_Bool(REGB1
)) {
3450 REGB1
= TAG_Bool(false);
3453 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3457 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3458 if (UNTAG_Bool(REGB0
)) {
3459 /* syntax/typing.nit:516 */
3460 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3461 if (UNTAG_Bool(REGB0
)) {
3462 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 516);
3464 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3466 /* syntax/typing.nit:518 */
3467 REGB0
= TAG_Bool(true);
3468 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3470 stack_frame_head
= fra
.me
.prev
;
3473 void syntax___typing___ABreakExpr___after_typing(val_t p0
, val_t p1
){
3474 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3478 static val_t once_value_2
; /* Once value */
3479 static val_t once_value_3
; /* Once value */
3480 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3481 fra
.me
.file
= LOCATE_syntax___typing
;
3483 fra
.me
.meth
= LOCATE_syntax___typing___ABreakExpr___after_typing
;
3484 fra
.me
.has_broke
= 0;
3485 fra
.me
.REG_size
= 5;
3486 fra
.me
.nitni_local_ref_head
= NULL
;
3487 fra
.me
.REG
[0] = NIT_NULL
;
3488 fra
.me
.REG
[1] = NIT_NULL
;
3489 fra
.me
.REG
[2] = NIT_NULL
;
3490 fra
.me
.REG
[3] = NIT_NULL
;
3491 fra
.me
.REG
[4] = NIT_NULL
;
3494 /* syntax/typing.nit:525 */
3495 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3496 /* syntax/typing.nit:526 */
3497 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3498 /* syntax/typing.nit:527 */
3499 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3500 fra
.me
.REG
[3] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
3501 /* syntax/typing.nit:528 */
3502 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3503 if (UNTAG_Bool(REGB0
)) {
3505 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3506 if (UNTAG_Bool(REGB1
)) {
3507 REGB1
= TAG_Bool(false);
3510 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3514 if (UNTAG_Bool(REGB0
)) {
3517 /* syntax/typing.nit:530 */
3518 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3519 if (UNTAG_Bool(REGB0
)) {
3520 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 530);
3522 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3523 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3524 /* syntax/typing.nit:532 */
3525 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3526 if (UNTAG_Bool(REGB0
)) {
3527 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 532);
3529 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3530 /* syntax/typing.nit:533 */
3531 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3532 /* syntax/typing.nit:534 */
3533 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3534 if (UNTAG_Bool(REGB0
)) {
3536 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3537 if (UNTAG_Bool(REGB1
)) {
3538 REGB1
= TAG_Bool(false);
3541 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3545 if (UNTAG_Bool(REGB0
)) {
3546 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3547 if (UNTAG_Bool(REGB0
)) {
3549 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3550 if (UNTAG_Bool(REGB1
)) {
3551 REGB1
= TAG_Bool(false);
3554 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3558 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3560 REGB1
= TAG_Bool(false);
3563 if (UNTAG_Bool(REGB0
)) {
3564 /* syntax/typing.nit:535 */
3565 if (!once_value_2
) {
3566 fra
.me
.REG
[4] = BOX_NativeString("Error: break with a value required in this block.");
3567 REGB0
= TAG_Int(49);
3568 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3569 once_value_2
= fra
.me
.REG
[4];
3570 register_static_object(&once_value_2
);
3571 } else fra
.me
.REG
[4] = once_value_2
;
3572 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3573 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3575 /* syntax/typing.nit:536 */
3576 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3577 if (UNTAG_Bool(REGB0
)) {
3579 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3580 if (UNTAG_Bool(REGB1
)) {
3581 REGB1
= TAG_Bool(false);
3584 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3588 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3589 if (UNTAG_Bool(REGB0
)) {
3590 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3591 if (UNTAG_Bool(REGB0
)) {
3593 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3594 if (UNTAG_Bool(REGB1
)) {
3595 REGB1
= TAG_Bool(false);
3598 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3603 REGB1
= TAG_Bool(false);
3606 if (UNTAG_Bool(REGB0
)) {
3607 /* syntax/typing.nit:537 */
3608 if (!once_value_3
) {
3609 fra
.me
.REG
[4] = BOX_NativeString("Error: break without value required in this block.");
3610 REGB0
= TAG_Int(50);
3611 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3612 once_value_3
= fra
.me
.REG
[4];
3613 register_static_object(&once_value_3
);
3614 } else fra
.me
.REG
[4] = once_value_3
;
3615 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3616 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3618 /* syntax/typing.nit:538 */
3619 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3620 if (UNTAG_Bool(REGB0
)) {
3622 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3623 if (UNTAG_Bool(REGB1
)) {
3624 REGB1
= TAG_Bool(false);
3627 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3631 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3632 if (UNTAG_Bool(REGB0
)) {
3633 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3634 if (UNTAG_Bool(REGB0
)) {
3636 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3637 if (UNTAG_Bool(REGB1
)) {
3638 REGB1
= TAG_Bool(false);
3641 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3645 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3647 REGB1
= TAG_Bool(false);
3650 if (UNTAG_Bool(REGB0
)) {
3651 /* syntax/typing.nit:540 */
3652 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3653 if (UNTAG_Bool(REGB0
)) {
3654 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 540);
3656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3660 /* syntax/typing.nit:542 */
3661 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3662 if (UNTAG_Bool(REGB0
)) {
3664 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3665 if (UNTAG_Bool(REGB1
)) {
3666 REGB1
= TAG_Bool(false);
3669 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3673 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3674 if (UNTAG_Bool(REGB0
)) {
3675 /* syntax/typing.nit:543 */
3676 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3677 if (UNTAG_Bool(REGB0
)) {
3678 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 543);
3680 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3682 /* syntax/typing.nit:545 */
3683 REGB0
= TAG_Bool(true);
3684 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3686 stack_frame_head
= fra
.me
.prev
;
3689 void syntax___typing___AAbortExpr___after_typing(val_t p0
, val_t p1
){
3690 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3693 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3694 fra
.me
.file
= LOCATE_syntax___typing
;
3696 fra
.me
.meth
= LOCATE_syntax___typing___AAbortExpr___after_typing
;
3697 fra
.me
.has_broke
= 0;
3698 fra
.me
.REG_size
= 2;
3699 fra
.me
.nitni_local_ref_head
= NULL
;
3700 fra
.me
.REG
[0] = NIT_NULL
;
3701 fra
.me
.REG
[1] = NIT_NULL
;
3704 /* syntax/typing.nit:552 */
3705 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3706 /* syntax/typing.nit:553 */
3707 REGB0
= TAG_Bool(true);
3708 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3709 stack_frame_head
= fra
.me
.prev
;
3712 val_t
syntax___typing___AAbsControl___escapable(val_t p0
){
3713 struct {struct stack_frame_t me
;} fra
;
3715 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3716 fra
.me
.file
= LOCATE_syntax___typing
;
3718 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___escapable
;
3719 fra
.me
.has_broke
= 0;
3720 fra
.me
.REG_size
= 1;
3721 fra
.me
.nitni_local_ref_head
= NULL
;
3722 fra
.me
.REG
[0] = NIT_NULL
;
3724 /* syntax/typing.nit:560 */
3725 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]);
3726 stack_frame_head
= fra
.me
.prev
;
3727 return fra
.me
.REG
[0];
3729 void syntax___typing___AAbsControl___process_control(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
3730 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3734 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3735 fra
.me
.file
= LOCATE_syntax___typing
;
3737 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control
;
3738 fra
.me
.has_broke
= 0;
3739 fra
.me
.REG_size
= 7;
3740 fra
.me
.nitni_local_ref_head
= NULL
;
3741 fra
.me
.REG
[0] = NIT_NULL
;
3742 fra
.me
.REG
[1] = NIT_NULL
;
3743 fra
.me
.REG
[2] = NIT_NULL
;
3744 fra
.me
.REG
[3] = NIT_NULL
;
3745 fra
.me
.REG
[4] = NIT_NULL
;
3746 fra
.me
.REG
[5] = NIT_NULL
;
3747 fra
.me
.REG
[6] = NIT_NULL
;
3753 /* syntax/typing.nit:567 */
3754 ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3755 /* syntax/typing.nit:568 */
3756 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3757 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3758 /* syntax/typing.nit:571 */
3759 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3760 /* syntax/typing.nit:572 */
3761 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3762 /* syntax/typing.nit:573 */
3763 if (UNTAG_Bool(REGB0
)) {
3764 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3765 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3767 /* syntax/typing.nit:576 */
3768 CALL_syntax___typing___AAbsControl___process_control_inside(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3769 /* syntax/typing.nit:579 */
3770 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3771 REGB1
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3772 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
3773 if (UNTAG_Bool(REGB1
)) {
3774 /* syntax/typing.nit:580 */
3775 fra
.me
.REG
[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3776 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3777 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3779 /* syntax/typing.nit:584 */
3780 fra
.me
.REG
[6] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3781 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3782 if (UNTAG_Bool(REGB1
)) {
3783 /* syntax/typing.nit:585 */
3784 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3785 /* syntax/typing.nit:586 */
3786 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3788 /* syntax/typing.nit:588 */
3789 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3790 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]);
3791 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3793 /* syntax/typing.nit:591 */
3794 if (UNTAG_Bool(REGB0
)) {
3795 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3797 /* syntax/typing.nit:592 */
3798 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3799 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3800 /* syntax/typing.nit:593 */
3801 REGB0
= TAG_Bool(true);
3802 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3803 stack_frame_head
= fra
.me
.prev
;
3806 void syntax___typing___AAbsControl___process_control_inside(val_t p0
, val_t p1
){
3807 struct {struct stack_frame_t me
;} fra
;
3809 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3810 fra
.me
.file
= LOCATE_syntax___typing
;
3812 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control_inside
;
3813 fra
.me
.has_broke
= 0;
3814 fra
.me
.REG_size
= 0;
3815 fra
.me
.nitni_local_ref_head
= NULL
;
3816 /* syntax/typing.nit:596 */
3817 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 596);
3818 stack_frame_head
= fra
.me
.prev
;
3821 void syntax___typing___ADoExpr___accept_typing(val_t p0
, val_t p1
){
3822 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3825 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3826 fra
.me
.file
= LOCATE_syntax___typing
;
3828 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___accept_typing
;
3829 fra
.me
.has_broke
= 0;
3830 fra
.me
.REG_size
= 4;
3831 fra
.me
.nitni_local_ref_head
= NULL
;
3832 fra
.me
.REG
[0] = NIT_NULL
;
3833 fra
.me
.REG
[1] = NIT_NULL
;
3834 fra
.me
.REG
[2] = NIT_NULL
;
3835 fra
.me
.REG
[3] = NIT_NULL
;
3838 /* syntax/typing.nit:604 */
3839 fra
.me
.REG
[2] = NEW_BreakOnlyEscapableBlock_syntax___scope___BreakOnlyEscapableBlock___init(fra
.me
.REG
[0]);
3840 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3841 REGB0
= TAG_Bool(false);
3842 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
);
3843 stack_frame_head
= fra
.me
.prev
;
3846 void syntax___typing___ADoExpr___process_control_inside(val_t p0
, val_t p1
){
3847 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3849 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3850 fra
.me
.file
= LOCATE_syntax___typing
;
3852 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___process_control_inside
;
3853 fra
.me
.has_broke
= 0;
3854 fra
.me
.REG_size
= 2;
3855 fra
.me
.nitni_local_ref_head
= NULL
;
3856 fra
.me
.REG
[0] = NIT_NULL
;
3857 fra
.me
.REG
[1] = NIT_NULL
;
3860 /* syntax/typing.nit:609 */
3861 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3862 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3863 stack_frame_head
= fra
.me
.prev
;
3866 void syntax___typing___AIfExpr___accept_typing(val_t p0
, val_t p1
){
3867 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3870 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3871 fra
.me
.file
= LOCATE_syntax___typing
;
3873 fra
.me
.meth
= LOCATE_syntax___typing___AIfExpr___accept_typing
;
3874 fra
.me
.has_broke
= 0;
3875 fra
.me
.REG_size
= 5;
3876 fra
.me
.nitni_local_ref_head
= NULL
;
3877 fra
.me
.REG
[0] = NIT_NULL
;
3878 fra
.me
.REG
[1] = NIT_NULL
;
3879 fra
.me
.REG
[2] = NIT_NULL
;
3880 fra
.me
.REG
[3] = NIT_NULL
;
3881 fra
.me
.REG
[4] = NIT_NULL
;
3884 /* syntax/typing.nit:616 */
3885 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3886 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3887 /* syntax/typing.nit:617 */
3888 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3889 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3890 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3891 /* syntax/typing.nit:619 */
3892 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3893 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3894 /* syntax/typing.nit:622 */
3895 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3896 /* syntax/typing.nit:623 */
3897 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3898 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3899 /* syntax/typing.nit:626 */
3900 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3901 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3902 /* syntax/typing.nit:629 */
3903 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3904 /* syntax/typing.nit:632 */
3905 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3906 /* syntax/typing.nit:633 */
3907 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3908 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3909 /* syntax/typing.nit:636 */
3910 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3911 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3912 /* syntax/typing.nit:639 */
3913 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3914 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3915 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]);
3916 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3917 /* syntax/typing.nit:640 */
3918 REGB0
= TAG_Bool(true);
3919 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3920 stack_frame_head
= fra
.me
.prev
;
3923 void syntax___typing___AWhileExpr___accept_typing(val_t p0
, val_t p1
){
3924 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3927 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3928 fra
.me
.file
= LOCATE_syntax___typing
;
3930 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___accept_typing
;
3931 fra
.me
.has_broke
= 0;
3932 fra
.me
.REG_size
= 4;
3933 fra
.me
.nitni_local_ref_head
= NULL
;
3934 fra
.me
.REG
[0] = NIT_NULL
;
3935 fra
.me
.REG
[1] = NIT_NULL
;
3936 fra
.me
.REG
[2] = NIT_NULL
;
3937 fra
.me
.REG
[3] = NIT_NULL
;
3940 /* syntax/typing.nit:648 */
3941 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3942 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3943 REGB0
= TAG_Bool(true);
3944 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
);
3945 stack_frame_head
= fra
.me
.prev
;
3948 void syntax___typing___AWhileExpr___process_control_inside(val_t p0
, val_t p1
){
3949 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3952 static val_t once_value_1
; /* Once value */
3953 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3954 fra
.me
.file
= LOCATE_syntax___typing
;
3956 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___process_control_inside
;
3957 fra
.me
.has_broke
= 0;
3958 fra
.me
.REG_size
= 5;
3959 fra
.me
.nitni_local_ref_head
= NULL
;
3960 fra
.me
.REG
[0] = NIT_NULL
;
3961 fra
.me
.REG
[1] = NIT_NULL
;
3962 fra
.me
.REG
[2] = NIT_NULL
;
3963 fra
.me
.REG
[3] = NIT_NULL
;
3964 fra
.me
.REG
[4] = NIT_NULL
;
3967 /* syntax/typing.nit:653 */
3968 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3969 /* syntax/typing.nit:656 */
3970 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3971 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3972 /* syntax/typing.nit:657 */
3973 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3974 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3975 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
3976 /* syntax/typing.nit:659 */
3977 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3978 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_parser___parser_nodes___ATrueExpr
, ID_parser___parser_nodes___ATrueExpr
)) /*cast ATrueExpr*/;
3979 if (UNTAG_Bool(REGB0
)) {
3980 /* syntax/typing.nit:660 */
3981 if (!once_value_1
) {
3982 fra
.me
.REG
[4] = BOX_NativeString("Warning: use 'loop' instead of 'while true do'.");
3983 REGB0
= TAG_Int(47);
3984 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3985 once_value_1
= fra
.me
.REG
[4];
3986 register_static_object(&once_value_1
);
3987 } else fra
.me
.REG
[4] = once_value_1
;
3988 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3989 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3991 /* syntax/typing.nit:662 */
3992 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3993 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3995 /* syntax/typing.nit:666 */
3996 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3997 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3998 /* syntax/typing.nit:669 */
3999 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4000 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4001 /* syntax/typing.nit:672 */
4002 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4003 /* syntax/typing.nit:673 */
4004 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4005 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4006 /* syntax/typing.nit:674 */
4007 fra
.me
.REG
[0] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4008 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
4009 if (UNTAG_Bool(REGB0
)) {
4010 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 674);
4012 fra
.me
.REG
[0] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4013 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4014 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
4015 stack_frame_head
= fra
.me
.prev
;
4018 void syntax___typing___ALoopExpr___accept_typing(val_t p0
, val_t p1
){
4019 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4022 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4023 fra
.me
.file
= LOCATE_syntax___typing
;
4025 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___accept_typing
;
4026 fra
.me
.has_broke
= 0;
4027 fra
.me
.REG_size
= 4;
4028 fra
.me
.nitni_local_ref_head
= NULL
;
4029 fra
.me
.REG
[0] = NIT_NULL
;
4030 fra
.me
.REG
[1] = NIT_NULL
;
4031 fra
.me
.REG
[2] = NIT_NULL
;
4032 fra
.me
.REG
[3] = NIT_NULL
;
4035 /* syntax/typing.nit:682 */
4036 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
4037 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4038 REGB0
= TAG_Bool(true);
4039 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
);
4040 stack_frame_head
= fra
.me
.prev
;
4043 void syntax___typing___ALoopExpr___process_control_inside(val_t p0
, val_t p1
){
4044 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4046 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4047 fra
.me
.file
= LOCATE_syntax___typing
;
4049 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___process_control_inside
;
4050 fra
.me
.has_broke
= 0;
4051 fra
.me
.REG_size
= 3;
4052 fra
.me
.nitni_local_ref_head
= NULL
;
4053 fra
.me
.REG
[0] = NIT_NULL
;
4054 fra
.me
.REG
[1] = NIT_NULL
;
4055 fra
.me
.REG
[2] = NIT_NULL
;
4058 /* syntax/typing.nit:688 */
4059 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4060 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4061 /* syntax/typing.nit:691 */
4062 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4063 stack_frame_head
= fra
.me
.prev
;
4066 val_t
syntax___typing___AForExpr___variables(val_t p0
){
4067 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4070 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4071 fra
.me
.file
= LOCATE_syntax___typing
;
4073 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___variables
;
4074 fra
.me
.has_broke
= 0;
4075 fra
.me
.REG_size
= 2;
4076 fra
.me
.nitni_local_ref_head
= NULL
;
4077 fra
.me
.REG
[0] = NIT_NULL
;
4078 fra
.me
.REG
[1] = NIT_NULL
;
4080 /* syntax/typing.nit:698 */
4081 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4082 fra
.me
.REG
[1] = ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[1]);
4083 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4084 if (UNTAG_Bool(REGB0
)) {
4086 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 698);
4090 stack_frame_head
= fra
.me
.prev
;
4091 return fra
.me
.REG
[1];
4093 void syntax___typing___AForExpr___accept_typing(val_t p0
, val_t p1
){
4094 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4097 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4098 fra
.me
.file
= LOCATE_syntax___typing
;
4100 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___accept_typing
;
4101 fra
.me
.has_broke
= 0;
4102 fra
.me
.REG_size
= 4;
4103 fra
.me
.nitni_local_ref_head
= NULL
;
4104 fra
.me
.REG
[0] = NIT_NULL
;
4105 fra
.me
.REG
[1] = NIT_NULL
;
4106 fra
.me
.REG
[2] = NIT_NULL
;
4107 fra
.me
.REG
[3] = NIT_NULL
;
4110 /* syntax/typing.nit:702 */
4111 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
4112 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4113 REGB0
= TAG_Bool(true);
4114 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
);
4115 stack_frame_head
= fra
.me
.prev
;
4118 void syntax___typing___AForExpr___process_control_inside(val_t p0
, val_t p1
){
4119 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4121 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4122 fra
.me
.file
= LOCATE_syntax___typing
;
4124 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___process_control_inside
;
4125 fra
.me
.has_broke
= 0;
4126 fra
.me
.REG_size
= 3;
4127 fra
.me
.nitni_local_ref_head
= NULL
;
4128 fra
.me
.REG
[0] = NIT_NULL
;
4129 fra
.me
.REG
[1] = NIT_NULL
;
4130 fra
.me
.REG
[2] = NIT_NULL
;
4133 /* syntax/typing.nit:707 */
4134 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4135 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4136 /* syntax/typing.nit:708 */
4137 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4138 /* syntax/typing.nit:710 */
4139 CALL_syntax___typing___AForExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
4140 /* syntax/typing.nit:713 */
4141 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4142 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4143 /* syntax/typing.nit:716 */
4144 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4145 /* syntax/typing.nit:717 */
4146 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4147 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4148 stack_frame_head
= fra
.me
.prev
;
4151 void syntax___typing___AForExpr___do_typing(val_t p0
, val_t p1
){
4152 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4160 static val_t once_value_3
; /* Once value */
4161 static val_t once_value_4
; /* Once value */
4162 static val_t once_value_5
; /* Once value */
4163 static val_t once_value_6
; /* Once value */
4164 static val_t once_value_7
; /* Once value */
4165 static val_t once_value_8
; /* Once value */
4166 static val_t once_value_9
; /* Once value */
4167 static val_t once_value_10
; /* Once value */
4168 static val_t once_value_11
; /* Once value */
4169 static val_t once_value_12
; /* Once value */
4170 static val_t once_value_13
; /* Once value */
4171 static val_t once_value_14
; /* Once value */
4172 static val_t once_value_15
; /* Once value */
4173 static val_t once_value_16
; /* Once value */
4174 static val_t once_value_17
; /* Once value */
4175 static val_t once_value_18
; /* Once value */
4176 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4177 fra
.me
.file
= LOCATE_syntax___typing
;
4179 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4180 fra
.me
.has_broke
= 0;
4181 fra
.me
.REG_size
= 8;
4182 fra
.me
.nitni_local_ref_head
= NULL
;
4183 fra
.me
.REG
[0] = NIT_NULL
;
4184 fra
.me
.REG
[1] = NIT_NULL
;
4185 fra
.me
.REG
[2] = NIT_NULL
;
4186 fra
.me
.REG
[3] = NIT_NULL
;
4187 fra
.me
.REG
[4] = NIT_NULL
;
4188 fra
.me
.REG
[5] = NIT_NULL
;
4189 fra
.me
.REG
[6] = NIT_NULL
;
4190 fra
.me
.REG
[7] = NIT_NULL
;
4193 /* syntax/typing.nit:723 */
4194 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
4195 /* syntax/typing.nit:724 */
4196 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4197 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
));
4198 /* syntax/typing.nit:729 */
4199 ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4200 /* syntax/typing.nit:732 */
4201 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4202 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4203 /* syntax/typing.nit:733 */
4204 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4205 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4206 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4207 if (UNTAG_Bool(REGB0
)) {
4210 /* syntax/typing.nit:734 */
4211 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4212 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4213 /* syntax/typing.nit:736 */
4214 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4215 if (UNTAG_Bool(REGB0
)) {
4216 /* syntax/typing.nit:737 */
4217 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4218 if (!once_value_3
) {
4219 fra
.me
.REG
[5] = BOX_NativeString("Type error: 'for' on a nullable expression.");
4220 REGB0
= TAG_Int(43);
4221 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4222 once_value_3
= fra
.me
.REG
[5];
4223 register_static_object(&once_value_3
);
4224 } else fra
.me
.REG
[5] = once_value_3
;
4225 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4226 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4227 /* syntax/typing.nit:738 */
4230 /* syntax/typing.nit:740 */
4231 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4232 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
4233 /* syntax/typing.nit:743 */
4234 if (!once_value_4
) {
4235 if (!once_value_5
) {
4236 fra
.me
.REG
[5] = BOX_NativeString("iterate");
4238 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4239 once_value_5
= fra
.me
.REG
[5];
4240 register_static_object(&once_value_5
);
4241 } else fra
.me
.REG
[5] = once_value_5
;
4242 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4243 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4244 once_value_4
= fra
.me
.REG
[5];
4245 register_static_object(&once_value_4
);
4246 } else fra
.me
.REG
[5] = once_value_4
;
4247 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4248 /* syntax/typing.nit:744 */
4249 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4250 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4251 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4252 if (UNTAG_Bool(REGB0
)) {
4253 /* syntax/typing.nit:745 */
4254 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4256 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4257 if (!once_value_6
) {
4258 fra
.me
.REG
[7] = BOX_NativeString("Type error: Expected a type with an 'iterate' method. Found ");
4259 REGB0
= TAG_Int(60);
4260 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4261 once_value_6
= fra
.me
.REG
[7];
4262 register_static_object(&once_value_6
);
4263 } else fra
.me
.REG
[7] = once_value_6
;
4264 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4265 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4266 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4267 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4268 if (!once_value_7
) {
4269 fra
.me
.REG
[7] = BOX_NativeString(".");
4271 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4272 once_value_7
= fra
.me
.REG
[7];
4273 register_static_object(&once_value_7
);
4274 } else fra
.me
.REG
[7] = once_value_7
;
4275 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4276 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4277 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4278 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
4279 /* syntax/typing.nit:746 */
4282 /* syntax/typing.nit:748 */
4283 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4284 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
4285 /* syntax/typing.nit:749 */
4286 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4287 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4288 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4289 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4290 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
);
4291 /* syntax/typing.nit:750 */
4292 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4293 /* syntax/typing.nit:751 */
4294 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4295 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4296 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4297 if (UNTAG_Bool(REGB0
)) {
4298 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4299 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4301 /* syntax/typing.nit:752 */
4302 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4304 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4305 if (UNTAG_Bool(REGB2
)) {
4307 /* ../lib/standard/kernel.nit:227 */
4308 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4309 /* syntax/typing.nit:752 */
4312 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4313 if (UNTAG_Bool(REGB2
)) {
4314 /* syntax/typing.nit:753 */
4315 if (!once_value_8
) {
4316 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require no arguments.");
4317 REGB2
= TAG_Int(63);
4318 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
4319 once_value_8
= fra
.me
.REG
[5];
4320 register_static_object(&once_value_8
);
4321 } else fra
.me
.REG
[5] = once_value_8
;
4322 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4323 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4324 /* syntax/typing.nit:754 */
4327 /* syntax/typing.nit:755 */
4328 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4329 /* ../lib/standard/collection/array.nit:24 */
4330 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4331 if (UNTAG_Bool(REGB2
)) {
4333 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4335 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4336 /* syntax/typing.nit:755 */
4338 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4339 if (UNTAG_Bool(REGB0
)) {
4341 /* ../lib/standard/kernel.nit:227 */
4342 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4343 /* syntax/typing.nit:755 */
4346 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4347 if (UNTAG_Bool(REGB0
)) {
4348 /* syntax/typing.nit:756 */
4349 if (!once_value_9
) {
4350 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one closure.");
4351 REGB0
= TAG_Int(62);
4352 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4353 once_value_9
= fra
.me
.REG
[5];
4354 register_static_object(&once_value_9
);
4355 } else fra
.me
.REG
[5] = once_value_9
;
4356 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4357 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4358 /* syntax/typing.nit:757 */
4362 /* syntax/typing.nit:759 */
4363 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4364 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4365 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4366 if (UNTAG_Bool(REGB0
)) {
4367 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 759);
4369 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4370 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4371 /* syntax/typing.nit:760 */
4372 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4373 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4374 if (UNTAG_Bool(REGB0
)) {
4376 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4377 if (UNTAG_Bool(REGB1
)) {
4378 REGB1
= TAG_Bool(false);
4381 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
4385 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4386 if (UNTAG_Bool(REGB0
)) {
4387 /* syntax/typing.nit:761 */
4388 if (!once_value_10
) {
4389 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one procedural closure.");
4390 REGB0
= TAG_Int(73);
4391 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4392 once_value_10
= fra
.me
.REG
[5];
4393 register_static_object(&once_value_10
);
4394 } else fra
.me
.REG
[5] = once_value_10
;
4395 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4396 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4397 /* syntax/typing.nit:762 */
4400 /* ../lib/standard/collection/array.nit:24 */
4401 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4402 if (UNTAG_Bool(REGB0
)) {
4404 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4406 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4407 /* syntax/typing.nit:764 */
4408 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4409 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4410 if (UNTAG_Bool(REGB2
)) {
4412 /* ../lib/standard/kernel.nit:227 */
4413 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4414 /* syntax/typing.nit:764 */
4417 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4418 if (UNTAG_Bool(REGB2
)) {
4419 /* syntax/typing.nit:765 */
4420 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4422 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4423 if (UNTAG_Bool(REGB0
)) {
4425 /* ../lib/standard/kernel.nit:227 */
4426 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4427 /* syntax/typing.nit:765 */
4430 if (UNTAG_Bool(REGB0
)) {
4431 /* syntax/typing.nit:766 */
4433 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4434 if (!once_value_11
) {
4435 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4436 REGB0
= TAG_Int(16);
4437 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4438 once_value_11
= fra
.me
.REG
[4];
4439 register_static_object(&once_value_11
);
4440 } else fra
.me
.REG
[4] = once_value_11
;
4441 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4442 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4443 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4444 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4445 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4446 if (!once_value_12
) {
4447 fra
.me
.REG
[4] = BOX_NativeString(" variable ");
4448 REGB0
= TAG_Int(10);
4449 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4450 once_value_12
= fra
.me
.REG
[4];
4451 register_static_object(&once_value_12
);
4452 } else fra
.me
.REG
[4] = once_value_12
;
4453 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4454 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4455 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4456 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4457 if (!once_value_13
) {
4458 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4460 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4461 once_value_13
= fra
.me
.REG
[4];
4462 register_static_object(&once_value_13
);
4463 } else fra
.me
.REG
[4] = once_value_13
;
4464 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4465 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4466 /* ../lib/standard/collection/array.nit:24 */
4467 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4468 if (UNTAG_Bool(REGB0
)) {
4470 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4472 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4473 /* syntax/typing.nit:766 */
4474 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4475 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4476 if (!once_value_14
) {
4477 fra
.me
.REG
[4] = BOX_NativeString(".");
4479 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4480 once_value_14
= fra
.me
.REG
[4];
4481 register_static_object(&once_value_14
);
4482 } else fra
.me
.REG
[4] = once_value_14
;
4483 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4484 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4485 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4486 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4488 /* syntax/typing.nit:768 */
4490 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4491 if (!once_value_15
) {
4492 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4493 REGB0
= TAG_Int(16);
4494 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4495 once_value_15
= fra
.me
.REG
[4];
4496 register_static_object(&once_value_15
);
4497 } else fra
.me
.REG
[4] = once_value_15
;
4498 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4499 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4500 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4501 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4502 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4503 if (!once_value_16
) {
4504 fra
.me
.REG
[4] = BOX_NativeString(" variables ");
4505 REGB0
= TAG_Int(11);
4506 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4507 once_value_16
= fra
.me
.REG
[4];
4508 register_static_object(&once_value_16
);
4509 } else fra
.me
.REG
[4] = once_value_16
;
4510 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4511 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4512 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4513 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4514 if (!once_value_17
) {
4515 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4517 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4518 once_value_17
= fra
.me
.REG
[4];
4519 register_static_object(&once_value_17
);
4520 } else fra
.me
.REG
[4] = once_value_17
;
4521 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4522 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4523 /* ../lib/standard/collection/array.nit:24 */
4524 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4525 if (UNTAG_Bool(REGB0
)) {
4527 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4529 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4530 /* syntax/typing.nit:768 */
4531 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4532 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4533 if (!once_value_18
) {
4534 fra
.me
.REG
[4] = BOX_NativeString(".");
4536 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4537 once_value_18
= fra
.me
.REG
[4];
4538 register_static_object(&once_value_18
);
4539 } else fra
.me
.REG
[4] = once_value_18
;
4540 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4541 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4542 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4543 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4545 /* syntax/typing.nit:770 */
4548 /* syntax/typing.nit:774 */
4550 /* ../lib/standard/collection/array.nit:24 */
4551 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4552 if (UNTAG_Bool(REGB1
)) {
4554 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4556 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4557 /* ../lib/standard/kernel.nit:352 */
4559 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
4560 if (UNTAG_Bool(REGB2
)) {
4562 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4564 /* ../lib/standard/kernel.nit:232 */
4565 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
4566 /* ../lib/standard/kernel.nit:352 */
4567 if (UNTAG_Bool(REGB2
)) {
4568 /* syntax/typing.nit:774 */
4570 /* ../lib/standard/collection/array.nit:278 */
4571 fra
.me
.REG
[5] = fra
.me
.REG
[2];
4573 /* ../lib/standard/collection/array.nit:280 */
4575 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4576 if (UNTAG_Bool(REGB5
)) {
4578 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4580 /* ../lib/standard/kernel.nit:233 */
4581 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
4582 /* ../lib/standard/collection/array.nit:280 */
4583 if (UNTAG_Bool(REGB4
)) {
4584 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4585 if (UNTAG_Bool(REGB4
)) {
4587 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
4589 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4590 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4591 if (UNTAG_Bool(REGB5
)) {
4593 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4595 /* ../lib/standard/kernel.nit:232 */
4596 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
4598 /* ../lib/standard/collection/array.nit:280 */
4599 REGB5
= TAG_Bool(false);
4602 if (UNTAG_Bool(REGB4
)) {
4604 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
4606 /* ../lib/standard/collection/array.nit:281 */
4607 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
4608 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4609 if (UNTAG_Bool(REGB4
)) {
4610 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
4612 /* ../lib/standard/collection/array.nit:718 */
4613 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
4614 /* ../lib/standard/collection/array.nit:281 */
4617 /* syntax/typing.nit:775 */
4618 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
4619 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4620 if (UNTAG_Bool(REGB2
)) {
4621 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 775);
4623 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4624 /* ../lib/standard/kernel.nit:354 */
4626 /* ../lib/standard/kernel.nit:235 */
4627 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
4628 /* ../lib/standard/kernel.nit:354 */
4631 /* ../lib/standard/kernel.nit:352 */
4637 stack_frame_head
= fra
.me
.prev
;
4640 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
){
4641 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4644 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4645 fra
.me
.file
= LOCATE_syntax___typing
;
4647 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4648 fra
.me
.has_broke
= 0;
4649 fra
.me
.REG_size
= 2;
4650 fra
.me
.nitni_local_ref_head
= NULL
;
4651 fra
.me
.REG
[0] = NIT_NULL
;
4652 fra
.me
.REG
[1] = NIT_NULL
;
4653 fra
.me
.closure_ctx
= closctx_param
;
4654 fra
.me
.closure_funs
= CREG
;
4656 CREG
[0] = clos_fun0
;
4657 /* syntax/typing.nit:725 */
4658 fra
.me
.REG
[1] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4659 fra
.me
.REG
[0] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4660 /* syntax/typing.nit:726 */
4661 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
4662 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4663 /* syntax/typing.nit:727 */
4664 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
4665 stack_frame_head
= fra
.me
.prev
;
4668 void syntax___typing___AAssertExpr___accept_typing(val_t p0
, val_t p1
){
4669 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4673 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4674 fra
.me
.file
= LOCATE_syntax___typing
;
4676 fra
.me
.meth
= LOCATE_syntax___typing___AAssertExpr___accept_typing
;
4677 fra
.me
.has_broke
= 0;
4678 fra
.me
.REG_size
= 4;
4679 fra
.me
.nitni_local_ref_head
= NULL
;
4680 fra
.me
.REG
[0] = NIT_NULL
;
4681 fra
.me
.REG
[1] = NIT_NULL
;
4682 fra
.me
.REG
[2] = NIT_NULL
;
4683 fra
.me
.REG
[3] = NIT_NULL
;
4686 /* syntax/typing.nit:784 */
4687 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4688 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4689 /* syntax/typing.nit:785 */
4690 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4691 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4692 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4693 /* syntax/typing.nit:786 */
4694 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4695 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
4696 /* syntax/typing.nit:789 */
4697 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4698 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4699 if (UNTAG_Bool(REGB0
)) {
4701 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4702 if (UNTAG_Bool(REGB1
)) {
4703 REGB1
= TAG_Bool(false);
4706 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4710 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4711 if (UNTAG_Bool(REGB0
)) {
4712 /* syntax/typing.nit:790 */
4713 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4714 /* syntax/typing.nit:791 */
4715 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4716 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4717 /* syntax/typing.nit:792 */
4718 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4719 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4720 /* syntax/typing.nit:793 */
4721 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4723 /* syntax/typing.nit:797 */
4724 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4725 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4726 /* syntax/typing.nit:798 */
4727 REGB0
= TAG_Bool(true);
4728 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4729 stack_frame_head
= fra
.me
.prev
;
4732 val_t
syntax___typing___AVarFormExpr___variable(val_t p0
){
4733 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4736 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4737 fra
.me
.file
= LOCATE_syntax___typing
;
4739 fra
.me
.meth
= LOCATE_syntax___typing___AVarFormExpr___variable
;
4740 fra
.me
.has_broke
= 0;
4741 fra
.me
.REG_size
= 2;
4742 fra
.me
.nitni_local_ref_head
= NULL
;
4743 fra
.me
.REG
[0] = NIT_NULL
;
4744 fra
.me
.REG
[1] = NIT_NULL
;
4746 /* syntax/typing.nit:804 */
4747 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4748 fra
.me
.REG
[1] = ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[1]);
4749 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4750 if (UNTAG_Bool(REGB0
)) {
4752 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 804);
4756 stack_frame_head
= fra
.me
.prev
;
4757 return fra
.me
.REG
[1];
4759 val_t
syntax___typing___AVarExpr___its_variable(val_t p0
){
4760 struct {struct stack_frame_t me
;} fra
;
4762 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4763 fra
.me
.file
= LOCATE_syntax___typing
;
4765 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___its_variable
;
4766 fra
.me
.has_broke
= 0;
4767 fra
.me
.REG_size
= 1;
4768 fra
.me
.nitni_local_ref_head
= NULL
;
4769 fra
.me
.REG
[0] = NIT_NULL
;
4771 /* syntax/typing.nit:808 */
4772 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4775 stack_frame_head
= fra
.me
.prev
;
4776 return fra
.me
.REG
[0];
4778 void syntax___typing___AVarExpr___after_typing(val_t p0
, val_t p1
){
4779 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4783 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4784 fra
.me
.file
= LOCATE_syntax___typing
;
4786 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___after_typing
;
4787 fra
.me
.has_broke
= 0;
4788 fra
.me
.REG_size
= 4;
4789 fra
.me
.nitni_local_ref_head
= NULL
;
4790 fra
.me
.REG
[0] = NIT_NULL
;
4791 fra
.me
.REG
[1] = NIT_NULL
;
4792 fra
.me
.REG
[2] = NIT_NULL
;
4793 fra
.me
.REG
[3] = NIT_NULL
;
4796 /* syntax/typing.nit:812 */
4797 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4798 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4799 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4800 /* syntax/typing.nit:813 */
4801 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4802 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4803 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4804 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4805 /* syntax/typing.nit:814 */
4806 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
4807 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4808 if (UNTAG_Bool(REGB0
)) {
4810 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4811 if (UNTAG_Bool(REGB1
)) {
4812 REGB1
= TAG_Bool(false);
4815 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4819 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4820 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4821 stack_frame_head
= fra
.me
.prev
;
4824 void syntax___typing___AVarAssignExpr___after_typing(val_t p0
, val_t p1
){
4825 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4829 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4830 fra
.me
.file
= LOCATE_syntax___typing
;
4832 fra
.me
.meth
= LOCATE_syntax___typing___AVarAssignExpr___after_typing
;
4833 fra
.me
.has_broke
= 0;
4834 fra
.me
.REG_size
= 5;
4835 fra
.me
.nitni_local_ref_head
= NULL
;
4836 fra
.me
.REG
[0] = NIT_NULL
;
4837 fra
.me
.REG
[1] = NIT_NULL
;
4838 fra
.me
.REG
[2] = NIT_NULL
;
4839 fra
.me
.REG
[3] = NIT_NULL
;
4840 fra
.me
.REG
[4] = NIT_NULL
;
4843 /* syntax/typing.nit:821 */
4844 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4845 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4846 /* syntax/typing.nit:824 */
4847 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4848 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4849 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4850 /* syntax/typing.nit:825 */
4851 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4852 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4853 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4854 if (UNTAG_Bool(REGB0
)) {
4857 /* syntax/typing.nit:826 */
4858 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4859 if (UNTAG_Bool(REGB0
)) {
4861 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4862 if (UNTAG_Bool(REGB1
)) {
4863 REGB1
= TAG_Bool(false);
4866 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4870 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4871 if (UNTAG_Bool(REGB0
)) {
4872 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4873 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]);
4874 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4876 REGB1
= TAG_Bool(false);
4879 if (UNTAG_Bool(REGB0
)) {
4882 /* syntax/typing.nit:829 */
4883 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4884 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4885 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4886 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4887 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]);
4888 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4889 /* syntax/typing.nit:831 */
4890 REGB0
= TAG_Bool(true);
4891 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4893 stack_frame_head
= fra
.me
.prev
;
4896 val_t
syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0
, val_t p1
, val_t p2
){
4897 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4901 static val_t once_value_2
; /* Once value */
4902 static val_t once_value_3
; /* Once value */
4903 static val_t once_value_4
; /* Once value */
4904 static val_t once_value_5
; /* Once value */
4905 static val_t once_value_6
; /* Once value */
4906 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4907 fra
.me
.file
= LOCATE_syntax___typing
;
4909 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing
;
4910 fra
.me
.has_broke
= 0;
4911 fra
.me
.REG_size
= 8;
4912 fra
.me
.nitni_local_ref_head
= NULL
;
4913 fra
.me
.REG
[0] = NIT_NULL
;
4914 fra
.me
.REG
[1] = NIT_NULL
;
4915 fra
.me
.REG
[2] = NIT_NULL
;
4916 fra
.me
.REG
[3] = NIT_NULL
;
4917 fra
.me
.REG
[4] = NIT_NULL
;
4918 fra
.me
.REG
[5] = NIT_NULL
;
4919 fra
.me
.REG
[6] = NIT_NULL
;
4920 fra
.me
.REG
[7] = NIT_NULL
;
4924 /* syntax/typing.nit:841 */
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
)) {
4938 /* syntax/typing.nit:842 */
4939 fra
.me
.REG
[3] = NIT_NULL
;
4942 /* syntax/typing.nit:844 */
4943 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4944 fra
.me
.REG
[4] = CALL_syntax___typing___AAssignOp___method_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4945 /* syntax/typing.nit:845 */
4946 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*/;
4947 if (UNTAG_Bool(REGB0
)) {
4948 /* syntax/typing.nit:846 */
4950 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4951 if (!once_value_2
) {
4952 fra
.me
.REG
[6] = BOX_NativeString("Error: Method '");
4953 REGB0
= TAG_Int(15);
4954 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4955 once_value_2
= fra
.me
.REG
[6];
4956 register_static_object(&once_value_2
);
4957 } else fra
.me
.REG
[6] = once_value_2
;
4958 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4960 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4961 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4962 if (!once_value_3
) {
4963 fra
.me
.REG
[6] = BOX_NativeString("' call on 'null'.");
4964 REGB0
= TAG_Int(17);
4965 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4966 once_value_3
= fra
.me
.REG
[6];
4967 register_static_object(&once_value_3
);
4968 } else fra
.me
.REG
[6] = once_value_3
;
4969 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4970 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4971 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4972 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4973 /* syntax/typing.nit:847 */
4974 fra
.me
.REG
[3] = NIT_NULL
;
4977 /* syntax/typing.nit:849 */
4978 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4979 if (UNTAG_Bool(REGB0
)) {
4980 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 849);
4982 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4983 /* syntax/typing.nit:850 */
4984 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4985 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4986 if (UNTAG_Bool(REGB0
)) {
4987 /* syntax/typing.nit:851 */
4989 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4990 if (!once_value_4
) {
4991 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
4992 REGB0
= TAG_Int(15);
4993 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4994 once_value_4
= fra
.me
.REG
[7];
4995 register_static_object(&once_value_4
);
4996 } else fra
.me
.REG
[7] = once_value_4
;
4997 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4999 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5000 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5001 if (!once_value_5
) {
5002 fra
.me
.REG
[7] = BOX_NativeString("' doesn't exists in ");
5003 REGB0
= TAG_Int(20);
5004 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5005 once_value_5
= fra
.me
.REG
[7];
5006 register_static_object(&once_value_5
);
5007 } else fra
.me
.REG
[7] = once_value_5
;
5008 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5009 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5010 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5011 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5012 if (!once_value_6
) {
5013 fra
.me
.REG
[7] = BOX_NativeString(".");
5015 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5016 once_value_6
= fra
.me
.REG
[7];
5017 register_static_object(&once_value_6
);
5018 } else fra
.me
.REG
[7] = once_value_6
;
5019 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5020 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5021 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5022 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
5023 /* syntax/typing.nit:852 */
5024 fra
.me
.REG
[3] = NIT_NULL
;
5027 /* syntax/typing.nit:854 */
5028 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5029 /* syntax/typing.nit:855 */
5030 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5031 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5032 REGB0
= TAG_Bool(false);
5033 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
);
5034 /* syntax/typing.nit:856 */
5035 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5036 /* syntax/typing.nit:857 */
5037 ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5038 /* syntax/typing.nit:858 */
5039 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5041 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
5042 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5043 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]);
5044 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5045 if (UNTAG_Bool(REGB0
)) {
5046 fra
.me
.REG
[3] = NIT_NULL
;
5049 /* syntax/typing.nit:859 */
5050 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5051 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5052 if (UNTAG_Bool(REGB0
)) {
5053 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 859);
5055 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5056 fra
.me
.REG
[3] = fra
.me
.REG
[2];
5059 stack_frame_head
= fra
.me
.prev
;
5060 return fra
.me
.REG
[3];
5062 val_t
syntax___typing___AReassignFormExpr___assign_method(val_t p0
){
5063 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5066 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5067 fra
.me
.file
= LOCATE_syntax___typing
;
5069 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___assign_method
;
5070 fra
.me
.has_broke
= 0;
5071 fra
.me
.REG_size
= 2;
5072 fra
.me
.nitni_local_ref_head
= NULL
;
5073 fra
.me
.REG
[0] = NIT_NULL
;
5074 fra
.me
.REG
[1] = NIT_NULL
;
5076 /* syntax/typing.nit:862 */
5077 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5078 fra
.me
.REG
[1] = ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[1]);
5079 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5080 if (UNTAG_Bool(REGB0
)) {
5082 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 862);
5086 stack_frame_head
= fra
.me
.prev
;
5087 return fra
.me
.REG
[1];
5089 void syntax___typing___AVarReassignExpr___after_typing(val_t p0
, val_t p1
){
5090 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5094 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5095 fra
.me
.file
= LOCATE_syntax___typing
;
5097 fra
.me
.meth
= LOCATE_syntax___typing___AVarReassignExpr___after_typing
;
5098 fra
.me
.has_broke
= 0;
5099 fra
.me
.REG_size
= 5;
5100 fra
.me
.nitni_local_ref_head
= NULL
;
5101 fra
.me
.REG
[0] = NIT_NULL
;
5102 fra
.me
.REG
[1] = NIT_NULL
;
5103 fra
.me
.REG
[2] = NIT_NULL
;
5104 fra
.me
.REG
[3] = NIT_NULL
;
5105 fra
.me
.REG
[4] = NIT_NULL
;
5108 /* syntax/typing.nit:869 */
5109 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5110 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5111 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
5112 /* syntax/typing.nit:870 */
5113 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5114 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5115 /* syntax/typing.nit:871 */
5116 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5117 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5118 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5119 /* syntax/typing.nit:872 */
5120 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]);
5121 /* syntax/typing.nit:873 */
5122 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5123 if (UNTAG_Bool(REGB0
)) {
5125 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5126 if (UNTAG_Bool(REGB1
)) {
5127 REGB1
= TAG_Bool(false);
5130 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5134 if (UNTAG_Bool(REGB0
)) {
5137 /* syntax/typing.nit:876 */
5138 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5139 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5140 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5141 /* syntax/typing.nit:877 */
5142 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5143 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5144 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5145 if (UNTAG_Bool(REGB0
)) {
5148 /* syntax/typing.nit:878 */
5149 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5150 if (UNTAG_Bool(REGB0
)) {
5152 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5153 if (UNTAG_Bool(REGB1
)) {
5154 REGB1
= TAG_Bool(false);
5157 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5161 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5162 if (UNTAG_Bool(REGB0
)) {
5163 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5164 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]);
5165 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5167 REGB1
= TAG_Bool(false);
5170 if (UNTAG_Bool(REGB0
)) {
5173 /* syntax/typing.nit:881 */
5174 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5175 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5176 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]);
5177 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5178 /* syntax/typing.nit:883 */
5179 REGB0
= TAG_Bool(true);
5180 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5182 stack_frame_head
= fra
.me
.prev
;
5185 val_t
syntax___typing___AAssignOp___method_name(val_t p0
){
5186 struct {struct stack_frame_t me
;} fra
;
5188 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5189 fra
.me
.file
= LOCATE_syntax___typing
;
5191 fra
.me
.meth
= LOCATE_syntax___typing___AAssignOp___method_name
;
5192 fra
.me
.has_broke
= 0;
5193 fra
.me
.REG_size
= 0;
5194 fra
.me
.nitni_local_ref_head
= NULL
;
5195 /* syntax/typing.nit:888 */
5196 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 888);
5197 stack_frame_head
= fra
.me
.prev
;
5200 val_t
syntax___typing___APlusAssignOp___method_name(val_t p0
){
5201 struct {struct stack_frame_t me
;} fra
;
5204 static val_t once_value_1
; /* Once value */
5205 static val_t once_value_2
; /* Once value */
5206 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5207 fra
.me
.file
= LOCATE_syntax___typing
;
5209 fra
.me
.meth
= LOCATE_syntax___typing___APlusAssignOp___method_name
;
5210 fra
.me
.has_broke
= 0;
5211 fra
.me
.REG_size
= 1;
5212 fra
.me
.nitni_local_ref_head
= NULL
;
5213 fra
.me
.REG
[0] = NIT_NULL
;
5215 /* syntax/typing.nit:891 */
5216 if (!once_value_1
) {
5217 if (!once_value_2
) {
5218 fra
.me
.REG
[0] = BOX_NativeString("+");
5220 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5221 once_value_2
= fra
.me
.REG
[0];
5222 register_static_object(&once_value_2
);
5223 } else fra
.me
.REG
[0] = once_value_2
;
5224 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5225 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5226 once_value_1
= fra
.me
.REG
[0];
5227 register_static_object(&once_value_1
);
5228 } else fra
.me
.REG
[0] = once_value_1
;
5229 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5232 stack_frame_head
= fra
.me
.prev
;
5233 return fra
.me
.REG
[0];
5235 val_t
syntax___typing___AMinusAssignOp___method_name(val_t p0
){
5236 struct {struct stack_frame_t me
;} fra
;
5239 static val_t once_value_1
; /* Once value */
5240 static val_t once_value_2
; /* Once value */
5241 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5242 fra
.me
.file
= LOCATE_syntax___typing
;
5244 fra
.me
.meth
= LOCATE_syntax___typing___AMinusAssignOp___method_name
;
5245 fra
.me
.has_broke
= 0;
5246 fra
.me
.REG_size
= 1;
5247 fra
.me
.nitni_local_ref_head
= NULL
;
5248 fra
.me
.REG
[0] = NIT_NULL
;
5250 /* syntax/typing.nit:894 */
5251 if (!once_value_1
) {
5252 if (!once_value_2
) {
5253 fra
.me
.REG
[0] = BOX_NativeString("-");
5255 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5256 once_value_2
= fra
.me
.REG
[0];
5257 register_static_object(&once_value_2
);
5258 } else fra
.me
.REG
[0] = once_value_2
;
5259 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5260 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5261 once_value_1
= fra
.me
.REG
[0];
5262 register_static_object(&once_value_1
);
5263 } else fra
.me
.REG
[0] = once_value_1
;
5264 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5267 stack_frame_head
= fra
.me
.prev
;
5268 return fra
.me
.REG
[0];
5270 val_t
syntax___typing___ASelfExpr___variable(val_t p0
){
5271 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5274 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5275 fra
.me
.file
= LOCATE_syntax___typing
;
5277 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___variable
;
5278 fra
.me
.has_broke
= 0;
5279 fra
.me
.REG_size
= 2;
5280 fra
.me
.nitni_local_ref_head
= NULL
;
5281 fra
.me
.REG
[0] = NIT_NULL
;
5282 fra
.me
.REG
[1] = NIT_NULL
;
5284 /* syntax/typing.nit:899 */
5285 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5286 fra
.me
.REG
[1] = ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[1]);
5287 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5288 if (UNTAG_Bool(REGB0
)) {
5290 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 899);
5294 stack_frame_head
= fra
.me
.prev
;
5295 return fra
.me
.REG
[1];
5297 val_t
syntax___typing___ASelfExpr___its_variable(val_t p0
){
5298 struct {struct stack_frame_t me
;} 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___ASelfExpr___its_variable
;
5304 fra
.me
.has_broke
= 0;
5305 fra
.me
.REG_size
= 1;
5306 fra
.me
.nitni_local_ref_head
= NULL
;
5307 fra
.me
.REG
[0] = NIT_NULL
;
5309 /* syntax/typing.nit:901 */
5310 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5313 stack_frame_head
= fra
.me
.prev
;
5314 return fra
.me
.REG
[0];
5316 void syntax___typing___ASelfExpr___after_typing(val_t p0
, val_t p1
){
5317 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5320 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5321 fra
.me
.file
= LOCATE_syntax___typing
;
5323 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___after_typing
;
5324 fra
.me
.has_broke
= 0;
5325 fra
.me
.REG_size
= 3;
5326 fra
.me
.nitni_local_ref_head
= NULL
;
5327 fra
.me
.REG
[0] = NIT_NULL
;
5328 fra
.me
.REG
[1] = NIT_NULL
;
5329 fra
.me
.REG
[2] = NIT_NULL
;
5332 /* syntax/typing.nit:905 */
5333 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5334 ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5335 /* syntax/typing.nit:906 */
5336 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5337 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5338 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5339 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5340 /* syntax/typing.nit:907 */
5341 REGB0
= TAG_Bool(true);
5342 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5343 stack_frame_head
= fra
.me
.prev
;
5346 val_t
syntax___typing___ASelfExpr___is_self(val_t p0
){
5347 struct {struct stack_frame_t me
;} fra
;
5350 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5351 fra
.me
.file
= LOCATE_syntax___typing
;
5353 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___is_self
;
5354 fra
.me
.has_broke
= 0;
5355 fra
.me
.REG_size
= 1;
5356 fra
.me
.nitni_local_ref_head
= NULL
;
5357 fra
.me
.REG
[0] = NIT_NULL
;
5359 /* syntax/typing.nit:910 */
5360 REGB0
= TAG_Bool(true);
5363 stack_frame_head
= fra
.me
.prev
;
5366 val_t
syntax___typing___AImplicitSelfExpr___is_implicit_self(val_t p0
){
5367 struct {struct stack_frame_t me
;} fra
;
5370 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5371 fra
.me
.file
= LOCATE_syntax___typing
;
5373 fra
.me
.meth
= LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self
;
5374 fra
.me
.has_broke
= 0;
5375 fra
.me
.REG_size
= 1;
5376 fra
.me
.nitni_local_ref_head
= NULL
;
5377 fra
.me
.REG
[0] = NIT_NULL
;
5379 /* syntax/typing.nit:914 */
5380 REGB0
= TAG_Bool(true);
5383 stack_frame_head
= fra
.me
.prev
;
5386 void syntax___typing___AIfexprExpr___accept_typing(val_t p0
, val_t p1
){
5387 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5391 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5392 fra
.me
.file
= LOCATE_syntax___typing
;
5394 fra
.me
.meth
= LOCATE_syntax___typing___AIfexprExpr___accept_typing
;
5395 fra
.me
.has_broke
= 0;
5396 fra
.me
.REG_size
= 5;
5397 fra
.me
.nitni_local_ref_head
= NULL
;
5398 fra
.me
.REG
[0] = NIT_NULL
;
5399 fra
.me
.REG
[1] = NIT_NULL
;
5400 fra
.me
.REG
[2] = NIT_NULL
;
5401 fra
.me
.REG
[3] = NIT_NULL
;
5402 fra
.me
.REG
[4] = NIT_NULL
;
5405 /* syntax/typing.nit:920 */
5406 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5407 /* syntax/typing.nit:923 */
5408 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5409 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5410 /* syntax/typing.nit:924 */
5411 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5412 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5413 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5414 /* syntax/typing.nit:927 */
5415 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5416 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5417 /* syntax/typing.nit:930 */
5418 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5419 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5420 /* syntax/typing.nit:933 */
5421 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5422 /* syntax/typing.nit:936 */
5423 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5424 /* syntax/typing.nit:937 */
5425 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5426 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5427 /* syntax/typing.nit:940 */
5428 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5429 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5430 /* syntax/typing.nit:943 */
5431 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5432 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5433 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]);
5434 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5435 /* syntax/typing.nit:945 */
5437 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5438 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5439 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5440 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5442 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]);
5443 /* syntax/typing.nit:946 */
5444 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5445 if (UNTAG_Bool(REGB0
)) {
5447 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5448 if (UNTAG_Bool(REGB1
)) {
5449 REGB1
= TAG_Bool(false);
5452 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5456 if (UNTAG_Bool(REGB0
)) {
5459 /* syntax/typing.nit:948 */
5460 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5461 /* syntax/typing.nit:949 */
5462 REGB0
= TAG_Bool(true);
5463 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5465 stack_frame_head
= fra
.me
.prev
;
5468 void syntax___typing___ABoolExpr___after_typing(val_t p0
, val_t p1
){
5469 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5472 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5473 fra
.me
.file
= LOCATE_syntax___typing
;
5475 fra
.me
.meth
= LOCATE_syntax___typing___ABoolExpr___after_typing
;
5476 fra
.me
.has_broke
= 0;
5477 fra
.me
.REG_size
= 2;
5478 fra
.me
.nitni_local_ref_head
= NULL
;
5479 fra
.me
.REG
[0] = NIT_NULL
;
5480 fra
.me
.REG
[1] = NIT_NULL
;
5483 /* syntax/typing.nit:956 */
5484 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5485 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5486 /* syntax/typing.nit:957 */
5487 REGB0
= TAG_Bool(true);
5488 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5489 stack_frame_head
= fra
.me
.prev
;
5492 void syntax___typing___AOrExpr___accept_typing(val_t p0
, val_t p1
){
5493 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5497 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5498 fra
.me
.file
= LOCATE_syntax___typing
;
5500 fra
.me
.meth
= LOCATE_syntax___typing___AOrExpr___accept_typing
;
5501 fra
.me
.has_broke
= 0;
5502 fra
.me
.REG_size
= 5;
5503 fra
.me
.nitni_local_ref_head
= NULL
;
5504 fra
.me
.REG
[0] = NIT_NULL
;
5505 fra
.me
.REG
[1] = NIT_NULL
;
5506 fra
.me
.REG
[2] = NIT_NULL
;
5507 fra
.me
.REG
[3] = NIT_NULL
;
5508 fra
.me
.REG
[4] = NIT_NULL
;
5511 /* syntax/typing.nit:964 */
5512 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5513 /* syntax/typing.nit:965 */
5514 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5515 /* syntax/typing.nit:966 */
5516 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5517 /* syntax/typing.nit:969 */
5518 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5519 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5520 /* syntax/typing.nit:972 */
5521 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5522 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5523 /* syntax/typing.nit:975 */
5524 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5525 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5526 /* syntax/typing.nit:976 */
5527 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5528 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5529 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5530 if (UNTAG_Bool(REGB0
)) {
5532 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5533 if (UNTAG_Bool(REGB1
)) {
5534 REGB1
= TAG_Bool(false);
5537 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5541 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5542 if (UNTAG_Bool(REGB0
)) {
5543 /* syntax/typing.nit:977 */
5544 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5545 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5546 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5548 /* syntax/typing.nit:979 */
5549 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5550 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5552 /* syntax/typing.nit:982 */
5553 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5554 /* syntax/typing.nit:984 */
5555 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5556 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5557 /* syntax/typing.nit:985 */
5558 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5559 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5560 /* syntax/typing.nit:986 */
5561 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5562 /* syntax/typing.nit:987 */
5563 REGB0
= TAG_Bool(true);
5564 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5565 stack_frame_head
= fra
.me
.prev
;
5568 void syntax___typing___AAndExpr___accept_typing(val_t p0
, val_t p1
){
5569 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5573 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5574 fra
.me
.file
= LOCATE_syntax___typing
;
5576 fra
.me
.meth
= LOCATE_syntax___typing___AAndExpr___accept_typing
;
5577 fra
.me
.has_broke
= 0;
5578 fra
.me
.REG_size
= 5;
5579 fra
.me
.nitni_local_ref_head
= NULL
;
5580 fra
.me
.REG
[0] = NIT_NULL
;
5581 fra
.me
.REG
[1] = NIT_NULL
;
5582 fra
.me
.REG
[2] = NIT_NULL
;
5583 fra
.me
.REG
[3] = NIT_NULL
;
5584 fra
.me
.REG
[4] = NIT_NULL
;
5587 /* syntax/typing.nit:994 */
5588 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5589 /* syntax/typing.nit:995 */
5590 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5591 /* syntax/typing.nit:998 */
5592 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5593 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5594 /* syntax/typing.nit:1001 */
5595 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5596 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5597 /* syntax/typing.nit:1004 */
5598 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5599 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5600 /* syntax/typing.nit:1005 */
5601 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5602 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5603 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5604 if (UNTAG_Bool(REGB0
)) {
5606 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5607 if (UNTAG_Bool(REGB1
)) {
5608 REGB1
= TAG_Bool(false);
5611 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5615 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5616 if (UNTAG_Bool(REGB0
)) {
5617 /* syntax/typing.nit:1006 */
5618 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5619 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5620 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5622 /* syntax/typing.nit:1008 */
5623 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5624 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5626 /* syntax/typing.nit:1011 */
5627 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5628 /* syntax/typing.nit:1013 */
5629 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5630 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5631 /* syntax/typing.nit:1014 */
5632 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5633 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5634 /* syntax/typing.nit:1015 */
5635 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5636 /* syntax/typing.nit:1016 */
5637 REGB0
= TAG_Bool(true);
5638 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5639 stack_frame_head
= fra
.me
.prev
;
5642 void syntax___typing___ANotExpr___after_typing(val_t p0
, val_t p1
){
5643 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5646 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5647 fra
.me
.file
= LOCATE_syntax___typing
;
5649 fra
.me
.meth
= LOCATE_syntax___typing___ANotExpr___after_typing
;
5650 fra
.me
.has_broke
= 0;
5651 fra
.me
.REG_size
= 4;
5652 fra
.me
.nitni_local_ref_head
= NULL
;
5653 fra
.me
.REG
[0] = NIT_NULL
;
5654 fra
.me
.REG
[1] = NIT_NULL
;
5655 fra
.me
.REG
[2] = NIT_NULL
;
5656 fra
.me
.REG
[3] = NIT_NULL
;
5659 /* syntax/typing.nit:1023 */
5660 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5661 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5662 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5663 /* syntax/typing.nit:1026 */
5664 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5665 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[3]);
5666 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5667 /* syntax/typing.nit:1027 */
5668 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5669 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[3]);
5670 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5671 /* syntax/typing.nit:1029 */
5672 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5673 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5674 /* syntax/typing.nit:1030 */
5675 REGB0
= TAG_Bool(true);
5676 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5677 stack_frame_head
= fra
.me
.prev
;
5680 void syntax___typing___AOrElseExpr___after_typing(val_t p0
, val_t p1
){
5681 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5685 static val_t once_value_1
; /* Once value */
5686 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5687 fra
.me
.file
= LOCATE_syntax___typing
;
5689 fra
.me
.meth
= LOCATE_syntax___typing___AOrElseExpr___after_typing
;
5690 fra
.me
.has_broke
= 0;
5691 fra
.me
.REG_size
= 7;
5692 fra
.me
.nitni_local_ref_head
= NULL
;
5693 fra
.me
.REG
[0] = NIT_NULL
;
5694 fra
.me
.REG
[1] = NIT_NULL
;
5695 fra
.me
.REG
[2] = NIT_NULL
;
5696 fra
.me
.REG
[3] = NIT_NULL
;
5697 fra
.me
.REG
[4] = NIT_NULL
;
5698 fra
.me
.REG
[5] = NIT_NULL
;
5699 fra
.me
.REG
[6] = NIT_NULL
;
5702 /* syntax/typing.nit:1037 */
5703 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5704 /* syntax/typing.nit:1040 */
5705 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5706 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5707 /* syntax/typing.nit:1041 */
5708 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5709 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5710 /* syntax/typing.nit:1044 */
5711 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5712 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5713 /* syntax/typing.nit:1045 */
5714 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5715 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5716 if (UNTAG_Bool(REGB0
)) {
5717 /* syntax/typing.nit:1046 */
5718 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5719 if (!once_value_1
) {
5720 fra
.me
.REG
[5] = BOX_NativeString("Warning: left operand of a 'or else' is not a nullable type.");
5721 REGB0
= TAG_Int(60);
5722 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5723 once_value_1
= fra
.me
.REG
[5];
5724 register_static_object(&once_value_1
);
5725 } else fra
.me
.REG
[5] = once_value_1
;
5726 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5727 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
5729 /* syntax/typing.nit:1048 */
5730 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5731 fra
.me
.REG
[3] = fra
.me
.REG
[5];
5733 /* syntax/typing.nit:1052 */
5734 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5735 fra
.me
.REG
[5] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5736 /* syntax/typing.nit:1053 */
5737 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5738 if (UNTAG_Bool(REGB0
)) {
5740 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5741 if (UNTAG_Bool(REGB1
)) {
5742 REGB1
= TAG_Bool(false);
5745 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5749 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5750 if (UNTAG_Bool(REGB0
)) {
5751 /* syntax/typing.nit:1054 */
5752 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5753 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5754 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]);
5756 /* syntax/typing.nit:1058 */
5757 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5758 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5759 /* syntax/typing.nit:1059 */
5760 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5761 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5762 /* syntax/typing.nit:1062 */
5763 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5764 /* syntax/typing.nit:1065 */
5766 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5767 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5768 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5769 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]);
5770 /* syntax/typing.nit:1066 */
5771 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5772 if (UNTAG_Bool(REGB0
)) {
5774 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5775 if (UNTAG_Bool(REGB1
)) {
5776 REGB1
= TAG_Bool(false);
5779 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5783 if (UNTAG_Bool(REGB0
)) {
5786 /* syntax/typing.nit:1068 */
5787 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5788 /* syntax/typing.nit:1069 */
5789 REGB0
= TAG_Bool(true);
5790 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5792 stack_frame_head
= fra
.me
.prev
;
5795 void syntax___typing___AIntExpr___after_typing(val_t p0
, val_t p1
){
5796 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5799 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5800 fra
.me
.file
= LOCATE_syntax___typing
;
5802 fra
.me
.meth
= LOCATE_syntax___typing___AIntExpr___after_typing
;
5803 fra
.me
.has_broke
= 0;
5804 fra
.me
.REG_size
= 2;
5805 fra
.me
.nitni_local_ref_head
= NULL
;
5806 fra
.me
.REG
[0] = NIT_NULL
;
5807 fra
.me
.REG
[1] = NIT_NULL
;
5810 /* syntax/typing.nit:1076 */
5811 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5812 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5813 /* syntax/typing.nit:1077 */
5814 REGB0
= TAG_Bool(true);
5815 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5816 stack_frame_head
= fra
.me
.prev
;
5819 void syntax___typing___AFloatExpr___after_typing(val_t p0
, val_t p1
){
5820 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5823 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5824 fra
.me
.file
= LOCATE_syntax___typing
;
5826 fra
.me
.meth
= LOCATE_syntax___typing___AFloatExpr___after_typing
;
5827 fra
.me
.has_broke
= 0;
5828 fra
.me
.REG_size
= 2;
5829 fra
.me
.nitni_local_ref_head
= NULL
;
5830 fra
.me
.REG
[0] = NIT_NULL
;
5831 fra
.me
.REG
[1] = NIT_NULL
;
5834 /* syntax/typing.nit:1084 */
5835 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5836 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5837 /* syntax/typing.nit:1085 */
5838 REGB0
= TAG_Bool(true);
5839 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5840 stack_frame_head
= fra
.me
.prev
;
5843 void syntax___typing___ACharExpr___after_typing(val_t p0
, val_t p1
){
5844 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5847 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5848 fra
.me
.file
= LOCATE_syntax___typing
;
5850 fra
.me
.meth
= LOCATE_syntax___typing___ACharExpr___after_typing
;
5851 fra
.me
.has_broke
= 0;
5852 fra
.me
.REG_size
= 2;
5853 fra
.me
.nitni_local_ref_head
= NULL
;
5854 fra
.me
.REG
[0] = NIT_NULL
;
5855 fra
.me
.REG
[1] = NIT_NULL
;
5858 /* syntax/typing.nit:1092 */
5859 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5860 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5861 /* syntax/typing.nit:1093 */
5862 REGB0
= TAG_Bool(true);
5863 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5864 stack_frame_head
= fra
.me
.prev
;
5867 void syntax___typing___AStringFormExpr___after_typing(val_t p0
, val_t p1
){
5868 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5871 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5872 fra
.me
.file
= LOCATE_syntax___typing
;
5874 fra
.me
.meth
= LOCATE_syntax___typing___AStringFormExpr___after_typing
;
5875 fra
.me
.has_broke
= 0;
5876 fra
.me
.REG_size
= 2;
5877 fra
.me
.nitni_local_ref_head
= NULL
;
5878 fra
.me
.REG
[0] = NIT_NULL
;
5879 fra
.me
.REG
[1] = NIT_NULL
;
5882 /* syntax/typing.nit:1100 */
5883 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5884 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5885 /* syntax/typing.nit:1101 */
5886 REGB0
= TAG_Bool(true);
5887 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5888 stack_frame_head
= fra
.me
.prev
;
5891 val_t
syntax___typing___ASuperstringExpr___atype(val_t p0
){
5892 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5895 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5896 fra
.me
.file
= LOCATE_syntax___typing
;
5898 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___atype
;
5899 fra
.me
.has_broke
= 0;
5900 fra
.me
.REG_size
= 2;
5901 fra
.me
.nitni_local_ref_head
= NULL
;
5902 fra
.me
.REG
[0] = NIT_NULL
;
5903 fra
.me
.REG
[1] = NIT_NULL
;
5905 /* syntax/typing.nit:1106 */
5906 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5907 fra
.me
.REG
[1] = ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[1]);
5908 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5909 if (UNTAG_Bool(REGB0
)) {
5911 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1106);
5915 stack_frame_head
= fra
.me
.prev
;
5916 return fra
.me
.REG
[1];
5918 void syntax___typing___ASuperstringExpr___after_typing(val_t p0
, val_t p1
){
5919 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5922 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5923 fra
.me
.file
= LOCATE_syntax___typing
;
5925 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
5926 fra
.me
.has_broke
= 0;
5927 fra
.me
.REG_size
= 5;
5928 fra
.me
.nitni_local_ref_head
= NULL
;
5929 fra
.me
.REG
[0] = NIT_NULL
;
5930 fra
.me
.REG
[1] = NIT_NULL
;
5931 fra
.me
.REG
[2] = NIT_NULL
;
5932 fra
.me
.REG
[3] = NIT_NULL
;
5933 fra
.me
.REG
[4] = NIT_NULL
;
5936 /* syntax/typing.nit:1110 */
5937 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5938 /* syntax/typing.nit:1111 */
5939 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5940 /* syntax/typing.nit:1112 */
5941 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5942 /* syntax/typing.nit:1113 */
5943 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5944 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
));
5945 /* syntax/typing.nit:1114 */
5946 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5947 /* syntax/typing.nit:1115 */
5948 ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5949 /* syntax/typing.nit:1116 */
5950 REGB0
= TAG_Bool(true);
5951 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5952 stack_frame_head
= fra
.me
.prev
;
5955 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
){
5956 struct {struct stack_frame_t me
;} fra
;
5959 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5960 fra
.me
.file
= LOCATE_syntax___typing
;
5962 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
5963 fra
.me
.has_broke
= 0;
5964 fra
.me
.REG_size
= 1;
5965 fra
.me
.nitni_local_ref_head
= NULL
;
5966 fra
.me
.REG
[0] = NIT_NULL
;
5967 fra
.me
.closure_ctx
= closctx_param
;
5968 fra
.me
.closure_funs
= CREG
;
5970 CREG
[0] = clos_fun0
;
5971 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], closctx
->REG
[2]);
5972 stack_frame_head
= fra
.me
.prev
;
5975 void syntax___typing___ANullExpr___after_typing(val_t p0
, val_t p1
){
5976 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5979 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5980 fra
.me
.file
= LOCATE_syntax___typing
;
5982 fra
.me
.meth
= LOCATE_syntax___typing___ANullExpr___after_typing
;
5983 fra
.me
.has_broke
= 0;
5984 fra
.me
.REG_size
= 2;
5985 fra
.me
.nitni_local_ref_head
= NULL
;
5986 fra
.me
.REG
[0] = NIT_NULL
;
5987 fra
.me
.REG
[1] = NIT_NULL
;
5990 /* syntax/typing.nit:1123 */
5991 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5992 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5993 /* syntax/typing.nit:1124 */
5994 REGB0
= TAG_Bool(true);
5995 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5996 stack_frame_head
= fra
.me
.prev
;
5999 void syntax___typing___AArrayExpr___after_typing(val_t p0
, val_t p1
){
6000 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6004 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6005 fra
.me
.file
= LOCATE_syntax___typing
;
6007 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___after_typing
;
6008 fra
.me
.has_broke
= 0;
6009 fra
.me
.REG_size
= 3;
6010 fra
.me
.nitni_local_ref_head
= NULL
;
6011 fra
.me
.REG
[0] = NIT_NULL
;
6012 fra
.me
.REG
[1] = NIT_NULL
;
6013 fra
.me
.REG
[2] = NIT_NULL
;
6016 /* syntax/typing.nit:1131 */
6017 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6018 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6019 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]);
6020 /* syntax/typing.nit:1132 */
6021 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6022 if (UNTAG_Bool(REGB0
)) {
6024 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6025 if (UNTAG_Bool(REGB1
)) {
6026 REGB1
= TAG_Bool(false);
6029 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6033 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6034 if (UNTAG_Bool(REGB0
)) {
6035 CALL_syntax___typing___AArrayExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
6037 stack_frame_head
= fra
.me
.prev
;
6040 void syntax___typing___AArrayExpr___do_typing(val_t p0
, val_t p1
, val_t p2
){
6041 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6044 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6045 fra
.me
.file
= LOCATE_syntax___typing
;
6047 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___do_typing
;
6048 fra
.me
.has_broke
= 0;
6049 fra
.me
.REG_size
= 3;
6050 fra
.me
.nitni_local_ref_head
= NULL
;
6051 fra
.me
.REG
[0] = NIT_NULL
;
6052 fra
.me
.REG
[1] = NIT_NULL
;
6053 fra
.me
.REG
[2] = NIT_NULL
;
6057 /* syntax/typing.nit:1137 */
6058 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6059 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
6060 /* syntax/typing.nit:1138 */
6061 REGB0
= TAG_Bool(true);
6062 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6063 stack_frame_head
= fra
.me
.prev
;
6066 void syntax___typing___ARangeExpr___after_typing(val_t p0
, val_t p1
){
6067 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
6071 static val_t once_value_2
; /* Once value */
6072 static val_t once_value_3
; /* Once value */
6073 static val_t once_value_4
; /* Once value */
6074 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6075 fra
.me
.file
= LOCATE_syntax___typing
;
6077 fra
.me
.meth
= LOCATE_syntax___typing___ARangeExpr___after_typing
;
6078 fra
.me
.has_broke
= 0;
6079 fra
.me
.REG_size
= 6;
6080 fra
.me
.nitni_local_ref_head
= NULL
;
6081 fra
.me
.REG
[0] = NIT_NULL
;
6082 fra
.me
.REG
[1] = NIT_NULL
;
6083 fra
.me
.REG
[2] = NIT_NULL
;
6084 fra
.me
.REG
[3] = NIT_NULL
;
6085 fra
.me
.REG
[4] = NIT_NULL
;
6086 fra
.me
.REG
[5] = NIT_NULL
;
6089 /* syntax/typing.nit:1145 */
6090 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6091 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6092 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6093 if (UNTAG_Bool(REGB0
)) {
6094 REGB0
= TAG_Bool(true);
6096 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6097 REGB1
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6098 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6101 if (UNTAG_Bool(REGB0
)) {
6104 /* syntax/typing.nit:1146 */
6105 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6106 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6107 /* syntax/typing.nit:1147 */
6108 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6109 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6110 /* syntax/typing.nit:1148 */
6111 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6112 if (UNTAG_Bool(REGB0
)) {
6113 /* syntax/typing.nit:1149 */
6114 fra
.me
.REG
[2] = fra
.me
.REG
[3];
6116 /* syntax/typing.nit:1150 */
6117 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
6118 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6119 if (UNTAG_Bool(REGB0
)) {
6120 /* syntax/typing.nit:1151 */
6122 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6123 if (!once_value_2
) {
6124 fra
.me
.REG
[5] = BOX_NativeString("Type error: ");
6125 REGB0
= TAG_Int(12);
6126 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6127 once_value_2
= fra
.me
.REG
[5];
6128 register_static_object(&once_value_2
);
6129 } else fra
.me
.REG
[5] = once_value_2
;
6130 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6132 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6133 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6134 if (!once_value_3
) {
6135 fra
.me
.REG
[5] = BOX_NativeString(" incompatible with ");
6136 REGB0
= TAG_Int(19);
6137 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6138 once_value_3
= fra
.me
.REG
[5];
6139 register_static_object(&once_value_3
);
6140 } else fra
.me
.REG
[5] = once_value_3
;
6141 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6142 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6143 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6145 if (!once_value_4
) {
6146 fra
.me
.REG
[3] = BOX_NativeString(".");
6148 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6149 once_value_4
= fra
.me
.REG
[3];
6150 register_static_object(&once_value_4
);
6151 } else fra
.me
.REG
[3] = once_value_4
;
6152 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6153 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6154 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6155 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
6156 /* syntax/typing.nit:1152 */
6160 /* syntax/typing.nit:1154 */
6161 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_discrete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6162 /* syntax/typing.nit:1155 */
6163 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6164 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]);
6165 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6166 if (UNTAG_Bool(REGB0
)) {
6167 REGB0
= TAG_Bool(true);
6169 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6170 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]);
6171 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6174 if (UNTAG_Bool(REGB0
)) {
6177 /* syntax/typing.nit:1156 */
6178 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6179 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
6180 /* syntax/typing.nit:1157 */
6181 REGB0
= TAG_Bool(true);
6182 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6184 stack_frame_head
= fra
.me
.prev
;
6187 val_t
syntax___typing___ASuperExpr___init_in_superclass(val_t p0
){
6188 struct {struct stack_frame_t me
;} fra
;
6190 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6191 fra
.me
.file
= LOCATE_syntax___typing
;
6193 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___init_in_superclass
;
6194 fra
.me
.has_broke
= 0;
6195 fra
.me
.REG_size
= 1;
6196 fra
.me
.nitni_local_ref_head
= NULL
;
6197 fra
.me
.REG
[0] = NIT_NULL
;
6199 /* syntax/typing.nit:1162 */
6200 fra
.me
.REG
[0] = ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]);
6201 stack_frame_head
= fra
.me
.prev
;
6202 return fra
.me
.REG
[0];
6204 val_t
syntax___typing___ASuperExpr___compute_raw_arguments(val_t p0
){
6205 struct {struct stack_frame_t me
;} fra
;
6207 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6208 fra
.me
.file
= LOCATE_syntax___typing
;
6210 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments
;
6211 fra
.me
.has_broke
= 0;
6212 fra
.me
.REG_size
= 1;
6213 fra
.me
.nitni_local_ref_head
= NULL
;
6214 fra
.me
.REG
[0] = NIT_NULL
;
6216 /* syntax/typing.nit:1163 */
6217 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6218 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6221 stack_frame_head
= fra
.me
.prev
;
6222 return fra
.me
.REG
[0];
6224 void syntax___typing___ASuperExpr___after_typing(val_t p0
, val_t p1
){
6225 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
6230 static val_t once_value_1
; /* Once value */
6231 static val_t once_value_2
; /* Once value */
6232 static val_t once_value_3
; /* Once value */
6233 static val_t once_value_5
; /* Once value */
6234 static val_t once_value_6
; /* Once value */
6235 static val_t once_value_8
; /* Once value */
6236 static val_t once_value_9
; /* Once value */
6237 static val_t once_value_10
; /* Once value */
6238 static val_t once_value_11
; /* Once value */
6239 static val_t once_value_12
; /* Once value */
6240 static val_t once_value_13
; /* Once value */
6241 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6242 fra
.me
.file
= LOCATE_syntax___typing
;
6244 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___after_typing
;
6245 fra
.me
.has_broke
= 0;
6246 fra
.me
.REG_size
= 10;
6247 fra
.me
.nitni_local_ref_head
= NULL
;
6248 fra
.me
.REG
[0] = NIT_NULL
;
6249 fra
.me
.REG
[1] = NIT_NULL
;
6250 fra
.me
.REG
[2] = NIT_NULL
;
6251 fra
.me
.REG
[3] = NIT_NULL
;
6252 fra
.me
.REG
[4] = NIT_NULL
;
6253 fra
.me
.REG
[5] = NIT_NULL
;
6254 fra
.me
.REG
[6] = NIT_NULL
;
6255 fra
.me
.REG
[7] = NIT_NULL
;
6256 fra
.me
.REG
[8] = NIT_NULL
;
6257 fra
.me
.REG
[9] = NIT_NULL
;
6260 /* syntax/typing.nit:1164 */
6261 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6262 /* syntax/typing.nit:1166 */
6263 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6264 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6265 fra
.me
.REG
[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6266 /* syntax/typing.nit:1167 */
6267 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6268 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6269 if (UNTAG_Bool(REGB0
)) {
6270 /* syntax/typing.nit:1168 */
6271 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6272 REGB0
= TAG_Bool(true);
6273 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
6275 /* syntax/typing.nit:1169 */
6276 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6277 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6278 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6279 if (UNTAG_Bool(REGB0
)) {
6280 /* syntax/typing.nit:1170 */
6281 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6282 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6283 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6284 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6285 /* ../lib/standard/collection/array.nit:266 */
6286 fra
.me
.REG
[4] = fra
.me
.REG
[5];
6287 /* ../lib/standard/collection/array.nit:269 */
6289 /* ../lib/standard/collection/array.nit:270 */
6290 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6291 if (UNTAG_Bool(REGB1
)) {
6293 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6295 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6296 /* ../lib/standard/collection/array.nit:271 */
6297 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6298 /* ../lib/standard/collection/array.nit:272 */
6300 /* ../lib/standard/collection/array.nit:24 */
6301 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6302 if (UNTAG_Bool(REGB1
)) {
6304 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6306 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6307 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6308 if (UNTAG_Bool(REGB2
)) {
6310 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6312 /* ../lib/standard/kernel.nit:232 */
6313 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6314 /* ../lib/standard/collection/array.nit:272 */
6315 if (UNTAG_Bool(REGB1
)) {
6316 /* ../lib/standard/collection/array.nit:273 */
6317 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6318 if (UNTAG_Bool(REGB1
)) {
6319 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6321 /* ../lib/standard/collection/array.nit:718 */
6322 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6323 /* syntax/typing.nit:1172 */
6324 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6325 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6326 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6327 if (UNTAG_Bool(REGB1
)) {
6328 /* syntax/typing.nit:1173 */
6330 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6331 if (!once_value_1
) {
6332 fra
.me
.REG
[9] = BOX_NativeString("Error: ");
6334 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6335 once_value_1
= fra
.me
.REG
[9];
6336 register_static_object(&once_value_1
);
6337 } else fra
.me
.REG
[9] = once_value_1
;
6338 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6339 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6340 fra
.me
.REG
[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6341 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6342 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6343 if (!once_value_2
) {
6344 fra
.me
.REG
[9] = BOX_NativeString("::");
6346 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6347 once_value_2
= fra
.me
.REG
[9];
6348 register_static_object(&once_value_2
);
6349 } else fra
.me
.REG
[9] = once_value_2
;
6350 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6351 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6352 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6354 if (!once_value_3
) {
6355 fra
.me
.REG
[9] = BOX_NativeString(" is not a constructor.");
6356 REGB1
= TAG_Int(22);
6357 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6358 once_value_3
= fra
.me
.REG
[9];
6359 register_static_object(&once_value_3
);
6360 } else fra
.me
.REG
[9] = once_value_3
;
6361 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6362 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6363 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6364 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[8]);
6366 /* syntax/typing.nit:1175 */
6367 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6368 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6369 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6370 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6372 /* ../lib/standard/collection/array.nit:274 */
6374 /* ../lib/standard/kernel.nit:235 */
6375 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6376 /* ../lib/standard/collection/array.nit:274 */
6379 /* ../lib/standard/collection/array.nit:272 */
6384 /* syntax/typing.nit:1178 */
6385 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6386 if (UNTAG_Bool(REGB0
)) {
6387 /* syntax/typing.nit:1179 */
6389 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6390 if (!once_value_5
) {
6391 fra
.me
.REG
[4] = BOX_NativeString("Error: No contructor named ");
6392 REGB0
= TAG_Int(27);
6393 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6394 once_value_5
= fra
.me
.REG
[4];
6395 register_static_object(&once_value_5
);
6396 } else fra
.me
.REG
[4] = once_value_5
;
6397 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6398 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6399 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6400 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6401 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6402 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6403 if (!once_value_6
) {
6404 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses.");
6405 REGB0
= TAG_Int(17);
6406 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6407 once_value_6
= fra
.me
.REG
[4];
6408 register_static_object(&once_value_6
);
6409 } else fra
.me
.REG
[4] = once_value_6
;
6410 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6411 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6412 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6413 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6414 /* syntax/typing.nit:1180 */
6417 /* ../lib/standard/collection/array.nit:24 */
6418 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6419 if (UNTAG_Bool(REGB0
)) {
6421 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6423 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6424 /* syntax/typing.nit:1181 */
6426 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6427 if (UNTAG_Bool(REGB2
)) {
6429 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6431 /* ../lib/standard/kernel.nit:234 */
6432 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
6433 /* syntax/typing.nit:1181 */
6434 if (UNTAG_Bool(REGB1
)) {
6435 /* syntax/typing.nit:1182 */
6437 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6438 if (!once_value_8
) {
6439 fra
.me
.REG
[4] = BOX_NativeString("Error: Conflicting contructors named ");
6440 REGB1
= TAG_Int(37);
6441 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6442 once_value_8
= fra
.me
.REG
[4];
6443 register_static_object(&once_value_8
);
6444 } else fra
.me
.REG
[4] = once_value_8
;
6445 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6446 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6447 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6448 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6449 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6451 if (!once_value_9
) {
6452 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses: ");
6453 REGB1
= TAG_Int(18);
6454 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6455 once_value_9
= fra
.me
.REG
[4];
6456 register_static_object(&once_value_9
);
6457 } else fra
.me
.REG
[4] = once_value_9
;
6458 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6459 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6460 if (!once_value_10
) {
6461 fra
.me
.REG
[4] = BOX_NativeString(", ");
6463 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6464 once_value_10
= fra
.me
.REG
[4];
6465 register_static_object(&once_value_10
);
6466 } else fra
.me
.REG
[4] = once_value_10
;
6467 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6468 fra
.me
.REG
[4] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6469 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6470 if (!once_value_11
) {
6471 fra
.me
.REG
[4] = BOX_NativeString(".");
6473 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6474 once_value_11
= fra
.me
.REG
[4];
6475 register_static_object(&once_value_11
);
6476 } else fra
.me
.REG
[4] = once_value_11
;
6477 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6478 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6479 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6480 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6481 /* syntax/typing.nit:1183 */
6485 /* syntax/typing.nit:1185 */
6486 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6487 /* syntax/typing.nit:1186 */
6488 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6489 if (UNTAG_Bool(REGB1
)) {
6491 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1186);
6493 /* syntax/typing.nit:1187 */
6494 ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6495 /* syntax/typing.nit:1188 */
6496 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[5]);
6497 /* syntax/typing.nit:1189 */
6498 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6499 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6500 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6502 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
6503 if (UNTAG_Bool(REGB2
)) {
6505 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6507 /* ../lib/standard/kernel.nit:234 */
6508 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB0
));
6509 /* syntax/typing.nit:1189 */
6510 if (UNTAG_Bool(REGB0
)) {
6511 /* syntax/typing.nit:1190 */
6512 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6513 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6514 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*/;
6515 if (UNTAG_Bool(REGB0
)) {
6517 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1190);
6519 REGB0
= TAG_Bool(true);
6520 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
);
6521 /* syntax/typing.nit:1191 */
6522 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6523 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6524 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]);
6527 /* syntax/typing.nit:1194 */
6529 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6530 if (!once_value_12
) {
6531 fra
.me
.REG
[5] = BOX_NativeString("Error: No super method to call for ");
6532 REGB0
= TAG_Int(35);
6533 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6534 once_value_12
= fra
.me
.REG
[5];
6535 register_static_object(&once_value_12
);
6536 } else fra
.me
.REG
[5] = once_value_12
;
6537 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6538 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6539 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6540 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6541 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6542 if (!once_value_13
) {
6543 fra
.me
.REG
[5] = BOX_NativeString(".");
6545 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6546 once_value_13
= fra
.me
.REG
[5];
6547 register_static_object(&once_value_13
);
6548 } else fra
.me
.REG
[5] = once_value_13
;
6549 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6550 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6551 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6552 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
6553 /* syntax/typing.nit:1195 */
6557 /* syntax/typing.nit:1198 */
6558 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6559 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6560 fra
.me
.REG
[5] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6561 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*/;
6562 if (UNTAG_Bool(REGB0
)) {
6564 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1198);
6566 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6567 if (UNTAG_Bool(REGB0
)) {
6568 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1198);
6570 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6571 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6572 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6573 if (UNTAG_Bool(REGB0
)) {
6575 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6576 if (UNTAG_Bool(REGB1
)) {
6577 REGB1
= TAG_Bool(false);
6580 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6584 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6585 if (UNTAG_Bool(REGB0
)) {
6586 /* syntax/typing.nit:1199 */
6587 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___init();
6588 /* syntax/typing.nit:1200 */
6589 fra
.me
.REG
[4] = NIT_NULL
;
6590 /* ../lib/standard/collection/array.nit:269 */
6592 /* ../lib/standard/collection/array.nit:270 */
6593 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6594 if (UNTAG_Bool(REGB1
)) {
6596 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6598 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6599 /* ../lib/standard/collection/array.nit:271 */
6600 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
6601 /* ../lib/standard/collection/array.nit:272 */
6603 /* ../lib/standard/collection/array.nit:24 */
6604 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6605 if (UNTAG_Bool(REGB1
)) {
6607 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6609 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6610 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6611 if (UNTAG_Bool(REGB2
)) {
6613 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6615 /* ../lib/standard/kernel.nit:232 */
6616 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6617 /* ../lib/standard/collection/array.nit:272 */
6618 if (UNTAG_Bool(REGB1
)) {
6619 /* ../lib/standard/collection/array.nit:273 */
6620 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6621 if (UNTAG_Bool(REGB1
)) {
6622 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6624 /* ../lib/standard/collection/array.nit:718 */
6625 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6626 /* syntax/typing.nit:1202 */
6627 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6628 if (UNTAG_Bool(REGB1
)) {
6630 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1202);
6632 /* syntax/typing.nit:1203 */
6633 fra
.me
.REG
[8] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6634 fra
.me
.REG
[8] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6635 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*/;
6636 if (UNTAG_Bool(REGB1
)) {
6638 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1203);
6640 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6641 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6642 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6643 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6644 if (UNTAG_Bool(REGB1
)) {
6645 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1203);
6647 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6648 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6649 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6650 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6651 if (UNTAG_Bool(REGB1
)) {
6652 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1203);
6654 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6655 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6656 /* syntax/typing.nit:1204 */
6657 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8]);
6658 /* syntax/typing.nit:1205 */
6659 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6660 if (UNTAG_Bool(REGB1
)) {
6662 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6663 if (UNTAG_Bool(REGB2
)) {
6664 REGB2
= TAG_Bool(false);
6667 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6671 if (UNTAG_Bool(REGB1
)) {
6672 REGB1
= TAG_Bool(true);
6674 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6675 if (UNTAG_Bool(REGB2
)) {
6676 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1205);
6678 REGB2
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[8]);
6681 if (UNTAG_Bool(REGB1
)) {
6682 /* syntax/typing.nit:1206 */
6683 fra
.me
.REG
[4] = fra
.me
.REG
[8];
6685 /* ../lib/standard/collection/array.nit:274 */
6687 /* ../lib/standard/kernel.nit:235 */
6688 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6689 /* ../lib/standard/collection/array.nit:274 */
6692 /* ../lib/standard/collection/array.nit:272 */
6697 /* ../lib/standard/collection/array.nit:269 */
6699 /* ../lib/standard/collection/array.nit:270 */
6700 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6701 if (UNTAG_Bool(REGB1
)) {
6703 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6705 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6706 /* ../lib/standard/collection/array.nit:271 */
6707 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
6708 /* ../lib/standard/collection/array.nit:272 */
6710 /* ../lib/standard/collection/array.nit:24 */
6711 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6712 if (UNTAG_Bool(REGB1
)) {
6714 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6716 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6717 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6718 if (UNTAG_Bool(REGB2
)) {
6720 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6722 /* ../lib/standard/kernel.nit:232 */
6723 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6724 /* ../lib/standard/collection/array.nit:272 */
6725 if (UNTAG_Bool(REGB1
)) {
6726 /* ../lib/standard/collection/array.nit:273 */
6727 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6728 if (UNTAG_Bool(REGB1
)) {
6729 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6731 /* ../lib/standard/collection/array.nit:718 */
6732 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6733 /* syntax/typing.nit:1210 */
6734 REGB1
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
6735 if (UNTAG_Bool(REGB1
)) {
6737 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1210);
6739 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]);
6740 /* ../lib/standard/collection/array.nit:274 */
6742 /* ../lib/standard/kernel.nit:235 */
6743 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6744 /* ../lib/standard/collection/array.nit:274 */
6747 /* ../lib/standard/collection/array.nit:272 */
6752 /* syntax/typing.nit:1212 */
6753 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
6755 /* syntax/typing.nit:1214 */
6756 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6757 /* syntax/typing.nit:1215 */
6758 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6759 if (UNTAG_Bool(REGB0
)) {
6761 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1215);
6763 /* syntax/typing.nit:1216 */
6764 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
6765 /* syntax/typing.nit:1217 */
6766 REGB0
= TAG_Bool(true);
6767 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
6769 stack_frame_head
= fra
.me
.prev
;
6772 val_t
syntax___typing___AExternCall___target_class_name(val_t p0
){
6773 struct {struct stack_frame_t me
;} fra
;
6775 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6776 fra
.me
.file
= LOCATE_syntax___typing
;
6778 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_class_name
;
6779 fra
.me
.has_broke
= 0;
6780 fra
.me
.REG_size
= 1;
6781 fra
.me
.nitni_local_ref_head
= NULL
;
6782 fra
.me
.REG
[0] = NIT_NULL
;
6784 /* syntax/typing.nit:1222 */
6785 fra
.me
.REG
[0] = NIT_NULL
;
6788 stack_frame_head
= fra
.me
.prev
;
6789 return fra
.me
.REG
[0];
6791 val_t
syntax___typing___AExternCall___target_method_name(val_t p0
){
6792 struct {struct stack_frame_t me
;} fra
;
6794 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6795 fra
.me
.file
= LOCATE_syntax___typing
;
6797 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_method_name
;
6798 fra
.me
.has_broke
= 0;
6799 fra
.me
.REG_size
= 0;
6800 fra
.me
.nitni_local_ref_head
= NULL
;
6801 /* syntax/typing.nit:1223 */
6802 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1223);
6803 stack_frame_head
= fra
.me
.prev
;
6806 void syntax___typing___AExternCall___after_typing(val_t p0
, val_t p1
){
6807 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
6811 static val_t once_value_1
; /* Once value */
6812 static val_t once_value_2
; /* Once value */
6813 static val_t once_value_4
; /* Once value */
6814 static val_t once_value_5
; /* Once value */
6815 static val_t once_value_6
; /* Once value */
6816 static val_t once_value_7
; /* Once value */
6817 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6818 fra
.me
.file
= LOCATE_syntax___typing
;
6820 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___after_typing
;
6821 fra
.me
.has_broke
= 0;
6822 fra
.me
.REG_size
= 8;
6823 fra
.me
.nitni_local_ref_head
= NULL
;
6824 fra
.me
.REG
[0] = NIT_NULL
;
6825 fra
.me
.REG
[1] = NIT_NULL
;
6826 fra
.me
.REG
[2] = NIT_NULL
;
6827 fra
.me
.REG
[3] = NIT_NULL
;
6828 fra
.me
.REG
[4] = NIT_NULL
;
6829 fra
.me
.REG
[5] = NIT_NULL
;
6830 fra
.me
.REG
[6] = NIT_NULL
;
6831 fra
.me
.REG
[7] = NIT_NULL
;
6834 /* syntax/typing.nit:1225 */
6835 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6836 /* syntax/typing.nit:1227 */
6837 fra
.me
.REG
[3] = CALL_syntax___typing___AExternCall___target_class_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6838 /* syntax/typing.nit:1228 */
6839 fra
.me
.REG
[4] = CALL_syntax___typing___AExternCall___target_method_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6840 /* syntax/typing.nit:1235 */
6841 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6842 if (UNTAG_Bool(REGB0
)) {
6844 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6845 if (UNTAG_Bool(REGB1
)) {
6846 REGB1
= TAG_Bool(false);
6849 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6853 if (UNTAG_Bool(REGB0
)) {
6854 /* syntax/typing.nit:1236 */
6855 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6856 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6858 /* syntax/typing.nit:1238 */
6859 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6860 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6861 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6862 if (UNTAG_Bool(REGB0
)) {
6863 /* syntax/typing.nit:1239 */
6864 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6865 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6866 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6867 /* syntax/typing.nit:1240 */
6868 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6869 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6870 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
6871 fra
.me
.REG
[5] = fra
.me
.REG
[6];
6873 /* syntax/typing.nit:1242 */
6875 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6876 if (!once_value_1
) {
6877 fra
.me
.REG
[7] = BOX_NativeString("Error: class ");
6878 REGB0
= TAG_Int(13);
6879 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6880 once_value_1
= fra
.me
.REG
[7];
6881 register_static_object(&once_value_1
);
6882 } else fra
.me
.REG
[7] = once_value_1
;
6883 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6884 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
6885 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6886 if (UNTAG_Bool(REGB0
)) {
6887 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1242);
6889 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6890 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6891 if (!once_value_2
) {
6892 fra
.me
.REG
[3] = BOX_NativeString(", not found.");
6893 REGB0
= TAG_Int(12);
6894 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6895 once_value_2
= fra
.me
.REG
[3];
6896 register_static_object(&once_value_2
);
6897 } else fra
.me
.REG
[3] = once_value_2
;
6898 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6899 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6900 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6901 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6902 /* syntax/typing.nit:1243 */
6906 /* syntax/typing.nit:1247 */
6907 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
6908 if (UNTAG_Bool(REGB0
)) {
6909 /* syntax/typing.nit:1248 */
6910 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
6911 /* syntax/typing.nit:1250 */
6912 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6913 /* syntax/typing.nit:1252 */
6914 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6915 if (UNTAG_Bool(REGB0
)) {
6917 /* syntax/typing.nit:1255 */
6919 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6920 if (!once_value_4
) {
6921 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
6922 REGB0
= TAG_Int(16);
6923 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6924 once_value_4
= fra
.me
.REG
[7];
6925 register_static_object(&once_value_4
);
6926 } else fra
.me
.REG
[7] = once_value_4
;
6927 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6928 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6929 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6930 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6931 if (!once_value_5
) {
6932 fra
.me
.REG
[7] = BOX_NativeString(" is not a method.");
6933 REGB0
= TAG_Int(17);
6934 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6935 once_value_5
= fra
.me
.REG
[7];
6936 register_static_object(&once_value_5
);
6937 } else fra
.me
.REG
[7] = once_value_5
;
6938 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6939 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6940 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6941 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6942 /* syntax/typing.nit:1256 */
6946 /* syntax/typing.nit:1259 */
6948 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6949 if (!once_value_6
) {
6950 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
6951 REGB0
= TAG_Int(16);
6952 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6953 once_value_6
= fra
.me
.REG
[7];
6954 register_static_object(&once_value_6
);
6955 } else fra
.me
.REG
[7] = once_value_6
;
6956 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6957 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6958 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6960 if (!once_value_7
) {
6961 fra
.me
.REG
[4] = BOX_NativeString(" not found in target class.");
6962 REGB0
= TAG_Int(27);
6963 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6964 once_value_7
= fra
.me
.REG
[4];
6965 register_static_object(&once_value_7
);
6966 } else fra
.me
.REG
[4] = once_value_7
;
6967 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6969 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6970 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6971 /* syntax/typing.nit:1260 */
6974 /* syntax/typing.nit:1263 */
6975 fra
.me
.REG
[6] = NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6976 /* syntax/typing.nit:1264 */
6977 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6978 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6979 if (UNTAG_Bool(REGB0
)) {
6981 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1264);
6983 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6984 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6986 stack_frame_head
= fra
.me
.prev
;
6989 val_t
syntax___typing___ALocalPropExternCall___target_class_name(val_t p0
){
6990 struct {struct stack_frame_t me
;} fra
;
6992 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6993 fra
.me
.file
= LOCATE_syntax___typing
;
6995 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_class_name
;
6996 fra
.me
.has_broke
= 0;
6997 fra
.me
.REG_size
= 1;
6998 fra
.me
.nitni_local_ref_head
= NULL
;
6999 fra
.me
.REG
[0] = NIT_NULL
;
7001 /* syntax/typing.nit:1269 */
7002 fra
.me
.REG
[0] = NIT_NULL
;
7005 stack_frame_head
= fra
.me
.prev
;
7006 return fra
.me
.REG
[0];
7008 val_t
syntax___typing___ALocalPropExternCall___target_method_name(val_t p0
){
7009 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7012 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7013 fra
.me
.file
= LOCATE_syntax___typing
;
7015 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_method_name
;
7016 fra
.me
.has_broke
= 0;
7017 fra
.me
.REG_size
= 2;
7018 fra
.me
.nitni_local_ref_head
= NULL
;
7019 fra
.me
.REG
[0] = NIT_NULL
;
7020 fra
.me
.REG
[1] = NIT_NULL
;
7022 /* syntax/typing.nit:1270 */
7023 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7024 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ALocalPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7025 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7026 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*/;
7027 if (UNTAG_Bool(REGB0
)) {
7029 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1270);
7033 stack_frame_head
= fra
.me
.prev
;
7034 return fra
.me
.REG
[1];
7036 void syntax___typing___ASuperExternCall___after_typing(val_t p0
, val_t p1
){
7037 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7040 static val_t once_value_1
; /* Once value */
7041 static val_t once_value_2
; /* Once value */
7042 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7043 fra
.me
.file
= LOCATE_syntax___typing
;
7045 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExternCall___after_typing
;
7046 fra
.me
.has_broke
= 0;
7047 fra
.me
.REG_size
= 4;
7048 fra
.me
.nitni_local_ref_head
= NULL
;
7049 fra
.me
.REG
[0] = NIT_NULL
;
7050 fra
.me
.REG
[1] = NIT_NULL
;
7051 fra
.me
.REG
[2] = NIT_NULL
;
7052 fra
.me
.REG
[3] = NIT_NULL
;
7055 /* syntax/typing.nit:1276 */
7056 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7057 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7058 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7059 /* syntax/typing.nit:1277 */
7060 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7061 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7062 if (UNTAG_Bool(REGB0
)) {
7063 /* syntax/typing.nit:1278 */
7064 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7065 REGB0
= TAG_Bool(true);
7066 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
7068 /* syntax/typing.nit:1280 */
7070 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7071 if (!once_value_1
) {
7072 fra
.me
.REG
[3] = BOX_NativeString("Error: No super method to call for ");
7073 REGB0
= TAG_Int(35);
7074 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7075 once_value_1
= fra
.me
.REG
[3];
7076 register_static_object(&once_value_1
);
7077 } else fra
.me
.REG
[3] = once_value_1
;
7078 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7079 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7080 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7081 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7082 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7083 if (!once_value_2
) {
7084 fra
.me
.REG
[3] = BOX_NativeString(".");
7086 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7087 once_value_2
= fra
.me
.REG
[3];
7088 register_static_object(&once_value_2
);
7089 } else fra
.me
.REG
[3] = once_value_2
;
7090 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7091 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7092 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7093 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
7094 /* syntax/typing.nit:1281 */
7098 stack_frame_head
= fra
.me
.prev
;
7101 val_t
syntax___typing___AFullPropExternCall___target_class_name(val_t p0
){
7102 struct {struct stack_frame_t me
;} fra
;
7104 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7105 fra
.me
.file
= LOCATE_syntax___typing
;
7107 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_class_name
;
7108 fra
.me
.has_broke
= 0;
7109 fra
.me
.REG_size
= 1;
7110 fra
.me
.nitni_local_ref_head
= NULL
;
7111 fra
.me
.REG
[0] = NIT_NULL
;
7113 /* syntax/typing.nit:1287 */
7114 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AFullPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7115 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7118 stack_frame_head
= fra
.me
.prev
;
7119 return fra
.me
.REG
[0];
7121 val_t
syntax___typing___AFullPropExternCall___target_method_name(val_t p0
){
7122 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7125 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7126 fra
.me
.file
= LOCATE_syntax___typing
;
7128 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_method_name
;
7129 fra
.me
.has_broke
= 0;
7130 fra
.me
.REG_size
= 2;
7131 fra
.me
.nitni_local_ref_head
= NULL
;
7132 fra
.me
.REG
[0] = NIT_NULL
;
7133 fra
.me
.REG
[1] = NIT_NULL
;
7135 /* syntax/typing.nit:1288 */
7136 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7137 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AFullPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7138 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7139 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*/;
7140 if (UNTAG_Bool(REGB0
)) {
7142 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1288);
7146 stack_frame_head
= fra
.me
.prev
;
7147 return fra
.me
.REG
[1];
7149 val_t
syntax___typing___AInitPropExternCall___target_class_name(val_t p0
){
7150 struct {struct stack_frame_t me
;} fra
;
7152 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7153 fra
.me
.file
= LOCATE_syntax___typing
;
7155 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_class_name
;
7156 fra
.me
.has_broke
= 0;
7157 fra
.me
.REG_size
= 1;
7158 fra
.me
.nitni_local_ref_head
= NULL
;
7159 fra
.me
.REG
[0] = NIT_NULL
;
7161 /* syntax/typing.nit:1292 */
7162 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7163 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7166 stack_frame_head
= fra
.me
.prev
;
7167 return fra
.me
.REG
[0];
7169 val_t
syntax___typing___AInitPropExternCall___target_method_name(val_t p0
){
7170 struct {struct stack_frame_t me
;} fra
;
7173 static val_t once_value_1
; /* Once value */
7174 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7175 fra
.me
.file
= LOCATE_syntax___typing
;
7177 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_method_name
;
7178 fra
.me
.has_broke
= 0;
7179 fra
.me
.REG_size
= 1;
7180 fra
.me
.nitni_local_ref_head
= NULL
;
7181 fra
.me
.REG
[0] = NIT_NULL
;
7183 /* syntax/typing.nit:1293 */
7184 if (!once_value_1
) {
7185 fra
.me
.REG
[0] = BOX_NativeString("init");
7187 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
7188 once_value_1
= fra
.me
.REG
[0];
7189 register_static_object(&once_value_1
);
7190 } else fra
.me
.REG
[0] = once_value_1
;
7191 fra
.me
.REG
[0] = fra
.me
.REG
[0];
7192 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7195 stack_frame_head
= fra
.me
.prev
;
7196 return fra
.me
.REG
[0];
7198 val_t
syntax___typing___ACastExternCall___from_type(val_t p0
){
7199 struct {struct stack_frame_t me
;} fra
;
7201 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7202 fra
.me
.file
= LOCATE_syntax___typing
;
7204 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___from_type
;
7205 fra
.me
.has_broke
= 0;
7206 fra
.me
.REG_size
= 0;
7207 fra
.me
.nitni_local_ref_head
= NULL
;
7208 /* syntax/typing.nit:1297 */
7209 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1297);
7210 stack_frame_head
= fra
.me
.prev
;
7213 val_t
syntax___typing___ACastExternCall___to_type(val_t p0
){
7214 struct {struct stack_frame_t me
;} fra
;
7216 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7217 fra
.me
.file
= LOCATE_syntax___typing
;
7219 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___to_type
;
7220 fra
.me
.has_broke
= 0;
7221 fra
.me
.REG_size
= 0;
7222 fra
.me
.nitni_local_ref_head
= NULL
;
7223 /* syntax/typing.nit:1298 */
7224 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1298);
7225 stack_frame_head
= fra
.me
.prev
;
7228 void syntax___typing___ACastExternCall___after_typing(val_t p0
, val_t p1
){
7229 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7233 static val_t once_value_1
; /* Once value */
7234 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7235 fra
.me
.file
= LOCATE_syntax___typing
;
7237 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___after_typing
;
7238 fra
.me
.has_broke
= 0;
7239 fra
.me
.REG_size
= 4;
7240 fra
.me
.nitni_local_ref_head
= NULL
;
7241 fra
.me
.REG
[0] = NIT_NULL
;
7242 fra
.me
.REG
[1] = NIT_NULL
;
7243 fra
.me
.REG
[2] = NIT_NULL
;
7244 fra
.me
.REG
[3] = NIT_NULL
;
7247 /* syntax/typing.nit:1302 */
7248 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7249 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7250 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
7251 if (UNTAG_Bool(REGB0
)) {
7253 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7256 if (UNTAG_Bool(REGB0
)) {
7257 /* syntax/typing.nit:1304 */
7258 if (!once_value_1
) {
7259 fra
.me
.REG
[3] = BOX_NativeString("Attepting to cast from and to the same type.");
7260 REGB0
= TAG_Int(44);
7261 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7262 once_value_1
= fra
.me
.REG
[3];
7263 register_static_object(&once_value_1
);
7264 } else fra
.me
.REG
[3] = once_value_1
;
7265 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7266 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
7268 /* syntax/typing.nit:1307 */
7269 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7270 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7271 fra
.me
.REG
[2] = NEW_MMImportedCast_metamodel___static_type___MMImportedCast___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
7272 /* syntax/typing.nit:1308 */
7273 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7274 /* syntax/typing.nit:1309 */
7275 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
7276 if (UNTAG_Bool(REGB0
)) {
7278 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1309);
7280 /* syntax/typing.nit:1310 */
7281 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7283 stack_frame_head
= fra
.me
.prev
;
7286 val_t
syntax___typing___ACastAsExternCall___from_type(val_t p0
){
7287 struct {struct stack_frame_t me
;} fra
;
7289 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7290 fra
.me
.file
= LOCATE_syntax___typing
;
7292 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___from_type
;
7293 fra
.me
.has_broke
= 0;
7294 fra
.me
.REG_size
= 1;
7295 fra
.me
.nitni_local_ref_head
= NULL
;
7296 fra
.me
.REG
[0] = NIT_NULL
;
7298 /* syntax/typing.nit:1315 */
7299 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7300 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7303 stack_frame_head
= fra
.me
.prev
;
7304 return fra
.me
.REG
[0];
7306 val_t
syntax___typing___ACastAsExternCall___to_type(val_t p0
){
7307 struct {struct stack_frame_t me
;} fra
;
7309 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7310 fra
.me
.file
= LOCATE_syntax___typing
;
7312 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___to_type
;
7313 fra
.me
.has_broke
= 0;
7314 fra
.me
.REG_size
= 1;
7315 fra
.me
.nitni_local_ref_head
= NULL
;
7316 fra
.me
.REG
[0] = NIT_NULL
;
7318 /* syntax/typing.nit:1316 */
7319 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7320 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7323 stack_frame_head
= fra
.me
.prev
;
7324 return fra
.me
.REG
[0];
7326 val_t
syntax___typing___AAsNullableExternCall___from_type(val_t p0
){
7327 struct {struct stack_frame_t me
;} fra
;
7329 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7330 fra
.me
.file
= LOCATE_syntax___typing
;
7332 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___from_type
;
7333 fra
.me
.has_broke
= 0;
7334 fra
.me
.REG_size
= 1;
7335 fra
.me
.nitni_local_ref_head
= NULL
;
7336 fra
.me
.REG
[0] = NIT_NULL
;
7338 /* syntax/typing.nit:1320 */
7339 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7340 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7343 stack_frame_head
= fra
.me
.prev
;
7344 return fra
.me
.REG
[0];
7346 val_t
syntax___typing___AAsNullableExternCall___to_type(val_t p0
){
7347 struct {struct stack_frame_t me
;} fra
;
7349 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7350 fra
.me
.file
= LOCATE_syntax___typing
;
7352 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___to_type
;
7353 fra
.me
.has_broke
= 0;
7354 fra
.me
.REG_size
= 1;
7355 fra
.me
.nitni_local_ref_head
= NULL
;
7356 fra
.me
.REG
[0] = NIT_NULL
;
7358 /* syntax/typing.nit:1321 */
7359 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7360 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7361 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7364 stack_frame_head
= fra
.me
.prev
;
7365 return fra
.me
.REG
[0];
7367 val_t
syntax___typing___AAsNotNullableExternCall___from_type(val_t p0
){
7368 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7371 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7372 fra
.me
.file
= LOCATE_syntax___typing
;
7374 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___from_type
;
7375 fra
.me
.has_broke
= 0;
7376 fra
.me
.REG_size
= 2;
7377 fra
.me
.nitni_local_ref_head
= NULL
;
7378 fra
.me
.REG
[0] = NIT_NULL
;
7379 fra
.me
.REG
[1] = NIT_NULL
;
7381 /* syntax/typing.nit:1327 */
7382 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7383 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7384 /* syntax/typing.nit:1328 */
7385 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7386 if (UNTAG_Bool(REGB0
)) {
7387 /* syntax/typing.nit:1330 */
7388 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7391 /* syntax/typing.nit:1332 */
7392 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7393 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7397 stack_frame_head
= fra
.me
.prev
;
7398 return fra
.me
.REG
[1];
7400 val_t
syntax___typing___AAsNotNullableExternCall___to_type(val_t p0
){
7401 struct {struct stack_frame_t me
;} fra
;
7403 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7404 fra
.me
.file
= LOCATE_syntax___typing
;
7406 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___to_type
;
7407 fra
.me
.has_broke
= 0;
7408 fra
.me
.REG_size
= 1;
7409 fra
.me
.nitni_local_ref_head
= NULL
;
7410 fra
.me
.REG
[0] = NIT_NULL
;
7412 /* syntax/typing.nit:1335 */
7413 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7414 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7415 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7418 stack_frame_head
= fra
.me
.prev
;
7419 return fra
.me
.REG
[0];
7421 val_t
syntax___typing___AAttrFormExpr___prop(val_t p0
){
7422 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7425 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7426 fra
.me
.file
= LOCATE_syntax___typing
;
7428 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___prop
;
7429 fra
.me
.has_broke
= 0;
7430 fra
.me
.REG_size
= 2;
7431 fra
.me
.nitni_local_ref_head
= NULL
;
7432 fra
.me
.REG
[0] = NIT_NULL
;
7433 fra
.me
.REG
[1] = NIT_NULL
;
7435 /* syntax/typing.nit:1339 */
7436 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7437 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[1]);
7438 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7439 if (UNTAG_Bool(REGB0
)) {
7441 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1339);
7445 stack_frame_head
= fra
.me
.prev
;
7446 return fra
.me
.REG
[1];
7448 val_t
syntax___typing___AAttrFormExpr___attr_type(val_t p0
){
7449 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7452 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7453 fra
.me
.file
= LOCATE_syntax___typing
;
7455 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___attr_type
;
7456 fra
.me
.has_broke
= 0;
7457 fra
.me
.REG_size
= 2;
7458 fra
.me
.nitni_local_ref_head
= NULL
;
7459 fra
.me
.REG
[0] = NIT_NULL
;
7460 fra
.me
.REG
[1] = NIT_NULL
;
7462 /* syntax/typing.nit:1342 */
7463 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7464 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[1]);
7465 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7466 if (UNTAG_Bool(REGB0
)) {
7468 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1342);
7472 stack_frame_head
= fra
.me
.prev
;
7473 return fra
.me
.REG
[1];
7475 void syntax___typing___AAttrFormExpr___do_typing(val_t p0
, val_t p1
){
7476 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7481 static val_t once_value_2
; /* Once value */
7482 static val_t once_value_3
; /* Once value */
7483 static val_t once_value_4
; /* Once value */
7484 static val_t once_value_5
; /* Once value */
7485 static val_t once_value_6
; /* Once value */
7486 static val_t once_value_7
; /* Once value */
7487 static val_t once_value_8
; /* Once value */
7488 static val_t once_value_9
; /* Once value */
7489 static val_t once_value_10
; /* Once value */
7490 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7491 fra
.me
.file
= LOCATE_syntax___typing
;
7493 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___do_typing
;
7494 fra
.me
.has_broke
= 0;
7495 fra
.me
.REG_size
= 7;
7496 fra
.me
.nitni_local_ref_head
= NULL
;
7497 fra
.me
.REG
[0] = NIT_NULL
;
7498 fra
.me
.REG
[1] = NIT_NULL
;
7499 fra
.me
.REG
[2] = NIT_NULL
;
7500 fra
.me
.REG
[3] = NIT_NULL
;
7501 fra
.me
.REG
[4] = NIT_NULL
;
7502 fra
.me
.REG
[5] = NIT_NULL
;
7503 fra
.me
.REG
[6] = NIT_NULL
;
7506 /* syntax/typing.nit:1348 */
7507 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7508 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7509 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7510 if (UNTAG_Bool(REGB0
)) {
7513 /* syntax/typing.nit:1349 */
7514 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7515 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7516 /* syntax/typing.nit:1350 */
7517 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7518 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7519 /* syntax/typing.nit:1351 */
7520 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
7521 if (UNTAG_Bool(REGB0
)) {
7522 /* syntax/typing.nit:1352 */
7524 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7525 if (!once_value_2
) {
7526 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute '");
7527 REGB0
= TAG_Int(18);
7528 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7529 once_value_2
= fra
.me
.REG
[5];
7530 register_static_object(&once_value_2
);
7531 } else fra
.me
.REG
[5] = once_value_2
;
7532 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7534 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7535 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7536 if (!once_value_3
) {
7537 fra
.me
.REG
[5] = BOX_NativeString("' access on 'null'.");
7538 REGB0
= TAG_Int(19);
7539 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7540 once_value_3
= fra
.me
.REG
[5];
7541 register_static_object(&once_value_3
);
7542 } else fra
.me
.REG
[5] = once_value_3
;
7543 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7544 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7545 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7546 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7547 /* syntax/typing.nit:1353 */
7550 /* syntax/typing.nit:1355 */
7551 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7552 /* syntax/typing.nit:1356 */
7553 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7554 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7555 if (UNTAG_Bool(REGB0
)) {
7556 /* syntax/typing.nit:1357 */
7558 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7559 if (!once_value_4
) {
7560 fra
.me
.REG
[6] = BOX_NativeString("Error: Attribute ");
7561 REGB0
= TAG_Int(17);
7562 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7563 once_value_4
= fra
.me
.REG
[6];
7564 register_static_object(&once_value_4
);
7565 } else fra
.me
.REG
[6] = once_value_4
;
7566 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7567 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7568 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7569 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7570 if (!once_value_5
) {
7571 fra
.me
.REG
[6] = BOX_NativeString(" doesn't exists in ");
7572 REGB0
= TAG_Int(19);
7573 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7574 once_value_5
= fra
.me
.REG
[6];
7575 register_static_object(&once_value_5
);
7576 } else fra
.me
.REG
[6] = once_value_5
;
7577 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7578 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7579 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7580 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7581 if (!once_value_6
) {
7582 fra
.me
.REG
[6] = BOX_NativeString(".");
7584 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7585 once_value_6
= fra
.me
.REG
[6];
7586 register_static_object(&once_value_6
);
7587 } else fra
.me
.REG
[6] = once_value_6
;
7588 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7589 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7590 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7591 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7592 /* syntax/typing.nit:1358 */
7595 /* syntax/typing.nit:1360 */
7596 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_attribute(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7597 /* syntax/typing.nit:1361 */
7598 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7599 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7600 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7601 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7602 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7604 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
7605 if (UNTAG_Bool(REGB2
)) {
7607 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7609 /* ../lib/standard/kernel.nit:232 */
7610 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
7611 /* syntax/typing.nit:1361 */
7612 if (UNTAG_Bool(REGB1
)) {
7613 /* syntax/typing.nit:1362 */
7615 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
7616 if (!once_value_7
) {
7617 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute ");
7618 REGB1
= TAG_Int(17);
7619 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
7620 once_value_7
= fra
.me
.REG
[5];
7621 register_static_object(&once_value_7
);
7622 } else fra
.me
.REG
[5] = once_value_7
;
7623 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7624 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
7625 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7626 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7627 if (!once_value_8
) {
7628 fra
.me
.REG
[3] = BOX_NativeString(" from ");
7630 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7631 once_value_8
= fra
.me
.REG
[3];
7632 register_static_object(&once_value_8
);
7633 } else fra
.me
.REG
[3] = once_value_8
;
7634 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7635 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7636 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7637 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7638 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7639 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7640 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7641 if (!once_value_9
) {
7642 fra
.me
.REG
[3] = BOX_NativeString(" is invisible in ");
7643 REGB1
= TAG_Int(17);
7644 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7645 once_value_9
= fra
.me
.REG
[3];
7646 register_static_object(&once_value_9
);
7647 } else fra
.me
.REG
[3] = once_value_9
;
7648 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7649 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7650 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7651 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7652 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7653 if (!once_value_10
) {
7654 fra
.me
.REG
[3] = BOX_NativeString("");
7656 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7657 once_value_10
= fra
.me
.REG
[3];
7658 register_static_object(&once_value_10
);
7659 } else fra
.me
.REG
[3] = once_value_10
;
7660 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7661 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7662 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7663 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
7665 /* syntax/typing.nit:1364 */
7666 ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
7667 /* syntax/typing.nit:1365 */
7668 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7669 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7670 /* syntax/typing.nit:1366 */
7671 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7672 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7673 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7674 if (UNTAG_Bool(REGB1
)) {
7675 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7676 if (UNTAG_Bool(REGB1
)) {
7677 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1366);
7679 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7680 fra
.me
.REG
[2] = fra
.me
.REG
[4];
7682 /* syntax/typing.nit:1367 */
7683 ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
7685 stack_frame_head
= fra
.me
.prev
;
7688 void syntax___typing___AAttrExpr___after_typing(val_t p0
, val_t p1
){
7689 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7693 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7694 fra
.me
.file
= LOCATE_syntax___typing
;
7696 fra
.me
.meth
= LOCATE_syntax___typing___AAttrExpr___after_typing
;
7697 fra
.me
.has_broke
= 0;
7698 fra
.me
.REG_size
= 2;
7699 fra
.me
.nitni_local_ref_head
= NULL
;
7700 fra
.me
.REG
[0] = NIT_NULL
;
7701 fra
.me
.REG
[1] = NIT_NULL
;
7704 /* syntax/typing.nit:1374 */
7705 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7706 /* syntax/typing.nit:1375 */
7707 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7708 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7709 if (UNTAG_Bool(REGB0
)) {
7711 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7712 if (UNTAG_Bool(REGB1
)) {
7713 REGB1
= TAG_Bool(false);
7716 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7720 if (UNTAG_Bool(REGB0
)) {
7723 /* syntax/typing.nit:1376 */
7724 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7725 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7726 /* syntax/typing.nit:1377 */
7727 REGB0
= TAG_Bool(true);
7728 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7730 stack_frame_head
= fra
.me
.prev
;
7733 void syntax___typing___AAttrAssignExpr___after_typing(val_t p0
, val_t p1
){
7734 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7738 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7739 fra
.me
.file
= LOCATE_syntax___typing
;
7741 fra
.me
.meth
= LOCATE_syntax___typing___AAttrAssignExpr___after_typing
;
7742 fra
.me
.has_broke
= 0;
7743 fra
.me
.REG_size
= 4;
7744 fra
.me
.nitni_local_ref_head
= NULL
;
7745 fra
.me
.REG
[0] = NIT_NULL
;
7746 fra
.me
.REG
[1] = NIT_NULL
;
7747 fra
.me
.REG
[2] = NIT_NULL
;
7748 fra
.me
.REG
[3] = NIT_NULL
;
7751 /* syntax/typing.nit:1384 */
7752 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7753 /* syntax/typing.nit:1385 */
7754 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7755 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7756 if (UNTAG_Bool(REGB0
)) {
7758 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7759 if (UNTAG_Bool(REGB1
)) {
7760 REGB1
= TAG_Bool(false);
7763 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7767 if (UNTAG_Bool(REGB0
)) {
7770 /* syntax/typing.nit:1386 */
7771 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7772 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7773 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]);
7774 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7775 if (UNTAG_Bool(REGB0
)) {
7778 /* syntax/typing.nit:1387 */
7779 REGB0
= TAG_Bool(true);
7780 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7782 stack_frame_head
= fra
.me
.prev
;
7785 void syntax___typing___AAttrReassignExpr___after_typing(val_t p0
, val_t p1
){
7786 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7790 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7791 fra
.me
.file
= LOCATE_syntax___typing
;
7793 fra
.me
.meth
= LOCATE_syntax___typing___AAttrReassignExpr___after_typing
;
7794 fra
.me
.has_broke
= 0;
7795 fra
.me
.REG_size
= 4;
7796 fra
.me
.nitni_local_ref_head
= NULL
;
7797 fra
.me
.REG
[0] = NIT_NULL
;
7798 fra
.me
.REG
[1] = NIT_NULL
;
7799 fra
.me
.REG
[2] = NIT_NULL
;
7800 fra
.me
.REG
[3] = NIT_NULL
;
7803 /* syntax/typing.nit:1394 */
7804 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7805 /* syntax/typing.nit:1395 */
7806 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7807 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7808 if (UNTAG_Bool(REGB0
)) {
7810 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7811 if (UNTAG_Bool(REGB1
)) {
7812 REGB1
= TAG_Bool(false);
7815 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7819 if (UNTAG_Bool(REGB0
)) {
7822 /* syntax/typing.nit:1396 */
7823 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7824 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]);
7825 /* syntax/typing.nit:1397 */
7826 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7827 if (UNTAG_Bool(REGB0
)) {
7829 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7830 if (UNTAG_Bool(REGB1
)) {
7831 REGB1
= TAG_Bool(false);
7834 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7838 if (UNTAG_Bool(REGB0
)) {
7841 /* syntax/typing.nit:1398 */
7842 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7843 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7844 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]);
7845 /* syntax/typing.nit:1399 */
7846 REGB0
= TAG_Bool(true);
7847 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7849 stack_frame_head
= fra
.me
.prev
;
7852 void syntax___typing___AIssetAttrExpr___after_typing(val_t p0
, val_t p1
){
7853 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7857 static val_t once_value_2
; /* Once value */
7858 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7859 fra
.me
.file
= LOCATE_syntax___typing
;
7861 fra
.me
.meth
= LOCATE_syntax___typing___AIssetAttrExpr___after_typing
;
7862 fra
.me
.has_broke
= 0;
7863 fra
.me
.REG_size
= 3;
7864 fra
.me
.nitni_local_ref_head
= NULL
;
7865 fra
.me
.REG
[0] = NIT_NULL
;
7866 fra
.me
.REG
[1] = NIT_NULL
;
7867 fra
.me
.REG
[2] = NIT_NULL
;
7870 /* syntax/typing.nit:1406 */
7871 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7872 /* syntax/typing.nit:1407 */
7873 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7874 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7875 if (UNTAG_Bool(REGB0
)) {
7877 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7878 if (UNTAG_Bool(REGB1
)) {
7879 REGB1
= TAG_Bool(false);
7882 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7886 if (UNTAG_Bool(REGB0
)) {
7889 /* syntax/typing.nit:1408 */
7890 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7891 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7892 if (UNTAG_Bool(REGB0
)) {
7893 /* syntax/typing.nit:1409 */
7894 if (!once_value_2
) {
7895 fra
.me
.REG
[2] = BOX_NativeString("Error: isset on a nullable attribute.");
7896 REGB0
= TAG_Int(37);
7897 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7898 once_value_2
= fra
.me
.REG
[2];
7899 register_static_object(&once_value_2
);
7900 } else fra
.me
.REG
[2] = once_value_2
;
7901 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7902 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
7904 /* syntax/typing.nit:1411 */
7905 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7906 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7907 /* syntax/typing.nit:1412 */
7908 REGB0
= TAG_Bool(true);
7909 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7911 stack_frame_head
= fra
.me
.prev
;
7914 val_t
syntax___typing___AAbsAbsSendExpr___prop_signature(val_t p0
){
7915 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7918 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7919 fra
.me
.file
= LOCATE_syntax___typing
;
7921 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature
;
7922 fra
.me
.has_broke
= 0;
7923 fra
.me
.REG_size
= 2;
7924 fra
.me
.nitni_local_ref_head
= NULL
;
7925 fra
.me
.REG
[0] = NIT_NULL
;
7926 fra
.me
.REG
[1] = NIT_NULL
;
7928 /* syntax/typing.nit:1417 */
7929 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7930 /* syntax/typing.nit:1418 */
7931 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[1]);
7932 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7933 if (UNTAG_Bool(REGB0
)) {
7935 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1418);
7939 stack_frame_head
= fra
.me
.prev
;
7940 return fra
.me
.REG
[1];
7942 val_t
syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0
){
7943 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7947 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7948 fra
.me
.file
= LOCATE_syntax___typing
;
7950 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments
;
7951 fra
.me
.has_broke
= 0;
7952 fra
.me
.REG_size
= 4;
7953 fra
.me
.nitni_local_ref_head
= NULL
;
7954 fra
.me
.REG
[0] = NIT_NULL
;
7955 fra
.me
.REG
[1] = NIT_NULL
;
7956 fra
.me
.REG
[2] = NIT_NULL
;
7957 fra
.me
.REG
[3] = NIT_NULL
;
7959 /* syntax/typing.nit:1424 */
7960 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]);
7961 /* syntax/typing.nit:1425 */
7962 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7963 if (UNTAG_Bool(REGB0
)) {
7965 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7966 if (UNTAG_Bool(REGB1
)) {
7967 REGB1
= TAG_Bool(false);
7970 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7974 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7975 if (UNTAG_Bool(REGB0
)) {
7976 /* syntax/typing.nit:1426 */
7977 fra
.me
.REG
[2] = fra
.me
.REG
[1];
7980 /* syntax/typing.nit:1428 */
7981 fra
.me
.REG
[3] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7982 fra
.me
.REG
[1] = fra
.me
.REG
[3];
7983 /* syntax/typing.nit:1429 */
7984 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7985 if (UNTAG_Bool(REGB0
)) {
7987 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7988 if (UNTAG_Bool(REGB1
)) {
7989 REGB1
= TAG_Bool(false);
7992 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7996 if (UNTAG_Bool(REGB0
)) {
7997 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
7998 fra
.me
.REG
[1] = fra
.me
.REG
[3];
8000 /* syntax/typing.nit:1430 */
8001 ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
8002 /* syntax/typing.nit:1431 */
8003 fra
.me
.REG
[2] = fra
.me
.REG
[1];
8007 stack_frame_head
= fra
.me
.prev
;
8008 return fra
.me
.REG
[2];
8010 val_t
syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0
){
8011 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
8014 static val_t once_value_1
; /* Once value */
8015 static val_t once_value_2
; /* Once value */
8016 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8017 fra
.me
.file
= LOCATE_syntax___typing
;
8019 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments
;
8020 fra
.me
.has_broke
= 0;
8021 fra
.me
.REG_size
= 3;
8022 fra
.me
.nitni_local_ref_head
= NULL
;
8023 fra
.me
.REG
[0] = NIT_NULL
;
8024 fra
.me
.REG
[1] = NIT_NULL
;
8025 fra
.me
.REG
[2] = NIT_NULL
;
8027 /* syntax/typing.nit:1439 */
8029 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8030 if (!once_value_1
) {
8031 fra
.me
.REG
[2] = BOX_NativeString("");
8033 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
8034 once_value_1
= fra
.me
.REG
[2];
8035 register_static_object(&once_value_1
);
8036 } else fra
.me
.REG
[2] = once_value_1
;
8037 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8038 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8039 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8040 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8041 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8042 if (!once_value_2
) {
8043 fra
.me
.REG
[2] = BOX_NativeString(" no compute_raw_arguments");
8044 REGB0
= TAG_Int(25);
8045 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
8046 once_value_2
= fra
.me
.REG
[2];
8047 register_static_object(&once_value_2
);
8048 } else fra
.me
.REG
[2] = once_value_2
;
8049 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8050 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8051 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8052 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
8053 /* syntax/typing.nit:1440 */
8054 fra
.me
.REG
[1] = NIT_NULL
;
8057 stack_frame_head
= fra
.me
.prev
;
8058 return fra
.me
.REG
[1];
8060 val_t
syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8061 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8075 static val_t once_value_1
; /* Once value */
8076 static val_t once_value_2
; /* Once value */
8077 static val_t once_value_3
; /* Once value */
8078 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8079 fra
.me
.file
= LOCATE_syntax___typing
;
8081 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature
;
8082 fra
.me
.has_broke
= 0;
8083 fra
.me
.REG_size
= 7;
8084 fra
.me
.nitni_local_ref_head
= NULL
;
8085 fra
.me
.REG
[0] = NIT_NULL
;
8086 fra
.me
.REG
[1] = NIT_NULL
;
8087 fra
.me
.REG
[2] = NIT_NULL
;
8088 fra
.me
.REG
[3] = NIT_NULL
;
8089 fra
.me
.REG
[4] = NIT_NULL
;
8090 fra
.me
.REG
[5] = NIT_NULL
;
8091 fra
.me
.REG
[6] = NIT_NULL
;
8097 /* syntax/typing.nit:1446 */
8098 REGB0
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8099 /* syntax/typing.nit:1447 */
8100 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8101 /* syntax/typing.nit:1449 */
8102 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8103 if (UNTAG_Bool(REGB2
)) {
8105 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8106 if (UNTAG_Bool(REGB3
)) {
8107 REGB3
= TAG_Bool(false);
8110 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8114 if (UNTAG_Bool(REGB2
)) {
8117 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8118 if (UNTAG_Bool(REGB3
)) {
8119 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1449);
8121 /* ../lib/standard/collection/array.nit:24 */
8122 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8123 if (UNTAG_Bool(REGB3
)) {
8125 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8127 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8128 /* syntax/typing.nit:1449 */
8131 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8132 if (UNTAG_Bool(REGB3
)) {
8134 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8136 /* ../lib/standard/kernel.nit:234 */
8137 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8138 /* syntax/typing.nit:1450 */
8139 if (UNTAG_Bool(REGB3
)) {
8140 REGB3
= TAG_Bool(true);
8142 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
8143 if (UNTAG_Bool(REGB4
)) {
8145 /* ../lib/standard/kernel.nit:227 */
8146 REGB5
= TAG_Bool((REGB1
)==(REGB2
));
8147 /* syntax/typing.nit:1450 */
8150 REGB4
= TAG_Bool(!UNTAG_Bool(REGB4
));
8151 if (UNTAG_Bool(REGB4
)) {
8153 /* ../lib/standard/kernel.nit:236 */
8154 REGB4
= TAG_Int(-UNTAG_Int(REGB4
));
8155 /* syntax/typing.nit:1450 */
8156 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB4
));
8157 if (UNTAG_Bool(REGB5
)) {
8159 /* ../lib/standard/kernel.nit:227 */
8160 REGB4
= TAG_Bool((REGB0
)==(REGB4
));
8161 /* syntax/typing.nit:1450 */
8165 REGB4
= TAG_Bool(false);
8170 if (UNTAG_Bool(REGB3
)) {
8171 /* syntax/typing.nit:1451 */
8173 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3
);
8174 if (!once_value_1
) {
8175 fra
.me
.REG
[6] = BOX_NativeString("Error: arity mismatch; prototype is '");
8176 REGB3
= TAG_Int(37);
8177 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB3
);
8178 once_value_1
= fra
.me
.REG
[6];
8179 register_static_object(&once_value_1
);
8180 } else fra
.me
.REG
[6] = once_value_1
;
8181 fra
.me
.REG
[6] = fra
.me
.REG
[6];
8182 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
8183 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8184 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8185 if (!once_value_2
) {
8186 fra
.me
.REG
[3] = BOX_NativeString("");
8188 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
8189 once_value_2
= fra
.me
.REG
[3];
8190 register_static_object(&once_value_2
);
8191 } else fra
.me
.REG
[3] = once_value_2
;
8192 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8193 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8194 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8195 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8196 if (!once_value_3
) {
8197 fra
.me
.REG
[3] = BOX_NativeString("'.");
8199 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
8200 once_value_3
= fra
.me
.REG
[3];
8201 register_static_object(&once_value_3
);
8202 } else fra
.me
.REG
[3] = once_value_3
;
8203 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8204 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8205 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8206 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8207 /* syntax/typing.nit:1452 */
8208 REGB3
= TAG_Bool(false);
8211 /* syntax/typing.nit:1454 */
8213 /* syntax/typing.nit:1455 */
8215 /* ../lib/standard/kernel.nit:347 */
8217 /* ../lib/standard/kernel.nit:352 */
8219 REGB7
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
8220 if (UNTAG_Bool(REGB7
)) {
8222 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8224 /* ../lib/standard/kernel.nit:232 */
8225 REGB7
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
8226 /* ../lib/standard/kernel.nit:352 */
8227 if (UNTAG_Bool(REGB7
)) {
8228 /* syntax/typing.nit:1455 */
8230 /* syntax/typing.nit:1457 */
8231 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB7
);
8232 /* syntax/typing.nit:1458 */
8233 REGB8
= TAG_Bool(IS_EQUAL_OO(REGB7
,REGB0
));
8234 if (UNTAG_Bool(REGB8
)) {
8236 /* ../lib/standard/kernel.nit:227 */
8237 REGB7
= TAG_Bool((REGB7
)==(REGB0
));
8238 /* syntax/typing.nit:1458 */
8241 if (UNTAG_Bool(REGB8
)) {
8242 /* syntax/typing.nit:1459 */
8244 /* ../lib/standard/kernel.nit:237 */
8245 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
8246 /* ../lib/standard/kernel.nit:341 */
8248 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8249 if (UNTAG_Bool(REGB9
)) {
8251 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8253 /* ../lib/standard/kernel.nit:231 */
8254 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<=UNTAG_Int(REGB7
));
8255 /* ../lib/standard/kernel.nit:341 */
8256 if (UNTAG_Bool(REGB9
)) {
8257 /* syntax/typing.nit:1460 */
8258 REGB9
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8259 if (UNTAG_Bool(REGB9
)) {
8260 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1460);
8262 /* ../lib/standard/collection/array.nit:278 */
8263 fra
.me
.REG
[0] = fra
.me
.REG
[4];
8265 /* ../lib/standard/collection/array.nit:280 */
8266 REGB10
= TAG_Int(0);
8267 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
8268 if (UNTAG_Bool(REGB11
)) {
8270 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8272 /* ../lib/standard/kernel.nit:233 */
8273 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)>=UNTAG_Int(REGB10
));
8274 /* ../lib/standard/collection/array.nit:280 */
8275 if (UNTAG_Bool(REGB10
)) {
8276 REGB10
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
8277 if (UNTAG_Bool(REGB10
)) {
8279 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8281 REGB10
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
8282 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
8283 if (UNTAG_Bool(REGB11
)) {
8285 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8287 /* ../lib/standard/kernel.nit:232 */
8288 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)<UNTAG_Int(REGB10
));
8290 /* ../lib/standard/collection/array.nit:280 */
8291 REGB11
= TAG_Bool(false);
8294 if (UNTAG_Bool(REGB10
)) {
8296 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
8298 /* ../lib/standard/collection/array.nit:281 */
8299 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
8300 REGB10
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
8301 if (UNTAG_Bool(REGB10
)) {
8302 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8304 /* ../lib/standard/collection/array.nit:718 */
8305 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB9
)];
8306 /* ../lib/standard/collection/array.nit:281 */
8309 /* syntax/typing.nit:1461 */
8310 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8311 /* syntax/typing.nit:1462 */
8313 /* ../lib/standard/kernel.nit:235 */
8314 REGB9
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB9
));
8315 /* syntax/typing.nit:1462 */
8317 /* ../lib/standard/kernel.nit:343 */
8319 /* ../lib/standard/kernel.nit:235 */
8320 REGB9
= TAG_Int(UNTAG_Int(REGB8
)+UNTAG_Int(REGB9
));
8321 /* ../lib/standard/kernel.nit:343 */
8324 /* ../lib/standard/kernel.nit:341 */
8330 /* syntax/typing.nit:1465 */
8331 REGB8
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8332 if (UNTAG_Bool(REGB8
)) {
8333 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1465);
8335 /* ../lib/standard/collection/array.nit:278 */
8336 fra
.me
.REG
[3] = fra
.me
.REG
[4];
8338 /* ../lib/standard/collection/array.nit:280 */
8340 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8341 if (UNTAG_Bool(REGB9
)) {
8343 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8345 /* ../lib/standard/kernel.nit:233 */
8346 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB7
));
8347 /* ../lib/standard/collection/array.nit:280 */
8348 if (UNTAG_Bool(REGB7
)) {
8349 REGB7
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
8350 if (UNTAG_Bool(REGB7
)) {
8352 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8354 REGB7
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
8355 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8356 if (UNTAG_Bool(REGB9
)) {
8358 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8360 /* ../lib/standard/kernel.nit:232 */
8361 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB7
));
8363 /* ../lib/standard/collection/array.nit:280 */
8364 REGB9
= TAG_Bool(false);
8367 if (UNTAG_Bool(REGB7
)) {
8369 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
8371 /* ../lib/standard/collection/array.nit:281 */
8372 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
8373 REGB7
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8374 if (UNTAG_Bool(REGB7
)) {
8375 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8377 /* ../lib/standard/collection/array.nit:718 */
8378 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB8
)];
8379 /* ../lib/standard/collection/array.nit:281 */
8382 /* syntax/typing.nit:1465 */
8383 fra
.me
.REG
[0] = fra
.me
.REG
[3];
8384 /* syntax/typing.nit:1466 */
8385 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8386 /* syntax/typing.nit:1467 */
8388 /* ../lib/standard/kernel.nit:235 */
8389 REGB8
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB8
));
8390 /* syntax/typing.nit:1467 */
8393 /* ../lib/standard/kernel.nit:354 */
8395 /* ../lib/standard/kernel.nit:235 */
8396 REGB8
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB8
));
8397 /* ../lib/standard/kernel.nit:354 */
8400 /* ../lib/standard/kernel.nit:352 */
8405 /* syntax/typing.nit:1470 */
8406 REGB4
= TAG_Bool(true);
8410 stack_frame_head
= fra
.me
.prev
;
8413 val_t
syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8414 struct {struct stack_frame_t me
; val_t MORE_REG
[16];} fra
;
8422 static val_t once_value_2
; /* Once value */
8423 static val_t once_value_3
; /* Once value */
8424 static val_t once_value_4
; /* Once value */
8425 static val_t once_value_5
; /* Once value */
8426 static val_t once_value_6
; /* Once value */
8427 static val_t once_value_7
; /* Once value */
8428 static val_t once_value_8
; /* Once value */
8429 static val_t once_value_11
; /* Once value */
8430 static val_t once_value_12
; /* Once value */
8431 static val_t once_value_13
; /* Once value */
8432 static val_t once_value_14
; /* Once value */
8433 static val_t once_value_15
; /* Once value */
8434 static val_t once_value_16
; /* Once value */
8435 static val_t once_value_18
; /* Once value */
8436 static val_t once_value_19
; /* Once value */
8437 static val_t once_value_20
; /* Once value */
8438 static val_t once_value_21
; /* Once value */
8439 static val_t once_value_22
; /* Once value */
8440 static val_t once_value_24
; /* Once value */
8441 static val_t once_value_25
; /* Once value */
8442 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8443 fra
.me
.file
= LOCATE_syntax___typing
;
8445 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures
;
8446 fra
.me
.has_broke
= 0;
8447 fra
.me
.REG_size
= 17;
8448 fra
.me
.nitni_local_ref_head
= NULL
;
8449 fra
.me
.REG
[0] = NIT_NULL
;
8450 fra
.me
.REG
[1] = NIT_NULL
;
8451 fra
.me
.REG
[2] = NIT_NULL
;
8452 fra
.me
.REG
[3] = NIT_NULL
;
8453 fra
.me
.REG
[4] = NIT_NULL
;
8454 fra
.me
.REG
[5] = NIT_NULL
;
8455 fra
.me
.REG
[6] = NIT_NULL
;
8456 fra
.me
.REG
[7] = NIT_NULL
;
8457 fra
.me
.REG
[8] = NIT_NULL
;
8458 fra
.me
.REG
[9] = NIT_NULL
;
8459 fra
.me
.REG
[10] = NIT_NULL
;
8460 fra
.me
.REG
[11] = NIT_NULL
;
8461 fra
.me
.REG
[12] = NIT_NULL
;
8462 fra
.me
.REG
[13] = NIT_NULL
;
8463 fra
.me
.REG
[14] = NIT_NULL
;
8464 fra
.me
.REG
[15] = NIT_NULL
;
8465 fra
.me
.REG
[16] = NIT_NULL
;
8471 /* syntax/typing.nit:1476 */
8472 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8473 /* syntax/typing.nit:1477 */
8474 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8475 /* syntax/typing.nit:1478 */
8477 /* ../lib/standard/collection/array.nit:266 */
8478 fra
.me
.REG
[7] = fra
.me
.REG
[6];
8479 /* ../lib/standard/collection/array.nit:269 */
8481 /* ../lib/standard/collection/array.nit:270 */
8482 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8483 if (UNTAG_Bool(REGB2
)) {
8485 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
8487 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8488 /* ../lib/standard/collection/array.nit:271 */
8489 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8490 /* ../lib/standard/collection/array.nit:272 */
8492 /* ../lib/standard/collection/array.nit:24 */
8493 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8494 if (UNTAG_Bool(REGB2
)) {
8496 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8498 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8499 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8500 if (UNTAG_Bool(REGB3
)) {
8502 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8504 /* ../lib/standard/kernel.nit:232 */
8505 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
8506 /* ../lib/standard/collection/array.nit:272 */
8507 if (UNTAG_Bool(REGB2
)) {
8508 /* ../lib/standard/collection/array.nit:273 */
8509 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8510 if (UNTAG_Bool(REGB2
)) {
8511 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
8513 /* ../lib/standard/collection/array.nit:718 */
8514 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
8515 /* syntax/typing.nit:1480 */
8516 REGB2
= CALL_metamodel___static_type___MMClosure___is_optional(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8517 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8518 if (UNTAG_Bool(REGB2
)) {
8520 /* ../lib/standard/kernel.nit:235 */
8521 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
8522 /* syntax/typing.nit:1480 */
8525 /* ../lib/standard/collection/array.nit:274 */
8527 /* ../lib/standard/kernel.nit:235 */
8528 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
8529 /* ../lib/standard/collection/array.nit:274 */
8532 /* ../lib/standard/collection/array.nit:272 */
8537 /* syntax/typing.nit:1482 */
8539 /* syntax/typing.nit:1483 */
8540 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8541 if (UNTAG_Bool(REGB2
)) {
8543 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8544 if (UNTAG_Bool(REGB3
)) {
8545 REGB3
= TAG_Bool(false);
8548 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8552 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8553 if (UNTAG_Bool(REGB2
)) {
8554 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8555 if (UNTAG_Bool(REGB2
)) {
8556 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1483);
8558 /* ../lib/standard/collection/array.nit:24 */
8559 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8560 if (UNTAG_Bool(REGB2
)) {
8562 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8564 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8565 /* syntax/typing.nit:1483 */
8568 /* ../lib/standard/collection/array.nit:24 */
8569 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8570 if (UNTAG_Bool(REGB2
)) {
8572 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8574 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8575 /* syntax/typing.nit:1484 */
8577 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8578 if (UNTAG_Bool(REGB4
)) {
8580 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8582 /* ../lib/standard/kernel.nit:234 */
8583 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
8584 /* syntax/typing.nit:1484 */
8585 if (UNTAG_Bool(REGB3
)) {
8586 /* syntax/typing.nit:1485 */
8588 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
8589 if (UNTAG_Bool(REGB2
)) {
8591 /* ../lib/standard/kernel.nit:227 */
8592 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
8593 /* syntax/typing.nit:1485 */
8596 if (UNTAG_Bool(REGB2
)) {
8598 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
8599 if (UNTAG_Bool(REGB3
)) {
8601 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8603 /* ../lib/standard/kernel.nit:234 */
8604 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB2
));
8606 /* syntax/typing.nit:1485 */
8607 REGB3
= TAG_Bool(false);
8610 if (UNTAG_Bool(REGB2
)) {
8611 /* syntax/typing.nit:1486 */
8613 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8614 if (!once_value_2
) {
8615 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8617 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8618 once_value_2
= fra
.me
.REG
[7];
8619 register_static_object(&once_value_2
);
8620 } else fra
.me
.REG
[7] = once_value_2
;
8621 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8623 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8624 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8625 if (!once_value_3
) {
8626 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8627 REGB2
= TAG_Int(10);
8628 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8629 once_value_3
= fra
.me
.REG
[7];
8630 register_static_object(&once_value_3
);
8631 } else fra
.me
.REG
[7] = once_value_3
;
8632 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8633 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8634 /* ../lib/standard/collection/array.nit:24 */
8635 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8636 if (UNTAG_Bool(REGB2
)) {
8638 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8640 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8641 /* syntax/typing.nit:1486 */
8642 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8643 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8644 if (!once_value_4
) {
8645 fra
.me
.REG
[7] = BOX_NativeString(" blocks.");
8647 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8648 once_value_4
= fra
.me
.REG
[7];
8649 register_static_object(&once_value_4
);
8650 } else fra
.me
.REG
[7] = once_value_4
;
8651 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8652 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8653 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8654 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8656 /* ../lib/standard/collection/array.nit:24 */
8657 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8658 if (UNTAG_Bool(REGB2
)) {
8660 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8662 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8663 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8664 if (UNTAG_Bool(REGB3
)) {
8666 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8668 /* ../lib/standard/kernel.nit:234 */
8669 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8670 /* syntax/typing.nit:1487 */
8671 if (UNTAG_Bool(REGB2
)) {
8672 REGB2
= TAG_Bool(true);
8674 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8675 if (UNTAG_Bool(REGB3
)) {
8677 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8679 /* ../lib/standard/kernel.nit:232 */
8680 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
8681 /* syntax/typing.nit:1487 */
8684 if (UNTAG_Bool(REGB2
)) {
8685 /* syntax/typing.nit:1488 */
8687 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8688 if (!once_value_5
) {
8689 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8691 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8692 once_value_5
= fra
.me
.REG
[7];
8693 register_static_object(&once_value_5
);
8694 } else fra
.me
.REG
[7] = once_value_5
;
8695 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8696 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8697 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8699 if (!once_value_6
) {
8700 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8701 REGB2
= TAG_Int(10);
8702 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8703 once_value_6
= fra
.me
.REG
[7];
8704 register_static_object(&once_value_6
);
8705 } else fra
.me
.REG
[7] = once_value_6
;
8706 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8707 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8708 /* ../lib/standard/collection/array.nit:24 */
8709 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8710 if (UNTAG_Bool(REGB2
)) {
8712 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8714 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8715 /* syntax/typing.nit:1488 */
8716 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8718 if (!once_value_7
) {
8719 fra
.me
.REG
[7] = BOX_NativeString(" blocks, ");
8721 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8722 once_value_7
= fra
.me
.REG
[7];
8723 register_static_object(&once_value_7
);
8724 } else fra
.me
.REG
[7] = once_value_7
;
8725 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8726 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8727 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8728 if (UNTAG_Bool(REGB2
)) {
8729 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1488);
8731 /* ../lib/standard/collection/array.nit:24 */
8732 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8733 if (UNTAG_Bool(REGB2
)) {
8735 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8737 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8738 /* syntax/typing.nit:1488 */
8739 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8741 if (!once_value_8
) {
8742 fra
.me
.REG
[7] = BOX_NativeString(" found.");
8744 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8745 once_value_8
= fra
.me
.REG
[7];
8746 register_static_object(&once_value_8
);
8747 } else fra
.me
.REG
[7] = once_value_8
;
8748 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8749 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8750 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8751 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8753 /* syntax/typing.nit:1491 */
8754 fra
.me
.REG
[8] = NIT_NULL
;
8755 /* syntax/typing.nit:1492 */
8756 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8757 if (UNTAG_Bool(REGB2
)) {
8759 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8760 if (UNTAG_Bool(REGB0
)) {
8761 REGB0
= TAG_Bool(false);
8764 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8768 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8769 if (UNTAG_Bool(REGB2
)) {
8770 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
8771 fra
.me
.REG
[8] = fra
.me
.REG
[7];
8773 /* syntax/typing.nit:1495 */
8775 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8776 if (UNTAG_Bool(REGB0
)) {
8778 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8780 /* ../lib/standard/kernel.nit:234 */
8781 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8782 /* syntax/typing.nit:1495 */
8783 if (UNTAG_Bool(REGB2
)) {
8785 /* ../lib/standard/kernel.nit:237 */
8786 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
8787 /* syntax/typing.nit:1495 */
8788 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8789 if (UNTAG_Bool(REGB0
)) {
8790 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1495);
8792 /* ../lib/standard/collection/array.nit:278 */
8793 fra
.me
.REG
[7] = fra
.me
.REG
[4];
8794 /* ../lib/standard/collection/array.nit:280 */
8796 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8797 if (UNTAG_Bool(REGB3
)) {
8799 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8801 /* ../lib/standard/kernel.nit:233 */
8802 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
8803 /* ../lib/standard/collection/array.nit:280 */
8804 if (UNTAG_Bool(REGB0
)) {
8805 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8806 if (UNTAG_Bool(REGB0
)) {
8808 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8810 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8811 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8812 if (UNTAG_Bool(REGB3
)) {
8814 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8816 /* ../lib/standard/kernel.nit:232 */
8817 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8819 /* ../lib/standard/collection/array.nit:280 */
8820 REGB3
= TAG_Bool(false);
8823 if (UNTAG_Bool(REGB0
)) {
8825 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
8827 /* ../lib/standard/collection/array.nit:281 */
8828 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8829 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8830 if (UNTAG_Bool(REGB0
)) {
8831 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8833 /* ../lib/standard/collection/array.nit:718 */
8834 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB2
)];
8835 /* ../lib/standard/collection/array.nit:281 */
8838 /* syntax/typing.nit:1495 */
8839 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8840 if (UNTAG_Bool(REGB2
)) {
8841 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1495);
8843 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8845 fra
.me
.REG
[7] = NIT_NULL
;
8847 /* syntax/typing.nit:1498 */
8849 /* ../lib/standard/kernel.nit:347 */
8851 /* ../lib/standard/kernel.nit:352 */
8853 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8854 if (UNTAG_Bool(REGB3
)) {
8856 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8858 /* ../lib/standard/kernel.nit:232 */
8859 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8860 /* ../lib/standard/kernel.nit:352 */
8861 if (UNTAG_Bool(REGB3
)) {
8862 /* syntax/typing.nit:1498 */
8864 /* syntax/typing.nit:1499 */
8865 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8866 if (UNTAG_Bool(REGB4
)) {
8867 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1499);
8869 /* ../lib/standard/collection/array.nit:278 */
8870 fra
.me
.REG
[9] = fra
.me
.REG
[4];
8871 /* ../lib/standard/collection/array.nit:280 */
8873 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
8874 if (UNTAG_Bool(REGB5
)) {
8876 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8878 /* ../lib/standard/kernel.nit:233 */
8879 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
8880 /* ../lib/standard/collection/array.nit:280 */
8881 if (UNTAG_Bool(REGB4
)) {
8882 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
8883 if (UNTAG_Bool(REGB4
)) {
8885 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8887 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
8888 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
8889 if (UNTAG_Bool(REGB5
)) {
8891 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8893 /* ../lib/standard/kernel.nit:232 */
8894 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
8896 /* ../lib/standard/collection/array.nit:280 */
8897 REGB5
= TAG_Bool(false);
8900 if (UNTAG_Bool(REGB4
)) {
8902 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
8904 /* ../lib/standard/collection/array.nit:281 */
8905 fra
.me
.REG
[9] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
8906 REGB4
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
8907 if (UNTAG_Bool(REGB4
)) {
8908 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8910 /* ../lib/standard/collection/array.nit:718 */
8911 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB3
)];
8912 /* ../lib/standard/collection/array.nit:281 */
8915 /* syntax/typing.nit:1500 */
8916 fra
.me
.REG
[10] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8917 fra
.me
.REG
[10] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8918 /* syntax/typing.nit:1501 */
8919 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMSignature___closure_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[10]);
8920 /* syntax/typing.nit:1502 */
8921 REGB3
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
8922 if (UNTAG_Bool(REGB3
)) {
8924 REGB4
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
8925 if (UNTAG_Bool(REGB4
)) {
8926 REGB4
= TAG_Bool(false);
8929 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[11])(fra
.me
.REG
[11], NIT_NULL
);
8933 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
8934 if (UNTAG_Bool(REGB3
)) {
8935 /* syntax/typing.nit:1503 */
8936 fra
.me
.REG
[11] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[9], fra
.me
.REG
[11], fra
.me
.REG
[8]);
8937 /* syntax/typing.nit:1504 */
8938 fra
.me
.REG
[12] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8939 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[11], fra
.me
.REG
[7]);
8940 /* syntax/typing.nit:1505 */
8941 CALL_syntax___typing___AClosureDef___accept_typing2(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[1], fra
.me
.REG
[11]);
8942 /* syntax/typing.nit:1506 */
8943 fra
.me
.REG
[11] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8944 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
8946 /* ../lib/standard/collection/array.nit:24 */
8947 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8948 if (UNTAG_Bool(REGB3
)) {
8950 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8952 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8953 /* syntax/typing.nit:1507 */
8955 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB3
,REGB4
));
8956 if (UNTAG_Bool(REGB5
)) {
8958 /* ../lib/standard/kernel.nit:227 */
8959 REGB4
= TAG_Bool((REGB3
)==(REGB4
));
8960 /* syntax/typing.nit:1507 */
8963 if (UNTAG_Bool(REGB5
)) {
8964 /* syntax/typing.nit:1508 */
8965 fra
.me
.REG
[11] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8967 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
8968 if (!once_value_11
) {
8969 fra
.me
.REG
[13] = BOX_NativeString("Error: no closure named '!");
8970 REGB5
= TAG_Int(26);
8971 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8972 once_value_11
= fra
.me
.REG
[13];
8973 register_static_object(&once_value_11
);
8974 } else fra
.me
.REG
[13] = once_value_11
;
8975 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8976 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8977 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8978 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8979 if (!once_value_12
) {
8980 fra
.me
.REG
[13] = BOX_NativeString("' in ");
8982 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8983 once_value_12
= fra
.me
.REG
[13];
8984 register_static_object(&once_value_12
);
8985 } else fra
.me
.REG
[13] = once_value_12
;
8986 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8987 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8988 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8989 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8990 if (!once_value_13
) {
8991 fra
.me
.REG
[13] = BOX_NativeString("; only closure is !");
8992 REGB5
= TAG_Int(19);
8993 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8994 once_value_13
= fra
.me
.REG
[13];
8995 register_static_object(&once_value_13
);
8996 } else fra
.me
.REG
[13] = once_value_13
;
8997 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8999 fra
.me
.REG
[13] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9000 REGB5
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
9001 if (UNTAG_Bool(REGB5
)) {
9002 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1508);
9004 fra
.me
.REG
[13] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9005 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9006 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9007 if (!once_value_14
) {
9008 fra
.me
.REG
[13] = BOX_NativeString(".");
9010 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
9011 once_value_14
= fra
.me
.REG
[13];
9012 register_static_object(&once_value_14
);
9013 } else fra
.me
.REG
[13] = once_value_14
;
9014 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9015 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9016 fra
.me
.REG
[12] = CALL_standard___string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
9017 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[11], fra
.me
.REG
[12]);
9019 /* syntax/typing.nit:1510 */
9020 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___init();
9021 /* ../lib/standard/collection/array.nit:266 */
9022 fra
.me
.REG
[11] = fra
.me
.REG
[6];
9023 /* ../lib/standard/collection/array.nit:269 */
9025 /* ../lib/standard/collection/array.nit:270 */
9026 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
9027 if (UNTAG_Bool(REGB4
)) {
9029 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
9031 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
9032 /* ../lib/standard/collection/array.nit:271 */
9033 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[11]);
9034 /* ../lib/standard/collection/array.nit:272 */
9036 /* ../lib/standard/collection/array.nit:24 */
9037 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
9038 if (UNTAG_Bool(REGB4
)) {
9040 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9042 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
9043 REGB3
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5
), VTID_standard___kernel___Comparable___OTHER(REGB5
))) /*cast OTHER*/;
9044 if (UNTAG_Bool(REGB3
)) {
9046 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9048 /* ../lib/standard/kernel.nit:232 */
9049 REGB4
= TAG_Bool(UNTAG_Int(REGB5
)<UNTAG_Int(REGB4
));
9050 /* ../lib/standard/collection/array.nit:272 */
9051 if (UNTAG_Bool(REGB4
)) {
9052 /* ../lib/standard/collection/array.nit:273 */
9053 REGB4
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
9054 if (UNTAG_Bool(REGB4
)) {
9055 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
9057 /* ../lib/standard/collection/array.nit:718 */
9058 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB5
)];
9059 /* syntax/typing.nit:1512 */
9061 fra
.me
.REG
[15] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4
);
9062 if (!once_value_15
) {
9063 fra
.me
.REG
[16] = BOX_NativeString("!");
9065 fra
.me
.REG
[16] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[16], REGB4
);
9066 once_value_15
= fra
.me
.REG
[16];
9067 register_static_object(&once_value_15
);
9068 } else fra
.me
.REG
[16] = once_value_15
;
9069 fra
.me
.REG
[16] = fra
.me
.REG
[16];
9070 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[16]);
9071 fra
.me
.REG
[14] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
9072 fra
.me
.REG
[14] = CALL_standard___string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
9073 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
9074 if (!once_value_16
) {
9075 fra
.me
.REG
[14] = BOX_NativeString("");
9077 fra
.me
.REG
[14] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[14], REGB4
);
9078 once_value_16
= fra
.me
.REG
[14];
9079 register_static_object(&once_value_16
);
9080 } else fra
.me
.REG
[14] = once_value_16
;
9081 fra
.me
.REG
[14] = fra
.me
.REG
[14];
9082 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
9083 fra
.me
.REG
[15] = CALL_standard___string___Object___to_s(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
9084 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[15]);
9085 /* ../lib/standard/collection/array.nit:274 */
9087 /* ../lib/standard/kernel.nit:235 */
9088 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
9089 /* ../lib/standard/collection/array.nit:274 */
9092 /* ../lib/standard/collection/array.nit:272 */
9097 /* syntax/typing.nit:1514 */
9098 fra
.me
.REG
[9] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9100 fra
.me
.REG
[13] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
9101 if (!once_value_18
) {
9102 fra
.me
.REG
[11] = BOX_NativeString("Error: no closure named '!");
9103 REGB5
= TAG_Int(26);
9104 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB5
);
9105 once_value_18
= fra
.me
.REG
[11];
9106 register_static_object(&once_value_18
);
9107 } else fra
.me
.REG
[11] = once_value_18
;
9108 fra
.me
.REG
[11] = fra
.me
.REG
[11];
9109 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[11]);
9110 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
9111 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9112 if (!once_value_19
) {
9113 fra
.me
.REG
[10] = BOX_NativeString("' in ");
9115 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9116 once_value_19
= fra
.me
.REG
[10];
9117 register_static_object(&once_value_19
);
9118 } else fra
.me
.REG
[10] = once_value_19
;
9119 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9120 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9121 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9122 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9123 if (!once_value_20
) {
9124 fra
.me
.REG
[10] = BOX_NativeString("; only closures are ");
9125 REGB5
= TAG_Int(20);
9126 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9127 once_value_20
= fra
.me
.REG
[10];
9128 register_static_object(&once_value_20
);
9129 } else fra
.me
.REG
[10] = once_value_20
;
9130 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9132 if (!once_value_21
) {
9133 fra
.me
.REG
[10] = BOX_NativeString(",");
9135 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9136 once_value_21
= fra
.me
.REG
[10];
9137 register_static_object(&once_value_21
);
9138 } else fra
.me
.REG
[10] = once_value_21
;
9139 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9140 fra
.me
.REG
[10] = CALL_standard___string___Collection___join(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[10]);
9141 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9142 if (!once_value_22
) {
9143 fra
.me
.REG
[10] = BOX_NativeString(".");
9145 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9146 once_value_22
= fra
.me
.REG
[10];
9147 register_static_object(&once_value_22
);
9148 } else fra
.me
.REG
[10] = once_value_22
;
9149 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9150 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9151 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9152 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[13]);
9155 /* ../lib/standard/kernel.nit:354 */
9157 /* ../lib/standard/kernel.nit:235 */
9158 REGB5
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB5
));
9159 /* ../lib/standard/kernel.nit:354 */
9162 /* ../lib/standard/kernel.nit:352 */
9167 /* syntax/typing.nit:1519 */
9168 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
9169 if (UNTAG_Bool(REGB2
)) {
9171 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
9172 if (UNTAG_Bool(REGB0
)) {
9173 REGB0
= TAG_Bool(false);
9176 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
9180 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
9181 if (UNTAG_Bool(REGB2
)) {
9182 /* syntax/typing.nit:1520 */
9183 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]);
9184 fra
.me
.REG
[5] = fra
.me
.REG
[8];
9189 /* syntax/typing.nit:1523 */
9191 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
9192 if (UNTAG_Bool(REGB0
)) {
9194 /* ../lib/standard/kernel.nit:227 */
9195 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
9196 /* syntax/typing.nit:1523 */
9199 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9200 if (UNTAG_Bool(REGB0
)) {
9201 /* syntax/typing.nit:1524 */
9203 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9204 if (!once_value_24
) {
9205 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
9207 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
9208 once_value_24
= fra
.me
.REG
[6];
9209 register_static_object(&once_value_24
);
9210 } else fra
.me
.REG
[6] = once_value_24
;
9211 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9212 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
9213 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9215 if (!once_value_25
) {
9216 fra
.me
.REG
[3] = BOX_NativeString(" does not require blocks.");
9217 REGB0
= TAG_Int(25);
9218 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9219 once_value_25
= fra
.me
.REG
[3];
9220 register_static_object(&once_value_25
);
9221 } else fra
.me
.REG
[3] = once_value_25
;
9222 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9223 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9224 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9225 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
9228 /* syntax/typing.nit:1526 */
9231 stack_frame_head
= fra
.me
.prev
;
9232 return fra
.me
.REG
[5];
9234 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
){
9235 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
9240 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9241 fra
.me
.file
= LOCATE_syntax___typing
;
9243 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___do_typing
;
9244 fra
.me
.has_broke
= 0;
9245 fra
.me
.REG_size
= 7;
9246 fra
.me
.nitni_local_ref_head
= NULL
;
9247 fra
.me
.REG
[0] = NIT_NULL
;
9248 fra
.me
.REG
[1] = NIT_NULL
;
9249 fra
.me
.REG
[2] = NIT_NULL
;
9250 fra
.me
.REG
[3] = NIT_NULL
;
9251 fra
.me
.REG
[4] = NIT_NULL
;
9252 fra
.me
.REG
[5] = NIT_NULL
;
9253 fra
.me
.REG
[6] = NIT_NULL
;
9262 /* syntax/typing.nit:1534 */
9263 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]);
9264 /* syntax/typing.nit:1535 */
9265 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9266 if (UNTAG_Bool(REGB0
)) {
9268 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9269 if (UNTAG_Bool(REGB2
)) {
9270 REGB2
= TAG_Bool(false);
9273 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9277 if (UNTAG_Bool(REGB0
)) {
9280 /* syntax/typing.nit:1536 */
9281 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
);
9282 /* syntax/typing.nit:1537 */
9283 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9284 if (UNTAG_Bool(REGB1
)) {
9285 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1537);
9287 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9288 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]);
9289 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9290 if (UNTAG_Bool(REGB1
)) {
9293 /* syntax/typing.nit:1538 */
9294 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9295 if (UNTAG_Bool(REGB1
)) {
9296 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1538);
9298 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9299 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]);
9300 /* syntax/typing.nit:1539 */
9301 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9302 if (UNTAG_Bool(REGB1
)) {
9304 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9305 if (UNTAG_Bool(REGB0
)) {
9306 REGB0
= TAG_Bool(false);
9309 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9313 if (UNTAG_Bool(REGB1
)) {
9314 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9315 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9316 if (UNTAG_Bool(REGB1
)) {
9318 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9319 if (UNTAG_Bool(REGB0
)) {
9320 REGB0
= TAG_Bool(false);
9323 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9327 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9329 REGB0
= TAG_Bool(false);
9332 if (UNTAG_Bool(REGB1
)) {
9335 /* syntax/typing.nit:1540 */
9336 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
9337 /* syntax/typing.nit:1541 */
9338 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9339 /* syntax/typing.nit:1542 */
9340 ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
9342 stack_frame_head
= fra
.me
.prev
;
9345 val_t
syntax___typing___AAbsSendExpr___get_property(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9346 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
9352 static val_t once_value_1
; /* Once value */
9353 static val_t once_value_2
; /* Once value */
9354 static val_t once_value_3
; /* Once value */
9355 static val_t once_value_4
; /* Once value */
9356 static val_t once_value_5
; /* Once value */
9357 static val_t once_value_6
; /* Once value */
9358 static val_t once_value_8
; /* Once value */
9359 static val_t once_value_9
; /* Once value */
9360 static val_t once_value_10
; /* Once value */
9361 static val_t once_value_11
; /* Once value */
9362 static val_t once_value_12
; /* Once value */
9363 static val_t once_value_13
; /* Once value */
9364 static val_t once_value_14
; /* Once value */
9365 static val_t once_value_15
; /* Once value */
9366 static val_t once_value_16
; /* Once value */
9367 static val_t once_value_17
; /* Once value */
9368 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9369 fra
.me
.file
= LOCATE_syntax___typing
;
9371 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_property
;
9372 fra
.me
.has_broke
= 0;
9373 fra
.me
.REG_size
= 10;
9374 fra
.me
.nitni_local_ref_head
= NULL
;
9375 fra
.me
.REG
[0] = NIT_NULL
;
9376 fra
.me
.REG
[1] = NIT_NULL
;
9377 fra
.me
.REG
[2] = NIT_NULL
;
9378 fra
.me
.REG
[3] = NIT_NULL
;
9379 fra
.me
.REG
[4] = NIT_NULL
;
9380 fra
.me
.REG
[5] = NIT_NULL
;
9381 fra
.me
.REG
[6] = NIT_NULL
;
9382 fra
.me
.REG
[7] = NIT_NULL
;
9383 fra
.me
.REG
[8] = NIT_NULL
;
9384 fra
.me
.REG
[9] = NIT_NULL
;
9390 /* syntax/typing.nit:1547 */
9391 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
9392 if (UNTAG_Bool(REGB1
)) {
9393 /* syntax/typing.nit:1548 */
9394 if (!once_value_1
) {
9395 if (!once_value_2
) {
9396 fra
.me
.REG
[4] = BOX_NativeString("==");
9398 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
9399 once_value_2
= fra
.me
.REG
[4];
9400 register_static_object(&once_value_2
);
9401 } else fra
.me
.REG
[4] = once_value_2
;
9402 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9403 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9404 once_value_1
= fra
.me
.REG
[4];
9405 register_static_object(&once_value_1
);
9406 } else fra
.me
.REG
[4] = once_value_1
;
9407 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9408 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9409 if (UNTAG_Bool(REGB1
)) {
9411 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9414 if (UNTAG_Bool(REGB1
)) {
9415 REGB1
= TAG_Bool(true);
9417 if (!once_value_3
) {
9418 if (!once_value_4
) {
9419 fra
.me
.REG
[4] = BOX_NativeString("!=");
9421 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB2
);
9422 once_value_4
= fra
.me
.REG
[4];
9423 register_static_object(&once_value_4
);
9424 } else fra
.me
.REG
[4] = once_value_4
;
9425 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9426 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9427 once_value_3
= fra
.me
.REG
[4];
9428 register_static_object(&once_value_3
);
9429 } else fra
.me
.REG
[4] = once_value_3
;
9430 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9431 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9432 if (UNTAG_Bool(REGB2
)) {
9434 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9439 if (UNTAG_Bool(REGB1
)) {
9440 /* syntax/typing.nit:1550 */
9441 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9442 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9443 fra
.me
.REG
[2] = fra
.me
.REG
[4];
9445 /* syntax/typing.nit:1552 */
9447 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9448 if (!once_value_5
) {
9449 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9450 REGB1
= TAG_Int(15);
9451 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9452 once_value_5
= fra
.me
.REG
[5];
9453 register_static_object(&once_value_5
);
9454 } else fra
.me
.REG
[5] = once_value_5
;
9455 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9456 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9457 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9459 if (!once_value_6
) {
9460 fra
.me
.REG
[5] = BOX_NativeString("' call on 'null'.");
9461 REGB1
= TAG_Int(17);
9462 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9463 once_value_6
= fra
.me
.REG
[5];
9464 register_static_object(&once_value_6
);
9465 } else fra
.me
.REG
[5] = once_value_6
;
9466 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9467 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9468 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9469 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9470 /* syntax/typing.nit:1553 */
9471 fra
.me
.REG
[4] = NIT_NULL
;
9475 /* syntax/typing.nit:1556 */
9476 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9477 /* syntax/typing.nit:1557 */
9478 fra
.me
.REG
[6] = NIT_NULL
;
9479 /* syntax/typing.nit:1558 */
9480 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9481 if (UNTAG_Bool(REGB1
)) {
9482 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9483 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9485 /* syntax/typing.nit:1559 */
9486 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9487 if (UNTAG_Bool(REGB1
)) {
9489 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9490 if (UNTAG_Bool(REGB2
)) {
9491 REGB2
= TAG_Bool(false);
9494 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9498 if (UNTAG_Bool(REGB1
)) {
9499 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9500 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9501 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9503 REGB2
= TAG_Bool(false);
9506 if (UNTAG_Bool(REGB1
)) {
9507 /* syntax/typing.nit:1560 */
9508 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9509 /* ../lib/standard/collection/array.nit:24 */
9510 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9511 if (UNTAG_Bool(REGB1
)) {
9513 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9515 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9516 /* syntax/typing.nit:1561 */
9518 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
9519 if (UNTAG_Bool(REGB3
)) {
9521 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9523 /* ../lib/standard/kernel.nit:234 */
9524 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
9525 /* syntax/typing.nit:1561 */
9526 if (UNTAG_Bool(REGB2
)) {
9527 /* syntax/typing.nit:1562 */
9529 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
9530 if (!once_value_8
) {
9531 fra
.me
.REG
[9] = BOX_NativeString("Error: Ambigous method name '");
9532 REGB2
= TAG_Int(29);
9533 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9534 once_value_8
= fra
.me
.REG
[9];
9535 register_static_object(&once_value_8
);
9536 } else fra
.me
.REG
[9] = once_value_8
;
9537 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9538 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9539 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9540 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9541 if (!once_value_9
) {
9542 fra
.me
.REG
[9] = BOX_NativeString("' for ");
9544 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9545 once_value_9
= fra
.me
.REG
[9];
9546 register_static_object(&once_value_9
);
9547 } else fra
.me
.REG
[9] = once_value_9
;
9548 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9550 if (!once_value_10
) {
9551 fra
.me
.REG
[9] = BOX_NativeString(", ");
9553 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9554 once_value_10
= fra
.me
.REG
[9];
9555 register_static_object(&once_value_10
);
9556 } else fra
.me
.REG
[9] = once_value_10
;
9557 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9558 fra
.me
.REG
[9] = CALL_standard___string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
9559 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9560 if (!once_value_11
) {
9561 fra
.me
.REG
[9] = BOX_NativeString(". Use explicit designation.");
9562 REGB2
= TAG_Int(27);
9563 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9564 once_value_11
= fra
.me
.REG
[9];
9565 register_static_object(&once_value_11
);
9566 } else fra
.me
.REG
[9] = once_value_11
;
9567 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9568 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9569 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9570 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
9571 /* syntax/typing.nit:1563 */
9572 fra
.me
.REG
[4] = NIT_NULL
;
9575 /* ../lib/standard/collection/array.nit:24 */
9576 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9577 if (UNTAG_Bool(REGB2
)) {
9579 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9581 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9582 /* syntax/typing.nit:1564 */
9584 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
9585 if (UNTAG_Bool(REGB3
)) {
9587 /* ../lib/standard/kernel.nit:227 */
9588 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
9589 /* syntax/typing.nit:1564 */
9592 if (UNTAG_Bool(REGB3
)) {
9593 /* syntax/typing.nit:1565 */
9594 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9595 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9596 if (UNTAG_Bool(REGB3
)) {
9597 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1565);
9599 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9600 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
9601 /* syntax/typing.nit:1566 */
9602 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
9603 if (UNTAG_Bool(REGB3
)) {
9605 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1566);
9607 /* syntax/typing.nit:1567 */
9608 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9612 /* syntax/typing.nit:1571 */
9613 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9614 if (UNTAG_Bool(REGB3
)) {
9616 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9617 if (UNTAG_Bool(REGB1
)) {
9618 REGB1
= TAG_Bool(false);
9621 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9625 if (UNTAG_Bool(REGB3
)) {
9626 /* syntax/typing.nit:1572 */
9627 if (UNTAG_Bool(REGB0
)) {
9628 /* syntax/typing.nit:1573 */
9630 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9631 if (!once_value_12
) {
9632 fra
.me
.REG
[5] = BOX_NativeString("Error: Method or variable '");
9633 REGB0
= TAG_Int(27);
9634 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9635 once_value_12
= fra
.me
.REG
[5];
9636 register_static_object(&once_value_12
);
9637 } else fra
.me
.REG
[5] = once_value_12
;
9638 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9640 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9641 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9642 if (!once_value_13
) {
9643 fra
.me
.REG
[5] = BOX_NativeString("' unknown in ");
9644 REGB0
= TAG_Int(13);
9645 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9646 once_value_13
= fra
.me
.REG
[5];
9647 register_static_object(&once_value_13
);
9648 } else fra
.me
.REG
[5] = once_value_13
;
9649 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9650 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9651 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9652 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9653 if (!once_value_14
) {
9654 fra
.me
.REG
[5] = BOX_NativeString(".");
9656 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9657 once_value_14
= fra
.me
.REG
[5];
9658 register_static_object(&once_value_14
);
9659 } else fra
.me
.REG
[5] = once_value_14
;
9660 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9661 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9662 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9663 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9665 /* syntax/typing.nit:1575 */
9667 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9668 if (!once_value_15
) {
9669 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9670 REGB0
= TAG_Int(15);
9671 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9672 once_value_15
= fra
.me
.REG
[5];
9673 register_static_object(&once_value_15
);
9674 } else fra
.me
.REG
[5] = once_value_15
;
9675 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9677 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9678 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9679 if (!once_value_16
) {
9680 fra
.me
.REG
[3] = BOX_NativeString("' doesn't exists in ");
9681 REGB0
= TAG_Int(20);
9682 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9683 once_value_16
= fra
.me
.REG
[3];
9684 register_static_object(&once_value_16
);
9685 } else fra
.me
.REG
[3] = once_value_16
;
9686 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9687 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9688 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9690 if (!once_value_17
) {
9691 fra
.me
.REG
[2] = BOX_NativeString(".");
9693 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
9694 once_value_17
= fra
.me
.REG
[2];
9695 register_static_object(&once_value_17
);
9696 } else fra
.me
.REG
[2] = once_value_17
;
9697 fra
.me
.REG
[2] = fra
.me
.REG
[2];
9698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9699 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9700 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9702 /* syntax/typing.nit:1577 */
9703 fra
.me
.REG
[4] = NIT_NULL
;
9706 /* syntax/typing.nit:1579 */
9707 fra
.me
.REG
[4] = fra
.me
.REG
[6];
9710 stack_frame_head
= fra
.me
.prev
;
9711 return fra
.me
.REG
[4];
9713 val_t
syntax___typing___AAbsSendExpr___get_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9714 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
9717 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9718 fra
.me
.file
= LOCATE_syntax___typing
;
9720 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_signature
;
9721 fra
.me
.has_broke
= 0;
9722 fra
.me
.REG_size
= 6;
9723 fra
.me
.nitni_local_ref_head
= NULL
;
9724 fra
.me
.REG
[0] = NIT_NULL
;
9725 fra
.me
.REG
[1] = NIT_NULL
;
9726 fra
.me
.REG
[2] = NIT_NULL
;
9727 fra
.me
.REG
[3] = NIT_NULL
;
9728 fra
.me
.REG
[4] = NIT_NULL
;
9729 fra
.me
.REG
[5] = NIT_NULL
;
9735 /* syntax/typing.nit:1585 */
9736 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9737 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9738 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
);
9739 /* syntax/typing.nit:1586 */
9740 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
9741 /* syntax/typing.nit:1587 */
9742 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9743 if (UNTAG_Bool(REGB0
)) {
9744 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9745 fra
.me
.REG
[2] = fra
.me
.REG
[3];
9747 /* syntax/typing.nit:1588 */
9750 stack_frame_head
= fra
.me
.prev
;
9751 return fra
.me
.REG
[2];
9753 val_t
syntax___typing___AAbsSendExpr___prop(val_t p0
){
9754 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9757 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9758 fra
.me
.file
= LOCATE_syntax___typing
;
9760 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___prop
;
9761 fra
.me
.has_broke
= 0;
9762 fra
.me
.REG_size
= 2;
9763 fra
.me
.nitni_local_ref_head
= NULL
;
9764 fra
.me
.REG
[0] = NIT_NULL
;
9765 fra
.me
.REG
[1] = NIT_NULL
;
9767 /* syntax/typing.nit:1591 */
9768 fra
.me
.REG
[1] = fra
.me
.REG
[0];
9769 /* syntax/typing.nit:1592 */
9770 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[1]);
9771 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
9772 if (UNTAG_Bool(REGB0
)) {
9774 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1592);
9778 stack_frame_head
= fra
.me
.prev
;
9779 return fra
.me
.REG
[1];
9781 val_t
syntax___typing___AAbsSendExpr___return_type(val_t p0
){
9782 struct {struct stack_frame_t me
;} fra
;
9784 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9785 fra
.me
.file
= LOCATE_syntax___typing
;
9787 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___return_type
;
9788 fra
.me
.has_broke
= 0;
9789 fra
.me
.REG_size
= 1;
9790 fra
.me
.nitni_local_ref_head
= NULL
;
9791 fra
.me
.REG
[0] = NIT_NULL
;
9793 /* syntax/typing.nit:1595 */
9794 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]);
9795 stack_frame_head
= fra
.me
.prev
;
9796 return fra
.me
.REG
[0];
9798 void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0
, val_t p1
, val_t p2
){
9799 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
9804 static val_t once_value_1
; /* Once value */
9805 static val_t once_value_2
; /* Once value */
9806 static val_t once_value_3
; /* Once value */
9807 static val_t once_value_4
; /* Once value */
9808 static val_t once_value_5
; /* Once value */
9809 static val_t once_value_6
; /* Once value */
9810 static val_t once_value_7
; /* Once value */
9811 static val_t once_value_8
; /* Once value */
9812 static val_t once_value_9
; /* Once value */
9813 static val_t once_value_10
; /* Once value */
9814 static val_t once_value_11
; /* Once value */
9815 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9816 fra
.me
.file
= LOCATE_syntax___typing
;
9818 fra
.me
.meth
= LOCATE_syntax___typing___ASuperInitCall___register_super_init_call
;
9819 fra
.me
.has_broke
= 0;
9820 fra
.me
.REG_size
= 11;
9821 fra
.me
.nitni_local_ref_head
= NULL
;
9822 fra
.me
.REG
[0] = NIT_NULL
;
9823 fra
.me
.REG
[1] = NIT_NULL
;
9824 fra
.me
.REG
[2] = NIT_NULL
;
9825 fra
.me
.REG
[3] = NIT_NULL
;
9826 fra
.me
.REG
[4] = NIT_NULL
;
9827 fra
.me
.REG
[5] = NIT_NULL
;
9828 fra
.me
.REG
[6] = NIT_NULL
;
9829 fra
.me
.REG
[7] = NIT_NULL
;
9830 fra
.me
.REG
[8] = NIT_NULL
;
9831 fra
.me
.REG
[9] = NIT_NULL
;
9832 fra
.me
.REG
[10] = NIT_NULL
;
9836 /* syntax/typing.nit:1602 */
9837 fra
.me
.REG
[3] = fra
.me
.REG
[0];
9838 /* syntax/typing.nit:1604 */
9839 fra
.me
.REG
[4] = CALL_parser___parser_prod___ANode___parent(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9840 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9841 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[4],fra
.me
.REG
[5]));
9842 if (UNTAG_Bool(REGB0
)) {
9844 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9845 if (UNTAG_Bool(REGB1
)) {
9846 REGB1
= TAG_Bool(false);
9849 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9853 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9854 if (UNTAG_Bool(REGB0
)) {
9855 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9856 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[5]));
9857 if (UNTAG_Bool(REGB0
)) {
9859 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9862 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9864 REGB1
= TAG_Bool(false);
9867 if (UNTAG_Bool(REGB0
)) {
9868 /* syntax/typing.nit:1605 */
9870 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9871 if (!once_value_1
) {
9872 fra
.me
.REG
[4] = BOX_NativeString("Error: Constructor invocation ");
9873 REGB0
= TAG_Int(30);
9874 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9875 once_value_1
= fra
.me
.REG
[4];
9876 register_static_object(&once_value_1
);
9877 } else fra
.me
.REG
[4] = once_value_1
;
9878 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9879 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9880 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9882 if (!once_value_2
) {
9883 fra
.me
.REG
[4] = BOX_NativeString(" must not be in nested block.");
9884 REGB0
= TAG_Int(29);
9885 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9886 once_value_2
= fra
.me
.REG
[4];
9887 register_static_object(&once_value_2
);
9888 } else fra
.me
.REG
[4] = once_value_2
;
9889 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9890 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9891 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9892 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
9894 /* syntax/typing.nit:1607 */
9895 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9896 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9897 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9898 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9899 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9900 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9901 /* syntax/typing.nit:1608 */
9902 fra
.me
.REG
[5] = NIT_NULL
;
9903 /* syntax/typing.nit:1609 */
9904 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___explicit_super_init_calls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9905 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
9906 if (UNTAG_Bool(REGB0
)) {
9908 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1609);
9910 /* syntax/typing.nit:1610 */
9911 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9912 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9913 if (UNTAG_Bool(REGB0
)) {
9914 /* syntax/typing.nit:1611 */
9915 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9916 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
9917 if (UNTAG_Bool(REGB0
)) {
9918 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1611);
9920 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9921 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9922 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9923 fra
.me
.REG
[5] = fra
.me
.REG
[0];
9925 /* syntax/typing.nit:1613 */
9926 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9927 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9928 fra
.me
.REG
[0] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9929 /* syntax/typing.nit:1614 */
9930 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9931 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
9932 if (UNTAG_Bool(REGB0
)) {
9934 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
9937 if (UNTAG_Bool(REGB0
)) {
9938 /* syntax/typing.nit:1615 */
9939 REGB0
= TAG_Bool(true);
9940 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
9942 /* syntax/typing.nit:1616 */
9943 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
9944 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9945 if (UNTAG_Bool(REGB0
)) {
9946 /* syntax/typing.nit:1617 */
9948 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9949 if (!once_value_3
) {
9950 fra
.me
.REG
[8] = BOX_NativeString("Error: Constructor of class ");
9951 REGB0
= TAG_Int(28);
9952 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9953 once_value_3
= fra
.me
.REG
[8];
9954 register_static_object(&once_value_3
);
9955 } else fra
.me
.REG
[8] = once_value_3
;
9956 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9957 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9958 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9960 if (!once_value_4
) {
9961 fra
.me
.REG
[8] = BOX_NativeString(" must be one in ");
9962 REGB0
= TAG_Int(16);
9963 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9964 once_value_4
= fra
.me
.REG
[8];
9965 register_static_object(&once_value_4
);
9966 } else fra
.me
.REG
[8] = once_value_4
;
9967 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9969 if (!once_value_5
) {
9970 fra
.me
.REG
[8] = BOX_NativeString(", ");
9972 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9973 once_value_5
= fra
.me
.REG
[8];
9974 register_static_object(&once_value_5
);
9975 } else fra
.me
.REG
[8] = once_value_5
;
9976 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9977 fra
.me
.REG
[8] = CALL_standard___string___Collection___join(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[8]);
9978 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9979 if (!once_value_6
) {
9980 fra
.me
.REG
[8] = BOX_NativeString(".");
9982 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9983 once_value_6
= fra
.me
.REG
[8];
9984 register_static_object(&once_value_6
);
9985 } else fra
.me
.REG
[8] = once_value_6
;
9986 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9987 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9988 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9989 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
9991 /* syntax/typing.nit:1618 */
9992 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[4],fra
.me
.REG
[5]));
9993 if (UNTAG_Bool(REGB0
)) {
9995 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9998 if (UNTAG_Bool(REGB0
)) {
9999 /* syntax/typing.nit:1619 */
10000 REGB0
= TAG_Int(3);
10001 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10002 if (!once_value_7
) {
10003 fra
.me
.REG
[8] = BOX_NativeString("Error: Only one super constructor invocation of class ");
10004 REGB0
= TAG_Int(54);
10005 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10006 once_value_7
= fra
.me
.REG
[8];
10007 register_static_object(&once_value_7
);
10008 } else fra
.me
.REG
[8] = once_value_7
;
10009 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10010 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10011 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10012 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10013 if (!once_value_8
) {
10014 fra
.me
.REG
[8] = BOX_NativeString(" is allowed.");
10015 REGB0
= TAG_Int(12);
10016 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10017 once_value_8
= fra
.me
.REG
[8];
10018 register_static_object(&once_value_8
);
10019 } else fra
.me
.REG
[8] = once_value_8
;
10020 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10021 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10022 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10023 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
10025 /* ../lib/standard/collection/array.nit:269 */
10026 REGB0
= TAG_Int(0);
10027 /* ../lib/standard/collection/array.nit:270 */
10028 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
10029 if (UNTAG_Bool(REGB1
)) {
10031 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
10033 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
10034 /* ../lib/standard/collection/array.nit:271 */
10035 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
10036 /* ../lib/standard/collection/array.nit:272 */
10038 /* ../lib/standard/collection/array.nit:24 */
10039 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
10040 if (UNTAG_Bool(REGB1
)) {
10042 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
10044 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
10045 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
10046 if (UNTAG_Bool(REGB2
)) {
10048 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
10050 /* ../lib/standard/kernel.nit:232 */
10051 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
10052 /* ../lib/standard/collection/array.nit:272 */
10053 if (UNTAG_Bool(REGB1
)) {
10054 /* ../lib/standard/collection/array.nit:273 */
10055 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
10056 if (UNTAG_Bool(REGB1
)) {
10057 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
10059 /* ../lib/standard/collection/array.nit:718 */
10060 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
10061 /* syntax/typing.nit:1622 */
10062 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[8],fra
.me
.REG
[5]));
10063 if (UNTAG_Bool(REGB1
)) {
10065 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[5]);
10068 if (UNTAG_Bool(REGB1
)) {
10069 /* syntax/typing.nit:1623 */
10070 fra
.me
.REG
[5] = NIT_NULL
;
10072 /* syntax/typing.nit:1624 */
10073 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[8],fra
.me
.REG
[4]));
10074 if (UNTAG_Bool(REGB1
)) {
10076 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[4]);
10079 if (UNTAG_Bool(REGB1
)) {
10080 /* syntax/typing.nit:1625 */
10081 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10082 if (UNTAG_Bool(REGB1
)) {
10084 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10085 if (UNTAG_Bool(REGB2
)) {
10086 REGB2
= TAG_Bool(false);
10089 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
10093 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10094 if (UNTAG_Bool(REGB1
)) {
10095 /* syntax/typing.nit:1626 */
10096 REGB1
= TAG_Int(5);
10097 fra
.me
.REG
[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10098 if (!once_value_9
) {
10099 fra
.me
.REG
[10] = BOX_NativeString("Error: Constructor of ");
10100 REGB1
= TAG_Int(22);
10101 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB1
);
10102 once_value_9
= fra
.me
.REG
[10];
10103 register_static_object(&once_value_9
);
10104 } else fra
.me
.REG
[10] = once_value_9
;
10105 fra
.me
.REG
[10] = fra
.me
.REG
[10];
10106 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
10107 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
10108 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
10109 if (!once_value_10
) {
10110 fra
.me
.REG
[8] = BOX_NativeString(" must be invoked before constructor of ");
10111 REGB1
= TAG_Int(39);
10112 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
10113 once_value_10
= fra
.me
.REG
[8];
10114 register_static_object(&once_value_10
);
10115 } else fra
.me
.REG
[8] = once_value_10
;
10116 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10117 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
10118 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10119 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
10120 if (!once_value_11
) {
10121 fra
.me
.REG
[8] = BOX_NativeString("");
10122 REGB1
= TAG_Int(0);
10123 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
10124 once_value_11
= fra
.me
.REG
[8];
10125 register_static_object(&once_value_11
);
10126 } else fra
.me
.REG
[8] = once_value_11
;
10127 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10128 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
10129 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
10130 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[9]);
10132 /* syntax/typing.nit:1628 */
10133 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
10134 /* syntax/typing.nit:1629 */
10138 /* ../lib/standard/collection/array.nit:274 */
10139 REGB1
= TAG_Int(1);
10140 /* ../lib/standard/kernel.nit:235 */
10141 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
10142 /* ../lib/standard/collection/array.nit:274 */
10145 /* ../lib/standard/collection/array.nit:272 */
10154 stack_frame_head
= fra
.me
.prev
;
10157 val_t
syntax___typing___ANewExpr___compute_raw_arguments(val_t p0
){
10158 struct {struct stack_frame_t me
;} fra
;
10160 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10161 fra
.me
.file
= LOCATE_syntax___typing
;
10162 fra
.me
.line
= 1638;
10163 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___compute_raw_arguments
;
10164 fra
.me
.has_broke
= 0;
10165 fra
.me
.REG_size
= 1;
10166 fra
.me
.nitni_local_ref_head
= NULL
;
10167 fra
.me
.REG
[0] = NIT_NULL
;
10168 fra
.me
.REG
[0] = p0
;
10169 /* syntax/typing.nit:1638 */
10170 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ANewExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10171 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10174 stack_frame_head
= fra
.me
.prev
;
10175 return fra
.me
.REG
[0];
10177 void syntax___typing___ANewExpr___after_typing(val_t p0
, val_t p1
){
10178 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10182 static val_t once_value_2
; /* Once value */
10183 static val_t once_value_3
; /* Once value */
10184 static val_t once_value_4
; /* Once value */
10185 static val_t once_value_5
; /* Once value */
10186 static val_t once_value_6
; /* Once value */
10187 static val_t once_value_7
; /* Once value */
10188 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10189 fra
.me
.file
= LOCATE_syntax___typing
;
10190 fra
.me
.line
= 1639;
10191 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___after_typing
;
10192 fra
.me
.has_broke
= 0;
10193 fra
.me
.REG_size
= 5;
10194 fra
.me
.nitni_local_ref_head
= NULL
;
10195 fra
.me
.REG
[0] = NIT_NULL
;
10196 fra
.me
.REG
[1] = NIT_NULL
;
10197 fra
.me
.REG
[2] = NIT_NULL
;
10198 fra
.me
.REG
[3] = NIT_NULL
;
10199 fra
.me
.REG
[4] = NIT_NULL
;
10200 fra
.me
.REG
[0] = p0
;
10201 fra
.me
.REG
[1] = p1
;
10202 /* syntax/typing.nit:1641 */
10203 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10204 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10205 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10206 if (UNTAG_Bool(REGB0
)) {
10209 /* syntax/typing.nit:1642 */
10210 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10211 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10212 /* syntax/typing.nit:1643 */
10213 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10214 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10215 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10216 if (UNTAG_Bool(REGB0
)) {
10217 /* syntax/typing.nit:1644 */
10218 REGB0
= TAG_Int(3);
10219 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10220 if (!once_value_2
) {
10221 fra
.me
.REG
[4] = BOX_NativeString("Error: try to instantiate abstract class ");
10222 REGB0
= TAG_Int(41);
10223 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10224 once_value_2
= fra
.me
.REG
[4];
10225 register_static_object(&once_value_2
);
10226 } else fra
.me
.REG
[4] = once_value_2
;
10227 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10228 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10229 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10230 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10231 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10232 if (!once_value_3
) {
10233 fra
.me
.REG
[4] = BOX_NativeString(".");
10234 REGB0
= TAG_Int(1);
10235 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10236 once_value_3
= fra
.me
.REG
[4];
10237 register_static_object(&once_value_3
);
10238 } else fra
.me
.REG
[4] = once_value_3
;
10239 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10241 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10242 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10243 /* syntax/typing.nit:1645 */
10246 /* syntax/typing.nit:1648 */
10247 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10248 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10249 if (UNTAG_Bool(REGB0
)) {
10251 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10252 if (UNTAG_Bool(REGB1
)) {
10253 REGB1
= TAG_Bool(false);
10256 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10260 if (UNTAG_Bool(REGB0
)) {
10261 /* syntax/typing.nit:1649 */
10262 if (!once_value_4
) {
10263 if (!once_value_5
) {
10264 fra
.me
.REG
[3] = BOX_NativeString("init");
10265 REGB0
= TAG_Int(4);
10266 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
10267 once_value_5
= fra
.me
.REG
[3];
10268 register_static_object(&once_value_5
);
10269 } else fra
.me
.REG
[3] = once_value_5
;
10270 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10271 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10272 once_value_4
= fra
.me
.REG
[3];
10273 register_static_object(&once_value_4
);
10274 } else fra
.me
.REG
[3] = once_value_4
;
10275 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10277 /* syntax/typing.nit:1651 */
10278 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10279 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10280 if (UNTAG_Bool(REGB0
)) {
10281 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1651);
10283 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10284 fra
.me
.REG
[3] = fra
.me
.REG
[4];
10286 /* syntax/typing.nit:1654 */
10287 REGB0
= TAG_Bool(false);
10288 REGB1
= TAG_Bool(false);
10289 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10290 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
);
10291 /* syntax/typing.nit:1655 */
10292 fra
.me
.REG
[4] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
10293 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10294 if (UNTAG_Bool(REGB1
)) {
10296 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10297 if (UNTAG_Bool(REGB0
)) {
10298 REGB0
= TAG_Bool(false);
10301 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10305 if (UNTAG_Bool(REGB1
)) {
10308 /* syntax/typing.nit:1657 */
10309 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10310 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10311 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10312 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10313 if (UNTAG_Bool(REGB1
)) {
10314 /* syntax/typing.nit:1658 */
10315 REGB1
= TAG_Int(3);
10316 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10317 if (!once_value_6
) {
10318 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
10319 REGB1
= TAG_Int(7);
10320 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
10321 once_value_6
= fra
.me
.REG
[3];
10322 register_static_object(&once_value_6
);
10323 } else fra
.me
.REG
[3] = once_value_6
;
10324 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10325 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10326 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10327 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10328 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10329 if (!once_value_7
) {
10330 fra
.me
.REG
[3] = BOX_NativeString(" is not a constructor.");
10331 REGB1
= TAG_Int(22);
10332 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
10333 once_value_7
= fra
.me
.REG
[3];
10334 register_static_object(&once_value_7
);
10335 } else fra
.me
.REG
[3] = once_value_7
;
10336 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10337 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10338 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10339 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
10340 /* syntax/typing.nit:1659 */
10343 /* syntax/typing.nit:1661 */
10344 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10345 /* syntax/typing.nit:1662 */
10346 REGB1
= TAG_Bool(true);
10347 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
10349 stack_frame_head
= fra
.me
.prev
;
10352 val_t
syntax___typing___ASendExpr___name(val_t p0
){
10353 struct {struct stack_frame_t me
;} fra
;
10355 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10356 fra
.me
.file
= LOCATE_syntax___typing
;
10357 fra
.me
.line
= 1668;
10358 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___name
;
10359 fra
.me
.has_broke
= 0;
10360 fra
.me
.REG_size
= 0;
10361 fra
.me
.nitni_local_ref_head
= NULL
;
10362 /* syntax/typing.nit:1668 */
10363 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1668);
10364 stack_frame_head
= fra
.me
.prev
;
10367 val_t
syntax___typing___ASendExpr___closure_defs(val_t p0
){
10368 struct {struct stack_frame_t me
;} fra
;
10370 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10371 fra
.me
.file
= LOCATE_syntax___typing
;
10372 fra
.me
.line
= 1671;
10373 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___closure_defs
;
10374 fra
.me
.has_broke
= 0;
10375 fra
.me
.REG_size
= 1;
10376 fra
.me
.nitni_local_ref_head
= NULL
;
10377 fra
.me
.REG
[0] = NIT_NULL
;
10378 fra
.me
.REG
[0] = p0
;
10379 /* syntax/typing.nit:1672 */
10380 fra
.me
.REG
[0] = NIT_NULL
;
10383 stack_frame_head
= fra
.me
.prev
;
10384 return fra
.me
.REG
[0];
10386 void syntax___typing___ASendExpr___after_typing(val_t p0
, val_t p1
){
10387 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10389 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10390 fra
.me
.file
= LOCATE_syntax___typing
;
10391 fra
.me
.line
= 1674;
10392 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___after_typing
;
10393 fra
.me
.has_broke
= 0;
10394 fra
.me
.REG_size
= 2;
10395 fra
.me
.nitni_local_ref_head
= NULL
;
10396 fra
.me
.REG
[0] = NIT_NULL
;
10397 fra
.me
.REG
[1] = NIT_NULL
;
10398 fra
.me
.REG
[0] = p0
;
10399 fra
.me
.REG
[1] = p1
;
10400 /* syntax/typing.nit:1676 */
10401 CALL_syntax___typing___ASendExpr___do_all_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10402 stack_frame_head
= fra
.me
.prev
;
10405 void syntax___typing___ASendExpr___do_all_typing(val_t p0
, val_t p1
){
10406 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10410 static val_t once_value_2
; /* Once value */
10411 static val_t once_value_3
; /* Once value */
10412 static val_t once_value_4
; /* Once value */
10413 static val_t once_value_5
; /* Once value */
10414 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10415 fra
.me
.file
= LOCATE_syntax___typing
;
10416 fra
.me
.line
= 1679;
10417 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___do_all_typing
;
10418 fra
.me
.has_broke
= 0;
10419 fra
.me
.REG_size
= 7;
10420 fra
.me
.nitni_local_ref_head
= NULL
;
10421 fra
.me
.REG
[0] = NIT_NULL
;
10422 fra
.me
.REG
[1] = NIT_NULL
;
10423 fra
.me
.REG
[2] = NIT_NULL
;
10424 fra
.me
.REG
[3] = NIT_NULL
;
10425 fra
.me
.REG
[4] = NIT_NULL
;
10426 fra
.me
.REG
[5] = NIT_NULL
;
10427 fra
.me
.REG
[6] = NIT_NULL
;
10428 fra
.me
.REG
[0] = p0
;
10429 fra
.me
.REG
[1] = p1
;
10430 /* syntax/typing.nit:1679 */
10431 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10432 /* syntax/typing.nit:1681 */
10433 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10434 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10435 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10436 if (UNTAG_Bool(REGB0
)) {
10439 /* syntax/typing.nit:1682 */
10440 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10441 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10442 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10443 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10444 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10445 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10446 fra
.me
.REG
[4] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10447 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10448 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10449 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]);
10450 /* syntax/typing.nit:1683 */
10451 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10452 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10453 if (UNTAG_Bool(REGB1
)) {
10455 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10456 if (UNTAG_Bool(REGB0
)) {
10457 REGB0
= TAG_Bool(false);
10460 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
10464 if (UNTAG_Bool(REGB1
)) {
10467 /* syntax/typing.nit:1684 */
10468 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10469 REGB1
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
10470 if (UNTAG_Bool(REGB1
)) {
10472 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1684);
10474 /* syntax/typing.nit:1686 */
10475 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10476 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10477 if (UNTAG_Bool(REGB1
)) {
10478 /* syntax/typing.nit:1687 */
10479 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10480 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10481 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10482 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10483 if (UNTAG_Bool(REGB1
)) {
10484 /* syntax/typing.nit:1688 */
10485 REGB1
= TAG_Int(3);
10486 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10487 if (!once_value_2
) {
10488 fra
.me
.REG
[5] = BOX_NativeString("Error: try to invoke constructor ");
10489 REGB1
= TAG_Int(33);
10490 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10491 once_value_2
= fra
.me
.REG
[5];
10492 register_static_object(&once_value_2
);
10493 } else fra
.me
.REG
[5] = once_value_2
;
10494 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10495 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10496 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10497 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10498 if (!once_value_3
) {
10499 fra
.me
.REG
[5] = BOX_NativeString(" in a method.");
10500 REGB1
= TAG_Int(13);
10501 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10502 once_value_3
= fra
.me
.REG
[5];
10503 register_static_object(&once_value_3
);
10504 } else fra
.me
.REG
[5] = once_value_3
;
10505 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10506 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10507 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10508 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10510 /* syntax/typing.nit:1689 */
10511 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10512 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10513 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10514 if (UNTAG_Bool(REGB1
)) {
10515 /* syntax/typing.nit:1690 */
10516 REGB1
= TAG_Int(3);
10517 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10518 if (!once_value_4
) {
10519 fra
.me
.REG
[5] = BOX_NativeString("Error: constructor ");
10520 REGB1
= TAG_Int(19);
10521 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10522 once_value_4
= fra
.me
.REG
[5];
10523 register_static_object(&once_value_4
);
10524 } else fra
.me
.REG
[5] = once_value_4
;
10525 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10526 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10527 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10528 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10529 if (!once_value_5
) {
10530 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
10531 REGB1
= TAG_Int(26);
10532 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10533 once_value_5
= fra
.me
.REG
[5];
10534 register_static_object(&once_value_5
);
10535 } else fra
.me
.REG
[5] = once_value_5
;
10536 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10537 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10538 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10539 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10541 /* syntax/typing.nit:1692 */
10542 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[6]);
10546 /* syntax/typing.nit:1696 */
10547 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AAbsSendExpr___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10548 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
10549 /* syntax/typing.nit:1697 */
10550 REGB1
= TAG_Bool(true);
10551 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB1
;
10553 stack_frame_head
= fra
.me
.prev
;
10556 val_t
syntax___typing___ASendReassignExpr___read_prop(val_t p0
){
10557 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10560 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10561 fra
.me
.file
= LOCATE_syntax___typing
;
10562 fra
.me
.line
= 1702;
10563 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___read_prop
;
10564 fra
.me
.has_broke
= 0;
10565 fra
.me
.REG_size
= 2;
10566 fra
.me
.nitni_local_ref_head
= NULL
;
10567 fra
.me
.REG
[0] = NIT_NULL
;
10568 fra
.me
.REG
[1] = NIT_NULL
;
10569 fra
.me
.REG
[0] = p0
;
10570 /* syntax/typing.nit:1702 */
10571 fra
.me
.REG
[1] = fra
.me
.REG
[0];
10572 fra
.me
.REG
[1] = ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[1]);
10573 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
10574 if (UNTAG_Bool(REGB0
)) {
10576 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1702);
10580 stack_frame_head
= fra
.me
.prev
;
10581 return fra
.me
.REG
[1];
10583 void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0
, val_t p1
){
10584 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10589 static val_t once_value_2
; /* Once value */
10590 static val_t once_value_3
; /* Once value */
10591 static val_t once_value_4
; /* Once value */
10592 static val_t once_value_5
; /* Once value */
10593 static val_t once_value_6
; /* Once value */
10594 static val_t once_value_7
; /* Once value */
10595 static val_t once_value_8
; /* Once value */
10596 static val_t once_value_9
; /* Once value */
10597 static val_t once_value_10
; /* Once value */
10598 static val_t once_value_11
; /* Once value */
10599 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10600 fra
.me
.file
= LOCATE_syntax___typing
;
10601 fra
.me
.line
= 1704;
10602 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___do_all_typing
;
10603 fra
.me
.has_broke
= 0;
10604 fra
.me
.REG_size
= 7;
10605 fra
.me
.nitni_local_ref_head
= NULL
;
10606 fra
.me
.REG
[0] = NIT_NULL
;
10607 fra
.me
.REG
[1] = NIT_NULL
;
10608 fra
.me
.REG
[2] = NIT_NULL
;
10609 fra
.me
.REG
[3] = NIT_NULL
;
10610 fra
.me
.REG
[4] = NIT_NULL
;
10611 fra
.me
.REG
[5] = NIT_NULL
;
10612 fra
.me
.REG
[6] = NIT_NULL
;
10613 fra
.me
.REG
[0] = p0
;
10614 fra
.me
.REG
[1] = p1
;
10615 /* syntax/typing.nit:1704 */
10616 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10617 /* syntax/typing.nit:1706 */
10618 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10619 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10620 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10621 if (UNTAG_Bool(REGB0
)) {
10624 /* syntax/typing.nit:1707 */
10625 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10626 /* syntax/typing.nit:1708 */
10627 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10628 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10629 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10630 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10631 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10632 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10633 fra
.me
.REG
[5] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10634 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
);
10635 /* syntax/typing.nit:1709 */
10636 fra
.me
.REG
[5] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10637 /* syntax/typing.nit:1710 */
10638 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10639 if (UNTAG_Bool(REGB1
)) {
10641 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10642 if (UNTAG_Bool(REGB0
)) {
10643 REGB0
= TAG_Bool(false);
10646 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
10650 if (UNTAG_Bool(REGB1
)) {
10653 /* syntax/typing.nit:1711 */
10654 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10655 if (UNTAG_Bool(REGB1
)) {
10656 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1711);
10658 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10659 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10660 if (UNTAG_Bool(REGB1
)) {
10661 /* syntax/typing.nit:1712 */
10662 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10663 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10664 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10665 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10666 if (UNTAG_Bool(REGB1
)) {
10667 /* syntax/typing.nit:1713 */
10668 REGB1
= TAG_Int(3);
10669 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10670 if (!once_value_2
) {
10671 fra
.me
.REG
[6] = BOX_NativeString("Error: try to invoke constructor ");
10672 REGB1
= TAG_Int(33);
10673 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10674 once_value_2
= fra
.me
.REG
[6];
10675 register_static_object(&once_value_2
);
10676 } else fra
.me
.REG
[6] = once_value_2
;
10677 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10678 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10679 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10680 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10681 if (!once_value_3
) {
10682 fra
.me
.REG
[6] = BOX_NativeString(" in a method.");
10683 REGB1
= TAG_Int(13);
10684 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10685 once_value_3
= fra
.me
.REG
[6];
10686 register_static_object(&once_value_3
);
10687 } else fra
.me
.REG
[6] = once_value_3
;
10688 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10690 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10691 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10693 /* syntax/typing.nit:1714 */
10694 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10695 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10696 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10697 if (UNTAG_Bool(REGB1
)) {
10698 /* syntax/typing.nit:1715 */
10699 REGB1
= TAG_Int(3);
10700 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10701 if (!once_value_4
) {
10702 fra
.me
.REG
[6] = BOX_NativeString("Error: constructor ");
10703 REGB1
= TAG_Int(19);
10704 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10705 once_value_4
= fra
.me
.REG
[6];
10706 register_static_object(&once_value_4
);
10707 } else fra
.me
.REG
[6] = once_value_4
;
10708 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10709 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10710 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10711 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10712 if (!once_value_5
) {
10713 fra
.me
.REG
[6] = BOX_NativeString(" is not invoken on 'self'.");
10714 REGB1
= TAG_Int(26);
10715 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10716 once_value_5
= fra
.me
.REG
[6];
10717 register_static_object(&once_value_5
);
10718 } else fra
.me
.REG
[6] = once_value_5
;
10719 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10720 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10721 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10722 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10726 /* syntax/typing.nit:1718 */
10727 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10728 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10729 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10730 if (UNTAG_Bool(REGB1
)) {
10731 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1718);
10733 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10734 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10735 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*/;
10736 if (UNTAG_Bool(REGB1
)) {
10738 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1718);
10740 /* syntax/typing.nit:1719 */
10741 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10742 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10743 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10744 if (UNTAG_Bool(REGB1
)) {
10745 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10746 fra
.me
.REG
[4] = fra
.me
.REG
[0];
10748 /* syntax/typing.nit:1721 */
10749 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]);
10750 /* syntax/typing.nit:1722 */
10751 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10752 if (UNTAG_Bool(REGB1
)) {
10754 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10755 if (UNTAG_Bool(REGB0
)) {
10756 REGB0
= TAG_Bool(false);
10759 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10763 if (UNTAG_Bool(REGB1
)) {
10766 /* syntax/typing.nit:1723 */
10767 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10768 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10769 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]);
10770 /* syntax/typing.nit:1725 */
10771 ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
10772 /* syntax/typing.nit:1726 */
10773 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10774 fra
.me
.REG
[3] = fra
.me
.REG
[0];
10775 /* syntax/typing.nit:1727 */
10776 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10777 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
10778 /* syntax/typing.nit:1729 */
10779 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10780 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10781 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10782 REGB1
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10783 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10784 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10785 REGB2
= TAG_Int(3);
10786 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
10787 if (!once_value_6
) {
10788 fra
.me
.REG
[6] = BOX_NativeString("");
10789 REGB2
= TAG_Int(0);
10790 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10791 once_value_6
= fra
.me
.REG
[6];
10792 register_static_object(&once_value_6
);
10793 } else fra
.me
.REG
[6] = once_value_6
;
10794 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10795 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10796 fra
.me
.REG
[6] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10797 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10799 if (!once_value_7
) {
10800 fra
.me
.REG
[6] = BOX_NativeString("=");
10801 REGB2
= TAG_Int(1);
10802 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10803 once_value_7
= fra
.me
.REG
[6];
10804 register_static_object(&once_value_7
);
10805 } else fra
.me
.REG
[6] = once_value_7
;
10806 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10807 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10808 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10809 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10810 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
);
10811 /* syntax/typing.nit:1730 */
10812 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10813 if (UNTAG_Bool(REGB0
)) {
10814 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1730);
10816 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10817 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10818 if (UNTAG_Bool(REGB0
)) {
10819 /* syntax/typing.nit:1731 */
10820 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10821 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10822 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10823 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10824 if (UNTAG_Bool(REGB0
)) {
10825 /* syntax/typing.nit:1732 */
10826 REGB0
= TAG_Int(3);
10827 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10828 if (!once_value_8
) {
10829 fra
.me
.REG
[4] = BOX_NativeString("Error: try to invoke constructor ");
10830 REGB0
= TAG_Int(33);
10831 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10832 once_value_8
= fra
.me
.REG
[4];
10833 register_static_object(&once_value_8
);
10834 } else fra
.me
.REG
[4] = once_value_8
;
10835 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10836 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10837 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10839 if (!once_value_9
) {
10840 fra
.me
.REG
[4] = BOX_NativeString(" in a method.");
10841 REGB0
= TAG_Int(13);
10842 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10843 once_value_9
= fra
.me
.REG
[4];
10844 register_static_object(&once_value_9
);
10845 } else fra
.me
.REG
[4] = once_value_9
;
10846 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10848 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10849 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
10851 /* syntax/typing.nit:1733 */
10852 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10853 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10854 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10855 if (UNTAG_Bool(REGB0
)) {
10856 /* syntax/typing.nit:1734 */
10857 REGB0
= TAG_Int(3);
10858 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10859 if (!once_value_10
) {
10860 fra
.me
.REG
[4] = BOX_NativeString("Error: constructor ");
10861 REGB0
= TAG_Int(19);
10862 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10863 once_value_10
= fra
.me
.REG
[4];
10864 register_static_object(&once_value_10
);
10865 } else fra
.me
.REG
[4] = once_value_10
;
10866 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10868 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10869 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10870 if (!once_value_11
) {
10871 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
10872 REGB0
= TAG_Int(26);
10873 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
10874 once_value_11
= fra
.me
.REG
[5];
10875 register_static_object(&once_value_11
);
10876 } else fra
.me
.REG
[5] = once_value_11
;
10877 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10878 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10879 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10880 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
10884 /* syntax/typing.nit:1738 */
10885 REGB0
= TAG_Bool(true);
10886 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
10888 stack_frame_head
= fra
.me
.prev
;
10891 val_t
syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0
){
10892 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10895 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10896 fra
.me
.file
= LOCATE_syntax___typing
;
10897 fra
.me
.line
= 1743;
10898 fra
.me
.meth
= LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments
;
10899 fra
.me
.has_broke
= 0;
10900 fra
.me
.REG_size
= 2;
10901 fra
.me
.nitni_local_ref_head
= NULL
;
10902 fra
.me
.REG
[0] = NIT_NULL
;
10903 fra
.me
.REG
[1] = NIT_NULL
;
10904 fra
.me
.REG
[0] = p0
;
10905 /* syntax/typing.nit:1743 */
10906 REGB0
= TAG_Int(1);
10907 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10908 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10909 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
10912 stack_frame_head
= fra
.me
.prev
;
10913 return fra
.me
.REG
[1];
10915 val_t
syntax___typing___AEqExpr___name(val_t p0
){
10916 struct {struct stack_frame_t me
;} fra
;
10919 static val_t once_value_1
; /* Once value */
10920 static val_t once_value_2
; /* Once value */
10921 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10922 fra
.me
.file
= LOCATE_syntax___typing
;
10923 fra
.me
.line
= 1746;
10924 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___name
;
10925 fra
.me
.has_broke
= 0;
10926 fra
.me
.REG_size
= 1;
10927 fra
.me
.nitni_local_ref_head
= NULL
;
10928 fra
.me
.REG
[0] = NIT_NULL
;
10929 fra
.me
.REG
[0] = p0
;
10930 /* syntax/typing.nit:1746 */
10931 if (!once_value_1
) {
10932 if (!once_value_2
) {
10933 fra
.me
.REG
[0] = BOX_NativeString("==");
10934 REGB0
= TAG_Int(2);
10935 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10936 once_value_2
= fra
.me
.REG
[0];
10937 register_static_object(&once_value_2
);
10938 } else fra
.me
.REG
[0] = once_value_2
;
10939 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10940 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10941 once_value_1
= fra
.me
.REG
[0];
10942 register_static_object(&once_value_1
);
10943 } else fra
.me
.REG
[0] = once_value_1
;
10944 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10947 stack_frame_head
= fra
.me
.prev
;
10948 return fra
.me
.REG
[0];
10950 void syntax___typing___AEqExpr___after_typing(val_t p0
, val_t p1
){
10951 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
10955 static val_t once_value_2
; /* Once value */
10956 static val_t once_value_3
; /* Once value */
10957 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10958 fra
.me
.file
= LOCATE_syntax___typing
;
10959 fra
.me
.line
= 1747;
10960 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___after_typing
;
10961 fra
.me
.has_broke
= 0;
10962 fra
.me
.REG_size
= 4;
10963 fra
.me
.nitni_local_ref_head
= NULL
;
10964 fra
.me
.REG
[0] = NIT_NULL
;
10965 fra
.me
.REG
[1] = NIT_NULL
;
10966 fra
.me
.REG
[2] = NIT_NULL
;
10967 fra
.me
.REG
[3] = NIT_NULL
;
10968 fra
.me
.REG
[0] = p0
;
10969 fra
.me
.REG
[1] = p1
;
10970 /* syntax/typing.nit:1747 */
10971 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10972 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10973 /* syntax/typing.nit:1749 */
10974 CALL_SUPER_syntax___typing___AEqExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10975 /* syntax/typing.nit:1750 */
10976 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10977 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10978 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10979 if (UNTAG_Bool(REGB0
)) {
10980 REGB0
= TAG_Bool(true);
10982 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10983 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10984 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10987 if (UNTAG_Bool(REGB0
)) {
10990 /* syntax/typing.nit:1751 */
10991 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10992 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10993 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10994 if (UNTAG_Bool(REGB0
)) {
10995 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10996 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10997 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10998 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11000 REGB1
= TAG_Bool(false);
11003 if (UNTAG_Bool(REGB0
)) {
11004 REGB0
= TAG_Bool(true);
11006 /* syntax/typing.nit:1752 */
11007 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11008 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11009 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11010 /* syntax/typing.nit:1751 */
11013 if (UNTAG_Bool(REGB0
)) {
11014 /* syntax/typing.nit:1752 */
11015 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11016 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11017 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11018 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11020 /* syntax/typing.nit:1751 */
11021 REGB1
= TAG_Bool(false);
11024 if (UNTAG_Bool(REGB0
)) {
11025 /* syntax/typing.nit:1753 */
11026 if (!once_value_2
) {
11027 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
11028 REGB0
= TAG_Int(59);
11029 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11030 once_value_2
= fra
.me
.REG
[1];
11031 register_static_object(&once_value_2
);
11032 } else fra
.me
.REG
[1] = once_value_2
;
11033 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11034 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11036 /* syntax/typing.nit:1756 */
11037 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11038 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11039 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11040 if (UNTAG_Bool(REGB0
)) {
11041 /* syntax/typing.nit:1757 */
11042 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11043 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11044 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11045 if (UNTAG_Bool(REGB0
)) {
11046 /* syntax/typing.nit:1758 */
11047 if (!once_value_3
) {
11048 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between two null values.");
11049 REGB0
= TAG_Int(45);
11050 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11051 once_value_3
= fra
.me
.REG
[1];
11052 register_static_object(&once_value_3
);
11053 } else fra
.me
.REG
[1] = once_value_3
;
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:1760 */
11058 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11059 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11062 /* syntax/typing.nit:1762 */
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:1763 */
11068 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11069 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11073 stack_frame_head
= fra
.me
.prev
;
11076 void syntax___typing___AEqExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
11077 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11081 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11082 fra
.me
.file
= LOCATE_syntax___typing
;
11083 fra
.me
.line
= 1767;
11084 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___try_to_isa
;
11085 fra
.me
.has_broke
= 0;
11086 fra
.me
.REG_size
= 5;
11087 fra
.me
.nitni_local_ref_head
= NULL
;
11088 fra
.me
.REG
[0] = NIT_NULL
;
11089 fra
.me
.REG
[1] = NIT_NULL
;
11090 fra
.me
.REG
[2] = NIT_NULL
;
11091 fra
.me
.REG
[3] = NIT_NULL
;
11092 fra
.me
.REG
[4] = NIT_NULL
;
11093 fra
.me
.REG
[0] = p0
;
11094 fra
.me
.REG
[1] = p1
;
11095 fra
.me
.REG
[2] = p2
;
11096 /* syntax/typing.nit:1769 */
11097 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11098 /* syntax/typing.nit:1770 */
11099 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11100 if (UNTAG_Bool(REGB0
)) {
11102 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11103 if (UNTAG_Bool(REGB1
)) {
11104 REGB1
= TAG_Bool(false);
11107 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11111 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11112 if (UNTAG_Bool(REGB0
)) {
11113 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11114 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
11116 REGB1
= TAG_Bool(false);
11119 if (UNTAG_Bool(REGB0
)) {
11120 /* syntax/typing.nit:1771 */
11121 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11122 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11123 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11124 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]);
11125 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11126 /* syntax/typing.nit:1772 */
11127 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11128 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11129 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]);
11130 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
11132 stack_frame_head
= fra
.me
.prev
;
11135 val_t
syntax___typing___ANeExpr___name(val_t p0
){
11136 struct {struct stack_frame_t me
;} fra
;
11139 static val_t once_value_1
; /* Once value */
11140 static val_t once_value_2
; /* Once value */
11141 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11142 fra
.me
.file
= LOCATE_syntax___typing
;
11143 fra
.me
.line
= 1777;
11144 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___name
;
11145 fra
.me
.has_broke
= 0;
11146 fra
.me
.REG_size
= 1;
11147 fra
.me
.nitni_local_ref_head
= NULL
;
11148 fra
.me
.REG
[0] = NIT_NULL
;
11149 fra
.me
.REG
[0] = p0
;
11150 /* syntax/typing.nit:1777 */
11151 if (!once_value_1
) {
11152 if (!once_value_2
) {
11153 fra
.me
.REG
[0] = BOX_NativeString("!=");
11154 REGB0
= TAG_Int(2);
11155 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11156 once_value_2
= fra
.me
.REG
[0];
11157 register_static_object(&once_value_2
);
11158 } else fra
.me
.REG
[0] = once_value_2
;
11159 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11160 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11161 once_value_1
= fra
.me
.REG
[0];
11162 register_static_object(&once_value_1
);
11163 } else fra
.me
.REG
[0] = once_value_1
;
11164 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11167 stack_frame_head
= fra
.me
.prev
;
11168 return fra
.me
.REG
[0];
11170 void syntax___typing___ANeExpr___after_typing(val_t p0
, val_t p1
){
11171 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
11175 static val_t once_value_2
; /* Once value */
11176 static val_t once_value_3
; /* Once value */
11177 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11178 fra
.me
.file
= LOCATE_syntax___typing
;
11179 fra
.me
.line
= 1778;
11180 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___after_typing
;
11181 fra
.me
.has_broke
= 0;
11182 fra
.me
.REG_size
= 4;
11183 fra
.me
.nitni_local_ref_head
= NULL
;
11184 fra
.me
.REG
[0] = NIT_NULL
;
11185 fra
.me
.REG
[1] = NIT_NULL
;
11186 fra
.me
.REG
[2] = NIT_NULL
;
11187 fra
.me
.REG
[3] = NIT_NULL
;
11188 fra
.me
.REG
[0] = p0
;
11189 fra
.me
.REG
[1] = p1
;
11190 /* syntax/typing.nit:1778 */
11191 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11192 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11193 /* syntax/typing.nit:1780 */
11194 CALL_SUPER_syntax___typing___ANeExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11195 /* syntax/typing.nit:1781 */
11196 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11197 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11198 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11199 if (UNTAG_Bool(REGB0
)) {
11200 REGB0
= TAG_Bool(true);
11202 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11203 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11204 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
11207 if (UNTAG_Bool(REGB0
)) {
11210 /* syntax/typing.nit:1782 */
11211 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11212 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11213 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11214 if (UNTAG_Bool(REGB0
)) {
11215 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11216 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11217 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11218 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11220 REGB1
= TAG_Bool(false);
11223 if (UNTAG_Bool(REGB0
)) {
11224 REGB0
= TAG_Bool(true);
11226 /* syntax/typing.nit:1783 */
11227 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11228 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11229 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11230 /* syntax/typing.nit:1782 */
11233 if (UNTAG_Bool(REGB0
)) {
11234 /* syntax/typing.nit:1783 */
11235 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11236 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11237 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11238 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11240 /* syntax/typing.nit:1782 */
11241 REGB1
= TAG_Bool(false);
11244 if (UNTAG_Bool(REGB0
)) {
11245 /* syntax/typing.nit:1784 */
11246 if (!once_value_2
) {
11247 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
11248 REGB0
= TAG_Int(59);
11249 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11250 once_value_2
= fra
.me
.REG
[1];
11251 register_static_object(&once_value_2
);
11252 } else fra
.me
.REG
[1] = once_value_2
;
11253 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11254 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11256 /* syntax/typing.nit:1787 */
11257 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11258 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11259 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11260 if (UNTAG_Bool(REGB0
)) {
11261 /* syntax/typing.nit:1788 */
11262 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11263 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11264 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11265 if (UNTAG_Bool(REGB0
)) {
11266 /* syntax/typing.nit:1789 */
11267 if (!once_value_3
) {
11268 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between two null values.");
11269 REGB0
= TAG_Int(45);
11270 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11271 once_value_3
= fra
.me
.REG
[1];
11272 register_static_object(&once_value_3
);
11273 } else fra
.me
.REG
[1] = once_value_3
;
11274 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11275 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11277 /* syntax/typing.nit:1791 */
11278 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11279 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11282 /* syntax/typing.nit:1793 */
11283 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11284 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11285 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11286 if (UNTAG_Bool(REGB0
)) {
11287 /* syntax/typing.nit:1794 */
11288 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11289 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11293 stack_frame_head
= fra
.me
.prev
;
11296 void syntax___typing___ANeExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
11297 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11301 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11302 fra
.me
.file
= LOCATE_syntax___typing
;
11303 fra
.me
.line
= 1798;
11304 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___try_to_isa
;
11305 fra
.me
.has_broke
= 0;
11306 fra
.me
.REG_size
= 5;
11307 fra
.me
.nitni_local_ref_head
= NULL
;
11308 fra
.me
.REG
[0] = NIT_NULL
;
11309 fra
.me
.REG
[1] = NIT_NULL
;
11310 fra
.me
.REG
[2] = NIT_NULL
;
11311 fra
.me
.REG
[3] = NIT_NULL
;
11312 fra
.me
.REG
[4] = NIT_NULL
;
11313 fra
.me
.REG
[0] = p0
;
11314 fra
.me
.REG
[1] = p1
;
11315 fra
.me
.REG
[2] = p2
;
11316 /* syntax/typing.nit:1800 */
11317 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11318 /* syntax/typing.nit:1801 */
11319 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11320 if (UNTAG_Bool(REGB0
)) {
11322 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11323 if (UNTAG_Bool(REGB1
)) {
11324 REGB1
= TAG_Bool(false);
11327 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11331 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11332 if (UNTAG_Bool(REGB0
)) {
11333 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11334 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
11336 REGB1
= TAG_Bool(false);
11339 if (UNTAG_Bool(REGB0
)) {
11340 /* syntax/typing.nit:1802 */
11341 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11342 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11343 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11344 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]);
11345 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11346 /* syntax/typing.nit:1803 */
11347 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11348 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11349 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]);
11350 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
11352 stack_frame_head
= fra
.me
.prev
;
11355 val_t
syntax___typing___ALtExpr___name(val_t p0
){
11356 struct {struct stack_frame_t me
;} fra
;
11359 static val_t once_value_1
; /* Once value */
11360 static val_t once_value_2
; /* Once value */
11361 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11362 fra
.me
.file
= LOCATE_syntax___typing
;
11363 fra
.me
.line
= 1808;
11364 fra
.me
.meth
= LOCATE_syntax___typing___ALtExpr___name
;
11365 fra
.me
.has_broke
= 0;
11366 fra
.me
.REG_size
= 1;
11367 fra
.me
.nitni_local_ref_head
= NULL
;
11368 fra
.me
.REG
[0] = NIT_NULL
;
11369 fra
.me
.REG
[0] = p0
;
11370 /* syntax/typing.nit:1808 */
11371 if (!once_value_1
) {
11372 if (!once_value_2
) {
11373 fra
.me
.REG
[0] = BOX_NativeString("<");
11374 REGB0
= TAG_Int(1);
11375 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11376 once_value_2
= fra
.me
.REG
[0];
11377 register_static_object(&once_value_2
);
11378 } else fra
.me
.REG
[0] = once_value_2
;
11379 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11380 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11381 once_value_1
= fra
.me
.REG
[0];
11382 register_static_object(&once_value_1
);
11383 } else fra
.me
.REG
[0] = once_value_1
;
11384 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11387 stack_frame_head
= fra
.me
.prev
;
11388 return fra
.me
.REG
[0];
11390 val_t
syntax___typing___ALeExpr___name(val_t p0
){
11391 struct {struct stack_frame_t me
;} fra
;
11394 static val_t once_value_1
; /* Once value */
11395 static val_t once_value_2
; /* Once value */
11396 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11397 fra
.me
.file
= LOCATE_syntax___typing
;
11398 fra
.me
.line
= 1811;
11399 fra
.me
.meth
= LOCATE_syntax___typing___ALeExpr___name
;
11400 fra
.me
.has_broke
= 0;
11401 fra
.me
.REG_size
= 1;
11402 fra
.me
.nitni_local_ref_head
= NULL
;
11403 fra
.me
.REG
[0] = NIT_NULL
;
11404 fra
.me
.REG
[0] = p0
;
11405 /* syntax/typing.nit:1811 */
11406 if (!once_value_1
) {
11407 if (!once_value_2
) {
11408 fra
.me
.REG
[0] = BOX_NativeString("<=");
11409 REGB0
= TAG_Int(2);
11410 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11411 once_value_2
= fra
.me
.REG
[0];
11412 register_static_object(&once_value_2
);
11413 } else fra
.me
.REG
[0] = once_value_2
;
11414 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11415 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11416 once_value_1
= fra
.me
.REG
[0];
11417 register_static_object(&once_value_1
);
11418 } else fra
.me
.REG
[0] = once_value_1
;
11419 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11422 stack_frame_head
= fra
.me
.prev
;
11423 return fra
.me
.REG
[0];
11425 val_t
syntax___typing___ALlExpr___name(val_t p0
){
11426 struct {struct stack_frame_t me
;} fra
;
11429 static val_t once_value_1
; /* Once value */
11430 static val_t once_value_2
; /* Once value */
11431 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11432 fra
.me
.file
= LOCATE_syntax___typing
;
11433 fra
.me
.line
= 1814;
11434 fra
.me
.meth
= LOCATE_syntax___typing___ALlExpr___name
;
11435 fra
.me
.has_broke
= 0;
11436 fra
.me
.REG_size
= 1;
11437 fra
.me
.nitni_local_ref_head
= NULL
;
11438 fra
.me
.REG
[0] = NIT_NULL
;
11439 fra
.me
.REG
[0] = p0
;
11440 /* syntax/typing.nit:1814 */
11441 if (!once_value_1
) {
11442 if (!once_value_2
) {
11443 fra
.me
.REG
[0] = BOX_NativeString("<<");
11444 REGB0
= TAG_Int(2);
11445 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11446 once_value_2
= fra
.me
.REG
[0];
11447 register_static_object(&once_value_2
);
11448 } else fra
.me
.REG
[0] = once_value_2
;
11449 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11450 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11451 once_value_1
= fra
.me
.REG
[0];
11452 register_static_object(&once_value_1
);
11453 } else fra
.me
.REG
[0] = once_value_1
;
11454 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11457 stack_frame_head
= fra
.me
.prev
;
11458 return fra
.me
.REG
[0];
11460 val_t
syntax___typing___AGtExpr___name(val_t p0
){
11461 struct {struct stack_frame_t me
;} fra
;
11464 static val_t once_value_1
; /* Once value */
11465 static val_t once_value_2
; /* Once value */
11466 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11467 fra
.me
.file
= LOCATE_syntax___typing
;
11468 fra
.me
.line
= 1817;
11469 fra
.me
.meth
= LOCATE_syntax___typing___AGtExpr___name
;
11470 fra
.me
.has_broke
= 0;
11471 fra
.me
.REG_size
= 1;
11472 fra
.me
.nitni_local_ref_head
= NULL
;
11473 fra
.me
.REG
[0] = NIT_NULL
;
11474 fra
.me
.REG
[0] = p0
;
11475 /* syntax/typing.nit:1817 */
11476 if (!once_value_1
) {
11477 if (!once_value_2
) {
11478 fra
.me
.REG
[0] = BOX_NativeString(">");
11479 REGB0
= TAG_Int(1);
11480 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11481 once_value_2
= fra
.me
.REG
[0];
11482 register_static_object(&once_value_2
);
11483 } else fra
.me
.REG
[0] = once_value_2
;
11484 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11485 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11486 once_value_1
= fra
.me
.REG
[0];
11487 register_static_object(&once_value_1
);
11488 } else fra
.me
.REG
[0] = once_value_1
;
11489 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11492 stack_frame_head
= fra
.me
.prev
;
11493 return fra
.me
.REG
[0];
11495 val_t
syntax___typing___AGeExpr___name(val_t p0
){
11496 struct {struct stack_frame_t me
;} fra
;
11499 static val_t once_value_1
; /* Once value */
11500 static val_t once_value_2
; /* Once value */
11501 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11502 fra
.me
.file
= LOCATE_syntax___typing
;
11503 fra
.me
.line
= 1820;
11504 fra
.me
.meth
= LOCATE_syntax___typing___AGeExpr___name
;
11505 fra
.me
.has_broke
= 0;
11506 fra
.me
.REG_size
= 1;
11507 fra
.me
.nitni_local_ref_head
= NULL
;
11508 fra
.me
.REG
[0] = NIT_NULL
;
11509 fra
.me
.REG
[0] = p0
;
11510 /* syntax/typing.nit:1820 */
11511 if (!once_value_1
) {
11512 if (!once_value_2
) {
11513 fra
.me
.REG
[0] = BOX_NativeString(">=");
11514 REGB0
= TAG_Int(2);
11515 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11516 once_value_2
= fra
.me
.REG
[0];
11517 register_static_object(&once_value_2
);
11518 } else fra
.me
.REG
[0] = once_value_2
;
11519 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11520 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11521 once_value_1
= fra
.me
.REG
[0];
11522 register_static_object(&once_value_1
);
11523 } else fra
.me
.REG
[0] = once_value_1
;
11524 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11527 stack_frame_head
= fra
.me
.prev
;
11528 return fra
.me
.REG
[0];
11530 val_t
syntax___typing___AGgExpr___name(val_t p0
){
11531 struct {struct stack_frame_t me
;} fra
;
11534 static val_t once_value_1
; /* Once value */
11535 static val_t once_value_2
; /* Once value */
11536 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11537 fra
.me
.file
= LOCATE_syntax___typing
;
11538 fra
.me
.line
= 1823;
11539 fra
.me
.meth
= LOCATE_syntax___typing___AGgExpr___name
;
11540 fra
.me
.has_broke
= 0;
11541 fra
.me
.REG_size
= 1;
11542 fra
.me
.nitni_local_ref_head
= NULL
;
11543 fra
.me
.REG
[0] = NIT_NULL
;
11544 fra
.me
.REG
[0] = p0
;
11545 /* syntax/typing.nit:1823 */
11546 if (!once_value_1
) {
11547 if (!once_value_2
) {
11548 fra
.me
.REG
[0] = BOX_NativeString(">>");
11549 REGB0
= TAG_Int(2);
11550 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11551 once_value_2
= fra
.me
.REG
[0];
11552 register_static_object(&once_value_2
);
11553 } else fra
.me
.REG
[0] = once_value_2
;
11554 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11555 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11556 once_value_1
= fra
.me
.REG
[0];
11557 register_static_object(&once_value_1
);
11558 } else fra
.me
.REG
[0] = once_value_1
;
11559 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11562 stack_frame_head
= fra
.me
.prev
;
11563 return fra
.me
.REG
[0];
11565 val_t
syntax___typing___APlusExpr___name(val_t p0
){
11566 struct {struct stack_frame_t me
;} fra
;
11569 static val_t once_value_1
; /* Once value */
11570 static val_t once_value_2
; /* Once value */
11571 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11572 fra
.me
.file
= LOCATE_syntax___typing
;
11573 fra
.me
.line
= 1826;
11574 fra
.me
.meth
= LOCATE_syntax___typing___APlusExpr___name
;
11575 fra
.me
.has_broke
= 0;
11576 fra
.me
.REG_size
= 1;
11577 fra
.me
.nitni_local_ref_head
= NULL
;
11578 fra
.me
.REG
[0] = NIT_NULL
;
11579 fra
.me
.REG
[0] = p0
;
11580 /* syntax/typing.nit:1826 */
11581 if (!once_value_1
) {
11582 if (!once_value_2
) {
11583 fra
.me
.REG
[0] = BOX_NativeString("+");
11584 REGB0
= TAG_Int(1);
11585 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11586 once_value_2
= fra
.me
.REG
[0];
11587 register_static_object(&once_value_2
);
11588 } else fra
.me
.REG
[0] = once_value_2
;
11589 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11590 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11591 once_value_1
= fra
.me
.REG
[0];
11592 register_static_object(&once_value_1
);
11593 } else fra
.me
.REG
[0] = once_value_1
;
11594 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11597 stack_frame_head
= fra
.me
.prev
;
11598 return fra
.me
.REG
[0];
11600 val_t
syntax___typing___AMinusExpr___name(val_t p0
){
11601 struct {struct stack_frame_t me
;} fra
;
11604 static val_t once_value_1
; /* Once value */
11605 static val_t once_value_2
; /* Once value */
11606 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11607 fra
.me
.file
= LOCATE_syntax___typing
;
11608 fra
.me
.line
= 1829;
11609 fra
.me
.meth
= LOCATE_syntax___typing___AMinusExpr___name
;
11610 fra
.me
.has_broke
= 0;
11611 fra
.me
.REG_size
= 1;
11612 fra
.me
.nitni_local_ref_head
= NULL
;
11613 fra
.me
.REG
[0] = NIT_NULL
;
11614 fra
.me
.REG
[0] = p0
;
11615 /* syntax/typing.nit:1829 */
11616 if (!once_value_1
) {
11617 if (!once_value_2
) {
11618 fra
.me
.REG
[0] = BOX_NativeString("-");
11619 REGB0
= TAG_Int(1);
11620 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11621 once_value_2
= fra
.me
.REG
[0];
11622 register_static_object(&once_value_2
);
11623 } else fra
.me
.REG
[0] = once_value_2
;
11624 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11625 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11626 once_value_1
= fra
.me
.REG
[0];
11627 register_static_object(&once_value_1
);
11628 } else fra
.me
.REG
[0] = once_value_1
;
11629 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11632 stack_frame_head
= fra
.me
.prev
;
11633 return fra
.me
.REG
[0];
11635 val_t
syntax___typing___AStarshipExpr___name(val_t p0
){
11636 struct {struct stack_frame_t me
;} fra
;
11639 static val_t once_value_1
; /* Once value */
11640 static val_t once_value_2
; /* Once value */
11641 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11642 fra
.me
.file
= LOCATE_syntax___typing
;
11643 fra
.me
.line
= 1832;
11644 fra
.me
.meth
= LOCATE_syntax___typing___AStarshipExpr___name
;
11645 fra
.me
.has_broke
= 0;
11646 fra
.me
.REG_size
= 1;
11647 fra
.me
.nitni_local_ref_head
= NULL
;
11648 fra
.me
.REG
[0] = NIT_NULL
;
11649 fra
.me
.REG
[0] = p0
;
11650 /* syntax/typing.nit:1832 */
11651 if (!once_value_1
) {
11652 if (!once_value_2
) {
11653 fra
.me
.REG
[0] = BOX_NativeString("<=>");
11654 REGB0
= TAG_Int(3);
11655 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11656 once_value_2
= fra
.me
.REG
[0];
11657 register_static_object(&once_value_2
);
11658 } else fra
.me
.REG
[0] = once_value_2
;
11659 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11660 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11661 once_value_1
= fra
.me
.REG
[0];
11662 register_static_object(&once_value_1
);
11663 } else fra
.me
.REG
[0] = once_value_1
;
11664 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11667 stack_frame_head
= fra
.me
.prev
;
11668 return fra
.me
.REG
[0];
11670 val_t
syntax___typing___AStarExpr___name(val_t p0
){
11671 struct {struct stack_frame_t me
;} fra
;
11674 static val_t once_value_1
; /* Once value */
11675 static val_t once_value_2
; /* Once value */
11676 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11677 fra
.me
.file
= LOCATE_syntax___typing
;
11678 fra
.me
.line
= 1835;
11679 fra
.me
.meth
= LOCATE_syntax___typing___AStarExpr___name
;
11680 fra
.me
.has_broke
= 0;
11681 fra
.me
.REG_size
= 1;
11682 fra
.me
.nitni_local_ref_head
= NULL
;
11683 fra
.me
.REG
[0] = NIT_NULL
;
11684 fra
.me
.REG
[0] = p0
;
11685 /* syntax/typing.nit:1835 */
11686 if (!once_value_1
) {
11687 if (!once_value_2
) {
11688 fra
.me
.REG
[0] = BOX_NativeString("*");
11689 REGB0
= TAG_Int(1);
11690 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11691 once_value_2
= fra
.me
.REG
[0];
11692 register_static_object(&once_value_2
);
11693 } else fra
.me
.REG
[0] = once_value_2
;
11694 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11695 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11696 once_value_1
= fra
.me
.REG
[0];
11697 register_static_object(&once_value_1
);
11698 } else fra
.me
.REG
[0] = once_value_1
;
11699 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11702 stack_frame_head
= fra
.me
.prev
;
11703 return fra
.me
.REG
[0];
11705 val_t
syntax___typing___ASlashExpr___name(val_t p0
){
11706 struct {struct stack_frame_t me
;} fra
;
11709 static val_t once_value_1
; /* Once value */
11710 static val_t once_value_2
; /* Once value */
11711 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11712 fra
.me
.file
= LOCATE_syntax___typing
;
11713 fra
.me
.line
= 1838;
11714 fra
.me
.meth
= LOCATE_syntax___typing___ASlashExpr___name
;
11715 fra
.me
.has_broke
= 0;
11716 fra
.me
.REG_size
= 1;
11717 fra
.me
.nitni_local_ref_head
= NULL
;
11718 fra
.me
.REG
[0] = NIT_NULL
;
11719 fra
.me
.REG
[0] = p0
;
11720 /* syntax/typing.nit:1838 */
11721 if (!once_value_1
) {
11722 if (!once_value_2
) {
11723 fra
.me
.REG
[0] = BOX_NativeString("/");
11724 REGB0
= TAG_Int(1);
11725 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11726 once_value_2
= fra
.me
.REG
[0];
11727 register_static_object(&once_value_2
);
11728 } else fra
.me
.REG
[0] = once_value_2
;
11729 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11730 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11731 once_value_1
= fra
.me
.REG
[0];
11732 register_static_object(&once_value_1
);
11733 } else fra
.me
.REG
[0] = once_value_1
;
11734 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11737 stack_frame_head
= fra
.me
.prev
;
11738 return fra
.me
.REG
[0];
11740 val_t
syntax___typing___APercentExpr___name(val_t p0
){
11741 struct {struct stack_frame_t me
;} fra
;
11744 static val_t once_value_1
; /* Once value */
11745 static val_t once_value_2
; /* Once value */
11746 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11747 fra
.me
.file
= LOCATE_syntax___typing
;
11748 fra
.me
.line
= 1841;
11749 fra
.me
.meth
= LOCATE_syntax___typing___APercentExpr___name
;
11750 fra
.me
.has_broke
= 0;
11751 fra
.me
.REG_size
= 1;
11752 fra
.me
.nitni_local_ref_head
= NULL
;
11753 fra
.me
.REG
[0] = NIT_NULL
;
11754 fra
.me
.REG
[0] = p0
;
11755 /* syntax/typing.nit:1841 */
11756 if (!once_value_1
) {
11757 if (!once_value_2
) {
11758 fra
.me
.REG
[0] = BOX_NativeString("%");
11759 REGB0
= TAG_Int(1);
11760 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11761 once_value_2
= fra
.me
.REG
[0];
11762 register_static_object(&once_value_2
);
11763 } else fra
.me
.REG
[0] = once_value_2
;
11764 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11765 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11766 once_value_1
= fra
.me
.REG
[0];
11767 register_static_object(&once_value_1
);
11768 } else fra
.me
.REG
[0] = once_value_1
;
11769 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11772 stack_frame_head
= fra
.me
.prev
;
11773 return fra
.me
.REG
[0];
11775 val_t
syntax___typing___AUminusExpr___name(val_t p0
){
11776 struct {struct stack_frame_t me
;} fra
;
11779 static val_t once_value_1
; /* Once value */
11780 static val_t once_value_2
; /* Once value */
11781 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11782 fra
.me
.file
= LOCATE_syntax___typing
;
11783 fra
.me
.line
= 1845;
11784 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___name
;
11785 fra
.me
.has_broke
= 0;
11786 fra
.me
.REG_size
= 1;
11787 fra
.me
.nitni_local_ref_head
= NULL
;
11788 fra
.me
.REG
[0] = NIT_NULL
;
11789 fra
.me
.REG
[0] = p0
;
11790 /* syntax/typing.nit:1845 */
11791 if (!once_value_1
) {
11792 if (!once_value_2
) {
11793 fra
.me
.REG
[0] = BOX_NativeString("unary -");
11794 REGB0
= TAG_Int(7);
11795 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11796 once_value_2
= fra
.me
.REG
[0];
11797 register_static_object(&once_value_2
);
11798 } else fra
.me
.REG
[0] = once_value_2
;
11799 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11800 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11801 once_value_1
= fra
.me
.REG
[0];
11802 register_static_object(&once_value_1
);
11803 } else fra
.me
.REG
[0] = once_value_1
;
11804 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11807 stack_frame_head
= fra
.me
.prev
;
11808 return fra
.me
.REG
[0];
11810 val_t
syntax___typing___AUminusExpr___compute_raw_arguments(val_t p0
){
11811 struct {struct stack_frame_t me
;} fra
;
11813 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11814 fra
.me
.file
= LOCATE_syntax___typing
;
11815 fra
.me
.line
= 1846;
11816 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments
;
11817 fra
.me
.has_broke
= 0;
11818 fra
.me
.REG_size
= 1;
11819 fra
.me
.nitni_local_ref_head
= NULL
;
11820 fra
.me
.REG
[0] = NIT_NULL
;
11821 fra
.me
.REG
[0] = p0
;
11822 /* syntax/typing.nit:1846 */
11823 fra
.me
.REG
[0] = NIT_NULL
;
11826 stack_frame_head
= fra
.me
.prev
;
11827 return fra
.me
.REG
[0];
11829 void syntax___typing___ACallFormExpr___after_typing(val_t p0
, val_t p1
){
11830 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
11834 static val_t once_value_1
; /* Once value */
11835 static val_t once_value_2
; /* Once value */
11836 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11837 fra
.me
.file
= LOCATE_syntax___typing
;
11838 fra
.me
.line
= 1850;
11839 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___after_typing
;
11840 fra
.me
.has_broke
= 0;
11841 fra
.me
.REG_size
= 9;
11842 fra
.me
.nitni_local_ref_head
= NULL
;
11843 fra
.me
.REG
[0] = NIT_NULL
;
11844 fra
.me
.REG
[1] = NIT_NULL
;
11845 fra
.me
.REG
[2] = NIT_NULL
;
11846 fra
.me
.REG
[3] = NIT_NULL
;
11847 fra
.me
.REG
[4] = NIT_NULL
;
11848 fra
.me
.REG
[5] = NIT_NULL
;
11849 fra
.me
.REG
[6] = NIT_NULL
;
11850 fra
.me
.REG
[7] = NIT_NULL
;
11851 fra
.me
.REG
[8] = NIT_NULL
;
11852 fra
.me
.REG
[0] = p0
;
11853 fra
.me
.REG
[1] = p1
;
11854 /* syntax/typing.nit:1850 */
11855 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11856 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11857 /* syntax/typing.nit:1852 */
11858 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11859 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11860 if (UNTAG_Bool(REGB0
)) {
11861 /* syntax/typing.nit:1853 */
11862 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11863 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11864 /* syntax/typing.nit:1854 */
11865 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11866 fra
.me
.REG
[5] = CALL_syntax___scope___ScopeContext_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
11867 /* syntax/typing.nit:1855 */
11868 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
11869 if (UNTAG_Bool(REGB0
)) {
11871 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
11872 if (UNTAG_Bool(REGB1
)) {
11873 REGB1
= TAG_Bool(false);
11876 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
11880 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11881 if (UNTAG_Bool(REGB0
)) {
11882 /* syntax/typing.nit:1857 */
11883 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*/;
11884 if (UNTAG_Bool(REGB0
)) {
11885 /* syntax/typing.nit:1858 */
11886 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11887 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11888 fra
.me
.REG
[8] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11889 fra
.me
.REG
[8] = NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
11890 /* syntax/typing.nit:1859 */
11891 ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
11893 /* syntax/typing.nit:1861 */
11894 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11895 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
11896 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
11897 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11898 if (UNTAG_Bool(REGB0
)) {
11899 REGB0
= TAG_Bool(true);
11901 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11902 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_parser___parser_nodes___AParExprs
, ID_parser___parser_nodes___AParExprs
)) /*cast AParExprs*/;
11905 if (UNTAG_Bool(REGB0
)) {
11906 /* syntax/typing.nit:1862 */
11907 REGB0
= TAG_Int(3);
11908 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11909 if (!once_value_1
) {
11910 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
11911 REGB0
= TAG_Int(7);
11912 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
11913 once_value_1
= fra
.me
.REG
[6];
11914 register_static_object(&once_value_1
);
11915 } else fra
.me
.REG
[6] = once_value_1
;
11916 fra
.me
.REG
[6] = fra
.me
.REG
[6];
11917 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
11918 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11919 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
11920 if (!once_value_2
) {
11921 fra
.me
.REG
[4] = BOX_NativeString(" is variable, not a function.");
11922 REGB0
= TAG_Int(29);
11923 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
11924 once_value_2
= fra
.me
.REG
[4];
11925 register_static_object(&once_value_2
);
11926 } else fra
.me
.REG
[4] = once_value_2
;
11927 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11928 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
11929 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
11930 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
11931 /* syntax/typing.nit:1863 */
11934 /* syntax/typing.nit:1865 */
11935 fra
.me
.REG
[7] = CALL_syntax___typing___ACallFormExpr___variable_create(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
11936 fra
.me
.REG
[8] = fra
.me
.REG
[7];
11937 /* syntax/typing.nit:1866 */
11938 ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
11940 /* syntax/typing.nit:1868 */
11941 CALL_parser___parser_prod___ANode___replace_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
11942 /* syntax/typing.nit:1869 */
11943 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
11944 /* syntax/typing.nit:1870 */
11948 /* syntax/typing.nit:1874 */
11949 CALL_SUPER_syntax___typing___ACallFormExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11951 stack_frame_head
= fra
.me
.prev
;
11954 val_t
syntax___typing___ACallFormExpr___closure_defs(val_t p0
){
11955 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11958 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11959 fra
.me
.file
= LOCATE_syntax___typing
;
11960 fra
.me
.line
= 1877;
11961 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___closure_defs
;
11962 fra
.me
.has_broke
= 0;
11963 fra
.me
.REG_size
= 2;
11964 fra
.me
.nitni_local_ref_head
= NULL
;
11965 fra
.me
.REG
[0] = NIT_NULL
;
11966 fra
.me
.REG
[1] = NIT_NULL
;
11967 fra
.me
.REG
[0] = p0
;
11968 /* syntax/typing.nit:1879 */
11969 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11970 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11971 if (UNTAG_Bool(REGB0
)) {
11972 /* syntax/typing.nit:1880 */
11973 fra
.me
.REG
[1] = NIT_NULL
;
11976 /* syntax/typing.nit:1882 */
11977 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11978 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11979 fra
.me
.REG
[1] = fra
.me
.REG
[0];
11983 stack_frame_head
= fra
.me
.prev
;
11984 return fra
.me
.REG
[1];
11986 val_t
syntax___typing___ACallFormExpr___variable_create(val_t p0
, val_t p1
){
11987 struct {struct stack_frame_t me
;} fra
;
11989 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11990 fra
.me
.file
= LOCATE_syntax___typing
;
11991 fra
.me
.line
= 1886;
11992 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___variable_create
;
11993 fra
.me
.has_broke
= 0;
11994 fra
.me
.REG_size
= 0;
11995 fra
.me
.nitni_local_ref_head
= NULL
;
11996 /* syntax/typing.nit:1886 */
11997 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1886);
11998 stack_frame_head
= fra
.me
.prev
;
12001 val_t
syntax___typing___ACallExpr___variable_create(val_t p0
, val_t p1
){
12002 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12004 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12005 fra
.me
.file
= LOCATE_syntax___typing
;
12006 fra
.me
.line
= 1891;
12007 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___variable_create
;
12008 fra
.me
.has_broke
= 0;
12009 fra
.me
.REG_size
= 2;
12010 fra
.me
.nitni_local_ref_head
= NULL
;
12011 fra
.me
.REG
[0] = NIT_NULL
;
12012 fra
.me
.REG
[1] = NIT_NULL
;
12013 fra
.me
.REG
[0] = p0
;
12014 fra
.me
.REG
[1] = p1
;
12015 /* syntax/typing.nit:1893 */
12016 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12017 fra
.me
.REG
[0] = NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(fra
.me
.REG
[0]);
12020 stack_frame_head
= fra
.me
.prev
;
12021 return fra
.me
.REG
[0];
12023 val_t
syntax___typing___ACallExpr___name(val_t p0
){
12024 struct {struct stack_frame_t me
;} fra
;
12026 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12027 fra
.me
.file
= LOCATE_syntax___typing
;
12028 fra
.me
.line
= 1896;
12029 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___name
;
12030 fra
.me
.has_broke
= 0;
12031 fra
.me
.REG_size
= 1;
12032 fra
.me
.nitni_local_ref_head
= NULL
;
12033 fra
.me
.REG
[0] = NIT_NULL
;
12034 fra
.me
.REG
[0] = p0
;
12035 /* syntax/typing.nit:1896 */
12036 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12037 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12040 stack_frame_head
= fra
.me
.prev
;
12041 return fra
.me
.REG
[0];
12043 val_t
syntax___typing___ACallExpr___compute_raw_arguments(val_t p0
){
12044 struct {struct stack_frame_t me
;} fra
;
12046 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12047 fra
.me
.file
= LOCATE_syntax___typing
;
12048 fra
.me
.line
= 1897;
12049 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___compute_raw_arguments
;
12050 fra
.me
.has_broke
= 0;
12051 fra
.me
.REG_size
= 1;
12052 fra
.me
.nitni_local_ref_head
= NULL
;
12053 fra
.me
.REG
[0] = NIT_NULL
;
12054 fra
.me
.REG
[0] = p0
;
12055 /* syntax/typing.nit:1897 */
12056 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12057 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12060 stack_frame_head
= fra
.me
.prev
;
12061 return fra
.me
.REG
[0];
12063 val_t
syntax___typing___ACallAssignExpr___variable_create(val_t p0
, val_t p1
){
12064 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12066 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12067 fra
.me
.file
= LOCATE_syntax___typing
;
12068 fra
.me
.line
= 1901;
12069 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___variable_create
;
12070 fra
.me
.has_broke
= 0;
12071 fra
.me
.REG_size
= 3;
12072 fra
.me
.nitni_local_ref_head
= NULL
;
12073 fra
.me
.REG
[0] = NIT_NULL
;
12074 fra
.me
.REG
[1] = NIT_NULL
;
12075 fra
.me
.REG
[2] = NIT_NULL
;
12076 fra
.me
.REG
[0] = p0
;
12077 fra
.me
.REG
[1] = p1
;
12078 /* syntax/typing.nit:1903 */
12079 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12080 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_assign(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12081 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12082 fra
.me
.REG
[0] = NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
12085 stack_frame_head
= fra
.me
.prev
;
12086 return fra
.me
.REG
[0];
12088 val_t
syntax___typing___ACallAssignExpr___name(val_t p0
){
12089 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12092 static val_t once_value_1
; /* Once value */
12093 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12094 fra
.me
.file
= LOCATE_syntax___typing
;
12095 fra
.me
.line
= 1906;
12096 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___name
;
12097 fra
.me
.has_broke
= 0;
12098 fra
.me
.REG_size
= 2;
12099 fra
.me
.nitni_local_ref_head
= NULL
;
12100 fra
.me
.REG
[0] = NIT_NULL
;
12101 fra
.me
.REG
[1] = NIT_NULL
;
12102 fra
.me
.REG
[0] = p0
;
12103 /* syntax/typing.nit:1906 */
12104 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12105 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12106 if (!once_value_1
) {
12107 fra
.me
.REG
[1] = BOX_NativeString("=");
12108 REGB0
= TAG_Int(1);
12109 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
12110 once_value_1
= fra
.me
.REG
[1];
12111 register_static_object(&once_value_1
);
12112 } else fra
.me
.REG
[1] = once_value_1
;
12113 fra
.me
.REG
[1] = fra
.me
.REG
[1];
12114 fra
.me
.REG
[1] = CALL_standard___string___String_____plus(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12115 fra
.me
.REG
[1] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12118 stack_frame_head
= fra
.me
.prev
;
12119 return fra
.me
.REG
[1];
12121 val_t
syntax___typing___ACallAssignExpr___compute_raw_arguments(val_t p0
){
12122 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12124 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12125 fra
.me
.file
= LOCATE_syntax___typing
;
12126 fra
.me
.line
= 1907;
12127 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments
;
12128 fra
.me
.has_broke
= 0;
12129 fra
.me
.REG_size
= 2;
12130 fra
.me
.nitni_local_ref_head
= NULL
;
12131 fra
.me
.REG
[0] = NIT_NULL
;
12132 fra
.me
.REG
[1] = NIT_NULL
;
12133 fra
.me
.REG
[0] = p0
;
12134 /* syntax/typing.nit:1908 */
12135 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12136 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12137 /* syntax/typing.nit:1909 */
12138 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12139 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12140 /* syntax/typing.nit:1910 */
12143 stack_frame_head
= fra
.me
.prev
;
12144 return fra
.me
.REG
[1];
12146 val_t
syntax___typing___ACallReassignExpr___variable_create(val_t p0
, val_t p1
){
12147 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12149 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12150 fra
.me
.file
= LOCATE_syntax___typing
;
12151 fra
.me
.line
= 1915;
12152 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___variable_create
;
12153 fra
.me
.has_broke
= 0;
12154 fra
.me
.REG_size
= 3;
12155 fra
.me
.nitni_local_ref_head
= NULL
;
12156 fra
.me
.REG
[0] = NIT_NULL
;
12157 fra
.me
.REG
[1] = NIT_NULL
;
12158 fra
.me
.REG
[2] = NIT_NULL
;
12159 fra
.me
.REG
[0] = p0
;
12160 fra
.me
.REG
[1] = p1
;
12161 /* syntax/typing.nit:1917 */
12162 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12163 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12164 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12165 fra
.me
.REG
[0] = NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
12168 stack_frame_head
= fra
.me
.prev
;
12169 return fra
.me
.REG
[0];
12171 val_t
syntax___typing___ACallReassignExpr___name(val_t p0
){
12172 struct {struct stack_frame_t me
;} fra
;
12174 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12175 fra
.me
.file
= LOCATE_syntax___typing
;
12176 fra
.me
.line
= 1920;
12177 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___name
;
12178 fra
.me
.has_broke
= 0;
12179 fra
.me
.REG_size
= 1;
12180 fra
.me
.nitni_local_ref_head
= NULL
;
12181 fra
.me
.REG
[0] = NIT_NULL
;
12182 fra
.me
.REG
[0] = p0
;
12183 /* syntax/typing.nit:1920 */
12184 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12185 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12188 stack_frame_head
= fra
.me
.prev
;
12189 return fra
.me
.REG
[0];
12191 val_t
syntax___typing___ACallReassignExpr___compute_raw_arguments(val_t p0
){
12192 struct {struct stack_frame_t me
;} fra
;
12194 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12195 fra
.me
.file
= LOCATE_syntax___typing
;
12196 fra
.me
.line
= 1921;
12197 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments
;
12198 fra
.me
.has_broke
= 0;
12199 fra
.me
.REG_size
= 1;
12200 fra
.me
.nitni_local_ref_head
= NULL
;
12201 fra
.me
.REG
[0] = NIT_NULL
;
12202 fra
.me
.REG
[0] = p0
;
12203 /* syntax/typing.nit:1921 */
12204 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12205 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12208 stack_frame_head
= fra
.me
.prev
;
12209 return fra
.me
.REG
[0];
12211 val_t
syntax___typing___ABraExpr___name(val_t p0
){
12212 struct {struct stack_frame_t me
;} fra
;
12215 static val_t once_value_1
; /* Once value */
12216 static val_t once_value_2
; /* Once value */
12217 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12218 fra
.me
.file
= LOCATE_syntax___typing
;
12219 fra
.me
.line
= 1925;
12220 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___name
;
12221 fra
.me
.has_broke
= 0;
12222 fra
.me
.REG_size
= 1;
12223 fra
.me
.nitni_local_ref_head
= NULL
;
12224 fra
.me
.REG
[0] = NIT_NULL
;
12225 fra
.me
.REG
[0] = p0
;
12226 /* syntax/typing.nit:1925 */
12227 if (!once_value_1
) {
12228 if (!once_value_2
) {
12229 fra
.me
.REG
[0] = BOX_NativeString("[]");
12230 REGB0
= TAG_Int(2);
12231 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12232 once_value_2
= fra
.me
.REG
[0];
12233 register_static_object(&once_value_2
);
12234 } else fra
.me
.REG
[0] = once_value_2
;
12235 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12236 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12237 once_value_1
= fra
.me
.REG
[0];
12238 register_static_object(&once_value_1
);
12239 } else fra
.me
.REG
[0] = once_value_1
;
12240 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12243 stack_frame_head
= fra
.me
.prev
;
12244 return fra
.me
.REG
[0];
12246 val_t
syntax___typing___ABraExpr___compute_raw_arguments(val_t p0
){
12247 struct {struct stack_frame_t me
;} fra
;
12249 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12250 fra
.me
.file
= LOCATE_syntax___typing
;
12251 fra
.me
.line
= 1926;
12252 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___compute_raw_arguments
;
12253 fra
.me
.has_broke
= 0;
12254 fra
.me
.REG_size
= 1;
12255 fra
.me
.nitni_local_ref_head
= NULL
;
12256 fra
.me
.REG
[0] = NIT_NULL
;
12257 fra
.me
.REG
[0] = p0
;
12258 /* syntax/typing.nit:1926 */
12259 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12260 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12263 stack_frame_head
= fra
.me
.prev
;
12264 return fra
.me
.REG
[0];
12266 val_t
syntax___typing___ABraExpr___closure_defs(val_t p0
){
12267 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12270 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12271 fra
.me
.file
= LOCATE_syntax___typing
;
12272 fra
.me
.line
= 1927;
12273 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___closure_defs
;
12274 fra
.me
.has_broke
= 0;
12275 fra
.me
.REG_size
= 2;
12276 fra
.me
.nitni_local_ref_head
= NULL
;
12277 fra
.me
.REG
[0] = NIT_NULL
;
12278 fra
.me
.REG
[1] = NIT_NULL
;
12279 fra
.me
.REG
[0] = p0
;
12280 /* syntax/typing.nit:1929 */
12281 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12282 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12283 if (UNTAG_Bool(REGB0
)) {
12284 /* syntax/typing.nit:1930 */
12285 fra
.me
.REG
[1] = NIT_NULL
;
12288 /* syntax/typing.nit:1932 */
12289 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12290 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12291 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12295 stack_frame_head
= fra
.me
.prev
;
12296 return fra
.me
.REG
[1];
12298 val_t
syntax___typing___ABraAssignExpr___name(val_t p0
){
12299 struct {struct stack_frame_t me
;} fra
;
12302 static val_t once_value_1
; /* Once value */
12303 static val_t once_value_2
; /* Once value */
12304 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12305 fra
.me
.file
= LOCATE_syntax___typing
;
12306 fra
.me
.line
= 1938;
12307 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___name
;
12308 fra
.me
.has_broke
= 0;
12309 fra
.me
.REG_size
= 1;
12310 fra
.me
.nitni_local_ref_head
= NULL
;
12311 fra
.me
.REG
[0] = NIT_NULL
;
12312 fra
.me
.REG
[0] = p0
;
12313 /* syntax/typing.nit:1938 */
12314 if (!once_value_1
) {
12315 if (!once_value_2
) {
12316 fra
.me
.REG
[0] = BOX_NativeString("[]=");
12317 REGB0
= TAG_Int(3);
12318 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12319 once_value_2
= fra
.me
.REG
[0];
12320 register_static_object(&once_value_2
);
12321 } else fra
.me
.REG
[0] = once_value_2
;
12322 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12323 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12324 once_value_1
= fra
.me
.REG
[0];
12325 register_static_object(&once_value_1
);
12326 } else fra
.me
.REG
[0] = once_value_1
;
12327 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12330 stack_frame_head
= fra
.me
.prev
;
12331 return fra
.me
.REG
[0];
12333 val_t
syntax___typing___ABraAssignExpr___compute_raw_arguments(val_t p0
){
12334 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12336 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12337 fra
.me
.file
= LOCATE_syntax___typing
;
12338 fra
.me
.line
= 1939;
12339 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments
;
12340 fra
.me
.has_broke
= 0;
12341 fra
.me
.REG_size
= 2;
12342 fra
.me
.nitni_local_ref_head
= NULL
;
12343 fra
.me
.REG
[0] = NIT_NULL
;
12344 fra
.me
.REG
[1] = NIT_NULL
;
12345 fra
.me
.REG
[0] = p0
;
12346 /* syntax/typing.nit:1940 */
12347 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12348 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12349 /* syntax/typing.nit:1941 */
12350 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12351 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12352 /* syntax/typing.nit:1942 */
12355 stack_frame_head
= fra
.me
.prev
;
12356 return fra
.me
.REG
[1];
12358 val_t
syntax___typing___ABraReassignExpr___name(val_t p0
){
12359 struct {struct stack_frame_t me
;} fra
;
12362 static val_t once_value_1
; /* Once value */
12363 static val_t once_value_2
; /* Once value */
12364 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12365 fra
.me
.file
= LOCATE_syntax___typing
;
12366 fra
.me
.line
= 1947;
12367 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___name
;
12368 fra
.me
.has_broke
= 0;
12369 fra
.me
.REG_size
= 1;
12370 fra
.me
.nitni_local_ref_head
= NULL
;
12371 fra
.me
.REG
[0] = NIT_NULL
;
12372 fra
.me
.REG
[0] = p0
;
12373 /* syntax/typing.nit:1947 */
12374 if (!once_value_1
) {
12375 if (!once_value_2
) {
12376 fra
.me
.REG
[0] = BOX_NativeString("[]");
12377 REGB0
= TAG_Int(2);
12378 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12379 once_value_2
= fra
.me
.REG
[0];
12380 register_static_object(&once_value_2
);
12381 } else fra
.me
.REG
[0] = once_value_2
;
12382 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12383 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12384 once_value_1
= fra
.me
.REG
[0];
12385 register_static_object(&once_value_1
);
12386 } else fra
.me
.REG
[0] = once_value_1
;
12387 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12390 stack_frame_head
= fra
.me
.prev
;
12391 return fra
.me
.REG
[0];
12393 val_t
syntax___typing___ABraReassignExpr___compute_raw_arguments(val_t p0
){
12394 struct {struct stack_frame_t me
;} fra
;
12396 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12397 fra
.me
.file
= LOCATE_syntax___typing
;
12398 fra
.me
.line
= 1948;
12399 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments
;
12400 fra
.me
.has_broke
= 0;
12401 fra
.me
.REG_size
= 1;
12402 fra
.me
.nitni_local_ref_head
= NULL
;
12403 fra
.me
.REG
[0] = NIT_NULL
;
12404 fra
.me
.REG
[0] = p0
;
12405 /* syntax/typing.nit:1948 */
12406 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12407 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12410 stack_frame_head
= fra
.me
.prev
;
12411 return fra
.me
.REG
[0];
12413 val_t
syntax___typing___AInitExpr___name(val_t p0
){
12414 struct {struct stack_frame_t me
;} fra
;
12417 static val_t once_value_1
; /* Once value */
12418 static val_t once_value_2
; /* Once value */
12419 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12420 fra
.me
.file
= LOCATE_syntax___typing
;
12421 fra
.me
.line
= 1952;
12422 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___name
;
12423 fra
.me
.has_broke
= 0;
12424 fra
.me
.REG_size
= 1;
12425 fra
.me
.nitni_local_ref_head
= NULL
;
12426 fra
.me
.REG
[0] = NIT_NULL
;
12427 fra
.me
.REG
[0] = p0
;
12428 /* syntax/typing.nit:1952 */
12429 if (!once_value_1
) {
12430 if (!once_value_2
) {
12431 fra
.me
.REG
[0] = BOX_NativeString("init");
12432 REGB0
= TAG_Int(4);
12433 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12434 once_value_2
= fra
.me
.REG
[0];
12435 register_static_object(&once_value_2
);
12436 } else fra
.me
.REG
[0] = once_value_2
;
12437 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12438 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12439 once_value_1
= fra
.me
.REG
[0];
12440 register_static_object(&once_value_1
);
12441 } else fra
.me
.REG
[0] = once_value_1
;
12442 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12445 stack_frame_head
= fra
.me
.prev
;
12446 return fra
.me
.REG
[0];
12448 val_t
syntax___typing___AInitExpr___compute_raw_arguments(val_t p0
){
12449 struct {struct stack_frame_t me
;} fra
;
12451 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12452 fra
.me
.file
= LOCATE_syntax___typing
;
12453 fra
.me
.line
= 1953;
12454 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___compute_raw_arguments
;
12455 fra
.me
.has_broke
= 0;
12456 fra
.me
.REG_size
= 1;
12457 fra
.me
.nitni_local_ref_head
= NULL
;
12458 fra
.me
.REG
[0] = NIT_NULL
;
12459 fra
.me
.REG
[0] = p0
;
12460 /* syntax/typing.nit:1953 */
12461 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12462 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12465 stack_frame_head
= fra
.me
.prev
;
12466 return fra
.me
.REG
[0];
12468 val_t
syntax___typing___AClosureCallExpr___variable(val_t p0
){
12469 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12472 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12473 fra
.me
.file
= LOCATE_syntax___typing
;
12474 fra
.me
.line
= 1958;
12475 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___variable
;
12476 fra
.me
.has_broke
= 0;
12477 fra
.me
.REG_size
= 2;
12478 fra
.me
.nitni_local_ref_head
= NULL
;
12479 fra
.me
.REG
[0] = NIT_NULL
;
12480 fra
.me
.REG
[1] = NIT_NULL
;
12481 fra
.me
.REG
[0] = p0
;
12482 /* syntax/typing.nit:1958 */
12483 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12484 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[1]);
12485 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12486 if (UNTAG_Bool(REGB0
)) {
12488 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1958);
12492 stack_frame_head
= fra
.me
.prev
;
12493 return fra
.me
.REG
[1];
12495 val_t
syntax___typing___AClosureCallExpr___compute_raw_arguments(val_t p0
){
12496 struct {struct stack_frame_t me
;} fra
;
12498 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12499 fra
.me
.file
= LOCATE_syntax___typing
;
12500 fra
.me
.line
= 1959;
12501 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments
;
12502 fra
.me
.has_broke
= 0;
12503 fra
.me
.REG_size
= 1;
12504 fra
.me
.nitni_local_ref_head
= NULL
;
12505 fra
.me
.REG
[0] = NIT_NULL
;
12506 fra
.me
.REG
[0] = p0
;
12507 /* syntax/typing.nit:1959 */
12508 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AClosureCallExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12509 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12512 stack_frame_head
= fra
.me
.prev
;
12513 return fra
.me
.REG
[0];
12515 void syntax___typing___AClosureCallExpr___after_typing(val_t p0
, val_t p1
){
12516 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12520 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12521 fra
.me
.file
= LOCATE_syntax___typing
;
12522 fra
.me
.line
= 1961;
12523 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___after_typing
;
12524 fra
.me
.has_broke
= 0;
12525 fra
.me
.REG_size
= 5;
12526 fra
.me
.nitni_local_ref_head
= NULL
;
12527 fra
.me
.REG
[0] = NIT_NULL
;
12528 fra
.me
.REG
[1] = NIT_NULL
;
12529 fra
.me
.REG
[2] = NIT_NULL
;
12530 fra
.me
.REG
[3] = NIT_NULL
;
12531 fra
.me
.REG
[4] = NIT_NULL
;
12532 fra
.me
.REG
[0] = p0
;
12533 fra
.me
.REG
[1] = p1
;
12534 /* syntax/typing.nit:1963 */
12535 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12536 /* syntax/typing.nit:1964 */
12537 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12538 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12539 if (UNTAG_Bool(REGB0
)) {
12540 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12542 /* syntax/typing.nit:1965 */
12543 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12544 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12545 /* syntax/typing.nit:1966 */
12546 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12547 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12548 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12549 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]);
12550 /* syntax/typing.nit:1967 */
12551 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12552 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12553 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
12554 if (UNTAG_Bool(REGB1
)) {
12555 /* syntax/typing.nit:1968 */
12556 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12557 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12558 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12559 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12560 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]);
12562 /* syntax/typing.nit:1970 */
12563 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12564 if (UNTAG_Bool(REGB0
)) {
12567 /* syntax/typing.nit:1971 */
12568 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12569 /* syntax/typing.nit:1972 */
12570 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12571 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12572 /* syntax/typing.nit:1973 */
12573 REGB0
= TAG_Bool(true);
12574 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12576 stack_frame_head
= fra
.me
.prev
;
12579 val_t
syntax___typing___AClosureId___to_symbol(val_t p0
){
12580 struct {struct stack_frame_t me
;} fra
;
12582 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12583 fra
.me
.file
= LOCATE_syntax___typing
;
12584 fra
.me
.line
= 1978;
12585 fra
.me
.meth
= LOCATE_syntax___typing___AClosureId___to_symbol
;
12586 fra
.me
.has_broke
= 0;
12587 fra
.me
.REG_size
= 0;
12588 fra
.me
.nitni_local_ref_head
= NULL
;
12589 /* syntax/typing.nit:1978 */
12590 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1978);
12591 stack_frame_head
= fra
.me
.prev
;
12594 val_t
syntax___typing___ASimpleClosureId___to_symbol(val_t p0
){
12595 struct {struct stack_frame_t me
;} fra
;
12597 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12598 fra
.me
.file
= LOCATE_syntax___typing
;
12599 fra
.me
.line
= 1981;
12600 fra
.me
.meth
= LOCATE_syntax___typing___ASimpleClosureId___to_symbol
;
12601 fra
.me
.has_broke
= 0;
12602 fra
.me
.REG_size
= 1;
12603 fra
.me
.nitni_local_ref_head
= NULL
;
12604 fra
.me
.REG
[0] = NIT_NULL
;
12605 fra
.me
.REG
[0] = p0
;
12606 /* syntax/typing.nit:1981 */
12607 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASimpleClosureId___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12608 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12611 stack_frame_head
= fra
.me
.prev
;
12612 return fra
.me
.REG
[0];
12614 val_t
syntax___typing___ABreakClosureId___to_symbol(val_t p0
){
12615 struct {struct stack_frame_t me
;} fra
;
12617 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12618 fra
.me
.file
= LOCATE_syntax___typing
;
12619 fra
.me
.line
= 1984;
12620 fra
.me
.meth
= LOCATE_syntax___typing___ABreakClosureId___to_symbol
;
12621 fra
.me
.has_broke
= 0;
12622 fra
.me
.REG_size
= 1;
12623 fra
.me
.nitni_local_ref_head
= NULL
;
12624 fra
.me
.REG
[0] = NIT_NULL
;
12625 fra
.me
.REG
[0] = p0
;
12626 /* syntax/typing.nit:1984 */
12627 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12628 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12631 stack_frame_head
= fra
.me
.prev
;
12632 return fra
.me
.REG
[0];
12634 val_t
syntax___typing___AClosureDef___closure(val_t p0
){
12635 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12638 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12639 fra
.me
.file
= LOCATE_syntax___typing
;
12640 fra
.me
.line
= 1989;
12641 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___closure
;
12642 fra
.me
.has_broke
= 0;
12643 fra
.me
.REG_size
= 2;
12644 fra
.me
.nitni_local_ref_head
= NULL
;
12645 fra
.me
.REG
[0] = NIT_NULL
;
12646 fra
.me
.REG
[1] = NIT_NULL
;
12647 fra
.me
.REG
[0] = p0
;
12648 /* syntax/typing.nit:1989 */
12649 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12650 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[1]);
12651 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12652 if (UNTAG_Bool(REGB0
)) {
12654 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1989);
12658 stack_frame_head
= fra
.me
.prev
;
12659 return fra
.me
.REG
[1];
12661 val_t
syntax___typing___AClosureDef___escapable(val_t p0
){
12662 struct {struct stack_frame_t me
;} fra
;
12664 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12665 fra
.me
.file
= LOCATE_syntax___typing
;
12666 fra
.me
.line
= 1991;
12667 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___escapable
;
12668 fra
.me
.has_broke
= 0;
12669 fra
.me
.REG_size
= 1;
12670 fra
.me
.nitni_local_ref_head
= NULL
;
12671 fra
.me
.REG
[0] = NIT_NULL
;
12672 fra
.me
.REG
[0] = p0
;
12673 /* syntax/typing.nit:1991 */
12674 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]);
12675 stack_frame_head
= fra
.me
.prev
;
12676 return fra
.me
.REG
[0];
12678 void syntax___typing___AClosureDef___accept_typing(val_t p0
, val_t p1
){
12679 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12682 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12683 fra
.me
.file
= LOCATE_syntax___typing
;
12684 fra
.me
.line
= 1995;
12685 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing
;
12686 fra
.me
.has_broke
= 0;
12687 fra
.me
.REG_size
= 3;
12688 fra
.me
.nitni_local_ref_head
= NULL
;
12689 fra
.me
.REG
[0] = NIT_NULL
;
12690 fra
.me
.REG
[1] = NIT_NULL
;
12691 fra
.me
.REG
[2] = NIT_NULL
;
12692 fra
.me
.REG
[0] = p0
;
12693 fra
.me
.REG
[1] = p1
;
12694 /* syntax/typing.nit:1995 */
12695 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12696 /* syntax/typing.nit:1998 */
12697 REGB0
= TAG_Bool(ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2])!=NIT_NULL
);
12698 if (UNTAG_Bool(REGB0
)) {
12700 nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_syntax___typing
, 1998);
12702 REGB0
= ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2]);
12703 if (UNTAG_Bool(REGB0
)) {
12704 CALL_SUPER_syntax___typing___AClosureDef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12706 stack_frame_head
= fra
.me
.prev
;
12709 void syntax___typing___AClosureDef___accept_typing2(val_t p0
, val_t p1
, val_t p2
){
12710 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
12716 static val_t once_value_1
; /* Once value */
12717 static val_t once_value_2
; /* Once value */
12718 static val_t once_value_3
; /* Once value */
12719 static val_t once_value_6
; /* Once value */
12720 static val_t once_value_7
; /* Once value */
12721 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12722 fra
.me
.file
= LOCATE_syntax___typing
;
12723 fra
.me
.line
= 2001;
12724 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing2
;
12725 fra
.me
.has_broke
= 0;
12726 fra
.me
.REG_size
= 8;
12727 fra
.me
.nitni_local_ref_head
= NULL
;
12728 fra
.me
.REG
[0] = NIT_NULL
;
12729 fra
.me
.REG
[1] = NIT_NULL
;
12730 fra
.me
.REG
[2] = NIT_NULL
;
12731 fra
.me
.REG
[3] = NIT_NULL
;
12732 fra
.me
.REG
[4] = NIT_NULL
;
12733 fra
.me
.REG
[5] = NIT_NULL
;
12734 fra
.me
.REG
[6] = NIT_NULL
;
12735 fra
.me
.REG
[7] = NIT_NULL
;
12736 fra
.me
.REG
[0] = p0
;
12737 fra
.me
.REG
[1] = p1
;
12738 fra
.me
.REG
[2] = p2
;
12739 /* syntax/typing.nit:2003 */
12740 ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12741 /* syntax/typing.nit:2005 */
12742 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12743 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12744 /* syntax/typing.nit:2006 */
12745 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12746 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12747 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12748 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
12749 if (UNTAG_Bool(REGB2
)) {
12751 /* ../lib/standard/kernel.nit:227 */
12752 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
12753 /* syntax/typing.nit:2006 */
12756 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
12757 if (UNTAG_Bool(REGB2
)) {
12758 /* syntax/typing.nit:2007 */
12759 REGB2
= TAG_Int(5);
12760 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
12761 if (!once_value_1
) {
12762 fra
.me
.REG
[5] = BOX_NativeString("Error: ");
12763 REGB2
= TAG_Int(7);
12764 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12765 once_value_1
= fra
.me
.REG
[5];
12766 register_static_object(&once_value_1
);
12767 } else fra
.me
.REG
[5] = once_value_1
;
12768 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12770 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12771 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
12772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12773 if (!once_value_2
) {
12774 fra
.me
.REG
[5] = BOX_NativeString(" automatic variable names expected, ");
12775 REGB2
= TAG_Int(36);
12776 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12777 once_value_2
= fra
.me
.REG
[5];
12778 register_static_object(&once_value_2
);
12779 } else fra
.me
.REG
[5] = once_value_2
;
12780 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12781 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12782 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12783 REGB2
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
12784 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
12785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12786 if (!once_value_3
) {
12787 fra
.me
.REG
[5] = BOX_NativeString(" found.");
12788 REGB2
= TAG_Int(7);
12789 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12790 once_value_3
= fra
.me
.REG
[5];
12791 register_static_object(&once_value_3
);
12792 } else fra
.me
.REG
[5] = once_value_3
;
12793 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12794 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12795 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12796 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12797 /* syntax/typing.nit:2008 */
12800 /* syntax/typing.nit:2011 */
12801 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12802 ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12803 /* syntax/typing.nit:2013 */
12804 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12805 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
12806 /* syntax/typing.nit:2014 */
12807 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12808 /* syntax/typing.nit:2015 */
12809 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12810 /* syntax/typing.nit:2016 */
12811 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12812 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
12813 /* syntax/typing.nit:2017 */
12814 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
12815 CALL_syntax___syntax_base___AClosureDef___variables__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
12816 /* syntax/typing.nit:2018 */
12817 REGB2
= TAG_Int(0);
12818 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12819 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
12820 /* ../lib/standard/kernel.nit:352 */
12822 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
12823 if (UNTAG_Bool(REGB0
)) {
12825 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
12827 /* ../lib/standard/kernel.nit:232 */
12828 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
12829 /* ../lib/standard/kernel.nit:352 */
12830 if (UNTAG_Bool(REGB0
)) {
12831 /* syntax/typing.nit:2018 */
12833 /* syntax/typing.nit:2019 */
12834 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12835 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
12836 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
12837 if (UNTAG_Bool(REGB3
)) {
12838 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 2019);
12840 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
12841 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12842 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
12843 fra
.me
.REG
[7] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12844 /* syntax/typing.nit:2020 */
12845 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12846 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
12847 if (UNTAG_Bool(REGB3
)) {
12848 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 2020);
12850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12851 /* syntax/typing.nit:2021 */
12852 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
12853 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
12854 /* syntax/typing.nit:2022 */
12855 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12856 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12857 /* ../lib/standard/kernel.nit:354 */
12858 REGB0
= TAG_Int(1);
12859 /* ../lib/standard/kernel.nit:235 */
12860 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
12861 /* ../lib/standard/kernel.nit:354 */
12864 /* ../lib/standard/kernel.nit:352 */
12869 /* syntax/typing.nit:2025 */
12870 REGB2
= TAG_Bool(true);
12871 ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[0]) = REGB2
;
12872 /* syntax/typing.nit:2026 */
12873 CALL_syntax___typing___ANode___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12874 /* syntax/typing.nit:2028 */
12875 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12876 REGB2
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12877 REGB1
= TAG_Bool(false);
12878 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
12879 if (UNTAG_Bool(REGB0
)) {
12881 /* ../lib/standard/kernel.nit:195 */
12882 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
12883 /* syntax/typing.nit:2028 */
12886 if (UNTAG_Bool(REGB0
)) {
12887 /* syntax/typing.nit:2029 */
12888 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12889 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12890 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12891 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12892 if (UNTAG_Bool(REGB0
)) {
12894 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12895 if (UNTAG_Bool(REGB1
)) {
12896 REGB1
= TAG_Bool(false);
12899 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12903 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12904 if (UNTAG_Bool(REGB0
)) {
12905 /* syntax/typing.nit:2030 */
12906 if (!once_value_6
) {
12907 fra
.me
.REG
[3] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
12908 REGB0
= TAG_Int(77);
12909 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12910 once_value_6
= fra
.me
.REG
[3];
12911 register_static_object(&once_value_6
);
12912 } else fra
.me
.REG
[3] = once_value_6
;
12913 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12914 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12916 /* syntax/typing.nit:2031 */
12917 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12918 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12919 if (UNTAG_Bool(REGB0
)) {
12920 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12921 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
12922 if (UNTAG_Bool(REGB0
)) {
12924 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
12925 if (UNTAG_Bool(REGB1
)) {
12926 REGB1
= TAG_Bool(false);
12929 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
12933 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12935 REGB1
= TAG_Bool(false);
12938 if (UNTAG_Bool(REGB0
)) {
12939 /* syntax/typing.nit:2032 */
12940 if (!once_value_7
) {
12941 fra
.me
.REG
[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
12942 REGB0
= TAG_Int(80);
12943 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
12944 once_value_7
= fra
.me
.REG
[2];
12945 register_static_object(&once_value_7
);
12946 } else fra
.me
.REG
[2] = once_value_7
;
12947 fra
.me
.REG
[2] = fra
.me
.REG
[2];
12948 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
12952 /* syntax/typing.nit:2035 */
12953 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
12954 /* syntax/typing.nit:2036 */
12955 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
12956 /* syntax/typing.nit:2037 */
12957 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12958 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12960 stack_frame_head
= fra
.me
.prev
;
12963 void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
12964 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
12968 static val_t once_value_2
; /* Once value */
12969 static val_t once_value_3
; /* Once value */
12970 static val_t once_value_4
; /* Once value */
12971 static val_t once_value_5
; /* Once value */
12972 static val_t once_value_6
; /* Once value */
12973 static val_t once_value_7
; /* Once value */
12974 static val_t once_value_8
; /* Once value */
12975 static val_t once_value_9
; /* Once value */
12976 static val_t once_value_10
; /* Once value */
12977 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12978 fra
.me
.file
= LOCATE_syntax___typing
;
12979 fra
.me
.line
= 2043;
12980 fra
.me
.meth
= LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast
;
12981 fra
.me
.has_broke
= 0;
12982 fra
.me
.REG_size
= 6;
12983 fra
.me
.nitni_local_ref_head
= NULL
;
12984 fra
.me
.REG
[0] = NIT_NULL
;
12985 fra
.me
.REG
[1] = NIT_NULL
;
12986 fra
.me
.REG
[2] = NIT_NULL
;
12987 fra
.me
.REG
[3] = NIT_NULL
;
12988 fra
.me
.REG
[4] = NIT_NULL
;
12989 fra
.me
.REG
[5] = NIT_NULL
;
12990 fra
.me
.REG
[0] = p0
;
12991 fra
.me
.REG
[1] = p1
;
12992 fra
.me
.REG
[2] = p2
;
12993 fra
.me
.REG
[3] = p3
;
12994 /* syntax/typing.nit:2045 */
12995 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
12996 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12997 if (UNTAG_Bool(REGB0
)) {
13000 /* syntax/typing.nit:2046 */
13001 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13002 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13003 if (UNTAG_Bool(REGB0
)) {
13006 /* syntax/typing.nit:2047 */
13007 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13008 /* syntax/typing.nit:2048 */
13009 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13010 /* syntax/typing.nit:2049 */
13011 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13012 if (UNTAG_Bool(REGB0
)) {
13014 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13017 if (UNTAG_Bool(REGB0
)) {
13018 /* syntax/typing.nit:2050 */
13019 REGB0
= TAG_Int(3);
13020 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13021 if (!once_value_2
) {
13022 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
13023 REGB0
= TAG_Int(33);
13024 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13025 once_value_2
= fra
.me
.REG
[5];
13026 register_static_object(&once_value_2
);
13027 } else fra
.me
.REG
[5] = once_value_2
;
13028 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13029 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13030 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13031 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13032 if (!once_value_3
) {
13033 fra
.me
.REG
[5] = BOX_NativeString(".");
13034 REGB0
= TAG_Int(1);
13035 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13036 once_value_3
= fra
.me
.REG
[5];
13037 register_static_object(&once_value_3
);
13038 } else fra
.me
.REG
[5] = once_value_3
;
13039 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13040 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13041 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13042 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13044 /* syntax/typing.nit:2051 */
13045 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13046 if (UNTAG_Bool(REGB0
)) {
13047 /* syntax/typing.nit:2052 */
13048 REGB0
= TAG_Int(5);
13049 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13050 if (!once_value_4
) {
13051 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
13052 REGB0
= TAG_Int(33);
13053 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13054 once_value_4
= fra
.me
.REG
[5];
13055 register_static_object(&once_value_4
);
13056 } else fra
.me
.REG
[5] = once_value_4
;
13057 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13058 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13059 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13060 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13061 if (!once_value_5
) {
13062 fra
.me
.REG
[5] = BOX_NativeString(" since it is a ");
13063 REGB0
= TAG_Int(15);
13064 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13065 once_value_5
= fra
.me
.REG
[5];
13066 register_static_object(&once_value_5
);
13067 } else fra
.me
.REG
[5] = once_value_5
;
13068 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13069 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13070 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13071 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13072 if (!once_value_6
) {
13073 fra
.me
.REG
[5] = BOX_NativeString(".");
13074 REGB0
= TAG_Int(1);
13075 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13076 once_value_6
= fra
.me
.REG
[5];
13077 register_static_object(&once_value_6
);
13078 } else fra
.me
.REG
[5] = once_value_6
;
13079 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13080 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13081 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13082 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13084 /* syntax/typing.nit:2053 */
13085 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
13086 if (UNTAG_Bool(REGB0
)) {
13087 /* syntax/typing.nit:2055 */
13088 REGB0
= TAG_Int(3);
13089 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13090 if (!once_value_7
) {
13091 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is null therefore cannot be a ");
13092 REGB0
= TAG_Int(50);
13093 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13094 once_value_7
= fra
.me
.REG
[5];
13095 register_static_object(&once_value_7
);
13096 } else fra
.me
.REG
[5] = once_value_7
;
13097 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13099 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13100 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13101 if (!once_value_8
) {
13102 fra
.me
.REG
[5] = BOX_NativeString(".");
13103 REGB0
= TAG_Int(1);
13104 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13105 once_value_8
= fra
.me
.REG
[5];
13106 register_static_object(&once_value_8
);
13107 } else fra
.me
.REG
[5] = once_value_8
;
13108 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13109 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13110 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13111 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13113 /* syntax/typing.nit:2056 */
13114 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13115 if (UNTAG_Bool(REGB0
)) {
13116 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13117 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13118 if (UNTAG_Bool(REGB0
)) {
13120 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13124 REGB1
= TAG_Bool(false);
13127 if (UNTAG_Bool(REGB0
)) {
13128 /* syntax/typing.nit:2057 */
13129 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___type_formal___MMTypeFormal
, ID_metamodel___type_formal___MMTypeFormal
)) /*cast MMTypeFormal*/;
13130 if (UNTAG_Bool(REGB0
)) {
13131 fra
.me
.REG
[3] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13132 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13134 REGB1
= TAG_Bool(false);
13137 if (UNTAG_Bool(REGB0
)) {
13139 /* syntax/typing.nit:2063 */
13140 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AIsaExpr
, ID_parser___parser_nodes___AIsaExpr
)) /*cast AIsaExpr*/;
13141 if (UNTAG_Bool(REGB0
)) {
13142 /* syntax/typing.nit:2064 */
13143 if (!once_value_9
) {
13144 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '!= null'.");
13145 REGB0
= TAG_Int(26);
13146 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
13147 once_value_9
= fra
.me
.REG
[3];
13148 register_static_object(&once_value_9
);
13149 } else fra
.me
.REG
[3] = once_value_9
;
13150 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13151 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
13153 /* syntax/typing.nit:2066 */
13154 if (!once_value_10
) {
13155 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
13156 REGB0
= TAG_Int(32);
13157 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
13158 once_value_10
= fra
.me
.REG
[3];
13159 register_static_object(&once_value_10
);
13160 } else fra
.me
.REG
[3] = once_value_10
;
13161 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13162 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
13170 stack_frame_head
= fra
.me
.prev
;
13173 void syntax___typing___AIsaExpr___after_typing(val_t p0
, val_t p1
){
13174 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13178 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13179 fra
.me
.file
= LOCATE_syntax___typing
;
13180 fra
.me
.line
= 2074;
13181 fra
.me
.meth
= LOCATE_syntax___typing___AIsaExpr___after_typing
;
13182 fra
.me
.has_broke
= 0;
13183 fra
.me
.REG_size
= 5;
13184 fra
.me
.nitni_local_ref_head
= NULL
;
13185 fra
.me
.REG
[0] = NIT_NULL
;
13186 fra
.me
.REG
[1] = NIT_NULL
;
13187 fra
.me
.REG
[2] = NIT_NULL
;
13188 fra
.me
.REG
[3] = NIT_NULL
;
13189 fra
.me
.REG
[4] = NIT_NULL
;
13190 fra
.me
.REG
[0] = p0
;
13191 fra
.me
.REG
[1] = p1
;
13192 /* syntax/typing.nit:2076 */
13193 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13194 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13195 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]);
13196 /* syntax/typing.nit:2077 */
13197 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13198 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13199 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13200 if (UNTAG_Bool(REGB0
)) {
13203 /* syntax/typing.nit:2078 */
13204 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13205 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13206 /* syntax/typing.nit:2079 */
13207 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13208 if (UNTAG_Bool(REGB0
)) {
13210 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13211 if (UNTAG_Bool(REGB1
)) {
13212 REGB1
= TAG_Bool(false);
13215 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13219 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13220 if (UNTAG_Bool(REGB0
)) {
13221 /* syntax/typing.nit:2080 */
13222 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13223 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13224 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13225 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]);
13226 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13228 /* syntax/typing.nit:2082 */
13229 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13230 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13231 /* syntax/typing.nit:2083 */
13232 REGB0
= TAG_Bool(true);
13233 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13235 stack_frame_head
= fra
.me
.prev
;
13238 void syntax___typing___AAsCastExpr___after_typing(val_t p0
, val_t p1
){
13239 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
13243 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13244 fra
.me
.file
= LOCATE_syntax___typing
;
13245 fra
.me
.line
= 2089;
13246 fra
.me
.meth
= LOCATE_syntax___typing___AAsCastExpr___after_typing
;
13247 fra
.me
.has_broke
= 0;
13248 fra
.me
.REG_size
= 4;
13249 fra
.me
.nitni_local_ref_head
= NULL
;
13250 fra
.me
.REG
[0] = NIT_NULL
;
13251 fra
.me
.REG
[1] = NIT_NULL
;
13252 fra
.me
.REG
[2] = NIT_NULL
;
13253 fra
.me
.REG
[3] = NIT_NULL
;
13254 fra
.me
.REG
[0] = p0
;
13255 fra
.me
.REG
[1] = p1
;
13256 /* syntax/typing.nit:2091 */
13257 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13258 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13259 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]);
13260 /* syntax/typing.nit:2092 */
13261 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13262 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13263 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13264 if (UNTAG_Bool(REGB0
)) {
13267 /* syntax/typing.nit:2093 */
13268 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13269 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13270 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
13271 /* syntax/typing.nit:2094 */
13272 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
13273 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13274 if (UNTAG_Bool(REGB0
)) {
13276 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13277 if (UNTAG_Bool(REGB1
)) {
13278 REGB1
= TAG_Bool(false);
13281 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13285 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13286 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13288 stack_frame_head
= fra
.me
.prev
;
13291 void syntax___typing___AAsNotnullExpr___after_typing(val_t p0
, val_t p1
){
13292 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13295 static val_t once_value_2
; /* Once value */
13296 static val_t once_value_3
; /* Once value */
13297 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13298 fra
.me
.file
= LOCATE_syntax___typing
;
13299 fra
.me
.line
= 2099;
13300 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotnullExpr___after_typing
;
13301 fra
.me
.has_broke
= 0;
13302 fra
.me
.REG_size
= 5;
13303 fra
.me
.nitni_local_ref_head
= NULL
;
13304 fra
.me
.REG
[0] = NIT_NULL
;
13305 fra
.me
.REG
[1] = NIT_NULL
;
13306 fra
.me
.REG
[2] = NIT_NULL
;
13307 fra
.me
.REG
[3] = NIT_NULL
;
13308 fra
.me
.REG
[4] = NIT_NULL
;
13309 fra
.me
.REG
[0] = p0
;
13310 fra
.me
.REG
[1] = p1
;
13311 /* syntax/typing.nit:2101 */
13312 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13313 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13314 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13315 if (UNTAG_Bool(REGB0
)) {
13318 /* syntax/typing.nit:2102 */
13319 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13320 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13321 /* syntax/typing.nit:2103 */
13322 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
13323 if (UNTAG_Bool(REGB0
)) {
13324 /* syntax/typing.nit:2104 */
13325 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13326 if (!once_value_2
) {
13327 fra
.me
.REG
[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
13328 REGB0
= TAG_Int(43);
13329 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
13330 once_value_2
= fra
.me
.REG
[4];
13331 register_static_object(&once_value_2
);
13332 } else fra
.me
.REG
[4] = once_value_2
;
13333 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13334 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
13335 /* syntax/typing.nit:2105 */
13338 /* syntax/typing.nit:2106 */
13339 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13340 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13341 if (UNTAG_Bool(REGB0
)) {
13342 /* syntax/typing.nit:2107 */
13343 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13344 if (!once_value_3
) {
13345 fra
.me
.REG
[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
13346 REGB0
= TAG_Int(45);
13347 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
13348 once_value_3
= fra
.me
.REG
[4];
13349 register_static_object(&once_value_3
);
13350 } else fra
.me
.REG
[4] = once_value_3
;
13351 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13352 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
13355 /* syntax/typing.nit:2109 */
13356 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13357 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13358 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13359 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13360 /* syntax/typing.nit:2110 */
13361 REGB0
= TAG_Bool(true);
13362 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13364 stack_frame_head
= fra
.me
.prev
;
13367 void syntax___typing___AProxyExpr___after_typing(val_t p0
, val_t p1
){
13368 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
13371 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13372 fra
.me
.file
= LOCATE_syntax___typing
;
13373 fra
.me
.line
= 2115;
13374 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___after_typing
;
13375 fra
.me
.has_broke
= 0;
13376 fra
.me
.REG_size
= 2;
13377 fra
.me
.nitni_local_ref_head
= NULL
;
13378 fra
.me
.REG
[0] = NIT_NULL
;
13379 fra
.me
.REG
[1] = NIT_NULL
;
13380 fra
.me
.REG
[0] = p0
;
13381 fra
.me
.REG
[1] = p1
;
13382 /* syntax/typing.nit:2117 */
13383 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13384 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13385 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13386 if (UNTAG_Bool(REGB0
)) {
13389 /* syntax/typing.nit:2118 */
13390 REGB0
= TAG_Bool(true);
13391 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13392 /* syntax/typing.nit:2119 */
13393 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13394 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13395 if (UNTAG_Bool(REGB0
)) {
13398 /* syntax/typing.nit:2120 */
13399 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13400 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13401 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13402 /* syntax/typing.nit:2121 */
13403 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13404 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[1]);
13405 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13406 /* syntax/typing.nit:2122 */
13407 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13408 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[1]);
13409 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13411 stack_frame_head
= fra
.me
.prev
;
13414 val_t
syntax___typing___AProxyExpr___is_self(val_t p0
){
13415 struct {struct stack_frame_t me
;} fra
;
13418 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13419 fra
.me
.file
= LOCATE_syntax___typing
;
13420 fra
.me
.line
= 2125;
13421 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___is_self
;
13422 fra
.me
.has_broke
= 0;
13423 fra
.me
.REG_size
= 1;
13424 fra
.me
.nitni_local_ref_head
= NULL
;
13425 fra
.me
.REG
[0] = NIT_NULL
;
13426 fra
.me
.REG
[0] = p0
;
13427 /* syntax/typing.nit:2125 */
13428 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13429 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13432 stack_frame_head
= fra
.me
.prev
;
13435 val_t
syntax___typing___AProxyExpr___its_variable(val_t p0
){
13436 struct {struct stack_frame_t me
;} fra
;
13438 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13439 fra
.me
.file
= LOCATE_syntax___typing
;
13440 fra
.me
.line
= 2127;
13441 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___its_variable
;
13442 fra
.me
.has_broke
= 0;
13443 fra
.me
.REG_size
= 1;
13444 fra
.me
.nitni_local_ref_head
= NULL
;
13445 fra
.me
.REG
[0] = NIT_NULL
;
13446 fra
.me
.REG
[0] = p0
;
13447 /* syntax/typing.nit:2127 */
13448 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13449 fra
.me
.REG
[0] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13452 stack_frame_head
= fra
.me
.prev
;
13453 return fra
.me
.REG
[0];
13455 void syntax___typing___AOnceExpr___accept_typing(val_t p0
, val_t p1
){
13456 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13461 static val_t once_value_1
; /* Once value */
13462 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13463 fra
.me
.file
= LOCATE_syntax___typing
;
13464 fra
.me
.line
= 2131;
13465 fra
.me
.meth
= LOCATE_syntax___typing___AOnceExpr___accept_typing
;
13466 fra
.me
.has_broke
= 0;
13467 fra
.me
.REG_size
= 5;
13468 fra
.me
.nitni_local_ref_head
= NULL
;
13469 fra
.me
.REG
[0] = NIT_NULL
;
13470 fra
.me
.REG
[1] = NIT_NULL
;
13471 fra
.me
.REG
[2] = NIT_NULL
;
13472 fra
.me
.REG
[3] = NIT_NULL
;
13473 fra
.me
.REG
[4] = NIT_NULL
;
13474 fra
.me
.REG
[0] = p0
;
13475 fra
.me
.REG
[1] = p1
;
13476 /* syntax/typing.nit:2131 */
13477 fra
.me
.REG
[2] = fra
.me
.REG
[0];
13478 fra
.me
.REG
[3] = fra
.me
.REG
[1];
13479 /* syntax/typing.nit:2133 */
13480 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13481 REGB1
= TAG_Int(0);
13482 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
13483 if (UNTAG_Bool(REGB2
)) {
13485 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
13487 /* ../lib/standard/kernel.nit:234 */
13488 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
13489 /* syntax/typing.nit:2133 */
13490 if (UNTAG_Bool(REGB1
)) {
13491 /* syntax/typing.nit:2134 */
13492 if (!once_value_1
) {
13493 fra
.me
.REG
[4] = BOX_NativeString("Useless once in a once expression.");
13494 REGB1
= TAG_Int(34);
13495 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
13496 once_value_1
= fra
.me
.REG
[4];
13497 register_static_object(&once_value_1
);
13498 } else fra
.me
.REG
[4] = once_value_1
;
13499 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13500 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
13502 /* syntax/typing.nit:2136 */
13503 REGB1
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13504 REGB0
= TAG_Int(1);
13505 /* ../lib/standard/kernel.nit:235 */
13506 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
13507 /* syntax/typing.nit:2136 */
13508 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13509 /* syntax/typing.nit:2138 */
13510 CALL_SUPER_syntax___typing___AOnceExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
13511 /* syntax/typing.nit:2140 */
13512 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13513 REGB1
= TAG_Int(1);
13514 /* ../lib/standard/kernel.nit:237 */
13515 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
13516 /* syntax/typing.nit:2140 */
13517 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
13518 stack_frame_head
= fra
.me
.prev
;
13521 void syntax___typing___ADebugTypeExpr___after_typing(val_t p0
, val_t p1
){
13522 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
13526 static val_t once_value_2
; /* Once value */
13527 static val_t once_value_3
; /* Once value */
13528 static val_t once_value_4
; /* Once value */
13529 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13530 fra
.me
.file
= LOCATE_syntax___typing
;
13531 fra
.me
.line
= 2145;
13532 fra
.me
.meth
= LOCATE_syntax___typing___ADebugTypeExpr___after_typing
;
13533 fra
.me
.has_broke
= 0;
13534 fra
.me
.REG_size
= 6;
13535 fra
.me
.nitni_local_ref_head
= NULL
;
13536 fra
.me
.REG
[0] = NIT_NULL
;
13537 fra
.me
.REG
[1] = NIT_NULL
;
13538 fra
.me
.REG
[2] = NIT_NULL
;
13539 fra
.me
.REG
[3] = NIT_NULL
;
13540 fra
.me
.REG
[4] = NIT_NULL
;
13541 fra
.me
.REG
[5] = NIT_NULL
;
13542 fra
.me
.REG
[0] = p0
;
13543 fra
.me
.REG
[1] = p1
;
13544 /* syntax/typing.nit:2147 */
13545 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13546 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13547 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13548 if (UNTAG_Bool(REGB0
)) {
13551 /* syntax/typing.nit:2148 */
13552 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13553 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13554 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13555 if (UNTAG_Bool(REGB0
)) {
13558 /* syntax/typing.nit:2149 */
13559 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13560 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13561 /* syntax/typing.nit:2150 */
13562 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13563 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13564 /* syntax/typing.nit:2151 */
13565 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13566 if (UNTAG_Bool(REGB0
)) {
13568 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13571 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13572 if (UNTAG_Bool(REGB0
)) {
13573 /* syntax/typing.nit:2152 */
13574 REGB0
= TAG_Int(5);
13575 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13576 if (!once_value_2
) {
13577 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is a ");
13578 REGB0
= TAG_Int(25);
13579 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13580 once_value_2
= fra
.me
.REG
[5];
13581 register_static_object(&once_value_2
);
13582 } else fra
.me
.REG
[5] = once_value_2
;
13583 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13585 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13586 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
13587 if (!once_value_3
) {
13588 fra
.me
.REG
[2] = BOX_NativeString(", expected ");
13589 REGB0
= TAG_Int(11);
13590 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
13591 once_value_3
= fra
.me
.REG
[2];
13592 register_static_object(&once_value_3
);
13593 } else fra
.me
.REG
[2] = once_value_3
;
13594 fra
.me
.REG
[2] = fra
.me
.REG
[2];
13595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
13596 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13597 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
13598 if (!once_value_4
) {
13599 fra
.me
.REG
[3] = BOX_NativeString(".");
13600 REGB0
= TAG_Int(1);
13601 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
13602 once_value_4
= fra
.me
.REG
[3];
13603 register_static_object(&once_value_4
);
13604 } else fra
.me
.REG
[3] = once_value_4
;
13605 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13606 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
13607 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13608 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13611 stack_frame_head
= fra
.me
.prev
;