1 /* This C file is generated by NIT to compile module typing. */
2 #include "typing._sep.h"
3 void 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_typing
;
9 fra
.me
.meth
= LOCATE_typing___MMSrcModule___do_typing
;
12 fra
.me
.REG
[0] = NIT_NULL
;
13 fra
.me
.REG
[1] = NIT_NULL
;
16 fra
.me
.REG
[1] = NEW_TypingVisitor_typing___TypingVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
17 fra
.me
.REG
[0] = CALL_syntax_base___MMSrcModule___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
18 /* ./syntax//typing.nit:30 */
19 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
20 stack_frame_head
= fra
.me
.prev
;
23 void typing___TypingVisitor___visit(val_t p0
, val_t p1
){
24 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
28 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
29 fra
.me
.file
= LOCATE_typing
;
31 fra
.me
.meth
= LOCATE_typing___TypingVisitor___visit
;
34 fra
.me
.REG
[0] = NIT_NULL
;
35 fra
.me
.REG
[1] = NIT_NULL
;
38 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
39 /* ./syntax//typing.nit:43 */
40 if (UNTAG_Bool(REGB0
)) {
42 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
43 if (UNTAG_Bool(REGB1
)) {
44 REGB1
= TAG_Bool(false);
47 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
51 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
52 if (UNTAG_Bool(REGB0
)) {
53 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
54 if (UNTAG_Bool(REGB0
)) {
55 fprintf(stderr
, "Reciever is null");
56 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 43);
59 CALL_typing___ANode___accept_typing(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
61 stack_frame_head
= fra
.me
.prev
;
64 val_t
typing___TypingVisitor___variable_ctx(val_t p0
){
65 struct {struct stack_frame_t me
;} fra
;
68 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
69 fra
.me
.file
= LOCATE_typing
;
71 fra
.me
.meth
= LOCATE_typing___TypingVisitor___variable_ctx
;
74 fra
.me
.REG
[0] = NIT_NULL
;
76 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____variable_ctx(fra
.me
.REG
[0]);
77 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
78 /* ./syntax//typing.nit:47 */
79 if (UNTAG_Bool(REGB0
)) {
81 fprintf(stderr
, "Cast failed");
82 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 47);
87 stack_frame_head
= fra
.me
.prev
;
90 void typing___TypingVisitor___variable_ctx__eq(val_t p0
, val_t p1
){
91 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
93 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
94 fra
.me
.file
= LOCATE_typing
;
96 fra
.me
.meth
= LOCATE_typing___TypingVisitor___variable_ctx__eq
;
99 fra
.me
.REG
[0] = NIT_NULL
;
100 fra
.me
.REG
[1] = NIT_NULL
;
103 /* ./syntax//typing.nit:48 */
104 ATTR_typing___TypingVisitor____variable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
105 stack_frame_head
= fra
.me
.prev
;
108 val_t
typing___TypingVisitor___base_variable_ctx(val_t p0
){
109 struct {struct stack_frame_t me
;} fra
;
112 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
113 fra
.me
.file
= LOCATE_typing
;
115 fra
.me
.meth
= LOCATE_typing___TypingVisitor___base_variable_ctx
;
116 fra
.me
.has_broke
= 0;
118 fra
.me
.REG
[0] = NIT_NULL
;
120 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____base_variable_ctx(fra
.me
.REG
[0]);
121 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
122 /* ./syntax//typing.nit:51 */
123 if (UNTAG_Bool(REGB0
)) {
125 fprintf(stderr
, "Cast failed");
126 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 51);
131 stack_frame_head
= fra
.me
.prev
;
132 return fra
.me
.REG
[0];
134 void typing___TypingVisitor___base_variable_ctx__eq(val_t p0
, val_t p1
){
135 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
137 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
138 fra
.me
.file
= LOCATE_typing
;
140 fra
.me
.meth
= LOCATE_typing___TypingVisitor___base_variable_ctx__eq
;
141 fra
.me
.has_broke
= 0;
143 fra
.me
.REG
[0] = NIT_NULL
;
144 fra
.me
.REG
[1] = NIT_NULL
;
147 /* ./syntax//typing.nit:52 */
148 ATTR_typing___TypingVisitor____base_variable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
149 stack_frame_head
= fra
.me
.prev
;
152 val_t
typing___TypingVisitor___escapable_ctx(val_t p0
){
153 struct {struct stack_frame_t me
;} fra
;
156 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
157 fra
.me
.file
= LOCATE_typing
;
159 fra
.me
.meth
= LOCATE_typing___TypingVisitor___escapable_ctx
;
160 fra
.me
.has_broke
= 0;
162 fra
.me
.REG
[0] = NIT_NULL
;
164 REGB0
= TAG_Bool(ATTR_typing___TypingVisitor____escapable_ctx(fra
.me
.REG
[0])!=NIT_NULL
);
165 /* ./syntax//typing.nit:54 */
166 if (UNTAG_Bool(REGB0
)) {
168 fprintf(stderr
, "Uninitialized attribute %s", "_escapable_ctx");
169 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 54);
172 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____escapable_ctx(fra
.me
.REG
[0]);
173 stack_frame_head
= fra
.me
.prev
;
174 return fra
.me
.REG
[0];
176 void typing___TypingVisitor___escapable_ctx__eq(val_t p0
, val_t p1
){
177 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
179 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
180 fra
.me
.file
= LOCATE_typing
;
182 fra
.me
.meth
= LOCATE_typing___TypingVisitor___escapable_ctx__eq
;
183 fra
.me
.has_broke
= 0;
185 fra
.me
.REG
[0] = NIT_NULL
;
186 fra
.me
.REG
[1] = NIT_NULL
;
189 /* ./syntax//typing.nit:54 */
190 ATTR_typing___TypingVisitor____escapable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
191 stack_frame_head
= fra
.me
.prev
;
194 val_t
typing___TypingVisitor___self_var(val_t p0
){
195 struct {struct stack_frame_t me
;} fra
;
198 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
199 fra
.me
.file
= LOCATE_typing
;
201 fra
.me
.meth
= LOCATE_typing___TypingVisitor___self_var
;
202 fra
.me
.has_broke
= 0;
204 fra
.me
.REG
[0] = NIT_NULL
;
206 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____self_var(fra
.me
.REG
[0]);
207 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
208 /* ./syntax//typing.nit:58 */
209 if (UNTAG_Bool(REGB0
)) {
211 fprintf(stderr
, "Cast failed");
212 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 58);
217 stack_frame_head
= fra
.me
.prev
;
218 return fra
.me
.REG
[0];
220 void typing___TypingVisitor___self_var__eq(val_t p0
, val_t p1
){
221 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
223 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
224 fra
.me
.file
= LOCATE_typing
;
226 fra
.me
.meth
= LOCATE_typing___TypingVisitor___self_var__eq
;
227 fra
.me
.has_broke
= 0;
229 fra
.me
.REG
[0] = NIT_NULL
;
230 fra
.me
.REG
[1] = NIT_NULL
;
233 /* ./syntax//typing.nit:59 */
234 ATTR_typing___TypingVisitor____self_var(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
235 stack_frame_head
= fra
.me
.prev
;
238 val_t
typing___TypingVisitor___top_block(val_t p0
){
239 struct {struct stack_frame_t me
;} fra
;
241 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
242 fra
.me
.file
= LOCATE_typing
;
244 fra
.me
.meth
= LOCATE_typing___TypingVisitor___top_block
;
245 fra
.me
.has_broke
= 0;
247 fra
.me
.REG
[0] = NIT_NULL
;
249 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____top_block(fra
.me
.REG
[0]);
250 /* ./syntax//typing.nit:61 */
251 stack_frame_head
= fra
.me
.prev
;
252 return fra
.me
.REG
[0];
254 void typing___TypingVisitor___top_block__eq(val_t p0
, val_t p1
){
255 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
257 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
258 fra
.me
.file
= LOCATE_typing
;
260 fra
.me
.meth
= LOCATE_typing___TypingVisitor___top_block__eq
;
261 fra
.me
.has_broke
= 0;
263 fra
.me
.REG
[0] = NIT_NULL
;
264 fra
.me
.REG
[1] = NIT_NULL
;
267 /* ./syntax//typing.nit:61 */
268 ATTR_typing___TypingVisitor____top_block(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
269 stack_frame_head
= fra
.me
.prev
;
272 val_t
typing___TypingVisitor___explicit_super_init_calls(val_t p0
){
273 struct {struct stack_frame_t me
;} fra
;
275 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
276 fra
.me
.file
= LOCATE_typing
;
278 fra
.me
.meth
= LOCATE_typing___TypingVisitor___explicit_super_init_calls
;
279 fra
.me
.has_broke
= 0;
281 fra
.me
.REG
[0] = NIT_NULL
;
283 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]);
284 /* ./syntax//typing.nit:64 */
285 stack_frame_head
= fra
.me
.prev
;
286 return fra
.me
.REG
[0];
288 void typing___TypingVisitor___explicit_super_init_calls__eq(val_t p0
, val_t p1
){
289 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
291 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
292 fra
.me
.file
= LOCATE_typing
;
294 fra
.me
.meth
= LOCATE_typing___TypingVisitor___explicit_super_init_calls__eq
;
295 fra
.me
.has_broke
= 0;
297 fra
.me
.REG
[0] = NIT_NULL
;
298 fra
.me
.REG
[1] = NIT_NULL
;
301 /* ./syntax//typing.nit:64 */
302 ATTR_typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
303 stack_frame_head
= fra
.me
.prev
;
306 val_t
typing___TypingVisitor___explicit_other_init_call(val_t p0
){
307 struct {struct stack_frame_t me
;} fra
;
310 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
311 fra
.me
.file
= LOCATE_typing
;
313 fra
.me
.meth
= LOCATE_typing___TypingVisitor___explicit_other_init_call
;
314 fra
.me
.has_broke
= 0;
316 fra
.me
.REG
[0] = NIT_NULL
;
318 REGB0
= TAG_Bool(ATTR_typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0])!=NIT_NULL
);
319 /* ./syntax//typing.nit:67 */
320 if (UNTAG_Bool(REGB0
)) {
322 fprintf(stderr
, "Uninitialized attribute %s", "_explicit_other_init_call");
323 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 67);
326 REGB0
= ATTR_typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]);
327 stack_frame_head
= fra
.me
.prev
;
330 void typing___TypingVisitor___explicit_other_init_call__eq(val_t p0
, val_t p1
){
331 struct {struct stack_frame_t me
;} fra
;
334 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
335 fra
.me
.file
= LOCATE_typing
;
337 fra
.me
.meth
= LOCATE_typing___TypingVisitor___explicit_other_init_call__eq
;
338 fra
.me
.has_broke
= 0;
340 fra
.me
.REG
[0] = NIT_NULL
;
343 /* ./syntax//typing.nit:67 */
344 ATTR_typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]) = REGB0
;
345 stack_frame_head
= fra
.me
.prev
;
348 void typing___TypingVisitor___use_if_true_variable_ctx(val_t p0
, val_t p1
){
349 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
353 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
354 fra
.me
.file
= LOCATE_typing
;
356 fra
.me
.meth
= LOCATE_typing___TypingVisitor___use_if_true_variable_ctx
;
357 fra
.me
.has_broke
= 0;
359 fra
.me
.REG
[0] = NIT_NULL
;
360 fra
.me
.REG
[1] = NIT_NULL
;
363 fra
.me
.REG
[1] = CALL_typing___AExpr___if_true_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
364 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
365 /* ./syntax//typing.nit:74 */
366 if (UNTAG_Bool(REGB0
)) {
368 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
369 if (UNTAG_Bool(REGB1
)) {
370 REGB1
= TAG_Bool(false);
373 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
377 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
378 if (UNTAG_Bool(REGB0
)) {
379 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
381 stack_frame_head
= fra
.me
.prev
;
384 void typing___TypingVisitor___use_if_false_variable_ctx(val_t p0
, val_t p1
){
385 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
389 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
390 fra
.me
.file
= LOCATE_typing
;
392 fra
.me
.meth
= LOCATE_typing___TypingVisitor___use_if_false_variable_ctx
;
393 fra
.me
.has_broke
= 0;
395 fra
.me
.REG
[0] = NIT_NULL
;
396 fra
.me
.REG
[1] = NIT_NULL
;
399 fra
.me
.REG
[1] = CALL_typing___AExpr___if_false_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
400 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
401 /* ./syntax//typing.nit:81 */
402 if (UNTAG_Bool(REGB0
)) {
404 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
405 if (UNTAG_Bool(REGB1
)) {
406 REGB1
= TAG_Bool(false);
409 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
413 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
414 if (UNTAG_Bool(REGB0
)) {
415 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
417 stack_frame_head
= fra
.me
.prev
;
420 val_t
typing___TypingVisitor___once_count(val_t p0
){
421 struct {struct stack_frame_t me
;} fra
;
424 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
425 fra
.me
.file
= LOCATE_typing
;
427 fra
.me
.meth
= LOCATE_typing___TypingVisitor___once_count
;
428 fra
.me
.has_broke
= 0;
430 fra
.me
.REG
[0] = NIT_NULL
;
432 REGB0
= TAG_Bool(ATTR_typing___TypingVisitor____once_count(fra
.me
.REG
[0])!=NIT_NULL
);
433 /* ./syntax//typing.nit:84 */
434 if (UNTAG_Bool(REGB0
)) {
436 fprintf(stderr
, "Uninitialized attribute %s", "_once_count");
437 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 84);
440 REGB0
= ATTR_typing___TypingVisitor____once_count(fra
.me
.REG
[0]);
441 stack_frame_head
= fra
.me
.prev
;
444 void typing___TypingVisitor___once_count__eq(val_t p0
, val_t p1
){
445 struct {struct stack_frame_t me
;} fra
;
448 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
449 fra
.me
.file
= LOCATE_typing
;
451 fra
.me
.meth
= LOCATE_typing___TypingVisitor___once_count__eq
;
452 fra
.me
.has_broke
= 0;
454 fra
.me
.REG
[0] = NIT_NULL
;
457 /* ./syntax//typing.nit:84 */
458 ATTR_typing___TypingVisitor____once_count(fra
.me
.REG
[0]) = REGB0
;
459 stack_frame_head
= fra
.me
.prev
;
462 void typing___TypingVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
463 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_TypingVisitor
].i
;
464 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
466 if (init_table
[itpos0
]) return;
467 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
468 fra
.me
.file
= LOCATE_typing
;
470 fra
.me
.meth
= LOCATE_typing___TypingVisitor___init
;
471 fra
.me
.has_broke
= 0;
473 fra
.me
.REG
[0] = NIT_NULL
;
474 fra
.me
.REG
[1] = NIT_NULL
;
475 fra
.me
.REG
[2] = NIT_NULL
;
479 /* ./syntax//typing.nit:87 */
480 CALL_syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
481 stack_frame_head
= fra
.me
.prev
;
482 init_table
[itpos0
] = 1;
485 val_t
typing___TypingVisitor___get_default_constructor_for(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
486 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
493 static val_t once_value_3
; /* Once value */
494 static val_t once_value_4
; /* Once value */
495 static val_t once_value_6
; /* Once value */
496 static val_t once_value_7
; /* Once value */
497 static val_t once_value_8
; /* Once value */
498 static val_t once_value_10
; /* Once value */
499 static val_t once_value_11
; /* Once value */
500 static val_t once_value_12
; /* Once value */
501 static val_t once_value_13
; /* Once value */
502 static val_t once_value_14
; /* Once value */
503 static val_t once_value_15
; /* Once value */
504 static val_t once_value_16
; /* Once value */
505 static val_t once_value_18
; /* Once value */
506 static val_t once_value_19
; /* Once value */
507 static val_t once_value_20
; /* Once value */
508 static val_t once_value_21
; /* Once value */
509 static val_t once_value_22
; /* Once value */
510 static val_t once_value_23
; /* Once value */
511 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
512 fra
.me
.file
= LOCATE_typing
;
514 fra
.me
.meth
= LOCATE_typing___TypingVisitor___get_default_constructor_for
;
515 fra
.me
.has_broke
= 0;
516 fra
.me
.REG_size
= 11;
517 fra
.me
.REG
[0] = NIT_NULL
;
518 fra
.me
.REG
[1] = NIT_NULL
;
519 fra
.me
.REG
[2] = NIT_NULL
;
520 fra
.me
.REG
[3] = NIT_NULL
;
521 fra
.me
.REG
[4] = NIT_NULL
;
522 fra
.me
.REG
[5] = NIT_NULL
;
523 fra
.me
.REG
[6] = NIT_NULL
;
524 fra
.me
.REG
[7] = NIT_NULL
;
525 fra
.me
.REG
[8] = NIT_NULL
;
526 fra
.me
.REG
[9] = NIT_NULL
;
527 fra
.me
.REG
[10] = NIT_NULL
;
532 fra
.me
.REG
[4] = NEW_Array_array___Array___init();
533 fra
.me
.REG
[5] = NEW_Array_array___Array___init();
534 fra
.me
.REG
[6] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
535 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
536 /* ./syntax//typing.nit:96 */
537 if (UNTAG_Bool(REGB0
)) {
538 fprintf(stderr
, "Reciever is null");
539 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 96);
542 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
543 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
544 fra
.me
.REG
[6] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
545 /* ./syntax//typing.nit:97 */
547 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
548 if (UNTAG_Bool(REGB1
)) {
549 fra
.me
.REG
[7] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
550 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
551 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
552 /* ./syntax//typing.nit:98 */
553 if (UNTAG_Bool(REGB1
)) {
556 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
557 fra
.me
.REG
[8] = CALL_static_type___MMLocalClass___get_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
558 fra
.me
.REG
[8] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
559 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
560 /* ./syntax//typing.nit:101 */
561 if (UNTAG_Bool(REGB1
)) {
563 fprintf(stderr
, "Assert failed");
564 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 101);
567 REGB1
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
568 fra
.me
.REG
[9] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
569 fra
.me
.REG
[10] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
570 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[9],fra
.me
.REG
[10]));
571 /* ./syntax//typing.nit:103 */
572 if (UNTAG_Bool(REGB2
)) {
574 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
577 if (UNTAG_Bool(REGB2
)) {
579 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
580 /* ./syntax//typing.nit:104 */
581 if (UNTAG_Bool(REGB3
)) {
583 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
585 /* ./syntax//typing.nit:104 */
587 if (UNTAG_Bool(REGB3
)) {
588 REGB3
= TAG_Bool(true);
590 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
591 if (UNTAG_Bool(REGB2
)) {
593 REGB4
= TAG_Bool((REGB0
)==(REGB1
));
595 /* ./syntax//typing.nit:104 */
597 if (UNTAG_Bool(REGB2
)) {
598 fra
.me
.REG
[10] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
599 REGB2
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
600 if (UNTAG_Bool(REGB2
)) {
601 fprintf(stderr
, "Reciever is null");
602 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 104);
605 REGB2
= CALL_static_type___MMSignature_____l(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[8]);
607 REGB4
= TAG_Bool(false);
612 if (UNTAG_Bool(REGB3
)) {
613 fra
.me
.REG
[8] = fra
.me
.REG
[7];
614 /* ./syntax//typing.nit:105 */
617 /* ./syntax//typing.nit:107 */
618 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[7]);
622 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
623 /* ./syntax//typing.nit:109 */
624 if (UNTAG_Bool(REGB2
)) {
626 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
628 /* ./syntax//typing.nit:109 */
630 if (UNTAG_Bool(REGB2
)) {
631 fra
.me
.REG
[10] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
634 fra
.me
.REG
[9] = BOX_NativeString("init");
636 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
637 once_value_4
= fra
.me
.REG
[9];
638 register_static_object(&once_value_4
);
639 } else fra
.me
.REG
[9] = once_value_4
;
640 fra
.me
.REG
[9] = CALL_symbol___String___to_symbol(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
641 once_value_3
= fra
.me
.REG
[9];
642 register_static_object(&once_value_3
);
643 } else fra
.me
.REG
[9] = once_value_3
;
644 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[10],fra
.me
.REG
[9]));
645 if (UNTAG_Bool(REGB2
)) {
647 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[9]);
651 REGB3
= TAG_Bool(false);
654 if (UNTAG_Bool(REGB2
)) {
655 /* ./syntax//typing.nit:110 */
656 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
657 /* ./syntax//typing.nit:111 */
658 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[7]);
660 /* ./syntax//typing.nit:113 */
661 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[7]);
666 /* ./syntax//typing.nit:97 */
669 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
672 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
673 /* ./../lib/standard//collection//array.nit:23 */
674 if (UNTAG_Bool(REGB0
)) {
676 fprintf(stderr
, "Uninitialized attribute %s", "_length");
677 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
680 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
682 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
683 /* ./syntax//typing.nit:116 */
684 if (UNTAG_Bool(REGB3
)) {
686 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
688 /* ./syntax//typing.nit:116 */
690 if (UNTAG_Bool(REGB3
)) {
691 fra
.me
.REG
[6] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
692 fra
.me
.REG
[8] = fra
.me
.REG
[6];
693 /* ./syntax//typing.nit:117 */
696 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
697 /* ./../lib/standard//collection//array.nit:23 */
698 if (UNTAG_Bool(REGB3
)) {
700 fprintf(stderr
, "Uninitialized attribute %s", "_length");
701 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
704 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
706 REGB2
= TAG_Bool(UNTAG_Int(REGB3
)>UNTAG_Int(REGB2
));
707 /* ./syntax//typing.nit:118 */
708 if (UNTAG_Bool(REGB2
)) {
709 fra
.me
.REG
[6] = NEW_Array_array___Array___init();
710 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
711 /* ./syntax//typing.nit:120 */
713 REGB2
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
714 if (UNTAG_Bool(REGB2
)) {
715 fra
.me
.REG
[3] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
717 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB2
);
718 /* ./syntax//typing.nit:121 */
720 fra
.me
.REG
[9] = BOX_NativeString("");
722 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
723 once_value_6
= fra
.me
.REG
[9];
724 register_static_object(&once_value_6
);
725 } else fra
.me
.REG
[9] = once_value_6
;
726 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[9]);
727 fra
.me
.REG
[9] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
728 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[9]);
730 fra
.me
.REG
[9] = BOX_NativeString("");
732 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
733 once_value_7
= fra
.me
.REG
[9];
734 register_static_object(&once_value_7
);
735 } else fra
.me
.REG
[9] = once_value_7
;
736 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[9]);
737 fra
.me
.REG
[3] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
738 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
739 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[3]);
741 fra
.me
.REG
[3] = BOX_NativeString("");
743 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB2
);
744 once_value_8
= fra
.me
.REG
[3];
745 register_static_object(&once_value_8
);
746 } else fra
.me
.REG
[3] = once_value_8
;
747 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[3]);
748 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
749 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
751 /* ./syntax//typing.nit:120 */
754 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
758 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB2
);
759 /* ./syntax//typing.nit:123 */
760 if (!once_value_10
) {
761 fra
.me
.REG
[7] = BOX_NativeString("Error: Conflicting default constructor to call for ");
763 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
764 once_value_10
= fra
.me
.REG
[7];
765 register_static_object(&once_value_10
);
766 } else fra
.me
.REG
[7] = once_value_10
;
767 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
768 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
769 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
770 if (!once_value_11
) {
771 fra
.me
.REG
[7] = BOX_NativeString(": ");
773 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
774 once_value_11
= fra
.me
.REG
[7];
775 register_static_object(&once_value_11
);
776 } else fra
.me
.REG
[7] = once_value_11
;
777 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
778 if (!once_value_12
) {
779 fra
.me
.REG
[7] = BOX_NativeString(", ");
781 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
782 once_value_12
= fra
.me
.REG
[7];
783 register_static_object(&once_value_12
);
784 } else fra
.me
.REG
[7] = once_value_12
;
785 fra
.me
.REG
[7] = CALL_string___Collection___join(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
786 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
787 if (!once_value_13
) {
788 fra
.me
.REG
[7] = BOX_NativeString(".");
790 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
791 once_value_13
= fra
.me
.REG
[7];
792 register_static_object(&once_value_13
);
793 } else fra
.me
.REG
[7] = once_value_13
;
794 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
795 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
796 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
797 fra
.me
.REG
[8] = NIT_NULL
;
798 /* ./syntax//typing.nit:124 */
801 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
802 /* ./../lib/standard//collection//array.nit:23 */
803 if (UNTAG_Bool(REGB2
)) {
805 fprintf(stderr
, "Uninitialized attribute %s", "_length");
806 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
809 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
811 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
812 /* ./syntax//typing.nit:125 */
813 if (UNTAG_Bool(REGB3
)) {
814 fra
.me
.REG
[4] = NEW_Array_array___Array___init();
815 fra
.me
.REG
[5] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
816 /* ./syntax//typing.nit:127 */
818 REGB3
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
819 if (UNTAG_Bool(REGB3
)) {
820 fra
.me
.REG
[7] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
822 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB3
);
823 /* ./syntax//typing.nit:128 */
824 if (!once_value_14
) {
825 fra
.me
.REG
[3] = BOX_NativeString("");
827 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB3
);
828 once_value_14
= fra
.me
.REG
[3];
829 register_static_object(&once_value_14
);
830 } else fra
.me
.REG
[3] = once_value_14
;
831 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
832 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
833 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
834 if (!once_value_15
) {
835 fra
.me
.REG
[3] = BOX_NativeString("");
837 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB3
);
838 once_value_15
= fra
.me
.REG
[3];
839 register_static_object(&once_value_15
);
840 } else fra
.me
.REG
[3] = once_value_15
;
841 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
842 fra
.me
.REG
[7] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
843 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
844 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
845 if (!once_value_16
) {
846 fra
.me
.REG
[7] = BOX_NativeString("");
848 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB3
);
849 once_value_16
= fra
.me
.REG
[7];
850 register_static_object(&once_value_16
);
851 } else fra
.me
.REG
[7] = once_value_16
;
852 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
853 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
854 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[6]);
856 /* ./syntax//typing.nit:127 */
859 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
863 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB3
);
864 /* ./syntax//typing.nit:130 */
865 if (!once_value_18
) {
866 fra
.me
.REG
[6] = BOX_NativeString("Error: there is no available compatible constrctor in ");
868 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB3
);
869 once_value_18
= fra
.me
.REG
[6];
870 register_static_object(&once_value_18
);
871 } else fra
.me
.REG
[6] = once_value_18
;
872 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
873 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
874 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
875 if (!once_value_19
) {
876 fra
.me
.REG
[6] = BOX_NativeString(". Discarded candidates are ");
878 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB3
);
879 once_value_19
= fra
.me
.REG
[6];
880 register_static_object(&once_value_19
);
881 } else fra
.me
.REG
[6] = once_value_19
;
882 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
883 if (!once_value_20
) {
884 fra
.me
.REG
[6] = BOX_NativeString(", ");
886 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB3
);
887 once_value_20
= fra
.me
.REG
[6];
888 register_static_object(&once_value_20
);
889 } else fra
.me
.REG
[6] = once_value_20
;
890 fra
.me
.REG
[6] = CALL_string___Collection___join(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
891 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
892 if (!once_value_21
) {
893 fra
.me
.REG
[6] = BOX_NativeString(".");
895 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB3
);
896 once_value_21
= fra
.me
.REG
[6];
897 register_static_object(&once_value_21
);
898 } else fra
.me
.REG
[6] = once_value_21
;
899 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
900 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
901 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5]);
902 fra
.me
.REG
[8] = NIT_NULL
;
903 /* ./syntax//typing.nit:131 */
907 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB3
);
908 /* ./syntax//typing.nit:133 */
909 if (!once_value_22
) {
910 fra
.me
.REG
[6] = BOX_NativeString("Error: there is no available compatible constrctor in ");
912 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB3
);
913 once_value_22
= fra
.me
.REG
[6];
914 register_static_object(&once_value_22
);
915 } else fra
.me
.REG
[6] = once_value_22
;
916 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
917 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
918 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[2]);
919 if (!once_value_23
) {
920 fra
.me
.REG
[2] = BOX_NativeString(".");
922 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB3
);
923 once_value_23
= fra
.me
.REG
[2];
924 register_static_object(&once_value_23
);
925 } else fra
.me
.REG
[2] = once_value_23
;
926 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[2]);
927 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
928 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5]);
929 fra
.me
.REG
[8] = NIT_NULL
;
930 /* ./syntax//typing.nit:134 */
936 stack_frame_head
= fra
.me
.prev
;
937 return fra
.me
.REG
[8];
939 val_t
typing___VarVariable___is_typed(val_t p0
){
940 struct {struct stack_frame_t me
;} fra
;
943 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
944 fra
.me
.file
= LOCATE_typing
;
946 fra
.me
.meth
= LOCATE_typing___VarVariable___is_typed
;
947 fra
.me
.has_broke
= 0;
949 fra
.me
.REG
[0] = NIT_NULL
;
951 REGB0
= TAG_Bool(ATTR_typing___VarVariable____is_typed(fra
.me
.REG
[0])!=NIT_NULL
);
952 /* ./syntax//typing.nit:140 */
953 if (UNTAG_Bool(REGB0
)) {
955 fprintf(stderr
, "Uninitialized attribute %s", "_is_typed");
956 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 140);
959 REGB0
= ATTR_typing___VarVariable____is_typed(fra
.me
.REG
[0]);
960 stack_frame_head
= fra
.me
.prev
;
963 void typing___ANode___accept_typing(val_t p0
, val_t p1
){
964 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
966 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
967 fra
.me
.file
= LOCATE_typing
;
969 fra
.me
.meth
= LOCATE_typing___ANode___accept_typing
;
970 fra
.me
.has_broke
= 0;
972 fra
.me
.REG
[0] = NIT_NULL
;
973 fra
.me
.REG
[1] = NIT_NULL
;
976 /* ./syntax//typing.nit:148 */
977 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
978 /* ./syntax//typing.nit:149 */
979 CALL_typing___ANode___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
980 stack_frame_head
= fra
.me
.prev
;
983 void typing___ANode___after_typing(val_t p0
, val_t p1
){
984 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
986 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
987 fra
.me
.file
= LOCATE_typing
;
989 fra
.me
.meth
= LOCATE_typing___ANode___after_typing
;
990 fra
.me
.has_broke
= 0;
992 fra
.me
.REG
[0] = NIT_NULL
;
993 fra
.me
.REG
[1] = NIT_NULL
;
996 /* ./syntax//typing.nit:151 */
997 stack_frame_head
= fra
.me
.prev
;
1000 void typing___AClassdef___accept_typing(val_t p0
, val_t p1
){
1001 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1004 static val_t once_value_1
; /* Once value */
1005 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1006 fra
.me
.file
= LOCATE_typing
;
1008 fra
.me
.meth
= LOCATE_typing___AClassdef___accept_typing
;
1009 fra
.me
.has_broke
= 0;
1010 fra
.me
.REG_size
= 5;
1011 fra
.me
.REG
[0] = NIT_NULL
;
1012 fra
.me
.REG
[1] = NIT_NULL
;
1013 fra
.me
.REG
[2] = NIT_NULL
;
1014 fra
.me
.REG
[3] = NIT_NULL
;
1015 fra
.me
.REG
[4] = NIT_NULL
;
1018 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1019 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1020 fra
.me
.REG
[4] = NEW_RootVariableContext_control_flow___RootVariableContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1021 /* ./syntax//typing.nit:157 */
1022 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1023 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1024 /* ./syntax//typing.nit:158 */
1025 CALL_typing___TypingVisitor___base_variable_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1026 /* ./syntax//typing.nit:159 */
1027 if (!once_value_1
) {
1028 fra
.me
.REG
[4] = BOX_NativeString("self");
1030 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
1031 once_value_1
= fra
.me
.REG
[4];
1032 register_static_object(&once_value_1
);
1033 } else fra
.me
.REG
[4] = once_value_1
;
1034 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1035 fra
.me
.REG
[4] = NEW_ParamVariable_syntax_base___ParamVariable___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1036 CALL_typing___TypingVisitor___self_var__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1037 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1038 fra
.me
.REG
[2] = CALL_syntax_base___AClassdef___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1039 fra
.me
.REG
[2] = CALL_static_type___MMLocalClass___get_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1040 /* ./syntax//typing.nit:160 */
1041 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1042 /* ./syntax//typing.nit:161 */
1043 CALL_SUPER_typing___AClassdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1044 stack_frame_head
= fra
.me
.prev
;
1047 val_t
typing___APropdef___self_var(val_t p0
){
1048 struct {struct stack_frame_t me
;} fra
;
1051 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1052 fra
.me
.file
= LOCATE_typing
;
1054 fra
.me
.meth
= LOCATE_typing___APropdef___self_var
;
1055 fra
.me
.has_broke
= 0;
1056 fra
.me
.REG_size
= 1;
1057 fra
.me
.REG
[0] = NIT_NULL
;
1059 fra
.me
.REG
[0] = ATTR_typing___APropdef____self_var(fra
.me
.REG
[0]);
1060 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
1061 /* ./syntax//typing.nit:166 */
1062 if (UNTAG_Bool(REGB0
)) {
1064 fprintf(stderr
, "Cast failed");
1065 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 166);
1070 stack_frame_head
= fra
.me
.prev
;
1071 return fra
.me
.REG
[0];
1073 void typing___AAttrPropdef___accept_typing(val_t p0
, val_t p1
){
1074 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1078 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1079 fra
.me
.file
= LOCATE_typing
;
1081 fra
.me
.meth
= LOCATE_typing___AAttrPropdef___accept_typing
;
1082 fra
.me
.has_broke
= 0;
1083 fra
.me
.REG_size
= 6;
1084 fra
.me
.REG
[0] = NIT_NULL
;
1085 fra
.me
.REG
[1] = NIT_NULL
;
1086 fra
.me
.REG
[2] = NIT_NULL
;
1087 fra
.me
.REG
[3] = NIT_NULL
;
1088 fra
.me
.REG
[4] = NIT_NULL
;
1089 fra
.me
.REG
[5] = NIT_NULL
;
1092 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1093 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1094 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1095 fra
.me
.REG
[5] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1096 /* ./syntax//typing.nit:174 */
1097 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1098 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1099 /* ./syntax//typing.nit:175 */
1100 ATTR_typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
1101 /* ./syntax//typing.nit:176 */
1102 CALL_SUPER_typing___AAttrPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1103 fra
.me
.REG
[1] = CALL_parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1104 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1105 /* ./syntax//typing.nit:177 */
1106 if (UNTAG_Bool(REGB0
)) {
1108 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1109 if (UNTAG_Bool(REGB1
)) {
1110 REGB1
= TAG_Bool(false);
1113 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1117 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1118 if (UNTAG_Bool(REGB0
)) {
1119 fra
.me
.REG
[1] = CALL_parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1120 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
1121 /* ./syntax//typing.nit:178 */
1122 if (UNTAG_Bool(REGB0
)) {
1124 fprintf(stderr
, "Cast failed");
1125 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 178);
1128 fra
.me
.REG
[2] = CALL_syntax_base___AAttrPropdef___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1129 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1130 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1131 if (UNTAG_Bool(REGB0
)) {
1132 fprintf(stderr
, "Reciever is null");
1133 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 178);
1136 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1137 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
1138 if (UNTAG_Bool(REGB0
)) {
1140 fprintf(stderr
, "Cast failed");
1141 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 178);
1144 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1146 /* ./syntax//typing.nit:180 */
1147 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1148 stack_frame_head
= fra
.me
.prev
;
1151 void typing___AMethPropdef___accept_typing(val_t p0
, val_t p1
){
1152 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1154 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1155 fra
.me
.file
= LOCATE_typing
;
1157 fra
.me
.meth
= LOCATE_typing___AMethPropdef___accept_typing
;
1158 fra
.me
.has_broke
= 0;
1159 fra
.me
.REG_size
= 6;
1160 fra
.me
.REG
[0] = NIT_NULL
;
1161 fra
.me
.REG
[1] = NIT_NULL
;
1162 fra
.me
.REG
[2] = NIT_NULL
;
1163 fra
.me
.REG
[3] = NIT_NULL
;
1164 fra
.me
.REG
[4] = NIT_NULL
;
1165 fra
.me
.REG
[5] = NIT_NULL
;
1168 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1169 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1170 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1171 fra
.me
.REG
[5] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1172 /* ./syntax//typing.nit:188 */
1173 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1174 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1175 /* ./syntax//typing.nit:189 */
1176 ATTR_typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
1177 /* ./syntax//typing.nit:190 */
1178 CALL_SUPER_typing___AMethPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1179 /* ./syntax//typing.nit:191 */
1180 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1181 stack_frame_head
= fra
.me
.prev
;
1184 void typing___AConcreteMethPropdef___after_typing(val_t p0
, val_t p1
){
1185 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1190 static val_t once_value_1
; /* Once value */
1191 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1192 fra
.me
.file
= LOCATE_typing
;
1194 fra
.me
.meth
= LOCATE_typing___AConcreteMethPropdef___after_typing
;
1195 fra
.me
.has_broke
= 0;
1196 fra
.me
.REG_size
= 4;
1197 fra
.me
.REG
[0] = NIT_NULL
;
1198 fra
.me
.REG
[1] = NIT_NULL
;
1199 fra
.me
.REG
[2] = NIT_NULL
;
1200 fra
.me
.REG
[3] = NIT_NULL
;
1203 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1204 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1205 /* ./syntax//typing.nit:198 */
1206 CALL_SUPER_typing___AConcreteMethPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1207 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1208 REGB0
= CALL_control_flow___VariableContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1209 REGB1
= TAG_Bool(false);
1210 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1211 /* ./syntax//typing.nit:199 */
1212 if (UNTAG_Bool(REGB2
)) {
1214 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1216 /* ./syntax//typing.nit:199 */
1218 if (UNTAG_Bool(REGB2
)) {
1219 fra
.me
.REG
[1] = CALL_syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1220 fra
.me
.REG
[1] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1221 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1222 if (UNTAG_Bool(REGB2
)) {
1223 fprintf(stderr
, "Reciever is null");
1224 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 199);
1227 fra
.me
.REG
[1] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1228 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1229 if (UNTAG_Bool(REGB2
)) {
1231 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1232 if (UNTAG_Bool(REGB1
)) {
1233 REGB1
= TAG_Bool(false);
1236 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1240 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1242 REGB1
= TAG_Bool(false);
1245 if (UNTAG_Bool(REGB2
)) {
1246 /* ./syntax//typing.nit:200 */
1247 if (!once_value_1
) {
1248 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of function (a 'return' with a value was expected).");
1249 REGB2
= TAG_Int(78);
1250 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB2
);
1251 once_value_1
= fra
.me
.REG
[1];
1252 register_static_object(&once_value_1
);
1253 } else fra
.me
.REG
[1] = once_value_1
;
1254 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
1256 stack_frame_head
= fra
.me
.prev
;
1259 void typing___AConcreteInitPropdef___accept_typing(val_t p0
, val_t p1
){
1260 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1263 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1264 fra
.me
.file
= LOCATE_typing
;
1266 fra
.me
.meth
= LOCATE_typing___AConcreteInitPropdef___accept_typing
;
1267 fra
.me
.has_broke
= 0;
1268 fra
.me
.REG_size
= 5;
1269 fra
.me
.REG
[0] = NIT_NULL
;
1270 fra
.me
.REG
[1] = NIT_NULL
;
1271 fra
.me
.REG
[2] = NIT_NULL
;
1272 fra
.me
.REG
[3] = NIT_NULL
;
1273 fra
.me
.REG
[4] = NIT_NULL
;
1276 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1277 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1278 fra
.me
.REG
[4] = CALL_parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1279 /* ./syntax//typing.nit:208 */
1280 CALL_typing___TypingVisitor___top_block__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1281 fra
.me
.REG
[2] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1282 /* ./syntax//typing.nit:209 */
1283 CALL_typing___TypingVisitor___explicit_super_init_calls__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1284 REGB0
= TAG_Bool(false);
1285 /* ./syntax//typing.nit:210 */
1286 CALL_typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1287 /* ./syntax//typing.nit:211 */
1288 CALL_SUPER_typing___AConcreteInitPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1289 stack_frame_head
= fra
.me
.prev
;
1292 void typing___AConcreteInitPropdef___after_typing(val_t p0
, val_t p1
){
1293 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
1301 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1302 fra
.me
.file
= LOCATE_typing
;
1304 fra
.me
.meth
= LOCATE_typing___AConcreteInitPropdef___after_typing
;
1305 fra
.me
.has_broke
= 0;
1306 fra
.me
.REG_size
= 7;
1307 fra
.me
.REG
[0] = NIT_NULL
;
1308 fra
.me
.REG
[1] = NIT_NULL
;
1309 fra
.me
.REG
[2] = NIT_NULL
;
1310 fra
.me
.REG
[3] = NIT_NULL
;
1311 fra
.me
.REG
[4] = NIT_NULL
;
1312 fra
.me
.REG
[5] = NIT_NULL
;
1313 fra
.me
.REG
[6] = NIT_NULL
;
1316 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1317 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1318 /* ./syntax//typing.nit:216 */
1319 CALL_SUPER_typing___AConcreteInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1320 REGB0
= CALL_typing___TypingVisitor___explicit_other_init_call(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1321 /* ./syntax//typing.nit:217 */
1322 if (UNTAG_Bool(REGB0
)) {
1323 REGB0
= TAG_Bool(true);
1325 fra
.me
.REG
[1] = CALL_syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1326 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1327 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1328 fra
.me
.REG
[0] = CALL_syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1329 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[0]));
1330 if (UNTAG_Bool(REGB1
)) {
1332 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1335 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1338 if (UNTAG_Bool(REGB0
)) {
1341 fra
.me
.REG
[0] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1342 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
1343 /* ./../lib/standard//collection//array.nit:23 */
1344 if (UNTAG_Bool(REGB1
)) {
1346 fprintf(stderr
, "Uninitialized attribute %s", "_length");
1347 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
1350 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
1351 fra
.me
.REG
[0] = NIT_NULL
;
1352 fra
.me
.REG
[1] = NIT_NULL
;
1353 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1354 /* ./syntax//typing.nit:224 */
1355 if (UNTAG_Bool(REGB2
)) {
1356 fra
.me
.REG
[4] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1359 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
1360 /* ./../lib/standard//collection//array.nit:233 */
1361 if (UNTAG_Bool(REGB3
)) {
1362 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1363 if (UNTAG_Bool(REGB3
)) {
1365 fprintf(stderr
, "Uninitialized attribute %s", "_length");
1366 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
1369 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1370 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1371 /* ./../lib/standard//collection//array.nit:233 */
1373 REGB4
= TAG_Bool(false);
1376 if (UNTAG_Bool(REGB3
)) {
1378 fprintf(stderr
, "Assert %s failed", "'index'");
1379 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
1382 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[4]);
1383 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1384 /* ./../lib/standard//collection//array.nit:234 */
1385 if (UNTAG_Bool(REGB3
)) {
1386 fprintf(stderr
, "Reciever is null");
1387 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
1390 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB2
)];
1391 /* ./../lib/standard//collection//array.nit:234 */
1394 fra
.me
.REG
[0] = fra
.me
.REG
[4];
1395 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1396 /* ./syntax//typing.nit:226 */
1397 if (UNTAG_Bool(REGB2
)) {
1398 fprintf(stderr
, "Reciever is null");
1399 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 226);
1402 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1403 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1404 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1405 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___module(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1406 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1407 fra
.me
.REG
[1] = fra
.me
.REG
[5];
1410 /* ./syntax//typing.nit:229 */
1412 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1413 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1414 fra
.me
.REG
[5] = CALL_partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1415 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1416 /* ./../lib/standard//collection//array.nit:23 */
1417 if (UNTAG_Bool(REGB3
)) {
1419 fprintf(stderr
, "Uninitialized attribute %s", "_length");
1420 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
1423 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1424 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1425 /* ./syntax//typing.nit:229 */
1426 if (UNTAG_Bool(REGB3
)) {
1427 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1428 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1429 fra
.me
.REG
[5] = CALL_partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1432 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1433 /* ./../lib/standard//collection//array.nit:233 */
1434 if (UNTAG_Bool(REGB4
)) {
1435 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1436 if (UNTAG_Bool(REGB4
)) {
1438 fprintf(stderr
, "Uninitialized attribute %s", "_length");
1439 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
1442 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1443 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1444 /* ./../lib/standard//collection//array.nit:233 */
1446 REGB5
= TAG_Bool(false);
1449 if (UNTAG_Bool(REGB4
)) {
1451 fprintf(stderr
, "Assert %s failed", "'index'");
1452 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
1455 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[5]);
1456 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1457 /* ./../lib/standard//collection//array.nit:234 */
1458 if (UNTAG_Bool(REGB4
)) {
1459 fprintf(stderr
, "Reciever is null");
1460 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
1463 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
1464 /* ./../lib/standard//collection//array.nit:234 */
1467 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1468 REGB3
= CALL_abstractmetamodel___MMGlobalClass___is_interface(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1469 /* ./syntax//typing.nit:231 */
1470 if (UNTAG_Bool(REGB3
)) {
1471 REGB3
= TAG_Bool(true);
1473 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1474 REGB4
= CALL_abstractmetamodel___MMGlobalClass___is_universal(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1477 if (UNTAG_Bool(REGB3
)) {
1478 REGB3
= TAG_Bool(true);
1480 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1481 REGB4
= CALL_abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1484 if (UNTAG_Bool(REGB3
)) {
1486 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1488 /* ./syntax//typing.nit:232 */
1490 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1491 /* ./syntax//typing.nit:233 */
1492 if (UNTAG_Bool(REGB3
)) {
1494 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1495 if (UNTAG_Bool(REGB4
)) {
1496 REGB4
= TAG_Bool(false);
1499 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1503 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1504 if (UNTAG_Bool(REGB3
)) {
1505 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1506 REGB3
= CALL_partial_order___PartialOrderElement_____leq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1507 if (UNTAG_Bool(REGB3
)) {
1508 REGB3
= TAG_Bool(true);
1510 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1511 if (UNTAG_Bool(REGB4
)) {
1512 fprintf(stderr
, "Reciever is null");
1513 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 233);
1516 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1517 REGB4
= CALL_abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1521 REGB4
= TAG_Bool(false);
1524 if (UNTAG_Bool(REGB3
)) {
1525 REGB3
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[5],fra
.me
.REG
[1]));
1526 /* ./syntax//typing.nit:234 */
1527 if (UNTAG_Bool(REGB3
)) {
1529 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
1532 if (UNTAG_Bool(REGB3
)) {
1534 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1536 /* ./syntax//typing.nit:234 */
1538 fra
.me
.REG
[4] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1539 REGB3
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
1540 /* ./syntax//typing.nit:235 */
1541 if (UNTAG_Bool(REGB3
)) {
1543 fprintf(stderr
, "Cast failed");
1544 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 235);
1547 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[0]);
1549 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1551 REGB3
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1552 /* ./syntax//typing.nit:237 */
1553 if (UNTAG_Bool(REGB3
)) {
1554 fra
.me
.REG
[4] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1557 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1558 /* ./../lib/standard//collection//array.nit:233 */
1559 if (UNTAG_Bool(REGB4
)) {
1560 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1561 if (UNTAG_Bool(REGB4
)) {
1563 fprintf(stderr
, "Uninitialized attribute %s", "_length");
1564 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
1567 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1568 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1569 /* ./../lib/standard//collection//array.nit:233 */
1571 REGB5
= TAG_Bool(false);
1574 if (UNTAG_Bool(REGB4
)) {
1576 fprintf(stderr
, "Assert %s failed", "'index'");
1577 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
1580 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[4]);
1581 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1582 /* ./../lib/standard//collection//array.nit:234 */
1583 if (UNTAG_Bool(REGB4
)) {
1584 fprintf(stderr
, "Reciever is null");
1585 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
1588 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB3
)];
1589 /* ./../lib/standard//collection//array.nit:234 */
1592 fra
.me
.REG
[0] = fra
.me
.REG
[4];
1593 REGB3
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1594 /* ./syntax//typing.nit:239 */
1595 if (UNTAG_Bool(REGB3
)) {
1596 fprintf(stderr
, "Reciever is null");
1597 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 239);
1600 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1601 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1602 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1603 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___module(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1604 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
1605 fra
.me
.REG
[1] = fra
.me
.REG
[6];
1607 fra
.me
.REG
[0] = NIT_NULL
;
1608 fra
.me
.REG
[1] = NIT_NULL
;
1609 /* ./syntax//typing.nit:242 */
1612 fra
.me
.REG
[6] = CALL_syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1613 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___get_default_constructor_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[5], fra
.me
.REG
[6]);
1614 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1615 /* ./syntax//typing.nit:246 */
1616 if (UNTAG_Bool(REGB3
)) {
1618 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1619 if (UNTAG_Bool(REGB4
)) {
1620 REGB4
= TAG_Bool(false);
1623 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
1627 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1628 if (UNTAG_Bool(REGB3
)) {
1629 fra
.me
.REG
[5] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1630 /* ./syntax//typing.nit:247 */
1631 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
1634 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1636 /* ./syntax//typing.nit:249 */
1640 /* ./syntax//typing.nit:229 */
1646 stack_frame_head
= fra
.me
.prev
;
1649 void typing___AParam___after_typing(val_t p0
, val_t p1
){
1650 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1652 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1653 fra
.me
.file
= LOCATE_typing
;
1655 fra
.me
.meth
= LOCATE_typing___AParam___after_typing
;
1656 fra
.me
.has_broke
= 0;
1657 fra
.me
.REG_size
= 2;
1658 fra
.me
.REG
[0] = NIT_NULL
;
1659 fra
.me
.REG
[1] = NIT_NULL
;
1662 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1663 fra
.me
.REG
[0] = CALL_syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1664 /* ./syntax//typing.nit:259 */
1665 CALL_control_flow___VariableContext___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1666 stack_frame_head
= fra
.me
.prev
;
1669 void typing___AClosureDecl___accept_typing(val_t p0
, val_t p1
){
1670 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
1675 static val_t once_value_1
; /* Once value */
1676 static val_t once_value_2
; /* Once value */
1677 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1678 fra
.me
.file
= LOCATE_typing
;
1680 fra
.me
.meth
= LOCATE_typing___AClosureDecl___accept_typing
;
1681 fra
.me
.has_broke
= 0;
1682 fra
.me
.REG_size
= 10;
1683 fra
.me
.REG
[0] = NIT_NULL
;
1684 fra
.me
.REG
[1] = NIT_NULL
;
1685 fra
.me
.REG
[2] = NIT_NULL
;
1686 fra
.me
.REG
[3] = NIT_NULL
;
1687 fra
.me
.REG
[4] = NIT_NULL
;
1688 fra
.me
.REG
[5] = NIT_NULL
;
1689 fra
.me
.REG
[6] = NIT_NULL
;
1690 fra
.me
.REG
[7] = NIT_NULL
;
1691 fra
.me
.REG
[8] = NIT_NULL
;
1692 fra
.me
.REG
[9] = NIT_NULL
;
1695 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1696 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1697 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1698 fra
.me
.REG
[5] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1699 /* ./syntax//typing.nit:270 */
1700 CALL_control_flow___VariableContext___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1701 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1702 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___base_variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1703 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1704 /* ./syntax//typing.nit:274 */
1705 CALL_typing___TypingVisitor___base_variable_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1706 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1707 fra
.me
.REG
[6] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
1708 /* ./syntax//typing.nit:275 */
1709 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1710 fra
.me
.REG
[6] = NIT_NULL
;
1711 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1712 fra
.me
.REG
[7] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1713 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1714 /* ./syntax//typing.nit:278 */
1715 if (UNTAG_Bool(REGB0
)) {
1716 fprintf(stderr
, "Reciever is null");
1717 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 278);
1720 fra
.me
.REG
[7] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1721 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1722 /* ./syntax//typing.nit:279 */
1723 if (UNTAG_Bool(REGB0
)) {
1725 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1726 if (UNTAG_Bool(REGB1
)) {
1727 REGB1
= TAG_Bool(false);
1730 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
1734 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1735 if (UNTAG_Bool(REGB0
)) {
1736 fra
.me
.REG
[8] = NEW_Array_array___Array___init();
1737 fra
.me
.REG
[6] = fra
.me
.REG
[8];
1739 fra
.me
.REG
[8] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1740 fra
.me
.REG
[8] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1741 fra
.me
.REG
[8] = NEW_EscapableClosure_escape___EscapableClosure___init(fra
.me
.REG
[2], fra
.me
.REG
[8], fra
.me
.REG
[6]);
1742 /* ./syntax//typing.nit:281 */
1743 ATTR_typing___AClosureDecl____escapable(fra
.me
.REG
[2]) = fra
.me
.REG
[8];
1744 fra
.me
.REG
[9] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1745 /* ./syntax//typing.nit:282 */
1746 CALL_escape___EscapableContext___push(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8], NIT_NULL
);
1747 /* ./syntax//typing.nit:284 */
1748 CALL_SUPER_typing___AClosureDecl___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1749 fra
.me
.REG
[1] = CALL_parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1750 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1751 /* ./syntax//typing.nit:286 */
1752 if (UNTAG_Bool(REGB0
)) {
1754 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1755 if (UNTAG_Bool(REGB1
)) {
1756 REGB1
= TAG_Bool(false);
1759 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1763 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1764 if (UNTAG_Bool(REGB0
)) {
1765 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1766 REGB0
= CALL_control_flow___VariableContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1767 REGB1
= TAG_Bool(false);
1768 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1769 /* ./syntax//typing.nit:287 */
1770 if (UNTAG_Bool(REGB2
)) {
1772 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1774 /* ./syntax//typing.nit:287 */
1776 if (UNTAG_Bool(REGB2
)) {
1777 fra
.me
.REG
[1] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1778 fra
.me
.REG
[1] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1779 fra
.me
.REG
[1] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1780 fra
.me
.REG
[1] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1781 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1782 /* ./syntax//typing.nit:288 */
1783 if (UNTAG_Bool(REGB2
)) {
1785 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1786 if (UNTAG_Bool(REGB1
)) {
1787 REGB1
= TAG_Bool(false);
1790 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1794 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1795 if (UNTAG_Bool(REGB2
)) {
1796 /* ./syntax//typing.nit:289 */
1797 if (!once_value_1
) {
1798 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
1799 REGB2
= TAG_Int(77);
1800 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB2
);
1801 once_value_1
= fra
.me
.REG
[1];
1802 register_static_object(&once_value_1
);
1803 } else fra
.me
.REG
[1] = once_value_1
;
1804 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
1806 fra
.me
.REG
[1] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1807 fra
.me
.REG
[1] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1808 REGB2
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1809 /* ./syntax//typing.nit:290 */
1810 if (UNTAG_Bool(REGB2
)) {
1811 fra
.me
.REG
[8] = CALL_escape___EscapableBlock___break_list(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1812 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
1813 if (UNTAG_Bool(REGB2
)) {
1815 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
1816 if (UNTAG_Bool(REGB1
)) {
1817 REGB1
= TAG_Bool(false);
1820 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
1824 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1826 REGB1
= TAG_Bool(false);
1829 if (UNTAG_Bool(REGB2
)) {
1830 /* ./syntax//typing.nit:291 */
1831 if (!once_value_2
) {
1832 fra
.me
.REG
[8] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
1833 REGB2
= TAG_Int(80);
1834 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
1835 once_value_2
= fra
.me
.REG
[8];
1836 register_static_object(&once_value_2
);
1837 } else fra
.me
.REG
[8] = once_value_2
;
1838 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[8]);
1843 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1844 /* ./syntax//typing.nit:295 */
1845 if (UNTAG_Bool(REGB2
)) {
1847 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1848 if (UNTAG_Bool(REGB1
)) {
1849 REGB1
= TAG_Bool(false);
1852 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
1856 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1857 if (UNTAG_Bool(REGB2
)) {
1858 fra
.me
.REG
[6] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1860 REGB2
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1861 if (UNTAG_Bool(REGB2
)) {
1862 fra
.me
.REG
[8] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1863 /* ./syntax//typing.nit:296 */
1864 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[8], fra
.me
.REG
[7]);
1866 /* ./syntax//typing.nit:295 */
1869 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1873 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1874 /* ./syntax//typing.nit:299 */
1875 CALL_control_flow___VariableContext___merge(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
1876 /* ./syntax//typing.nit:300 */
1877 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1878 /* ./syntax//typing.nit:301 */
1879 CALL_typing___TypingVisitor___base_variable_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1880 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1881 /* ./syntax//typing.nit:302 */
1882 CALL_escape___EscapableContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1883 stack_frame_head
= fra
.me
.prev
;
1886 val_t
typing___AClosureDecl___escapable(val_t p0
){
1887 struct {struct stack_frame_t me
;} fra
;
1889 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1890 fra
.me
.file
= LOCATE_typing
;
1892 fra
.me
.meth
= LOCATE_typing___AClosureDecl___escapable
;
1893 fra
.me
.has_broke
= 0;
1894 fra
.me
.REG_size
= 1;
1895 fra
.me
.REG
[0] = NIT_NULL
;
1897 fra
.me
.REG
[0] = ATTR_typing___AClosureDecl____escapable(fra
.me
.REG
[0]);
1898 /* ./syntax//typing.nit:264 */
1899 stack_frame_head
= fra
.me
.prev
;
1900 return fra
.me
.REG
[0];
1902 val_t
typing___AType___is_typed(val_t p0
){
1903 struct {struct stack_frame_t me
;} fra
;
1907 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1908 fra
.me
.file
= LOCATE_typing
;
1910 fra
.me
.meth
= LOCATE_typing___AType___is_typed
;
1911 fra
.me
.has_broke
= 0;
1912 fra
.me
.REG_size
= 1;
1913 fra
.me
.REG
[0] = NIT_NULL
;
1915 fra
.me
.REG
[0] = ATTR_typing___AType____stype(fra
.me
.REG
[0]);
1916 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1917 /* ./syntax//typing.nit:308 */
1918 if (UNTAG_Bool(REGB0
)) {
1920 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1921 if (UNTAG_Bool(REGB1
)) {
1922 REGB1
= TAG_Bool(false);
1925 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1929 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1932 stack_frame_head
= fra
.me
.prev
;
1935 val_t
typing___AType___stype(val_t p0
){
1936 struct {struct stack_frame_t me
;} fra
;
1939 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1940 fra
.me
.file
= LOCATE_typing
;
1942 fra
.me
.meth
= LOCATE_typing___AType___stype
;
1943 fra
.me
.has_broke
= 0;
1944 fra
.me
.REG_size
= 1;
1945 fra
.me
.REG
[0] = NIT_NULL
;
1947 fra
.me
.REG
[0] = ATTR_typing___AType____stype(fra
.me
.REG
[0]);
1948 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
1949 /* ./syntax//typing.nit:307 */
1950 if (UNTAG_Bool(REGB0
)) {
1952 fprintf(stderr
, "Cast failed");
1953 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 307);
1958 stack_frame_head
= fra
.me
.prev
;
1959 return fra
.me
.REG
[0];
1961 void typing___AType___after_typing(val_t p0
, val_t p1
){
1962 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1964 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1965 fra
.me
.file
= LOCATE_typing
;
1967 fra
.me
.meth
= LOCATE_typing___AType___after_typing
;
1968 fra
.me
.has_broke
= 0;
1969 fra
.me
.REG_size
= 2;
1970 fra
.me
.REG
[0] = NIT_NULL
;
1971 fra
.me
.REG
[1] = NIT_NULL
;
1974 fra
.me
.REG
[1] = CALL_syntax_base___AType___get_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1975 /* ./syntax//typing.nit:313 */
1976 ATTR_typing___AType____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1977 stack_frame_head
= fra
.me
.prev
;
1980 val_t
typing___AExpr___is_typed(val_t p0
){
1981 struct {struct stack_frame_t me
;} fra
;
1984 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1985 fra
.me
.file
= LOCATE_typing
;
1987 fra
.me
.meth
= LOCATE_typing___AExpr___is_typed
;
1988 fra
.me
.has_broke
= 0;
1989 fra
.me
.REG_size
= 1;
1990 fra
.me
.REG
[0] = NIT_NULL
;
1992 REGB0
= TAG_Bool(ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0])!=NIT_NULL
);
1993 /* ./syntax//typing.nit:318 */
1994 if (UNTAG_Bool(REGB0
)) {
1996 fprintf(stderr
, "Uninitialized attribute %s", "_is_typed");
1997 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 318);
2000 REGB0
= ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]);
2001 stack_frame_head
= fra
.me
.prev
;
2004 val_t
typing___AExpr___is_statement(val_t p0
){
2005 struct {struct stack_frame_t me
;} fra
;
2009 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2010 fra
.me
.file
= LOCATE_typing
;
2012 fra
.me
.meth
= LOCATE_typing___AExpr___is_statement
;
2013 fra
.me
.has_broke
= 0;
2014 fra
.me
.REG_size
= 1;
2015 fra
.me
.REG
[0] = NIT_NULL
;
2017 fra
.me
.REG
[0] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
2018 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2019 /* ./syntax//typing.nit:319 */
2020 if (UNTAG_Bool(REGB0
)) {
2022 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2023 if (UNTAG_Bool(REGB1
)) {
2024 REGB1
= TAG_Bool(false);
2027 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2033 stack_frame_head
= fra
.me
.prev
;
2036 val_t
typing___AExpr___stype(val_t p0
){
2037 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2040 static val_t once_value_1
; /* Once value */
2041 static val_t once_value_2
; /* Once value */
2042 static val_t once_value_3
; /* Once value */
2043 static val_t once_value_4
; /* Once value */
2044 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2045 fra
.me
.file
= LOCATE_typing
;
2047 fra
.me
.meth
= LOCATE_typing___AExpr___stype
;
2048 fra
.me
.has_broke
= 0;
2049 fra
.me
.REG_size
= 3;
2050 fra
.me
.REG
[0] = NIT_NULL
;
2051 fra
.me
.REG
[1] = NIT_NULL
;
2052 fra
.me
.REG
[2] = NIT_NULL
;
2054 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2055 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2056 /* ./syntax//typing.nit:322 */
2057 if (UNTAG_Bool(REGB0
)) {
2059 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
2060 /* ./syntax//typing.nit:323 */
2061 if (!once_value_1
) {
2062 fra
.me
.REG
[2] = BOX_NativeString("");
2064 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2065 once_value_1
= fra
.me
.REG
[2];
2066 register_static_object(&once_value_1
);
2067 } else fra
.me
.REG
[2] = once_value_1
;
2068 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2069 fra
.me
.REG
[2] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2070 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2071 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2072 if (!once_value_2
) {
2073 fra
.me
.REG
[2] = BOX_NativeString(": not is_typed");
2074 REGB0
= TAG_Int(14);
2075 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2076 once_value_2
= fra
.me
.REG
[2];
2077 register_static_object(&once_value_2
);
2078 } else fra
.me
.REG
[2] = once_value_2
;
2079 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2080 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2081 CALL_file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2082 /* ./syntax//typing.nit:324 */
2083 fprintf(stderr
, "Aborted");
2084 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 324);
2087 REGB0
= CALL_syntax_base___AExpr___is_statement(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2088 /* ./syntax//typing.nit:326 */
2089 if (UNTAG_Bool(REGB0
)) {
2091 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
2092 /* ./syntax//typing.nit:327 */
2093 if (!once_value_3
) {
2094 fra
.me
.REG
[2] = BOX_NativeString("");
2096 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2097 once_value_3
= fra
.me
.REG
[2];
2098 register_static_object(&once_value_3
);
2099 } else fra
.me
.REG
[2] = once_value_3
;
2100 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2101 fra
.me
.REG
[2] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2102 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2103 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2104 if (!once_value_4
) {
2105 fra
.me
.REG
[2] = BOX_NativeString(": is_statement");
2106 REGB0
= TAG_Int(14);
2107 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2108 once_value_4
= fra
.me
.REG
[2];
2109 register_static_object(&once_value_4
);
2110 } else fra
.me
.REG
[2] = once_value_4
;
2111 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2112 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2113 CALL_file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2114 /* ./syntax//typing.nit:328 */
2115 fprintf(stderr
, "Aborted");
2116 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 328);
2119 fra
.me
.REG
[0] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
2120 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2121 /* ./syntax//typing.nit:330 */
2122 if (UNTAG_Bool(REGB0
)) {
2124 fprintf(stderr
, "Cast failed");
2125 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 330);
2130 stack_frame_head
= fra
.me
.prev
;
2131 return fra
.me
.REG
[0];
2133 void typing___AExpr___after_typing(val_t p0
, val_t p1
){
2134 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2137 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2138 fra
.me
.file
= LOCATE_typing
;
2140 fra
.me
.meth
= LOCATE_typing___AExpr___after_typing
;
2141 fra
.me
.has_broke
= 0;
2142 fra
.me
.REG_size
= 2;
2143 fra
.me
.REG
[0] = NIT_NULL
;
2144 fra
.me
.REG
[1] = NIT_NULL
;
2147 REGB0
= TAG_Bool(true);
2148 /* ./syntax//typing.nit:337 */
2149 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2150 stack_frame_head
= fra
.me
.prev
;
2153 val_t
typing___AExpr___is_implicit_self(val_t p0
){
2154 struct {struct stack_frame_t me
;} fra
;
2157 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2158 fra
.me
.file
= LOCATE_typing
;
2160 fra
.me
.meth
= LOCATE_typing___AExpr___is_implicit_self
;
2161 fra
.me
.has_broke
= 0;
2162 fra
.me
.REG_size
= 1;
2163 fra
.me
.REG
[0] = NIT_NULL
;
2165 REGB0
= TAG_Bool(false);
2166 /* ./syntax//typing.nit:341 */
2169 stack_frame_head
= fra
.me
.prev
;
2172 val_t
typing___AExpr___is_self(val_t p0
){
2173 struct {struct stack_frame_t me
;} fra
;
2176 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2177 fra
.me
.file
= LOCATE_typing
;
2179 fra
.me
.meth
= LOCATE_typing___AExpr___is_self
;
2180 fra
.me
.has_broke
= 0;
2181 fra
.me
.REG_size
= 1;
2182 fra
.me
.REG
[0] = NIT_NULL
;
2184 REGB0
= TAG_Bool(false);
2185 /* ./syntax//typing.nit:344 */
2188 stack_frame_head
= fra
.me
.prev
;
2191 val_t
typing___AExpr___its_variable(val_t p0
){
2192 struct {struct stack_frame_t me
;} fra
;
2194 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2195 fra
.me
.file
= LOCATE_typing
;
2197 fra
.me
.meth
= LOCATE_typing___AExpr___its_variable
;
2198 fra
.me
.has_broke
= 0;
2199 fra
.me
.REG_size
= 1;
2200 fra
.me
.REG
[0] = NIT_NULL
;
2202 fra
.me
.REG
[0] = NIT_NULL
;
2203 /* ./syntax//typing.nit:347 */
2206 stack_frame_head
= fra
.me
.prev
;
2207 return fra
.me
.REG
[0];
2209 val_t
typing___AExpr___if_true_variable_ctx(val_t p0
){
2210 struct {struct stack_frame_t me
;} fra
;
2212 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2213 fra
.me
.file
= LOCATE_typing
;
2215 fra
.me
.meth
= LOCATE_typing___AExpr___if_true_variable_ctx
;
2216 fra
.me
.has_broke
= 0;
2217 fra
.me
.REG_size
= 1;
2218 fra
.me
.REG
[0] = NIT_NULL
;
2220 fra
.me
.REG
[0] = ATTR_typing___AExpr____if_true_variable_ctx(fra
.me
.REG
[0]);
2221 /* ./syntax//typing.nit:349 */
2222 stack_frame_head
= fra
.me
.prev
;
2223 return fra
.me
.REG
[0];
2225 val_t
typing___AExpr___if_false_variable_ctx(val_t p0
){
2226 struct {struct stack_frame_t me
;} fra
;
2228 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2229 fra
.me
.file
= LOCATE_typing
;
2231 fra
.me
.meth
= LOCATE_typing___AExpr___if_false_variable_ctx
;
2232 fra
.me
.has_broke
= 0;
2233 fra
.me
.REG_size
= 1;
2234 fra
.me
.REG
[0] = NIT_NULL
;
2236 fra
.me
.REG
[0] = ATTR_typing___AExpr____if_false_variable_ctx(fra
.me
.REG
[0]);
2237 /* ./syntax//typing.nit:352 */
2238 stack_frame_head
= fra
.me
.prev
;
2239 return fra
.me
.REG
[0];
2241 val_t
typing___AVardeclExpr___variable(val_t p0
){
2242 struct {struct stack_frame_t me
;} fra
;
2245 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2246 fra
.me
.file
= LOCATE_typing
;
2248 fra
.me
.meth
= LOCATE_typing___AVardeclExpr___variable
;
2249 fra
.me
.has_broke
= 0;
2250 fra
.me
.REG_size
= 1;
2251 fra
.me
.REG
[0] = NIT_NULL
;
2253 fra
.me
.REG
[0] = ATTR_typing___AVardeclExpr____variable(fra
.me
.REG
[0]);
2254 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2255 /* ./syntax//typing.nit:358 */
2256 if (UNTAG_Bool(REGB0
)) {
2258 fprintf(stderr
, "Cast failed");
2259 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 358);
2264 stack_frame_head
= fra
.me
.prev
;
2265 return fra
.me
.REG
[0];
2267 void typing___AVardeclExpr___after_typing(val_t p0
, val_t p1
){
2268 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2272 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2273 fra
.me
.file
= LOCATE_typing
;
2275 fra
.me
.meth
= LOCATE_typing___AVardeclExpr___after_typing
;
2276 fra
.me
.has_broke
= 0;
2277 fra
.me
.REG_size
= 5;
2278 fra
.me
.REG
[0] = NIT_NULL
;
2279 fra
.me
.REG
[1] = NIT_NULL
;
2280 fra
.me
.REG
[2] = NIT_NULL
;
2281 fra
.me
.REG
[3] = NIT_NULL
;
2282 fra
.me
.REG
[4] = NIT_NULL
;
2285 fra
.me
.REG
[2] = CALL_parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2286 fra
.me
.REG
[2] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2287 fra
.me
.REG
[3] = CALL_parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2288 fra
.me
.REG
[3] = NEW_VarVariable_syntax_base___VarVariable___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2289 /* ./syntax//typing.nit:363 */
2290 ATTR_typing___AVardeclExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
2291 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2292 /* ./syntax//typing.nit:364 */
2293 CALL_control_flow___VariableContext___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2294 fra
.me
.REG
[2] = CALL_parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2295 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2296 /* ./syntax//typing.nit:366 */
2297 if (UNTAG_Bool(REGB0
)) {
2299 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2300 if (UNTAG_Bool(REGB1
)) {
2301 REGB1
= TAG_Bool(false);
2304 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2308 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2309 if (UNTAG_Bool(REGB0
)) {
2310 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2311 CALL_control_flow___VariableContext___mark_is_set(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2313 fra
.me
.REG
[4] = CALL_parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2314 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2315 /* ./syntax//typing.nit:368 */
2316 if (UNTAG_Bool(REGB0
)) {
2318 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2319 if (UNTAG_Bool(REGB1
)) {
2320 REGB1
= TAG_Bool(false);
2323 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2327 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2328 if (UNTAG_Bool(REGB0
)) {
2329 fra
.me
.REG
[4] = CALL_parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2330 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2331 /* ./syntax//typing.nit:369 */
2332 if (UNTAG_Bool(REGB0
)) {
2333 fprintf(stderr
, "Reciever is null");
2334 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 369);
2337 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2338 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2339 if (UNTAG_Bool(REGB0
)) {
2342 fra
.me
.REG
[4] = CALL_parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2343 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2344 /* ./syntax//typing.nit:370 */
2345 if (UNTAG_Bool(REGB0
)) {
2346 fprintf(stderr
, "Reciever is null");
2347 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 370);
2350 fra
.me
.REG
[4] = CALL_syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2351 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2352 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2353 /* ./syntax//typing.nit:371 */
2354 if (UNTAG_Bool(REGB0
)) {
2356 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2357 if (UNTAG_Bool(REGB1
)) {
2358 REGB1
= TAG_Bool(false);
2361 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2365 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2366 if (UNTAG_Bool(REGB0
)) {
2367 fra
.me
.REG
[4] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2368 /* ./syntax//typing.nit:372 */
2369 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
2372 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2373 /* ./syntax//typing.nit:374 */
2374 if (UNTAG_Bool(REGB0
)) {
2376 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2377 if (UNTAG_Bool(REGB1
)) {
2378 REGB1
= TAG_Bool(false);
2381 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2385 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2386 if (UNTAG_Bool(REGB0
)) {
2387 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2388 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2389 /* ./syntax//typing.nit:375 */
2390 if (UNTAG_Bool(REGB0
)) {
2393 fra
.me
.REG
[2] = CALL_parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2394 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2395 /* ./syntax//typing.nit:376 */
2396 if (UNTAG_Bool(REGB0
)) {
2397 fprintf(stderr
, "Reciever is null");
2398 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 376);
2401 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2402 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2405 REGB0
= TAG_Bool(true);
2406 /* ./syntax//typing.nit:378 */
2407 ATTR_typing___VarVariable____is_typed(fra
.me
.REG
[3]) = REGB0
;
2408 REGB0
= TAG_Bool(true);
2409 /* ./syntax//typing.nit:379 */
2410 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2412 stack_frame_head
= fra
.me
.prev
;
2415 void typing___ABlockExpr___accept_typing(val_t p0
, val_t p1
){
2416 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2420 static val_t once_value_1
; /* Once value */
2421 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2422 fra
.me
.file
= LOCATE_typing
;
2424 fra
.me
.meth
= LOCATE_typing___ABlockExpr___accept_typing
;
2425 fra
.me
.has_broke
= 0;
2426 fra
.me
.REG_size
= 6;
2427 fra
.me
.REG
[0] = NIT_NULL
;
2428 fra
.me
.REG
[1] = NIT_NULL
;
2429 fra
.me
.REG
[2] = NIT_NULL
;
2430 fra
.me
.REG
[3] = NIT_NULL
;
2431 fra
.me
.REG
[4] = NIT_NULL
;
2432 fra
.me
.REG
[5] = NIT_NULL
;
2435 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2436 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2437 fra
.me
.REG
[3] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
2438 /* ./syntax//typing.nit:387 */
2439 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2440 fra
.me
.REG
[3] = CALL_parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2441 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2442 /* ./syntax//typing.nit:389 */
2444 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2445 if (UNTAG_Bool(REGB0
)) {
2446 fra
.me
.REG
[4] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2447 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2448 REGB0
= CALL_control_flow___VariableContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2449 /* ./syntax//typing.nit:390 */
2450 if (UNTAG_Bool(REGB0
)) {
2451 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2452 REGB0
= CALL_control_flow___VariableContext___already_unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2453 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2455 REGB1
= TAG_Bool(false);
2458 if (UNTAG_Bool(REGB0
)) {
2459 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2460 REGB0
= TAG_Bool(true);
2461 /* ./syntax//typing.nit:391 */
2462 CALL_control_flow___VariableContext___already_unreash__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
2463 /* ./syntax//typing.nit:392 */
2464 if (!once_value_1
) {
2465 fra
.me
.REG
[5] = BOX_NativeString("Warning: unreachable statement.");
2466 REGB0
= TAG_Int(31);
2467 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2468 once_value_1
= fra
.me
.REG
[5];
2469 register_static_object(&once_value_1
);
2470 } else fra
.me
.REG
[5] = once_value_1
;
2471 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
2473 /* ./syntax//typing.nit:394 */
2474 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2476 /* ./syntax//typing.nit:389 */
2479 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2482 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2483 /* ./syntax//typing.nit:397 */
2484 CALL_control_flow___VariableContext___merge(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2485 /* ./syntax//typing.nit:398 */
2486 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2487 REGB0
= TAG_Bool(true);
2488 /* ./syntax//typing.nit:399 */
2489 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2490 stack_frame_head
= fra
.me
.prev
;
2493 void typing___AReturnExpr___after_typing(val_t p0
, val_t p1
){
2494 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2498 static val_t once_value_1
; /* Once value */
2499 static val_t once_value_2
; /* Once value */
2500 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2501 fra
.me
.file
= LOCATE_typing
;
2503 fra
.me
.meth
= LOCATE_typing___AReturnExpr___after_typing
;
2504 fra
.me
.has_broke
= 0;
2505 fra
.me
.REG_size
= 5;
2506 fra
.me
.REG
[0] = NIT_NULL
;
2507 fra
.me
.REG
[1] = NIT_NULL
;
2508 fra
.me
.REG
[2] = NIT_NULL
;
2509 fra
.me
.REG
[3] = NIT_NULL
;
2510 fra
.me
.REG
[4] = NIT_NULL
;
2513 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2514 REGB0
= TAG_Bool(true);
2515 /* ./syntax//typing.nit:406 */
2516 CALL_control_flow___VariableContext___unreash__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2517 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2518 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2519 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2520 /* ./syntax//typing.nit:407 */
2521 if (UNTAG_Bool(REGB0
)) {
2522 fprintf(stderr
, "Reciever is null");
2523 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 407);
2526 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2527 fra
.me
.REG
[3] = CALL_parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2528 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2529 /* ./syntax//typing.nit:409 */
2530 if (UNTAG_Bool(REGB0
)) {
2532 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2533 if (UNTAG_Bool(REGB1
)) {
2534 REGB1
= TAG_Bool(false);
2537 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2541 if (UNTAG_Bool(REGB0
)) {
2542 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2543 if (UNTAG_Bool(REGB0
)) {
2545 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2546 if (UNTAG_Bool(REGB1
)) {
2547 REGB1
= TAG_Bool(false);
2550 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2554 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2556 REGB1
= TAG_Bool(false);
2559 if (UNTAG_Bool(REGB0
)) {
2560 /* ./syntax//typing.nit:410 */
2561 if (!once_value_1
) {
2562 fra
.me
.REG
[4] = BOX_NativeString("Error: Return without value in a function.");
2563 REGB0
= TAG_Int(42);
2564 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2565 once_value_1
= fra
.me
.REG
[4];
2566 register_static_object(&once_value_1
);
2567 } else fra
.me
.REG
[4] = once_value_1
;
2568 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
2570 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2571 /* ./syntax//typing.nit:411 */
2572 if (UNTAG_Bool(REGB0
)) {
2574 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2575 if (UNTAG_Bool(REGB1
)) {
2576 REGB1
= TAG_Bool(false);
2579 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2583 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2584 if (UNTAG_Bool(REGB0
)) {
2585 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2586 if (UNTAG_Bool(REGB0
)) {
2588 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2589 if (UNTAG_Bool(REGB1
)) {
2590 REGB1
= TAG_Bool(false);
2593 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2598 REGB1
= TAG_Bool(false);
2601 if (UNTAG_Bool(REGB0
)) {
2602 /* ./syntax//typing.nit:412 */
2603 if (!once_value_2
) {
2604 fra
.me
.REG
[4] = BOX_NativeString("Error: Return with value in a procedure.");
2605 REGB0
= TAG_Int(40);
2606 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2607 once_value_2
= fra
.me
.REG
[4];
2608 register_static_object(&once_value_2
);
2609 } else fra
.me
.REG
[4] = once_value_2
;
2610 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
2612 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2613 /* ./syntax//typing.nit:413 */
2614 if (UNTAG_Bool(REGB0
)) {
2616 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2617 if (UNTAG_Bool(REGB1
)) {
2618 REGB1
= TAG_Bool(false);
2621 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2625 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2626 if (UNTAG_Bool(REGB0
)) {
2627 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2628 if (UNTAG_Bool(REGB0
)) {
2630 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2631 if (UNTAG_Bool(REGB1
)) {
2632 REGB1
= TAG_Bool(false);
2635 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2639 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2641 REGB1
= TAG_Bool(false);
2644 if (UNTAG_Bool(REGB0
)) {
2645 /* ./syntax//typing.nit:414 */
2646 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2650 REGB0
= TAG_Bool(true);
2651 /* ./syntax//typing.nit:416 */
2652 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2653 stack_frame_head
= fra
.me
.prev
;
2656 void typing___AContinueExpr___after_typing(val_t p0
, val_t p1
){
2657 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2661 static val_t once_value_2
; /* Once value */
2662 static val_t once_value_3
; /* Once value */
2663 static val_t once_value_4
; /* Once value */
2664 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2665 fra
.me
.file
= LOCATE_typing
;
2667 fra
.me
.meth
= LOCATE_typing___AContinueExpr___after_typing
;
2668 fra
.me
.has_broke
= 0;
2669 fra
.me
.REG_size
= 4;
2670 fra
.me
.REG
[0] = NIT_NULL
;
2671 fra
.me
.REG
[1] = NIT_NULL
;
2672 fra
.me
.REG
[2] = NIT_NULL
;
2673 fra
.me
.REG
[3] = NIT_NULL
;
2676 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2677 REGB0
= TAG_Bool(true);
2678 /* ./syntax//typing.nit:423 */
2679 CALL_control_flow___VariableContext___unreash__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2680 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2681 fra
.me
.REG
[2] = CALL_escape___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
2682 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2683 /* ./syntax//typing.nit:425 */
2684 if (UNTAG_Bool(REGB0
)) {
2686 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2687 if (UNTAG_Bool(REGB1
)) {
2688 REGB1
= TAG_Bool(false);
2691 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2695 if (UNTAG_Bool(REGB0
)) {
2698 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2699 /* ./syntax//typing.nit:427 */
2700 if (UNTAG_Bool(REGB0
)) {
2701 fprintf(stderr
, "Reciever is null");
2702 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 427);
2705 REGB0
= CALL_escape___EscapableBlock___is_break_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2706 if (UNTAG_Bool(REGB0
)) {
2707 /* ./syntax//typing.nit:428 */
2708 if (!once_value_2
) {
2709 fra
.me
.REG
[3] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
2710 REGB0
= TAG_Int(39);
2711 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
2712 once_value_2
= fra
.me
.REG
[3];
2713 register_static_object(&once_value_2
);
2714 } else fra
.me
.REG
[3] = once_value_2
;
2715 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2716 /* ./syntax//typing.nit:429 */
2719 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2720 /* ./syntax//typing.nit:432 */
2721 if (UNTAG_Bool(REGB0
)) {
2722 fprintf(stderr
, "Reciever is null");
2723 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 432);
2726 fra
.me
.REG
[2] = CALL_escape___EscapableBlock___continue_stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2727 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2728 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2729 /* ./syntax//typing.nit:433 */
2730 if (UNTAG_Bool(REGB0
)) {
2732 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2733 if (UNTAG_Bool(REGB1
)) {
2734 REGB1
= TAG_Bool(false);
2737 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2741 if (UNTAG_Bool(REGB0
)) {
2742 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2743 if (UNTAG_Bool(REGB0
)) {
2745 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2746 if (UNTAG_Bool(REGB1
)) {
2747 REGB1
= TAG_Bool(false);
2750 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2754 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2756 REGB1
= TAG_Bool(false);
2759 if (UNTAG_Bool(REGB0
)) {
2760 /* ./syntax//typing.nit:434 */
2761 if (!once_value_3
) {
2762 fra
.me
.REG
[3] = BOX_NativeString("Error: continue with a value required in this block.");
2763 REGB0
= TAG_Int(52);
2764 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
2765 once_value_3
= fra
.me
.REG
[3];
2766 register_static_object(&once_value_3
);
2767 } else fra
.me
.REG
[3] = once_value_3
;
2768 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2770 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2771 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2772 /* ./syntax//typing.nit:435 */
2773 if (UNTAG_Bool(REGB0
)) {
2775 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2776 if (UNTAG_Bool(REGB1
)) {
2777 REGB1
= TAG_Bool(false);
2780 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2784 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2785 if (UNTAG_Bool(REGB0
)) {
2786 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2787 if (UNTAG_Bool(REGB0
)) {
2789 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2790 if (UNTAG_Bool(REGB1
)) {
2791 REGB1
= TAG_Bool(false);
2794 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2799 REGB1
= TAG_Bool(false);
2802 if (UNTAG_Bool(REGB0
)) {
2803 /* ./syntax//typing.nit:436 */
2804 if (!once_value_4
) {
2805 fra
.me
.REG
[3] = BOX_NativeString("Error: continue without value required in this block.");
2806 REGB0
= TAG_Int(53);
2807 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
2808 once_value_4
= fra
.me
.REG
[3];
2809 register_static_object(&once_value_4
);
2810 } else fra
.me
.REG
[3] = once_value_4
;
2811 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2813 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2814 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2815 /* ./syntax//typing.nit:437 */
2816 if (UNTAG_Bool(REGB0
)) {
2818 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2819 if (UNTAG_Bool(REGB1
)) {
2820 REGB1
= TAG_Bool(false);
2823 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2827 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2828 if (UNTAG_Bool(REGB0
)) {
2829 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2830 if (UNTAG_Bool(REGB0
)) {
2832 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2833 if (UNTAG_Bool(REGB1
)) {
2834 REGB1
= TAG_Bool(false);
2837 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2841 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2843 REGB1
= TAG_Bool(false);
2846 if (UNTAG_Bool(REGB0
)) {
2847 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2848 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
2849 /* ./syntax//typing.nit:438 */
2850 if (UNTAG_Bool(REGB0
)) {
2852 fprintf(stderr
, "Cast failed");
2853 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 438);
2856 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2860 REGB0
= TAG_Bool(true);
2861 /* ./syntax//typing.nit:440 */
2862 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2864 stack_frame_head
= fra
.me
.prev
;
2867 void typing___ABreakExpr___after_typing(val_t p0
, val_t p1
){
2868 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2872 static val_t once_value_2
; /* Once value */
2873 static val_t once_value_3
; /* Once value */
2874 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2875 fra
.me
.file
= LOCATE_typing
;
2877 fra
.me
.meth
= LOCATE_typing___ABreakExpr___after_typing
;
2878 fra
.me
.has_broke
= 0;
2879 fra
.me
.REG_size
= 4;
2880 fra
.me
.REG
[0] = NIT_NULL
;
2881 fra
.me
.REG
[1] = NIT_NULL
;
2882 fra
.me
.REG
[2] = NIT_NULL
;
2883 fra
.me
.REG
[3] = NIT_NULL
;
2886 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2887 REGB0
= TAG_Bool(true);
2888 /* ./syntax//typing.nit:447 */
2889 CALL_control_flow___VariableContext___unreash__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2890 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2891 fra
.me
.REG
[2] = CALL_escape___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
2892 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2893 /* ./syntax//typing.nit:449 */
2894 if (UNTAG_Bool(REGB0
)) {
2896 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2897 if (UNTAG_Bool(REGB1
)) {
2898 REGB1
= TAG_Bool(false);
2901 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2905 if (UNTAG_Bool(REGB0
)) {
2908 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2909 /* ./syntax//typing.nit:451 */
2910 if (UNTAG_Bool(REGB0
)) {
2911 fprintf(stderr
, "Reciever is null");
2912 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 451);
2915 fra
.me
.REG
[2] = CALL_escape___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2916 fra
.me
.REG
[3] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2917 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2918 /* ./syntax//typing.nit:452 */
2919 if (UNTAG_Bool(REGB0
)) {
2921 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2922 if (UNTAG_Bool(REGB1
)) {
2923 REGB1
= TAG_Bool(false);
2926 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2930 if (UNTAG_Bool(REGB0
)) {
2931 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2932 if (UNTAG_Bool(REGB0
)) {
2934 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2935 if (UNTAG_Bool(REGB1
)) {
2936 REGB1
= TAG_Bool(false);
2939 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2943 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2945 REGB1
= TAG_Bool(false);
2948 if (UNTAG_Bool(REGB0
)) {
2949 /* ./syntax//typing.nit:453 */
2950 if (!once_value_2
) {
2951 fra
.me
.REG
[3] = BOX_NativeString("Error: break with a value required in this block.");
2952 REGB0
= TAG_Int(49);
2953 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
2954 once_value_2
= fra
.me
.REG
[3];
2955 register_static_object(&once_value_2
);
2956 } else fra
.me
.REG
[3] = once_value_2
;
2957 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2959 fra
.me
.REG
[3] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2960 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2961 /* ./syntax//typing.nit:454 */
2962 if (UNTAG_Bool(REGB0
)) {
2964 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2965 if (UNTAG_Bool(REGB1
)) {
2966 REGB1
= TAG_Bool(false);
2969 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2973 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2974 if (UNTAG_Bool(REGB0
)) {
2975 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2976 if (UNTAG_Bool(REGB0
)) {
2978 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2979 if (UNTAG_Bool(REGB1
)) {
2980 REGB1
= TAG_Bool(false);
2983 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2988 REGB1
= TAG_Bool(false);
2991 if (UNTAG_Bool(REGB0
)) {
2992 /* ./syntax//typing.nit:455 */
2993 if (!once_value_3
) {
2994 fra
.me
.REG
[3] = BOX_NativeString("Error: break without value required in this block.");
2995 REGB0
= TAG_Int(50);
2996 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
2997 once_value_3
= fra
.me
.REG
[3];
2998 register_static_object(&once_value_3
);
2999 } else fra
.me
.REG
[3] = once_value_3
;
3000 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3002 fra
.me
.REG
[3] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3003 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3004 /* ./syntax//typing.nit:456 */
3005 if (UNTAG_Bool(REGB0
)) {
3007 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3008 if (UNTAG_Bool(REGB1
)) {
3009 REGB1
= TAG_Bool(false);
3012 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3016 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3017 if (UNTAG_Bool(REGB0
)) {
3018 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3019 if (UNTAG_Bool(REGB0
)) {
3021 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3022 if (UNTAG_Bool(REGB1
)) {
3023 REGB1
= TAG_Bool(false);
3026 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3030 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3032 REGB1
= TAG_Bool(false);
3035 if (UNTAG_Bool(REGB0
)) {
3036 fra
.me
.REG
[3] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3037 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
3038 /* ./syntax//typing.nit:458 */
3039 if (UNTAG_Bool(REGB0
)) {
3041 fprintf(stderr
, "Cast failed");
3042 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 458);
3045 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3046 if (UNTAG_Bool(REGB0
)) {
3047 fprintf(stderr
, "Reciever is null");
3048 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 458);
3051 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3055 REGB0
= TAG_Bool(true);
3056 /* ./syntax//typing.nit:460 */
3057 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3059 stack_frame_head
= fra
.me
.prev
;
3062 void typing___AAbortExpr___after_typing(val_t p0
, val_t p1
){
3063 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3066 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3067 fra
.me
.file
= LOCATE_typing
;
3069 fra
.me
.meth
= LOCATE_typing___AAbortExpr___after_typing
;
3070 fra
.me
.has_broke
= 0;
3071 fra
.me
.REG_size
= 2;
3072 fra
.me
.REG
[0] = NIT_NULL
;
3073 fra
.me
.REG
[1] = NIT_NULL
;
3076 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3077 REGB0
= TAG_Bool(true);
3078 /* ./syntax//typing.nit:467 */
3079 CALL_control_flow___VariableContext___unreash__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
3080 REGB0
= TAG_Bool(true);
3081 /* ./syntax//typing.nit:468 */
3082 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3083 stack_frame_head
= fra
.me
.prev
;
3086 void typing___ADoExpr___accept_typing(val_t p0
, val_t p1
){
3087 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3090 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3091 fra
.me
.file
= LOCATE_typing
;
3093 fra
.me
.meth
= LOCATE_typing___ADoExpr___accept_typing
;
3094 fra
.me
.has_broke
= 0;
3095 fra
.me
.REG_size
= 7;
3096 fra
.me
.REG
[0] = NIT_NULL
;
3097 fra
.me
.REG
[1] = NIT_NULL
;
3098 fra
.me
.REG
[2] = NIT_NULL
;
3099 fra
.me
.REG
[3] = NIT_NULL
;
3100 fra
.me
.REG
[4] = NIT_NULL
;
3101 fra
.me
.REG
[5] = NIT_NULL
;
3102 fra
.me
.REG
[6] = NIT_NULL
;
3105 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3106 fra
.me
.REG
[3] = fra
.me
.REG
[1];
3107 fra
.me
.REG
[4] = NEW_BreakOnlyEscapableBlock_escape___BreakOnlyEscapableBlock___init(fra
.me
.REG
[2]);
3108 /* ./syntax//typing.nit:479 */
3109 ATTR_typing___ADoExpr____escapable(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
3110 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3111 fra
.me
.REG
[6] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3112 /* ./syntax//typing.nit:480 */
3113 CALL_escape___EscapableContext___push(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4], fra
.me
.REG
[6]);
3114 /* ./syntax//typing.nit:482 */
3115 CALL_SUPER_typing___ADoExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3116 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3117 /* ./syntax//typing.nit:484 */
3118 CALL_escape___EscapableContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3119 REGB0
= TAG_Bool(true);
3120 /* ./syntax//typing.nit:485 */
3121 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
3122 stack_frame_head
= fra
.me
.prev
;
3125 val_t
typing___ADoExpr___escapable(val_t p0
){
3126 struct {struct stack_frame_t me
;} fra
;
3128 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3129 fra
.me
.file
= LOCATE_typing
;
3131 fra
.me
.meth
= LOCATE_typing___ADoExpr___escapable
;
3132 fra
.me
.has_broke
= 0;
3133 fra
.me
.REG_size
= 1;
3134 fra
.me
.REG
[0] = NIT_NULL
;
3136 fra
.me
.REG
[0] = ATTR_typing___ADoExpr____escapable(fra
.me
.REG
[0]);
3137 /* ./syntax//typing.nit:473 */
3138 stack_frame_head
= fra
.me
.prev
;
3139 return fra
.me
.REG
[0];
3141 void typing___AIfExpr___accept_typing(val_t p0
, val_t p1
){
3142 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3146 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3147 fra
.me
.file
= LOCATE_typing
;
3149 fra
.me
.meth
= LOCATE_typing___AIfExpr___accept_typing
;
3150 fra
.me
.has_broke
= 0;
3151 fra
.me
.REG_size
= 6;
3152 fra
.me
.REG
[0] = NIT_NULL
;
3153 fra
.me
.REG
[1] = NIT_NULL
;
3154 fra
.me
.REG
[2] = NIT_NULL
;
3155 fra
.me
.REG
[3] = NIT_NULL
;
3156 fra
.me
.REG
[4] = NIT_NULL
;
3157 fra
.me
.REG
[5] = NIT_NULL
;
3160 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3161 fra
.me
.REG
[3] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3162 /* ./syntax//typing.nit:493 */
3163 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3164 fra
.me
.REG
[3] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3165 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3166 /* ./syntax//typing.nit:494 */
3167 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
3168 fra
.me
.REG
[4] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3169 /* ./syntax//typing.nit:497 */
3170 CALL_typing___TypingVisitor___use_if_true_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3171 fra
.me
.REG
[4] = CALL_parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3172 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3173 /* ./syntax//typing.nit:500 */
3174 if (UNTAG_Bool(REGB0
)) {
3176 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3177 if (UNTAG_Bool(REGB1
)) {
3178 REGB1
= TAG_Bool(false);
3181 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3185 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3186 if (UNTAG_Bool(REGB0
)) {
3187 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3188 fra
.me
.REG
[3] = CALL_parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3189 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
3190 /* ./syntax//typing.nit:501 */
3191 if (UNTAG_Bool(REGB0
)) {
3193 fprintf(stderr
, "Cast failed");
3194 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 501);
3197 fra
.me
.REG
[3] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3198 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3199 fra
.me
.REG
[3] = CALL_parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3200 /* ./syntax//typing.nit:502 */
3201 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3203 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3204 /* ./syntax//typing.nit:509 */
3205 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3206 fra
.me
.REG
[4] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3207 /* ./syntax//typing.nit:510 */
3208 CALL_typing___TypingVisitor___use_if_false_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3209 fra
.me
.REG
[4] = CALL_parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3210 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3211 /* ./syntax//typing.nit:513 */
3212 if (UNTAG_Bool(REGB0
)) {
3214 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3215 if (UNTAG_Bool(REGB1
)) {
3216 REGB1
= TAG_Bool(false);
3219 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3223 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3224 if (UNTAG_Bool(REGB0
)) {
3225 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3226 fra
.me
.REG
[5] = CALL_parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3227 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
3228 /* ./syntax//typing.nit:514 */
3229 if (UNTAG_Bool(REGB0
)) {
3231 fprintf(stderr
, "Cast failed");
3232 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 514);
3235 fra
.me
.REG
[5] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3236 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3237 fra
.me
.REG
[5] = CALL_parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3238 /* ./syntax//typing.nit:515 */
3239 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3241 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3242 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___base_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3243 /* ./syntax//typing.nit:519 */
3244 CALL_control_flow___VariableContext___merge2(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[5], fra
.me
.REG
[4]);
3245 /* ./syntax//typing.nit:520 */
3246 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3247 REGB0
= TAG_Bool(true);
3248 /* ./syntax//typing.nit:521 */
3249 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3250 stack_frame_head
= fra
.me
.prev
;
3253 void typing___AWhileExpr___accept_typing(val_t p0
, val_t p1
){
3254 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3258 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3259 fra
.me
.file
= LOCATE_typing
;
3261 fra
.me
.meth
= LOCATE_typing___AWhileExpr___accept_typing
;
3262 fra
.me
.has_broke
= 0;
3263 fra
.me
.REG_size
= 6;
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
;
3269 fra
.me
.REG
[5] = NIT_NULL
;
3272 fra
.me
.REG
[2] = NEW_EscapableBlock_escape___EscapableBlock___init(fra
.me
.REG
[0]);
3273 /* ./syntax//typing.nit:532 */
3274 ATTR_typing___AWhileExpr____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3275 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3276 fra
.me
.REG
[4] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3277 /* ./syntax//typing.nit:533 */
3278 CALL_escape___EscapableContext___push(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3279 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3280 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___base_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3281 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3282 /* ./syntax//typing.nit:536 */
3283 CALL_typing___TypingVisitor___base_variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3284 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3285 fra
.me
.REG
[3] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3286 /* ./syntax//typing.nit:537 */
3287 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3288 fra
.me
.REG
[3] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3289 /* ./syntax//typing.nit:540 */
3290 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3291 fra
.me
.REG
[3] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3292 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3293 /* ./syntax//typing.nit:541 */
3294 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
3295 fra
.me
.REG
[5] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3296 /* ./syntax//typing.nit:544 */
3297 CALL_typing___TypingVisitor___use_if_true_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3298 fra
.me
.REG
[5] = CALL_parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3299 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3300 /* ./syntax//typing.nit:547 */
3301 if (UNTAG_Bool(REGB0
)) {
3303 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3304 if (UNTAG_Bool(REGB1
)) {
3305 REGB1
= TAG_Bool(false);
3308 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
3312 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3313 if (UNTAG_Bool(REGB0
)) {
3314 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3315 fra
.me
.REG
[3] = CALL_parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3316 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
3317 /* ./syntax//typing.nit:548 */
3318 if (UNTAG_Bool(REGB0
)) {
3320 fprintf(stderr
, "Cast failed");
3321 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 548);
3324 fra
.me
.REG
[3] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3325 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3326 fra
.me
.REG
[3] = CALL_parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3327 /* ./syntax//typing.nit:549 */
3328 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3330 /* ./syntax//typing.nit:552 */
3331 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3332 /* ./syntax//typing.nit:553 */
3333 CALL_typing___TypingVisitor___base_variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3334 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3335 /* ./syntax//typing.nit:554 */
3336 CALL_escape___EscapableContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3337 REGB0
= TAG_Bool(true);
3338 /* ./syntax//typing.nit:555 */
3339 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3340 stack_frame_head
= fra
.me
.prev
;
3343 val_t
typing___AWhileExpr___escapable(val_t p0
){
3344 struct {struct stack_frame_t me
;} fra
;
3346 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3347 fra
.me
.file
= LOCATE_typing
;
3349 fra
.me
.meth
= LOCATE_typing___AWhileExpr___escapable
;
3350 fra
.me
.has_broke
= 0;
3351 fra
.me
.REG_size
= 1;
3352 fra
.me
.REG
[0] = NIT_NULL
;
3354 fra
.me
.REG
[0] = ATTR_typing___AWhileExpr____escapable(fra
.me
.REG
[0]);
3355 /* ./syntax//typing.nit:526 */
3356 stack_frame_head
= fra
.me
.prev
;
3357 return fra
.me
.REG
[0];
3359 void typing___ALoopExpr___accept_typing(val_t p0
, val_t p1
){
3360 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3364 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3365 fra
.me
.file
= LOCATE_typing
;
3367 fra
.me
.meth
= LOCATE_typing___ALoopExpr___accept_typing
;
3368 fra
.me
.has_broke
= 0;
3369 fra
.me
.REG_size
= 6;
3370 fra
.me
.REG
[0] = NIT_NULL
;
3371 fra
.me
.REG
[1] = NIT_NULL
;
3372 fra
.me
.REG
[2] = NIT_NULL
;
3373 fra
.me
.REG
[3] = NIT_NULL
;
3374 fra
.me
.REG
[4] = NIT_NULL
;
3375 fra
.me
.REG
[5] = NIT_NULL
;
3378 fra
.me
.REG
[2] = NEW_EscapableBlock_escape___EscapableBlock___init(fra
.me
.REG
[0]);
3379 /* ./syntax//typing.nit:566 */
3380 ATTR_typing___ALoopExpr____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3381 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3382 fra
.me
.REG
[4] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3383 /* ./syntax//typing.nit:567 */
3384 CALL_escape___EscapableContext___push(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3385 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3386 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___base_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3387 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3388 /* ./syntax//typing.nit:570 */
3389 CALL_typing___TypingVisitor___base_variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3390 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3391 fra
.me
.REG
[3] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3392 /* ./syntax//typing.nit:571 */
3393 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3394 fra
.me
.REG
[3] = CALL_parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3395 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3396 /* ./syntax//typing.nit:574 */
3397 if (UNTAG_Bool(REGB0
)) {
3399 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3400 if (UNTAG_Bool(REGB1
)) {
3401 REGB1
= TAG_Bool(false);
3404 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3408 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3409 if (UNTAG_Bool(REGB0
)) {
3410 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3411 fra
.me
.REG
[5] = CALL_parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3412 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
3413 /* ./syntax//typing.nit:575 */
3414 if (UNTAG_Bool(REGB0
)) {
3416 fprintf(stderr
, "Cast failed");
3417 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 575);
3420 fra
.me
.REG
[5] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3421 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3422 fra
.me
.REG
[5] = CALL_parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3423 /* ./syntax//typing.nit:576 */
3424 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3426 /* ./syntax//typing.nit:579 */
3427 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3428 /* ./syntax//typing.nit:580 */
3429 CALL_typing___TypingVisitor___base_variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3430 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3431 /* ./syntax//typing.nit:581 */
3432 CALL_escape___EscapableContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3433 REGB0
= TAG_Bool(true);
3434 /* ./syntax//typing.nit:582 */
3435 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3436 stack_frame_head
= fra
.me
.prev
;
3439 val_t
typing___ALoopExpr___escapable(val_t p0
){
3440 struct {struct stack_frame_t me
;} fra
;
3442 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3443 fra
.me
.file
= LOCATE_typing
;
3445 fra
.me
.meth
= LOCATE_typing___ALoopExpr___escapable
;
3446 fra
.me
.has_broke
= 0;
3447 fra
.me
.REG_size
= 1;
3448 fra
.me
.REG
[0] = NIT_NULL
;
3450 fra
.me
.REG
[0] = ATTR_typing___ALoopExpr____escapable(fra
.me
.REG
[0]);
3451 /* ./syntax//typing.nit:560 */
3452 stack_frame_head
= fra
.me
.prev
;
3453 return fra
.me
.REG
[0];
3455 val_t
typing___AForExpr___variable(val_t p0
){
3456 struct {struct stack_frame_t me
;} fra
;
3459 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3460 fra
.me
.file
= LOCATE_typing
;
3462 fra
.me
.meth
= LOCATE_typing___AForExpr___variable
;
3463 fra
.me
.has_broke
= 0;
3464 fra
.me
.REG_size
= 1;
3465 fra
.me
.REG
[0] = NIT_NULL
;
3467 fra
.me
.REG
[0] = ATTR_typing___AForExpr____variable(fra
.me
.REG
[0]);
3468 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
3469 /* ./syntax//typing.nit:588 */
3470 if (UNTAG_Bool(REGB0
)) {
3472 fprintf(stderr
, "Cast failed");
3473 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 588);
3478 stack_frame_head
= fra
.me
.prev
;
3479 return fra
.me
.REG
[0];
3481 void typing___AForExpr___accept_typing(val_t p0
, val_t p1
){
3482 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3486 static val_t once_value_2
; /* Once value */
3487 static val_t once_value_3
; /* Once value */
3488 static val_t once_value_4
; /* Once value */
3489 static val_t once_value_5
; /* Once value */
3490 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3491 fra
.me
.file
= LOCATE_typing
;
3493 fra
.me
.meth
= LOCATE_typing___AForExpr___accept_typing
;
3494 fra
.me
.has_broke
= 0;
3495 fra
.me
.REG_size
= 7;
3496 fra
.me
.REG
[0] = NIT_NULL
;
3497 fra
.me
.REG
[1] = NIT_NULL
;
3498 fra
.me
.REG
[2] = NIT_NULL
;
3499 fra
.me
.REG
[3] = NIT_NULL
;
3500 fra
.me
.REG
[4] = NIT_NULL
;
3501 fra
.me
.REG
[5] = NIT_NULL
;
3502 fra
.me
.REG
[6] = NIT_NULL
;
3505 fra
.me
.REG
[2] = NEW_EscapableBlock_escape___EscapableBlock___init(fra
.me
.REG
[0]);
3506 /* ./syntax//typing.nit:596 */
3507 ATTR_typing___AForExpr____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3508 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3509 fra
.me
.REG
[4] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3510 /* ./syntax//typing.nit:597 */
3511 CALL_escape___EscapableContext___push(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3512 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3513 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___base_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3514 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3515 /* ./syntax//typing.nit:601 */
3516 CALL_typing___TypingVisitor___base_variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3517 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3518 fra
.me
.REG
[3] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
3519 /* ./syntax//typing.nit:602 */
3520 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3521 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3522 fra
.me
.REG
[3] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3523 fra
.me
.REG
[5] = CALL_parser_nodes___AForExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3524 fra
.me
.REG
[5] = NEW_AutoVariable_syntax_base___AutoVariable___init(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3525 /* ./syntax//typing.nit:604 */
3526 ATTR_typing___AForExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
3527 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3528 /* ./syntax//typing.nit:605 */
3529 CALL_control_flow___VariableContext___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3530 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3531 /* ./syntax//typing.nit:608 */
3532 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3533 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3534 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___type_collection(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3535 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[6]);
3536 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3537 /* ./syntax//typing.nit:610 */
3538 if (UNTAG_Bool(REGB0
)) {
3541 fra
.me
.REG
[6] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3542 fra
.me
.REG
[6] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3543 /* ./syntax//typing.nit:614 */
3544 if (!once_value_2
) {
3545 if (!once_value_3
) {
3546 fra
.me
.REG
[3] = BOX_NativeString("iterator");
3548 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3549 once_value_3
= fra
.me
.REG
[3];
3550 register_static_object(&once_value_3
);
3551 } else fra
.me
.REG
[3] = once_value_3
;
3552 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3553 once_value_2
= fra
.me
.REG
[3];
3554 register_static_object(&once_value_2
);
3555 } else fra
.me
.REG
[3] = once_value_2
;
3556 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[3]);
3557 fra
.me
.REG
[6] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3558 fra
.me
.REG
[6] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3559 REGB0
= TAG_Bool((fra
.me
.REG
[6]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[6], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
3560 /* ./syntax//typing.nit:615 */
3561 if (UNTAG_Bool(REGB0
)) {
3563 fprintf(stderr
, "Cast failed");
3564 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 615);
3567 /* ./syntax//typing.nit:616 */
3568 if (!once_value_4
) {
3569 if (!once_value_5
) {
3570 fra
.me
.REG
[3] = BOX_NativeString("item");
3572 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3573 once_value_5
= fra
.me
.REG
[3];
3574 register_static_object(&once_value_5
);
3575 } else fra
.me
.REG
[3] = once_value_5
;
3576 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3577 once_value_4
= fra
.me
.REG
[3];
3578 register_static_object(&once_value_4
);
3579 } else fra
.me
.REG
[3] = once_value_4
;
3580 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[3]);
3581 fra
.me
.REG
[6] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
3582 fra
.me
.REG
[6] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3583 REGB0
= TAG_Bool((fra
.me
.REG
[6]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[6], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
3584 /* ./syntax//typing.nit:617 */
3585 if (UNTAG_Bool(REGB0
)) {
3587 fprintf(stderr
, "Cast failed");
3588 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 617);
3591 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3592 REGB0
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3593 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3594 /* ./syntax//typing.nit:618 */
3595 if (UNTAG_Bool(REGB0
)) {
3596 fra
.me
.REG
[3] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3597 fra
.me
.REG
[6] = fra
.me
.REG
[3];
3599 /* ./syntax//typing.nit:619 */
3600 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3601 fra
.me
.REG
[6] = CALL_parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3602 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
3603 /* ./syntax//typing.nit:622 */
3604 if (UNTAG_Bool(REGB0
)) {
3606 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
3607 if (UNTAG_Bool(REGB1
)) {
3608 REGB1
= TAG_Bool(false);
3611 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
3615 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3616 if (UNTAG_Bool(REGB0
)) {
3617 fra
.me
.REG
[6] = CALL_parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3618 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3620 /* ./syntax//typing.nit:625 */
3621 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3622 /* ./syntax//typing.nit:626 */
3623 CALL_typing___TypingVisitor___base_variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3624 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3625 /* ./syntax//typing.nit:627 */
3626 CALL_escape___EscapableContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3627 REGB0
= TAG_Bool(true);
3628 /* ./syntax//typing.nit:628 */
3629 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3631 stack_frame_head
= fra
.me
.prev
;
3634 val_t
typing___AForExpr___escapable(val_t p0
){
3635 struct {struct stack_frame_t me
;} fra
;
3637 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3638 fra
.me
.file
= LOCATE_typing
;
3640 fra
.me
.meth
= LOCATE_typing___AForExpr___escapable
;
3641 fra
.me
.has_broke
= 0;
3642 fra
.me
.REG_size
= 1;
3643 fra
.me
.REG
[0] = NIT_NULL
;
3645 fra
.me
.REG
[0] = ATTR_typing___AForExpr____escapable(fra
.me
.REG
[0]);
3646 /* ./syntax//typing.nit:590 */
3647 stack_frame_head
= fra
.me
.prev
;
3648 return fra
.me
.REG
[0];
3650 void typing___AAssertExpr___accept_typing(val_t p0
, val_t p1
){
3651 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3655 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3656 fra
.me
.file
= LOCATE_typing
;
3658 fra
.me
.meth
= LOCATE_typing___AAssertExpr___accept_typing
;
3659 fra
.me
.has_broke
= 0;
3660 fra
.me
.REG_size
= 4;
3661 fra
.me
.REG
[0] = NIT_NULL
;
3662 fra
.me
.REG
[1] = NIT_NULL
;
3663 fra
.me
.REG
[2] = NIT_NULL
;
3664 fra
.me
.REG
[3] = NIT_NULL
;
3667 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3668 /* ./syntax//typing.nit:636 */
3669 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3670 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3671 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3672 /* ./syntax//typing.nit:637 */
3673 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3674 fra
.me
.REG
[3] = CALL_parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3675 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3676 /* ./syntax//typing.nit:640 */
3677 if (UNTAG_Bool(REGB0
)) {
3679 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3680 if (UNTAG_Bool(REGB1
)) {
3681 REGB1
= TAG_Bool(false);
3684 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3688 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3689 if (UNTAG_Bool(REGB0
)) {
3690 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3691 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3692 /* ./syntax//typing.nit:642 */
3693 CALL_typing___TypingVisitor___use_if_false_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3694 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3695 /* ./syntax//typing.nit:643 */
3696 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3697 /* ./syntax//typing.nit:644 */
3698 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3700 fra
.me
.REG
[3] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3701 /* ./syntax//typing.nit:648 */
3702 CALL_typing___TypingVisitor___use_if_true_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3703 REGB0
= TAG_Bool(true);
3704 /* ./syntax//typing.nit:649 */
3705 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3706 stack_frame_head
= fra
.me
.prev
;
3709 val_t
typing___AVarFormExpr___variable(val_t p0
){
3710 struct {struct stack_frame_t me
;} fra
;
3713 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3714 fra
.me
.file
= LOCATE_typing
;
3716 fra
.me
.meth
= LOCATE_typing___AVarFormExpr___variable
;
3717 fra
.me
.has_broke
= 0;
3718 fra
.me
.REG_size
= 1;
3719 fra
.me
.REG
[0] = NIT_NULL
;
3721 fra
.me
.REG
[0] = ATTR_typing___AVarFormExpr____variable(fra
.me
.REG
[0]);
3722 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
3723 /* ./syntax//typing.nit:655 */
3724 if (UNTAG_Bool(REGB0
)) {
3726 fprintf(stderr
, "Cast failed");
3727 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 655);
3732 stack_frame_head
= fra
.me
.prev
;
3733 return fra
.me
.REG
[0];
3735 void typing___AVarExpr___after_typing(val_t p0
, val_t p1
){
3736 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3740 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3741 fra
.me
.file
= LOCATE_typing
;
3743 fra
.me
.meth
= LOCATE_typing___AVarExpr___after_typing
;
3744 fra
.me
.has_broke
= 0;
3745 fra
.me
.REG_size
= 4;
3746 fra
.me
.REG
[0] = NIT_NULL
;
3747 fra
.me
.REG
[1] = NIT_NULL
;
3748 fra
.me
.REG
[2] = NIT_NULL
;
3749 fra
.me
.REG
[3] = NIT_NULL
;
3752 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3753 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3754 /* ./syntax//typing.nit:663 */
3755 CALL_control_flow___VariableContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3756 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3757 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3758 fra
.me
.REG
[3] = CALL_control_flow___VariableContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3759 /* ./syntax//typing.nit:664 */
3760 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
3761 fra
.me
.REG
[3] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
3762 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3763 /* ./syntax//typing.nit:665 */
3764 if (UNTAG_Bool(REGB0
)) {
3766 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3767 if (UNTAG_Bool(REGB1
)) {
3768 REGB1
= TAG_Bool(false);
3771 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3775 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3776 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3777 stack_frame_head
= fra
.me
.prev
;
3780 val_t
typing___AVarExpr___its_variable(val_t p0
){
3781 struct {struct stack_frame_t me
;} fra
;
3783 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3784 fra
.me
.file
= LOCATE_typing
;
3786 fra
.me
.meth
= LOCATE_typing___AVarExpr___its_variable
;
3787 fra
.me
.has_broke
= 0;
3788 fra
.me
.REG_size
= 1;
3789 fra
.me
.REG
[0] = NIT_NULL
;
3791 fra
.me
.REG
[0] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3792 /* ./syntax//typing.nit:659 */
3795 stack_frame_head
= fra
.me
.prev
;
3796 return fra
.me
.REG
[0];
3798 void typing___AVarAssignExpr___after_typing(val_t p0
, val_t p1
){
3799 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3803 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3804 fra
.me
.file
= LOCATE_typing
;
3806 fra
.me
.meth
= LOCATE_typing___AVarAssignExpr___after_typing
;
3807 fra
.me
.has_broke
= 0;
3808 fra
.me
.REG_size
= 4;
3809 fra
.me
.REG
[0] = NIT_NULL
;
3810 fra
.me
.REG
[1] = NIT_NULL
;
3811 fra
.me
.REG
[2] = NIT_NULL
;
3812 fra
.me
.REG
[3] = NIT_NULL
;
3815 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3816 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3817 /* ./syntax//typing.nit:672 */
3818 CALL_control_flow___VariableContext___mark_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3819 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___base_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3820 fra
.me
.REG
[2] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3821 fra
.me
.REG
[2] = CALL_control_flow___VariableContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3822 fra
.me
.REG
[3] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3823 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3824 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3825 /* ./syntax//typing.nit:676 */
3826 if (UNTAG_Bool(REGB0
)) {
3829 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3830 /* ./syntax//typing.nit:677 */
3831 if (UNTAG_Bool(REGB0
)) {
3833 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3834 if (UNTAG_Bool(REGB1
)) {
3835 REGB1
= TAG_Bool(false);
3838 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3842 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3843 if (UNTAG_Bool(REGB0
)) {
3844 fra
.me
.REG
[3] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3845 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3846 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3848 REGB1
= TAG_Bool(false);
3851 if (UNTAG_Bool(REGB0
)) {
3854 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3855 fra
.me
.REG
[2] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3856 fra
.me
.REG
[3] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3857 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3858 /* ./syntax//typing.nit:680 */
3859 CALL_control_flow___VariableContext___stype__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3860 REGB0
= TAG_Bool(true);
3861 /* ./syntax//typing.nit:682 */
3862 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3864 stack_frame_head
= fra
.me
.prev
;
3867 val_t
typing___AReassignFormExpr___assign_method(val_t p0
){
3868 struct {struct stack_frame_t me
;} fra
;
3871 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3872 fra
.me
.file
= LOCATE_typing
;
3874 fra
.me
.meth
= LOCATE_typing___AReassignFormExpr___assign_method
;
3875 fra
.me
.has_broke
= 0;
3876 fra
.me
.REG_size
= 1;
3877 fra
.me
.REG
[0] = NIT_NULL
;
3879 fra
.me
.REG
[0] = ATTR_typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]);
3880 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
3881 /* ./syntax//typing.nit:709 */
3882 if (UNTAG_Bool(REGB0
)) {
3884 fprintf(stderr
, "Cast failed");
3885 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 709);
3890 stack_frame_head
= fra
.me
.prev
;
3891 return fra
.me
.REG
[0];
3893 val_t
typing___AReassignFormExpr___do_rvalue_typing(val_t p0
, val_t p1
, val_t p2
){
3894 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
3898 static val_t once_value_2
; /* Once value */
3899 static val_t once_value_3
; /* Once value */
3900 static val_t once_value_4
; /* Once value */
3901 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3902 fra
.me
.file
= LOCATE_typing
;
3904 fra
.me
.meth
= LOCATE_typing___AReassignFormExpr___do_rvalue_typing
;
3905 fra
.me
.has_broke
= 0;
3906 fra
.me
.REG_size
= 8;
3907 fra
.me
.REG
[0] = NIT_NULL
;
3908 fra
.me
.REG
[1] = NIT_NULL
;
3909 fra
.me
.REG
[2] = NIT_NULL
;
3910 fra
.me
.REG
[3] = NIT_NULL
;
3911 fra
.me
.REG
[4] = NIT_NULL
;
3912 fra
.me
.REG
[5] = NIT_NULL
;
3913 fra
.me
.REG
[6] = NIT_NULL
;
3914 fra
.me
.REG
[7] = NIT_NULL
;
3918 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3919 /* ./syntax//typing.nit:692 */
3920 if (UNTAG_Bool(REGB0
)) {
3922 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3923 if (UNTAG_Bool(REGB1
)) {
3924 REGB1
= TAG_Bool(false);
3927 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3931 if (UNTAG_Bool(REGB0
)) {
3932 fra
.me
.REG
[3] = NIT_NULL
;
3933 /* ./syntax//typing.nit:693 */
3936 fra
.me
.REG
[4] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3937 fra
.me
.REG
[4] = CALL_typing___AAssignOp___method_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3938 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3939 /* ./syntax//typing.nit:696 */
3940 if (UNTAG_Bool(REGB0
)) {
3941 fprintf(stderr
, "Reciever is null");
3942 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 696);
3945 fra
.me
.REG
[5] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3946 REGB0
= CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3947 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3948 /* ./syntax//typing.nit:697 */
3949 if (UNTAG_Bool(REGB0
)) {
3951 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
3952 /* ./syntax//typing.nit:698 */
3953 if (!once_value_2
) {
3954 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
3955 REGB0
= TAG_Int(15);
3956 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3957 once_value_2
= fra
.me
.REG
[7];
3958 register_static_object(&once_value_2
);
3959 } else fra
.me
.REG
[7] = once_value_2
;
3960 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3961 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3962 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3963 if (!once_value_3
) {
3964 fra
.me
.REG
[7] = BOX_NativeString("' doesn't exists in ");
3965 REGB0
= TAG_Int(20);
3966 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3967 once_value_3
= fra
.me
.REG
[7];
3968 register_static_object(&once_value_3
);
3969 } else fra
.me
.REG
[7] = once_value_3
;
3970 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3971 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3972 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3973 if (!once_value_4
) {
3974 fra
.me
.REG
[7] = BOX_NativeString(".");
3976 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3977 once_value_4
= fra
.me
.REG
[7];
3978 register_static_object(&once_value_4
);
3979 } else fra
.me
.REG
[7] = once_value_4
;
3980 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3981 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3982 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
3983 fra
.me
.REG
[3] = NIT_NULL
;
3984 /* ./syntax//typing.nit:699 */
3987 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3988 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3989 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___module(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3990 REGB0
= TAG_Bool(false);
3991 /* ./syntax//typing.nit:702 */
3992 CALL_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
);
3993 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3994 /* ./syntax//typing.nit:704 */
3995 ATTR_typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
3996 fra
.me
.REG
[0] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3998 fra
.me
.REG
[4] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
3999 fra
.me
.REG
[4] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4000 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
4001 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4002 /* ./syntax//typing.nit:705 */
4003 if (UNTAG_Bool(REGB0
)) {
4004 fra
.me
.REG
[3] = NIT_NULL
;
4007 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4008 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4009 /* ./syntax//typing.nit:706 */
4010 if (UNTAG_Bool(REGB0
)) {
4011 fprintf(stderr
, "Reciever is null");
4012 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 706);
4015 fra
.me
.REG
[2] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4016 fra
.me
.REG
[3] = fra
.me
.REG
[2];
4019 stack_frame_head
= fra
.me
.prev
;
4020 return fra
.me
.REG
[3];
4022 void typing___AVarReassignExpr___after_typing(val_t p0
, val_t p1
){
4023 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4027 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4028 fra
.me
.file
= LOCATE_typing
;
4030 fra
.me
.meth
= LOCATE_typing___AVarReassignExpr___after_typing
;
4031 fra
.me
.has_broke
= 0;
4032 fra
.me
.REG_size
= 5;
4033 fra
.me
.REG
[0] = NIT_NULL
;
4034 fra
.me
.REG
[1] = NIT_NULL
;
4035 fra
.me
.REG
[2] = NIT_NULL
;
4036 fra
.me
.REG
[3] = NIT_NULL
;
4037 fra
.me
.REG
[4] = NIT_NULL
;
4040 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4041 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4042 /* ./syntax//typing.nit:716 */
4043 CALL_control_flow___VariableContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4044 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4045 fra
.me
.REG
[2] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4046 /* ./syntax//typing.nit:717 */
4047 CALL_control_flow___VariableContext___mark_is_set(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4048 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4049 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4050 fra
.me
.REG
[3] = CALL_control_flow___VariableContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4051 fra
.me
.REG
[3] = CALL_typing___AReassignFormExpr___do_rvalue_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
4052 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4053 /* ./syntax//typing.nit:720 */
4054 if (UNTAG_Bool(REGB0
)) {
4056 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4057 if (UNTAG_Bool(REGB1
)) {
4058 REGB1
= TAG_Bool(false);
4061 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4065 if (UNTAG_Bool(REGB0
)) {
4068 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___base_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4069 fra
.me
.REG
[4] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4070 fra
.me
.REG
[4] = CALL_control_flow___VariableContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4071 fra
.me
.REG
[2] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4072 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4073 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4074 /* ./syntax//typing.nit:724 */
4075 if (UNTAG_Bool(REGB0
)) {
4078 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4079 /* ./syntax//typing.nit:725 */
4080 if (UNTAG_Bool(REGB0
)) {
4082 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4083 if (UNTAG_Bool(REGB1
)) {
4084 REGB1
= TAG_Bool(false);
4087 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4091 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4092 if (UNTAG_Bool(REGB0
)) {
4093 fra
.me
.REG
[2] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4094 REGB0
= CALL_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]);
4095 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4097 REGB1
= TAG_Bool(false);
4100 if (UNTAG_Bool(REGB0
)) {
4103 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4104 fra
.me
.REG
[4] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4105 /* ./syntax//typing.nit:728 */
4106 CALL_control_flow___VariableContext___stype__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
4107 REGB0
= TAG_Bool(true);
4108 /* ./syntax//typing.nit:730 */
4109 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4111 stack_frame_head
= fra
.me
.prev
;
4114 val_t
typing___AAssignOp___method_name(val_t p0
){
4115 struct {struct stack_frame_t me
;} fra
;
4117 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4118 fra
.me
.file
= LOCATE_typing
;
4120 fra
.me
.meth
= LOCATE_typing___AAssignOp___method_name
;
4121 fra
.me
.has_broke
= 0;
4122 fra
.me
.REG_size
= 0;
4123 /* ./syntax//typing.nit:735 */
4124 fprintf(stderr
, "Deferred method called");
4125 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 735);
4127 stack_frame_head
= fra
.me
.prev
;
4130 val_t
typing___APlusAssignOp___method_name(val_t p0
){
4131 struct {struct stack_frame_t me
;} fra
;
4134 static val_t once_value_1
; /* Once value */
4135 static val_t once_value_2
; /* Once value */
4136 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4137 fra
.me
.file
= LOCATE_typing
;
4139 fra
.me
.meth
= LOCATE_typing___APlusAssignOp___method_name
;
4140 fra
.me
.has_broke
= 0;
4141 fra
.me
.REG_size
= 1;
4142 fra
.me
.REG
[0] = NIT_NULL
;
4144 /* ./syntax//typing.nit:738 */
4145 if (!once_value_1
) {
4146 if (!once_value_2
) {
4147 fra
.me
.REG
[0] = BOX_NativeString("+");
4149 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4150 once_value_2
= fra
.me
.REG
[0];
4151 register_static_object(&once_value_2
);
4152 } else fra
.me
.REG
[0] = once_value_2
;
4153 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4154 once_value_1
= fra
.me
.REG
[0];
4155 register_static_object(&once_value_1
);
4156 } else fra
.me
.REG
[0] = once_value_1
;
4159 stack_frame_head
= fra
.me
.prev
;
4160 return fra
.me
.REG
[0];
4162 val_t
typing___AMinusAssignOp___method_name(val_t p0
){
4163 struct {struct stack_frame_t me
;} fra
;
4166 static val_t once_value_1
; /* Once value */
4167 static val_t once_value_2
; /* Once value */
4168 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4169 fra
.me
.file
= LOCATE_typing
;
4171 fra
.me
.meth
= LOCATE_typing___AMinusAssignOp___method_name
;
4172 fra
.me
.has_broke
= 0;
4173 fra
.me
.REG_size
= 1;
4174 fra
.me
.REG
[0] = NIT_NULL
;
4176 /* ./syntax//typing.nit:741 */
4177 if (!once_value_1
) {
4178 if (!once_value_2
) {
4179 fra
.me
.REG
[0] = BOX_NativeString("-");
4181 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4182 once_value_2
= fra
.me
.REG
[0];
4183 register_static_object(&once_value_2
);
4184 } else fra
.me
.REG
[0] = once_value_2
;
4185 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4186 once_value_1
= fra
.me
.REG
[0];
4187 register_static_object(&once_value_1
);
4188 } else fra
.me
.REG
[0] = once_value_1
;
4191 stack_frame_head
= fra
.me
.prev
;
4192 return fra
.me
.REG
[0];
4194 val_t
typing___ASelfExpr___variable(val_t p0
){
4195 struct {struct stack_frame_t me
;} fra
;
4198 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4199 fra
.me
.file
= LOCATE_typing
;
4201 fra
.me
.meth
= LOCATE_typing___ASelfExpr___variable
;
4202 fra
.me
.has_broke
= 0;
4203 fra
.me
.REG_size
= 1;
4204 fra
.me
.REG
[0] = NIT_NULL
;
4206 fra
.me
.REG
[0] = ATTR_typing___ASelfExpr____variable(fra
.me
.REG
[0]);
4207 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
4208 /* ./syntax//typing.nit:746 */
4209 if (UNTAG_Bool(REGB0
)) {
4211 fprintf(stderr
, "Cast failed");
4212 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 746);
4217 stack_frame_head
= fra
.me
.prev
;
4218 return fra
.me
.REG
[0];
4220 void typing___ASelfExpr___after_typing(val_t p0
, val_t p1
){
4221 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4224 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4225 fra
.me
.file
= LOCATE_typing
;
4227 fra
.me
.meth
= LOCATE_typing___ASelfExpr___after_typing
;
4228 fra
.me
.has_broke
= 0;
4229 fra
.me
.REG_size
= 3;
4230 fra
.me
.REG
[0] = NIT_NULL
;
4231 fra
.me
.REG
[1] = NIT_NULL
;
4232 fra
.me
.REG
[2] = NIT_NULL
;
4235 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4236 /* ./syntax//typing.nit:752 */
4237 ATTR_typing___ASelfExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4238 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4239 fra
.me
.REG
[2] = CALL_syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4240 fra
.me
.REG
[2] = CALL_control_flow___VariableContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4241 /* ./syntax//typing.nit:753 */
4242 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4243 REGB0
= TAG_Bool(true);
4244 /* ./syntax//typing.nit:754 */
4245 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4246 stack_frame_head
= fra
.me
.prev
;
4249 val_t
typing___ASelfExpr___is_self(val_t p0
){
4250 struct {struct stack_frame_t me
;} fra
;
4253 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4254 fra
.me
.file
= LOCATE_typing
;
4256 fra
.me
.meth
= LOCATE_typing___ASelfExpr___is_self
;
4257 fra
.me
.has_broke
= 0;
4258 fra
.me
.REG_size
= 1;
4259 fra
.me
.REG
[0] = NIT_NULL
;
4261 REGB0
= TAG_Bool(true);
4262 /* ./syntax//typing.nit:757 */
4265 stack_frame_head
= fra
.me
.prev
;
4268 val_t
typing___ASelfExpr___its_variable(val_t p0
){
4269 struct {struct stack_frame_t me
;} fra
;
4271 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4272 fra
.me
.file
= LOCATE_typing
;
4274 fra
.me
.meth
= LOCATE_typing___ASelfExpr___its_variable
;
4275 fra
.me
.has_broke
= 0;
4276 fra
.me
.REG_size
= 1;
4277 fra
.me
.REG
[0] = NIT_NULL
;
4279 fra
.me
.REG
[0] = CALL_syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4280 /* ./syntax//typing.nit:748 */
4283 stack_frame_head
= fra
.me
.prev
;
4284 return fra
.me
.REG
[0];
4286 val_t
typing___AImplicitSelfExpr___is_implicit_self(val_t p0
){
4287 struct {struct stack_frame_t me
;} fra
;
4290 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4291 fra
.me
.file
= LOCATE_typing
;
4293 fra
.me
.meth
= LOCATE_typing___AImplicitSelfExpr___is_implicit_self
;
4294 fra
.me
.has_broke
= 0;
4295 fra
.me
.REG_size
= 1;
4296 fra
.me
.REG
[0] = NIT_NULL
;
4298 REGB0
= TAG_Bool(true);
4299 /* ./syntax//typing.nit:761 */
4302 stack_frame_head
= fra
.me
.prev
;
4305 void typing___AIfexprExpr___accept_typing(val_t p0
, val_t p1
){
4306 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4310 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4311 fra
.me
.file
= LOCATE_typing
;
4313 fra
.me
.meth
= LOCATE_typing___AIfexprExpr___accept_typing
;
4314 fra
.me
.has_broke
= 0;
4315 fra
.me
.REG_size
= 5;
4316 fra
.me
.REG
[0] = NIT_NULL
;
4317 fra
.me
.REG
[1] = NIT_NULL
;
4318 fra
.me
.REG
[2] = NIT_NULL
;
4319 fra
.me
.REG
[3] = NIT_NULL
;
4320 fra
.me
.REG
[4] = NIT_NULL
;
4323 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4324 fra
.me
.REG
[3] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4325 /* ./syntax//typing.nit:770 */
4326 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4327 fra
.me
.REG
[3] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4328 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4329 /* ./syntax//typing.nit:771 */
4330 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
4331 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4332 /* ./syntax//typing.nit:774 */
4333 CALL_typing___TypingVisitor___use_if_true_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4334 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4335 /* ./syntax//typing.nit:777 */
4336 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4337 /* ./syntax//typing.nit:780 */
4338 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4339 fra
.me
.REG
[2] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4340 /* ./syntax//typing.nit:781 */
4341 CALL_typing___TypingVisitor___use_if_false_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4342 fra
.me
.REG
[2] = CALL_parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4343 /* ./syntax//typing.nit:784 */
4344 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4346 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
4347 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4348 /* ./syntax//typing.nit:786 */
4349 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4350 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4351 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4352 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
, fra
.me
.REG
[2]);
4353 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4354 /* ./syntax//typing.nit:787 */
4355 if (UNTAG_Bool(REGB0
)) {
4357 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4358 if (UNTAG_Bool(REGB1
)) {
4359 REGB1
= TAG_Bool(false);
4362 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4366 if (UNTAG_Bool(REGB0
)) {
4369 /* ./syntax//typing.nit:789 */
4370 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4371 REGB0
= TAG_Bool(true);
4372 /* ./syntax//typing.nit:790 */
4373 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4375 stack_frame_head
= fra
.me
.prev
;
4378 void typing___ABoolExpr___after_typing(val_t p0
, val_t p1
){
4379 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4382 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4383 fra
.me
.file
= LOCATE_typing
;
4385 fra
.me
.meth
= LOCATE_typing___ABoolExpr___after_typing
;
4386 fra
.me
.has_broke
= 0;
4387 fra
.me
.REG_size
= 2;
4388 fra
.me
.REG
[0] = NIT_NULL
;
4389 fra
.me
.REG
[1] = NIT_NULL
;
4392 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4393 /* ./syntax//typing.nit:797 */
4394 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4395 REGB0
= TAG_Bool(true);
4396 /* ./syntax//typing.nit:798 */
4397 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4398 stack_frame_head
= fra
.me
.prev
;
4401 void typing___AOrExpr___accept_typing(val_t p0
, val_t p1
){
4402 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4406 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4407 fra
.me
.file
= LOCATE_typing
;
4409 fra
.me
.meth
= LOCATE_typing___AOrExpr___accept_typing
;
4410 fra
.me
.has_broke
= 0;
4411 fra
.me
.REG_size
= 5;
4412 fra
.me
.REG
[0] = NIT_NULL
;
4413 fra
.me
.REG
[1] = NIT_NULL
;
4414 fra
.me
.REG
[2] = NIT_NULL
;
4415 fra
.me
.REG
[3] = NIT_NULL
;
4416 fra
.me
.REG
[4] = NIT_NULL
;
4419 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4420 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4421 /* ./syntax//typing.nit:807 */
4422 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4423 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4424 /* ./syntax//typing.nit:810 */
4425 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4426 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4427 /* ./syntax//typing.nit:813 */
4428 CALL_typing___TypingVisitor___use_if_false_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4429 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4430 /* ./syntax//typing.nit:816 */
4431 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4432 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4433 fra
.me
.REG
[4] = CALL_typing___AExpr___if_false_variable_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4434 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4435 /* ./syntax//typing.nit:817 */
4436 if (UNTAG_Bool(REGB0
)) {
4438 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4439 if (UNTAG_Bool(REGB1
)) {
4440 REGB1
= TAG_Bool(false);
4443 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4447 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4448 if (UNTAG_Bool(REGB0
)) {
4449 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4450 fra
.me
.REG
[4] = CALL_typing___AExpr___if_false_variable_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4451 /* ./syntax//typing.nit:818 */
4452 ATTR_typing___AExpr____if_false_variable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4454 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4455 /* ./syntax//typing.nit:820 */
4456 ATTR_typing___AExpr____if_false_variable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4458 /* ./syntax//typing.nit:823 */
4459 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4460 fra
.me
.REG
[2] = CALL_parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4461 /* ./syntax//typing.nit:825 */
4462 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4463 fra
.me
.REG
[2] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4464 /* ./syntax//typing.nit:826 */
4465 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4466 /* ./syntax//typing.nit:827 */
4467 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4468 REGB0
= TAG_Bool(true);
4469 /* ./syntax//typing.nit:828 */
4470 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4471 stack_frame_head
= fra
.me
.prev
;
4474 void typing___AAndExpr___accept_typing(val_t p0
, val_t p1
){
4475 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4479 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4480 fra
.me
.file
= LOCATE_typing
;
4482 fra
.me
.meth
= LOCATE_typing___AAndExpr___accept_typing
;
4483 fra
.me
.has_broke
= 0;
4484 fra
.me
.REG_size
= 5;
4485 fra
.me
.REG
[0] = NIT_NULL
;
4486 fra
.me
.REG
[1] = NIT_NULL
;
4487 fra
.me
.REG
[2] = NIT_NULL
;
4488 fra
.me
.REG
[3] = NIT_NULL
;
4489 fra
.me
.REG
[4] = NIT_NULL
;
4492 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4493 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4494 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4495 /* ./syntax//typing.nit:839 */
4496 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4497 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4498 /* ./syntax//typing.nit:842 */
4499 CALL_typing___TypingVisitor___use_if_true_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4500 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4501 /* ./syntax//typing.nit:845 */
4502 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4503 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4504 fra
.me
.REG
[4] = CALL_typing___AExpr___if_true_variable_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4505 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4506 /* ./syntax//typing.nit:846 */
4507 if (UNTAG_Bool(REGB0
)) {
4509 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4510 if (UNTAG_Bool(REGB1
)) {
4511 REGB1
= TAG_Bool(false);
4514 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4518 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4519 if (UNTAG_Bool(REGB0
)) {
4520 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4521 fra
.me
.REG
[4] = CALL_typing___AExpr___if_true_variable_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4522 /* ./syntax//typing.nit:847 */
4523 ATTR_typing___AExpr____if_true_variable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4525 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4526 /* ./syntax//typing.nit:849 */
4527 ATTR_typing___AExpr____if_true_variable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4529 /* ./syntax//typing.nit:852 */
4530 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4531 fra
.me
.REG
[2] = CALL_parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4532 /* ./syntax//typing.nit:854 */
4533 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4534 fra
.me
.REG
[2] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4535 /* ./syntax//typing.nit:855 */
4536 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4537 /* ./syntax//typing.nit:856 */
4538 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4539 REGB0
= TAG_Bool(true);
4540 /* ./syntax//typing.nit:857 */
4541 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4542 stack_frame_head
= fra
.me
.prev
;
4545 void typing___ANotExpr___after_typing(val_t p0
, val_t p1
){
4546 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4549 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4550 fra
.me
.file
= LOCATE_typing
;
4552 fra
.me
.meth
= LOCATE_typing___ANotExpr___after_typing
;
4553 fra
.me
.has_broke
= 0;
4554 fra
.me
.REG_size
= 4;
4555 fra
.me
.REG
[0] = NIT_NULL
;
4556 fra
.me
.REG
[1] = NIT_NULL
;
4557 fra
.me
.REG
[2] = NIT_NULL
;
4558 fra
.me
.REG
[3] = NIT_NULL
;
4561 fra
.me
.REG
[2] = CALL_parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4562 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4563 /* ./syntax//typing.nit:864 */
4564 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4565 fra
.me
.REG
[3] = CALL_parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4566 fra
.me
.REG
[3] = ATTR_typing___AExpr____if_true_variable_ctx(fra
.me
.REG
[3]);
4567 /* ./syntax//typing.nit:867 */
4568 ATTR_typing___AExpr____if_false_variable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4569 fra
.me
.REG
[3] = CALL_parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4570 fra
.me
.REG
[3] = ATTR_typing___AExpr____if_false_variable_ctx(fra
.me
.REG
[3]);
4571 /* ./syntax//typing.nit:868 */
4572 ATTR_typing___AExpr____if_true_variable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4573 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4574 /* ./syntax//typing.nit:870 */
4575 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4576 REGB0
= TAG_Bool(true);
4577 /* ./syntax//typing.nit:871 */
4578 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4579 stack_frame_head
= fra
.me
.prev
;
4582 void typing___AIntExpr___after_typing(val_t p0
, val_t p1
){
4583 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4586 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4587 fra
.me
.file
= LOCATE_typing
;
4589 fra
.me
.meth
= LOCATE_typing___AIntExpr___after_typing
;
4590 fra
.me
.has_broke
= 0;
4591 fra
.me
.REG_size
= 2;
4592 fra
.me
.REG
[0] = NIT_NULL
;
4593 fra
.me
.REG
[1] = NIT_NULL
;
4596 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4597 /* ./syntax//typing.nit:878 */
4598 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4599 REGB0
= TAG_Bool(true);
4600 /* ./syntax//typing.nit:879 */
4601 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4602 stack_frame_head
= fra
.me
.prev
;
4605 void typing___AFloatExpr___after_typing(val_t p0
, val_t p1
){
4606 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4609 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4610 fra
.me
.file
= LOCATE_typing
;
4612 fra
.me
.meth
= LOCATE_typing___AFloatExpr___after_typing
;
4613 fra
.me
.has_broke
= 0;
4614 fra
.me
.REG_size
= 2;
4615 fra
.me
.REG
[0] = NIT_NULL
;
4616 fra
.me
.REG
[1] = NIT_NULL
;
4619 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_float(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4620 /* ./syntax//typing.nit:886 */
4621 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4622 REGB0
= TAG_Bool(true);
4623 /* ./syntax//typing.nit:887 */
4624 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4625 stack_frame_head
= fra
.me
.prev
;
4628 void typing___ACharExpr___after_typing(val_t p0
, val_t p1
){
4629 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4632 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4633 fra
.me
.file
= LOCATE_typing
;
4635 fra
.me
.meth
= LOCATE_typing___ACharExpr___after_typing
;
4636 fra
.me
.has_broke
= 0;
4637 fra
.me
.REG_size
= 2;
4638 fra
.me
.REG
[0] = NIT_NULL
;
4639 fra
.me
.REG
[1] = NIT_NULL
;
4642 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_char(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4643 /* ./syntax//typing.nit:894 */
4644 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4645 REGB0
= TAG_Bool(true);
4646 /* ./syntax//typing.nit:895 */
4647 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4648 stack_frame_head
= fra
.me
.prev
;
4651 void typing___AStringFormExpr___after_typing(val_t p0
, val_t p1
){
4652 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4655 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4656 fra
.me
.file
= LOCATE_typing
;
4658 fra
.me
.meth
= LOCATE_typing___AStringFormExpr___after_typing
;
4659 fra
.me
.has_broke
= 0;
4660 fra
.me
.REG_size
= 2;
4661 fra
.me
.REG
[0] = NIT_NULL
;
4662 fra
.me
.REG
[1] = NIT_NULL
;
4665 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4666 /* ./syntax//typing.nit:902 */
4667 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4668 REGB0
= TAG_Bool(true);
4669 /* ./syntax//typing.nit:903 */
4670 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4671 stack_frame_head
= fra
.me
.prev
;
4674 val_t
typing___ASuperstringExpr___atype(val_t p0
){
4675 struct {struct stack_frame_t me
;} fra
;
4678 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4679 fra
.me
.file
= LOCATE_typing
;
4681 fra
.me
.meth
= LOCATE_typing___ASuperstringExpr___atype
;
4682 fra
.me
.has_broke
= 0;
4683 fra
.me
.REG_size
= 1;
4684 fra
.me
.REG
[0] = NIT_NULL
;
4686 fra
.me
.REG
[0] = ATTR_typing___ASuperstringExpr____atype(fra
.me
.REG
[0]);
4687 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
4688 /* ./syntax//typing.nit:908 */
4689 if (UNTAG_Bool(REGB0
)) {
4691 fprintf(stderr
, "Cast failed");
4692 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 908);
4697 stack_frame_head
= fra
.me
.prev
;
4698 return fra
.me
.REG
[0];
4700 void typing___ASuperstringExpr___after_typing(val_t p0
, val_t p1
){
4701 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4704 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4705 fra
.me
.file
= LOCATE_typing
;
4707 fra
.me
.meth
= LOCATE_typing___ASuperstringExpr___after_typing
;
4708 fra
.me
.has_broke
= 0;
4709 fra
.me
.REG_size
= 3;
4710 fra
.me
.REG
[0] = NIT_NULL
;
4711 fra
.me
.REG
[1] = NIT_NULL
;
4712 fra
.me
.REG
[2] = NIT_NULL
;
4715 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4716 /* ./syntax//typing.nit:913 */
4717 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4718 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4719 /* ./syntax//typing.nit:915 */
4720 ATTR_typing___ASuperstringExpr____atype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4721 REGB0
= TAG_Bool(true);
4722 /* ./syntax//typing.nit:916 */
4723 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4724 stack_frame_head
= fra
.me
.prev
;
4727 void typing___ANullExpr___after_typing(val_t p0
, val_t p1
){
4728 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4731 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4732 fra
.me
.file
= LOCATE_typing
;
4734 fra
.me
.meth
= LOCATE_typing___ANullExpr___after_typing
;
4735 fra
.me
.has_broke
= 0;
4736 fra
.me
.REG_size
= 2;
4737 fra
.me
.REG
[0] = NIT_NULL
;
4738 fra
.me
.REG
[1] = NIT_NULL
;
4741 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4742 /* ./syntax//typing.nit:923 */
4743 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4744 REGB0
= TAG_Bool(true);
4745 /* ./syntax//typing.nit:924 */
4746 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4747 stack_frame_head
= fra
.me
.prev
;
4750 void typing___AArrayExpr___after_typing(val_t p0
, val_t p1
){
4751 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4755 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4756 fra
.me
.file
= LOCATE_typing
;
4758 fra
.me
.meth
= LOCATE_typing___AArrayExpr___after_typing
;
4759 fra
.me
.has_broke
= 0;
4760 fra
.me
.REG_size
= 3;
4761 fra
.me
.REG
[0] = NIT_NULL
;
4762 fra
.me
.REG
[1] = NIT_NULL
;
4763 fra
.me
.REG
[2] = NIT_NULL
;
4766 fra
.me
.REG
[2] = CALL_parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4767 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
, fra
.me
.REG
[2]);
4768 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4769 /* ./syntax//typing.nit:932 */
4770 if (UNTAG_Bool(REGB0
)) {
4772 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4773 if (UNTAG_Bool(REGB1
)) {
4774 REGB1
= TAG_Bool(false);
4777 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4781 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4782 if (UNTAG_Bool(REGB0
)) {
4783 CALL_typing___AArrayExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
4785 stack_frame_head
= fra
.me
.prev
;
4788 void typing___AArrayExpr___do_typing(val_t p0
, val_t p1
, val_t p2
){
4789 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4792 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4793 fra
.me
.file
= LOCATE_typing
;
4795 fra
.me
.meth
= LOCATE_typing___AArrayExpr___do_typing
;
4796 fra
.me
.has_broke
= 0;
4797 fra
.me
.REG_size
= 3;
4798 fra
.me
.REG
[0] = NIT_NULL
;
4799 fra
.me
.REG
[1] = NIT_NULL
;
4800 fra
.me
.REG
[2] = NIT_NULL
;
4804 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4805 /* ./syntax//typing.nit:937 */
4806 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4807 REGB0
= TAG_Bool(true);
4808 /* ./syntax//typing.nit:938 */
4809 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4810 stack_frame_head
= fra
.me
.prev
;
4813 void typing___ARangeExpr___after_typing(val_t p0
, val_t p1
){
4814 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4818 static val_t once_value_2
; /* Once value */
4819 static val_t once_value_3
; /* Once value */
4820 static val_t once_value_4
; /* Once value */
4821 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4822 fra
.me
.file
= LOCATE_typing
;
4824 fra
.me
.meth
= LOCATE_typing___ARangeExpr___after_typing
;
4825 fra
.me
.has_broke
= 0;
4826 fra
.me
.REG_size
= 6;
4827 fra
.me
.REG
[0] = NIT_NULL
;
4828 fra
.me
.REG
[1] = NIT_NULL
;
4829 fra
.me
.REG
[2] = NIT_NULL
;
4830 fra
.me
.REG
[3] = NIT_NULL
;
4831 fra
.me
.REG
[4] = NIT_NULL
;
4832 fra
.me
.REG
[5] = NIT_NULL
;
4835 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4836 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4837 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4838 /* ./syntax//typing.nit:945 */
4839 if (UNTAG_Bool(REGB0
)) {
4840 REGB0
= TAG_Bool(true);
4842 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4843 REGB1
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4844 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
4847 if (UNTAG_Bool(REGB0
)) {
4850 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4851 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4852 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4853 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4854 REGB0
= CALL_static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4855 /* ./syntax//typing.nit:948 */
4856 if (UNTAG_Bool(REGB0
)) {
4857 fra
.me
.REG
[2] = fra
.me
.REG
[3];
4858 /* ./syntax//typing.nit:949 */
4860 REGB0
= CALL_static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4861 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4862 /* ./syntax//typing.nit:950 */
4863 if (UNTAG_Bool(REGB0
)) {
4865 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
4866 /* ./syntax//typing.nit:951 */
4867 if (!once_value_2
) {
4868 fra
.me
.REG
[5] = BOX_NativeString("Type error: ");
4869 REGB0
= TAG_Int(12);
4870 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
4871 once_value_2
= fra
.me
.REG
[5];
4872 register_static_object(&once_value_2
);
4873 } else fra
.me
.REG
[5] = once_value_2
;
4874 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4875 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4876 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4877 if (!once_value_3
) {
4878 fra
.me
.REG
[5] = BOX_NativeString(" incompatible with ");
4879 REGB0
= TAG_Int(19);
4880 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
4881 once_value_3
= fra
.me
.REG
[5];
4882 register_static_object(&once_value_3
);
4883 } else fra
.me
.REG
[5] = once_value_3
;
4884 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4885 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4886 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4887 if (!once_value_4
) {
4888 fra
.me
.REG
[3] = BOX_NativeString(".");
4890 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
4891 once_value_4
= fra
.me
.REG
[3];
4892 register_static_object(&once_value_4
);
4893 } else fra
.me
.REG
[3] = once_value_4
;
4894 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
4895 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4896 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
4897 /* ./syntax//typing.nit:952 */
4901 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_discrete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4902 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4903 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
4904 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4905 /* ./syntax//typing.nit:955 */
4906 if (UNTAG_Bool(REGB0
)) {
4907 REGB0
= TAG_Bool(true);
4909 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4910 REGB1
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
4911 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
4914 if (UNTAG_Bool(REGB0
)) {
4917 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4918 /* ./syntax//typing.nit:956 */
4919 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4920 REGB0
= TAG_Bool(true);
4921 /* ./syntax//typing.nit:957 */
4922 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4924 stack_frame_head
= fra
.me
.prev
;
4927 val_t
typing___ASuperExpr___init_in_superclass(val_t p0
){
4928 struct {struct stack_frame_t me
;} fra
;
4930 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4931 fra
.me
.file
= LOCATE_typing
;
4933 fra
.me
.meth
= LOCATE_typing___ASuperExpr___init_in_superclass
;
4934 fra
.me
.has_broke
= 0;
4935 fra
.me
.REG_size
= 1;
4936 fra
.me
.REG
[0] = NIT_NULL
;
4938 fra
.me
.REG
[0] = ATTR_typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]);
4939 /* ./syntax//typing.nit:962 */
4940 stack_frame_head
= fra
.me
.prev
;
4941 return fra
.me
.REG
[0];
4943 void typing___ASuperExpr___after_typing(val_t p0
, val_t p1
){
4944 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4948 static val_t once_value_1
; /* Once value */
4949 static val_t once_value_2
; /* Once value */
4950 static val_t once_value_3
; /* Once value */
4951 static val_t once_value_5
; /* Once value */
4952 static val_t once_value_6
; /* Once value */
4953 static val_t once_value_8
; /* Once value */
4954 static val_t once_value_9
; /* Once value */
4955 static val_t once_value_10
; /* Once value */
4956 static val_t once_value_11
; /* Once value */
4957 static val_t once_value_12
; /* Once value */
4958 static val_t once_value_13
; /* Once value */
4959 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4960 fra
.me
.file
= LOCATE_typing
;
4962 fra
.me
.meth
= LOCATE_typing___ASuperExpr___after_typing
;
4963 fra
.me
.has_broke
= 0;
4964 fra
.me
.REG_size
= 8;
4965 fra
.me
.REG
[0] = NIT_NULL
;
4966 fra
.me
.REG
[1] = NIT_NULL
;
4967 fra
.me
.REG
[2] = NIT_NULL
;
4968 fra
.me
.REG
[3] = NIT_NULL
;
4969 fra
.me
.REG
[4] = NIT_NULL
;
4970 fra
.me
.REG
[5] = NIT_NULL
;
4971 fra
.me
.REG
[6] = NIT_NULL
;
4972 fra
.me
.REG
[7] = NIT_NULL
;
4975 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4976 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4977 fra
.me
.REG
[2] = CALL_partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4978 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4979 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4980 /* ./syntax//typing.nit:967 */
4981 if (UNTAG_Bool(REGB0
)) {
4982 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4983 REGB0
= TAG_Bool(true);
4984 /* ./syntax//typing.nit:968 */
4985 CALL_abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
4987 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4988 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4989 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4990 /* ./syntax//typing.nit:969 */
4991 if (UNTAG_Bool(REGB0
)) {
4992 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4993 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4994 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4995 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4996 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4997 /* ./syntax//typing.nit:971 */
4999 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5000 if (UNTAG_Bool(REGB0
)) {
5001 fra
.me
.REG
[5] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5002 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5003 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5004 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5005 /* ./syntax//typing.nit:972 */
5006 if (UNTAG_Bool(REGB0
)) {
5008 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
5009 /* ./syntax//typing.nit:973 */
5010 if (!once_value_1
) {
5011 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
5013 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5014 once_value_1
= fra
.me
.REG
[7];
5015 register_static_object(&once_value_1
);
5016 } else fra
.me
.REG
[7] = once_value_1
;
5017 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5018 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5019 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5020 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5021 if (!once_value_2
) {
5022 fra
.me
.REG
[7] = BOX_NativeString("::");
5024 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5025 once_value_2
= fra
.me
.REG
[7];
5026 register_static_object(&once_value_2
);
5027 } else fra
.me
.REG
[7] = once_value_2
;
5028 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5029 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5030 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5031 if (!once_value_3
) {
5032 fra
.me
.REG
[7] = BOX_NativeString(" is not a constructor.");
5033 REGB0
= TAG_Int(22);
5034 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5035 once_value_3
= fra
.me
.REG
[7];
5036 register_static_object(&once_value_3
);
5037 } else fra
.me
.REG
[7] = once_value_3
;
5038 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5039 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5040 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
5042 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5043 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5044 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
5045 /* ./syntax//typing.nit:975 */
5046 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5049 /* ./syntax//typing.nit:971 */
5052 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5055 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5056 /* ./syntax//typing.nit:978 */
5057 if (UNTAG_Bool(REGB0
)) {
5059 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
5060 /* ./syntax//typing.nit:979 */
5061 if (!once_value_5
) {
5062 fra
.me
.REG
[5] = BOX_NativeString("Error: No contructor named ");
5063 REGB0
= TAG_Int(27);
5064 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5065 once_value_5
= fra
.me
.REG
[5];
5066 register_static_object(&once_value_5
);
5067 } else fra
.me
.REG
[5] = once_value_5
;
5068 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5069 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5070 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5071 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5072 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5073 if (!once_value_6
) {
5074 fra
.me
.REG
[5] = BOX_NativeString(" in superclasses.");
5075 REGB0
= TAG_Int(17);
5076 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5077 once_value_6
= fra
.me
.REG
[5];
5078 register_static_object(&once_value_6
);
5079 } else fra
.me
.REG
[5] = once_value_6
;
5080 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5081 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5082 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
5083 /* ./syntax//typing.nit:980 */
5086 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5087 /* ./../lib/standard//collection//array.nit:23 */
5088 if (UNTAG_Bool(REGB0
)) {
5090 fprintf(stderr
, "Uninitialized attribute %s", "_length");
5091 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
5094 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5096 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
5097 /* ./syntax//typing.nit:981 */
5098 if (UNTAG_Bool(REGB1
)) {
5100 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
5101 /* ./syntax//typing.nit:982 */
5102 if (!once_value_8
) {
5103 fra
.me
.REG
[5] = BOX_NativeString("Error: Conflicting contructors named ");
5104 REGB1
= TAG_Int(37);
5105 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
5106 once_value_8
= fra
.me
.REG
[5];
5107 register_static_object(&once_value_8
);
5108 } else fra
.me
.REG
[5] = once_value_8
;
5109 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5110 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5111 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5112 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5113 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5114 if (!once_value_9
) {
5115 fra
.me
.REG
[5] = BOX_NativeString(" in superclasses: ");
5116 REGB1
= TAG_Int(18);
5117 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
5118 once_value_9
= fra
.me
.REG
[5];
5119 register_static_object(&once_value_9
);
5120 } else fra
.me
.REG
[5] = once_value_9
;
5121 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5122 if (!once_value_10
) {
5123 fra
.me
.REG
[5] = BOX_NativeString(", ");
5125 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
5126 once_value_10
= fra
.me
.REG
[5];
5127 register_static_object(&once_value_10
);
5128 } else fra
.me
.REG
[5] = once_value_10
;
5129 fra
.me
.REG
[5] = CALL_string___Collection___join(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5130 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5131 if (!once_value_11
) {
5132 fra
.me
.REG
[5] = BOX_NativeString(".");
5134 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
5135 once_value_11
= fra
.me
.REG
[5];
5136 register_static_object(&once_value_11
);
5137 } else fra
.me
.REG
[5] = once_value_11
;
5138 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
5139 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5140 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
5141 /* ./syntax//typing.nit:983 */
5145 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5146 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
5147 /* ./syntax//typing.nit:986 */
5148 if (UNTAG_Bool(REGB1
)) {
5150 fprintf(stderr
, "Assert failed");
5151 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 986);
5154 /* ./syntax//typing.nit:987 */
5155 ATTR_typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5156 /* ./syntax//typing.nit:988 */
5157 CALL_typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
5158 fra
.me
.REG
[3] = CALL_parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5159 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5161 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB0
));
5162 /* ./syntax//typing.nit:989 */
5163 if (UNTAG_Bool(REGB0
)) {
5164 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5165 fra
.me
.REG
[3] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5166 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
5167 /* ./syntax//typing.nit:990 */
5168 if (UNTAG_Bool(REGB0
)) {
5170 fprintf(stderr
, "Cast failed");
5171 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 990);
5174 REGB0
= TAG_Bool(true);
5175 fra
.me
.REG
[3] = CALL_typing___AAbsSendExpr___get_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4], REGB0
);
5176 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5177 fra
.me
.REG
[5] = CALL_typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5178 /* ./syntax//typing.nit:991 */
5179 CALL_typing___AAbsAbsSendExpr___process_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[5]);
5183 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
5184 /* ./syntax//typing.nit:994 */
5185 if (!once_value_12
) {
5186 fra
.me
.REG
[4] = BOX_NativeString("Error: No super method to call for ");
5187 REGB0
= TAG_Int(35);
5188 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5189 once_value_12
= fra
.me
.REG
[4];
5190 register_static_object(&once_value_12
);
5191 } else fra
.me
.REG
[4] = once_value_12
;
5192 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5193 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5194 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5195 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5196 if (!once_value_13
) {
5197 fra
.me
.REG
[4] = BOX_NativeString(".");
5199 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5200 once_value_13
= fra
.me
.REG
[4];
5201 register_static_object(&once_value_13
);
5202 } else fra
.me
.REG
[4] = once_value_13
;
5203 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5204 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5205 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
5206 /* ./syntax//typing.nit:995 */
5210 fra
.me
.REG
[5] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5211 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5212 fra
.me
.REG
[4] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5213 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
5214 /* ./syntax//typing.nit:998 */
5215 if (UNTAG_Bool(REGB0
)) {
5217 fprintf(stderr
, "Cast failed");
5218 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 998);
5221 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5222 if (UNTAG_Bool(REGB0
)) {
5223 fprintf(stderr
, "Reciever is null");
5224 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 998);
5227 fra
.me
.REG
[4] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5228 fra
.me
.REG
[4] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5229 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5230 if (UNTAG_Bool(REGB0
)) {
5232 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5233 if (UNTAG_Bool(REGB1
)) {
5234 REGB1
= TAG_Bool(false);
5237 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5241 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5242 if (UNTAG_Bool(REGB0
)) {
5243 fra
.me
.REG
[4] = NEW_Array_array___Array___init();
5244 fra
.me
.REG
[5] = NIT_NULL
;
5245 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5246 /* ./syntax//typing.nit:1001 */
5248 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5249 if (UNTAG_Bool(REGB0
)) {
5250 fra
.me
.REG
[3] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5251 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
5252 /* ./syntax//typing.nit:1002 */
5253 if (UNTAG_Bool(REGB0
)) {
5255 fprintf(stderr
, "Assert failed");
5256 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1002);
5259 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5260 fra
.me
.REG
[6] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5261 REGB0
= TAG_Bool((fra
.me
.REG
[6]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[6], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
5262 /* ./syntax//typing.nit:1003 */
5263 if (UNTAG_Bool(REGB0
)) {
5265 fprintf(stderr
, "Cast failed");
5266 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1003);
5269 fra
.me
.REG
[6] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
5270 fra
.me
.REG
[6] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5271 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___module(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5272 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5273 if (UNTAG_Bool(REGB0
)) {
5274 fprintf(stderr
, "Reciever is null");
5275 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1003);
5278 fra
.me
.REG
[3] = CALL_static_type___MMType___for_module(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5279 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5280 fra
.me
.REG
[6] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5281 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5282 if (UNTAG_Bool(REGB0
)) {
5283 fprintf(stderr
, "Reciever is null");
5284 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1003);
5287 fra
.me
.REG
[6] = CALL_static_type___MMSignature___recv(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5288 fra
.me
.REG
[6] = CALL_static_type___MMType___adapt_to(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
5289 /* ./syntax//typing.nit:1004 */
5290 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[6]);
5291 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5292 /* ./syntax//typing.nit:1005 */
5293 if (UNTAG_Bool(REGB0
)) {
5295 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5296 if (UNTAG_Bool(REGB1
)) {
5297 REGB1
= TAG_Bool(false);
5300 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5304 if (UNTAG_Bool(REGB0
)) {
5305 REGB0
= TAG_Bool(true);
5307 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5308 if (UNTAG_Bool(REGB1
)) {
5309 fprintf(stderr
, "Reciever is null");
5310 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1005);
5313 REGB1
= CALL_static_type___MMType_____l(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5316 if (UNTAG_Bool(REGB0
)) {
5317 fra
.me
.REG
[5] = fra
.me
.REG
[6];
5318 /* ./syntax//typing.nit:1006 */
5321 /* ./syntax//typing.nit:1001 */
5324 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5327 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5328 /* ./syntax//typing.nit:1009 */
5330 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5331 if (UNTAG_Bool(REGB0
)) {
5332 fra
.me
.REG
[2] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5333 REGB0
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
5334 /* ./syntax//typing.nit:1010 */
5335 if (UNTAG_Bool(REGB0
)) {
5337 fprintf(stderr
, "Cast failed");
5338 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1010);
5341 CALL_syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[5]);
5343 /* ./syntax//typing.nit:1009 */
5346 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5349 /* ./syntax//typing.nit:1012 */
5350 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
5352 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5353 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
5354 /* ./syntax//typing.nit:1015 */
5355 if (UNTAG_Bool(REGB0
)) {
5357 fprintf(stderr
, "Assert failed");
5358 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1015);
5361 /* ./syntax//typing.nit:1016 */
5362 ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5363 REGB0
= TAG_Bool(true);
5364 /* ./syntax//typing.nit:1017 */
5365 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5367 stack_frame_head
= fra
.me
.prev
;
5370 val_t
typing___ASuperExpr___compute_raw_arguments(val_t p0
){
5371 struct {struct stack_frame_t me
;} fra
;
5373 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5374 fra
.me
.file
= LOCATE_typing
;
5376 fra
.me
.meth
= LOCATE_typing___ASuperExpr___compute_raw_arguments
;
5377 fra
.me
.has_broke
= 0;
5378 fra
.me
.REG_size
= 1;
5379 fra
.me
.REG
[0] = NIT_NULL
;
5381 fra
.me
.REG
[0] = CALL_parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5382 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5383 /* ./syntax//typing.nit:963 */
5386 stack_frame_head
= fra
.me
.prev
;
5387 return fra
.me
.REG
[0];
5389 val_t
typing___AAttrFormExpr___prop(val_t p0
){
5390 struct {struct stack_frame_t me
;} fra
;
5393 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5394 fra
.me
.file
= LOCATE_typing
;
5396 fra
.me
.meth
= LOCATE_typing___AAttrFormExpr___prop
;
5397 fra
.me
.has_broke
= 0;
5398 fra
.me
.REG_size
= 1;
5399 fra
.me
.REG
[0] = NIT_NULL
;
5401 fra
.me
.REG
[0] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
5402 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
5403 /* ./syntax//typing.nit:1022 */
5404 if (UNTAG_Bool(REGB0
)) {
5406 fprintf(stderr
, "Cast failed");
5407 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1022);
5412 stack_frame_head
= fra
.me
.prev
;
5413 return fra
.me
.REG
[0];
5415 val_t
typing___AAttrFormExpr___attr_type(val_t p0
){
5416 struct {struct stack_frame_t me
;} fra
;
5419 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5420 fra
.me
.file
= LOCATE_typing
;
5422 fra
.me
.meth
= LOCATE_typing___AAttrFormExpr___attr_type
;
5423 fra
.me
.has_broke
= 0;
5424 fra
.me
.REG_size
= 1;
5425 fra
.me
.REG
[0] = NIT_NULL
;
5427 fra
.me
.REG
[0] = ATTR_typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]);
5428 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
5429 /* ./syntax//typing.nit:1025 */
5430 if (UNTAG_Bool(REGB0
)) {
5432 fprintf(stderr
, "Cast failed");
5433 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1025);
5438 stack_frame_head
= fra
.me
.prev
;
5439 return fra
.me
.REG
[0];
5441 void typing___AAttrFormExpr___do_typing(val_t p0
, val_t p1
){
5442 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5446 static val_t once_value_2
; /* Once value */
5447 static val_t once_value_3
; /* Once value */
5448 static val_t once_value_4
; /* Once value */
5449 static val_t once_value_5
; /* Once value */
5450 static val_t once_value_6
; /* Once value */
5451 static val_t once_value_7
; /* Once value */
5452 static val_t once_value_8
; /* Once value */
5453 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5454 fra
.me
.file
= LOCATE_typing
;
5456 fra
.me
.meth
= LOCATE_typing___AAttrFormExpr___do_typing
;
5457 fra
.me
.has_broke
= 0;
5458 fra
.me
.REG_size
= 7;
5459 fra
.me
.REG
[0] = NIT_NULL
;
5460 fra
.me
.REG
[1] = NIT_NULL
;
5461 fra
.me
.REG
[2] = NIT_NULL
;
5462 fra
.me
.REG
[3] = NIT_NULL
;
5463 fra
.me
.REG
[4] = NIT_NULL
;
5464 fra
.me
.REG
[5] = NIT_NULL
;
5465 fra
.me
.REG
[6] = NIT_NULL
;
5468 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5469 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5470 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5471 /* ./syntax//typing.nit:1031 */
5472 if (UNTAG_Bool(REGB0
)) {
5475 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5476 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5477 fra
.me
.REG
[3] = CALL_parser_nodes___AAttrFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5478 fra
.me
.REG
[3] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5479 fra
.me
.REG
[4] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5480 REGB0
= CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5481 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5482 /* ./syntax//typing.nit:1035 */
5483 if (UNTAG_Bool(REGB0
)) {
5485 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
5486 /* ./syntax//typing.nit:1036 */
5487 if (!once_value_2
) {
5488 fra
.me
.REG
[6] = BOX_NativeString("Error: Attribute ");
5489 REGB0
= TAG_Int(17);
5490 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
5491 once_value_2
= fra
.me
.REG
[6];
5492 register_static_object(&once_value_2
);
5493 } else fra
.me
.REG
[6] = once_value_2
;
5494 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5495 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5496 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5497 if (!once_value_3
) {
5498 fra
.me
.REG
[6] = BOX_NativeString(" doesn't exists in ");
5499 REGB0
= TAG_Int(19);
5500 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
5501 once_value_3
= fra
.me
.REG
[6];
5502 register_static_object(&once_value_3
);
5503 } else fra
.me
.REG
[6] = once_value_3
;
5504 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5505 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5506 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5507 if (!once_value_4
) {
5508 fra
.me
.REG
[6] = BOX_NativeString(".");
5510 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
5511 once_value_4
= fra
.me
.REG
[6];
5512 register_static_object(&once_value_4
);
5513 } else fra
.me
.REG
[6] = once_value_4
;
5514 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5515 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5516 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
5517 /* ./syntax//typing.nit:1037 */
5520 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___select_attribute(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5521 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___module(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5522 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5523 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5524 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass___module(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5525 REGB0
= CALL_abstractmetamodel___MMModule___visibility_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5527 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5528 /* ./syntax//typing.nit:1040 */
5529 if (UNTAG_Bool(REGB1
)) {
5531 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB1
);
5532 /* ./syntax//typing.nit:1041 */
5533 if (!once_value_5
) {
5534 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute ");
5535 REGB1
= TAG_Int(17);
5536 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
5537 once_value_5
= fra
.me
.REG
[5];
5538 register_static_object(&once_value_5
);
5539 } else fra
.me
.REG
[5] = once_value_5
;
5540 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[5]);
5541 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5542 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5543 if (!once_value_6
) {
5544 fra
.me
.REG
[3] = BOX_NativeString(" from ");
5546 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5547 once_value_6
= fra
.me
.REG
[3];
5548 register_static_object(&once_value_6
);
5549 } else fra
.me
.REG
[3] = once_value_6
;
5550 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5551 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5552 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5553 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___module(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5554 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5555 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5556 if (!once_value_7
) {
5557 fra
.me
.REG
[3] = BOX_NativeString(" is invisible in ");
5558 REGB1
= TAG_Int(17);
5559 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5560 once_value_7
= fra
.me
.REG
[3];
5561 register_static_object(&once_value_7
);
5562 } else fra
.me
.REG
[3] = once_value_7
;
5563 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5564 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___module(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5565 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5566 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5567 if (!once_value_8
) {
5568 fra
.me
.REG
[3] = BOX_NativeString("");
5570 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5571 once_value_8
= fra
.me
.REG
[3];
5572 register_static_object(&once_value_8
);
5573 } else fra
.me
.REG
[3] = once_value_8
;
5574 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5575 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5576 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
5578 /* ./syntax//typing.nit:1043 */
5579 ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5580 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5581 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5582 fra
.me
.REG
[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5583 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5584 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5585 /* ./syntax//typing.nit:1045 */
5586 if (UNTAG_Bool(REGB1
)) {
5587 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5588 if (UNTAG_Bool(REGB1
)) {
5589 fprintf(stderr
, "Reciever is null");
5590 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1045);
5593 fra
.me
.REG
[4] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5594 fra
.me
.REG
[2] = fra
.me
.REG
[4];
5596 /* ./syntax//typing.nit:1046 */
5597 ATTR_typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5599 stack_frame_head
= fra
.me
.prev
;
5602 void typing___AAttrExpr___after_typing(val_t p0
, val_t p1
){
5603 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5607 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5608 fra
.me
.file
= LOCATE_typing
;
5610 fra
.me
.meth
= LOCATE_typing___AAttrExpr___after_typing
;
5611 fra
.me
.has_broke
= 0;
5612 fra
.me
.REG_size
= 2;
5613 fra
.me
.REG
[0] = NIT_NULL
;
5614 fra
.me
.REG
[1] = NIT_NULL
;
5617 /* ./syntax//typing.nit:1053 */
5618 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5619 fra
.me
.REG
[1] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
5620 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
5621 /* ./syntax//typing.nit:1054 */
5622 if (UNTAG_Bool(REGB0
)) {
5624 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
5625 if (UNTAG_Bool(REGB1
)) {
5626 REGB1
= TAG_Bool(false);
5629 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
5633 if (UNTAG_Bool(REGB0
)) {
5636 fra
.me
.REG
[1] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5637 /* ./syntax//typing.nit:1055 */
5638 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5639 REGB0
= TAG_Bool(true);
5640 /* ./syntax//typing.nit:1056 */
5641 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5643 stack_frame_head
= fra
.me
.prev
;
5646 void typing___AAttrAssignExpr___after_typing(val_t p0
, val_t p1
){
5647 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5651 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5652 fra
.me
.file
= LOCATE_typing
;
5654 fra
.me
.meth
= LOCATE_typing___AAttrAssignExpr___after_typing
;
5655 fra
.me
.has_broke
= 0;
5656 fra
.me
.REG_size
= 4;
5657 fra
.me
.REG
[0] = NIT_NULL
;
5658 fra
.me
.REG
[1] = NIT_NULL
;
5659 fra
.me
.REG
[2] = NIT_NULL
;
5660 fra
.me
.REG
[3] = NIT_NULL
;
5663 /* ./syntax//typing.nit:1063 */
5664 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5665 fra
.me
.REG
[2] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
5666 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5667 /* ./syntax//typing.nit:1064 */
5668 if (UNTAG_Bool(REGB0
)) {
5670 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5671 if (UNTAG_Bool(REGB1
)) {
5672 REGB1
= TAG_Bool(false);
5675 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5679 if (UNTAG_Bool(REGB0
)) {
5682 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5683 fra
.me
.REG
[3] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5684 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5685 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5686 /* ./syntax//typing.nit:1065 */
5687 if (UNTAG_Bool(REGB0
)) {
5690 REGB0
= TAG_Bool(true);
5691 /* ./syntax//typing.nit:1066 */
5692 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5694 stack_frame_head
= fra
.me
.prev
;
5697 void typing___AAttrReassignExpr___after_typing(val_t p0
, val_t p1
){
5698 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5702 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5703 fra
.me
.file
= LOCATE_typing
;
5705 fra
.me
.meth
= LOCATE_typing___AAttrReassignExpr___after_typing
;
5706 fra
.me
.has_broke
= 0;
5707 fra
.me
.REG_size
= 4;
5708 fra
.me
.REG
[0] = NIT_NULL
;
5709 fra
.me
.REG
[1] = NIT_NULL
;
5710 fra
.me
.REG
[2] = NIT_NULL
;
5711 fra
.me
.REG
[3] = NIT_NULL
;
5714 /* ./syntax//typing.nit:1073 */
5715 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5716 fra
.me
.REG
[2] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
5717 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5718 /* ./syntax//typing.nit:1074 */
5719 if (UNTAG_Bool(REGB0
)) {
5721 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5722 if (UNTAG_Bool(REGB1
)) {
5723 REGB1
= TAG_Bool(false);
5726 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5730 if (UNTAG_Bool(REGB0
)) {
5733 fra
.me
.REG
[2] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5734 fra
.me
.REG
[2] = CALL_typing___AReassignFormExpr___do_rvalue_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
5735 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5736 /* ./syntax//typing.nit:1076 */
5737 if (UNTAG_Bool(REGB0
)) {
5739 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5740 if (UNTAG_Bool(REGB1
)) {
5741 REGB1
= TAG_Bool(false);
5744 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5748 if (UNTAG_Bool(REGB0
)) {
5751 fra
.me
.REG
[3] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5752 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5753 /* ./syntax//typing.nit:1077 */
5754 CALL_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]);
5755 REGB0
= TAG_Bool(true);
5756 /* ./syntax//typing.nit:1078 */
5757 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5759 stack_frame_head
= fra
.me
.prev
;
5762 void typing___AIssetAttrExpr___after_typing(val_t p0
, val_t p1
){
5763 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5767 static val_t once_value_2
; /* Once value */
5768 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5769 fra
.me
.file
= LOCATE_typing
;
5771 fra
.me
.meth
= LOCATE_typing___AIssetAttrExpr___after_typing
;
5772 fra
.me
.has_broke
= 0;
5773 fra
.me
.REG_size
= 3;
5774 fra
.me
.REG
[0] = NIT_NULL
;
5775 fra
.me
.REG
[1] = NIT_NULL
;
5776 fra
.me
.REG
[2] = NIT_NULL
;
5779 /* ./syntax//typing.nit:1085 */
5780 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5781 fra
.me
.REG
[2] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
5782 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5783 /* ./syntax//typing.nit:1086 */
5784 if (UNTAG_Bool(REGB0
)) {
5786 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5787 if (UNTAG_Bool(REGB1
)) {
5788 REGB1
= TAG_Bool(false);
5791 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5795 if (UNTAG_Bool(REGB0
)) {
5798 fra
.me
.REG
[2] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5799 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5800 /* ./syntax//typing.nit:1087 */
5801 if (UNTAG_Bool(REGB0
)) {
5802 /* ./syntax//typing.nit:1088 */
5803 if (!once_value_2
) {
5804 fra
.me
.REG
[2] = BOX_NativeString("Error: isset on a nullable attribute.");
5805 REGB0
= TAG_Int(37);
5806 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5807 once_value_2
= fra
.me
.REG
[2];
5808 register_static_object(&once_value_2
);
5809 } else fra
.me
.REG
[2] = once_value_2
;
5810 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
5812 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5813 /* ./syntax//typing.nit:1090 */
5814 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5815 REGB0
= TAG_Bool(true);
5816 /* ./syntax//typing.nit:1091 */
5817 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5819 stack_frame_head
= fra
.me
.prev
;
5822 val_t
typing___AAbsAbsSendExpr___prop_signature(val_t p0
){
5823 struct {struct stack_frame_t me
;} fra
;
5826 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5827 fra
.me
.file
= LOCATE_typing
;
5829 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___prop_signature
;
5830 fra
.me
.has_broke
= 0;
5831 fra
.me
.REG_size
= 1;
5832 fra
.me
.REG
[0] = NIT_NULL
;
5834 fra
.me
.REG
[0] = ATTR_typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]);
5835 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
5836 /* ./syntax//typing.nit:1097 */
5837 if (UNTAG_Bool(REGB0
)) {
5839 fprintf(stderr
, "Cast failed");
5840 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1097);
5845 stack_frame_head
= fra
.me
.prev
;
5846 return fra
.me
.REG
[0];
5848 val_t
typing___AAbsAbsSendExpr___raw_arguments(val_t p0
){
5849 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5853 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5854 fra
.me
.file
= LOCATE_typing
;
5856 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___raw_arguments
;
5857 fra
.me
.has_broke
= 0;
5858 fra
.me
.REG_size
= 4;
5859 fra
.me
.REG
[0] = NIT_NULL
;
5860 fra
.me
.REG
[1] = NIT_NULL
;
5861 fra
.me
.REG
[2] = NIT_NULL
;
5862 fra
.me
.REG
[3] = NIT_NULL
;
5864 fra
.me
.REG
[1] = ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]);
5865 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
5866 /* ./syntax//typing.nit:1104 */
5867 if (UNTAG_Bool(REGB0
)) {
5869 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
5870 if (UNTAG_Bool(REGB1
)) {
5871 REGB1
= TAG_Bool(false);
5874 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
5878 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5879 if (UNTAG_Bool(REGB0
)) {
5880 fra
.me
.REG
[2] = fra
.me
.REG
[1];
5881 /* ./syntax//typing.nit:1105 */
5884 fra
.me
.REG
[3] = CALL_typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5885 fra
.me
.REG
[1] = fra
.me
.REG
[3];
5886 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
5887 /* ./syntax//typing.nit:1108 */
5888 if (UNTAG_Bool(REGB0
)) {
5890 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
5891 if (UNTAG_Bool(REGB1
)) {
5892 REGB1
= TAG_Bool(false);
5895 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
5899 if (UNTAG_Bool(REGB0
)) {
5900 fra
.me
.REG
[3] = NEW_Array_array___Array___init();
5901 fra
.me
.REG
[1] = fra
.me
.REG
[3];
5903 /* ./syntax//typing.nit:1109 */
5904 ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5905 fra
.me
.REG
[2] = fra
.me
.REG
[1];
5906 /* ./syntax//typing.nit:1110 */
5910 stack_frame_head
= fra
.me
.prev
;
5911 return fra
.me
.REG
[2];
5913 val_t
typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0
){
5914 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5917 static val_t once_value_1
; /* Once value */
5918 static val_t once_value_2
; /* Once value */
5919 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5920 fra
.me
.file
= LOCATE_typing
;
5922 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___compute_raw_arguments
;
5923 fra
.me
.has_broke
= 0;
5924 fra
.me
.REG_size
= 3;
5925 fra
.me
.REG
[0] = NIT_NULL
;
5926 fra
.me
.REG
[1] = NIT_NULL
;
5927 fra
.me
.REG
[2] = NIT_NULL
;
5930 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
5931 /* ./syntax//typing.nit:1118 */
5932 if (!once_value_1
) {
5933 fra
.me
.REG
[2] = BOX_NativeString("");
5935 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5936 once_value_1
= fra
.me
.REG
[2];
5937 register_static_object(&once_value_1
);
5938 } else fra
.me
.REG
[2] = once_value_1
;
5939 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5940 fra
.me
.REG
[2] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5941 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5942 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5943 if (!once_value_2
) {
5944 fra
.me
.REG
[2] = BOX_NativeString(" no compute_raw_arguments");
5945 REGB0
= TAG_Int(25);
5946 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
5947 once_value_2
= fra
.me
.REG
[2];
5948 register_static_object(&once_value_2
);
5949 } else fra
.me
.REG
[2] = once_value_2
;
5950 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5951 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5952 CALL_file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
5953 fra
.me
.REG
[1] = NIT_NULL
;
5954 /* ./syntax//typing.nit:1119 */
5957 stack_frame_head
= fra
.me
.prev
;
5958 return fra
.me
.REG
[1];
5960 val_t
typing___AAbsAbsSendExpr___process_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
5961 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5971 static val_t once_value_1
; /* Once value */
5972 static val_t once_value_2
; /* Once value */
5973 static val_t once_value_3
; /* Once value */
5974 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5975 fra
.me
.file
= LOCATE_typing
;
5977 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___process_signature
;
5978 fra
.me
.has_broke
= 0;
5979 fra
.me
.REG_size
= 7;
5980 fra
.me
.REG
[0] = NIT_NULL
;
5981 fra
.me
.REG
[1] = NIT_NULL
;
5982 fra
.me
.REG
[2] = NIT_NULL
;
5983 fra
.me
.REG
[3] = NIT_NULL
;
5984 fra
.me
.REG
[4] = NIT_NULL
;
5985 fra
.me
.REG
[5] = NIT_NULL
;
5986 fra
.me
.REG
[6] = NIT_NULL
;
5992 REGB0
= CALL_vararg___MMSignature___vararg_rank(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5993 REGB1
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5994 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5995 /* ./syntax//typing.nit:1128 */
5996 if (UNTAG_Bool(REGB2
)) {
5998 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5999 if (UNTAG_Bool(REGB3
)) {
6000 REGB3
= TAG_Bool(false);
6003 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6007 if (UNTAG_Bool(REGB2
)) {
6010 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6011 if (UNTAG_Bool(REGB3
)) {
6012 fprintf(stderr
, "Reciever is null");
6013 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1128);
6016 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6017 /* ./../lib/standard//collection//array.nit:23 */
6018 if (UNTAG_Bool(REGB3
)) {
6020 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6021 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
6024 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6026 /* ./syntax//typing.nit:1128 */
6028 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
6029 /* ./syntax//typing.nit:1129 */
6030 if (UNTAG_Bool(REGB3
)) {
6031 REGB3
= TAG_Bool(true);
6033 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
6034 if (UNTAG_Bool(REGB4
)) {
6036 REGB5
= TAG_Bool((REGB1
)==(REGB2
));
6038 /* ./syntax//typing.nit:1129 */
6040 REGB4
= TAG_Bool(!UNTAG_Bool(REGB4
));
6041 if (UNTAG_Bool(REGB4
)) {
6043 REGB4
= TAG_Int(-UNTAG_Int(REGB4
));
6044 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB4
));
6045 /* ./syntax//typing.nit:1129 */
6046 if (UNTAG_Bool(REGB5
)) {
6048 REGB4
= TAG_Bool((REGB0
)==(REGB4
));
6050 /* ./syntax//typing.nit:1129 */
6053 REGB4
= TAG_Bool(false);
6058 if (UNTAG_Bool(REGB3
)) {
6060 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB3
);
6061 /* ./syntax//typing.nit:1130 */
6062 if (!once_value_1
) {
6063 fra
.me
.REG
[6] = BOX_NativeString("Error: arity missmatch; prototype is '");
6064 REGB3
= TAG_Int(38);
6065 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB3
);
6066 once_value_1
= fra
.me
.REG
[6];
6067 register_static_object(&once_value_1
);
6068 } else fra
.me
.REG
[6] = once_value_1
;
6069 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6070 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6071 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6072 if (!once_value_2
) {
6073 fra
.me
.REG
[3] = BOX_NativeString("");
6075 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB3
);
6076 once_value_2
= fra
.me
.REG
[3];
6077 register_static_object(&once_value_2
);
6078 } else fra
.me
.REG
[3] = once_value_2
;
6079 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6080 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6081 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6082 if (!once_value_3
) {
6083 fra
.me
.REG
[3] = BOX_NativeString("'.");
6085 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB3
);
6086 once_value_3
= fra
.me
.REG
[3];
6087 register_static_object(&once_value_3
);
6088 } else fra
.me
.REG
[3] = once_value_3
;
6089 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6090 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6091 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
6092 REGB3
= TAG_Bool(false);
6093 /* ./syntax//typing.nit:1131 */
6098 fra
.me
.REG
[5] = NEW_Range_range___Range___without_last(REGB4
, REGB1
);
6099 fra
.me
.REG
[5] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6100 /* ./syntax//typing.nit:1134 */
6102 REGB4
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6103 if (UNTAG_Bool(REGB4
)) {
6104 REGB4
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6105 fra
.me
.REG
[0] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
6106 REGB6
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB0
));
6107 /* ./syntax//typing.nit:1137 */
6108 if (UNTAG_Bool(REGB6
)) {
6110 REGB4
= TAG_Bool((REGB4
)==(REGB0
));
6112 /* ./syntax//typing.nit:1137 */
6114 if (UNTAG_Bool(REGB6
)) {
6116 REGB4
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
6117 fra
.me
.REG
[3] = NEW_Range_range___Range___init(REGB6
, REGB4
);
6118 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6119 /* ./syntax//typing.nit:1138 */
6121 REGB4
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6122 if (UNTAG_Bool(REGB4
)) {
6123 REGB4
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6124 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6125 /* ./syntax//typing.nit:1139 */
6126 if (UNTAG_Bool(REGB4
)) {
6127 fprintf(stderr
, "Reciever is null");
6128 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1139);
6131 fra
.me
.REG
[6] = fra
.me
.REG
[4];
6134 REGB6
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB6
));
6135 /* ./../lib/standard//collection//array.nit:233 */
6136 if (UNTAG_Bool(REGB6
)) {
6137 REGB6
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
6138 if (UNTAG_Bool(REGB6
)) {
6140 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6141 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
6144 REGB6
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
6145 REGB6
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
6146 /* ./../lib/standard//collection//array.nit:233 */
6148 REGB7
= TAG_Bool(false);
6151 if (UNTAG_Bool(REGB6
)) {
6153 fprintf(stderr
, "Assert %s failed", "'index'");
6154 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
6157 fra
.me
.REG
[6] = ATTR_array___Array____items(fra
.me
.REG
[6]);
6158 REGB6
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6159 /* ./../lib/standard//collection//array.nit:234 */
6160 if (UNTAG_Bool(REGB6
)) {
6161 fprintf(stderr
, "Reciever is null");
6162 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
6165 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB4
)];
6166 /* ./../lib/standard//collection//array.nit:234 */
6169 /* ./syntax//typing.nit:1140 */
6170 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[0]);
6172 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
6174 /* ./syntax//typing.nit:1141 */
6176 /* ./syntax//typing.nit:1138 */
6179 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6183 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6184 /* ./syntax//typing.nit:1144 */
6185 if (UNTAG_Bool(REGB4
)) {
6186 fprintf(stderr
, "Reciever is null");
6187 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1144);
6190 fra
.me
.REG
[3] = fra
.me
.REG
[4];
6193 REGB6
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB6
));
6194 /* ./../lib/standard//collection//array.nit:233 */
6195 if (UNTAG_Bool(REGB6
)) {
6196 REGB6
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6197 if (UNTAG_Bool(REGB6
)) {
6199 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6200 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
6203 REGB6
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6204 REGB6
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
6205 /* ./../lib/standard//collection//array.nit:233 */
6207 REGB7
= TAG_Bool(false);
6210 if (UNTAG_Bool(REGB6
)) {
6212 fprintf(stderr
, "Assert %s failed", "'index'");
6213 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
6216 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
6217 REGB6
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6218 /* ./../lib/standard//collection//array.nit:234 */
6219 if (UNTAG_Bool(REGB6
)) {
6220 fprintf(stderr
, "Reciever is null");
6221 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
6224 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB4
)];
6225 /* ./../lib/standard//collection//array.nit:234 */
6228 fra
.me
.REG
[6] = fra
.me
.REG
[3];
6229 /* ./syntax//typing.nit:1145 */
6230 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[0]);
6232 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
6234 /* ./syntax//typing.nit:1146 */
6237 /* ./syntax//typing.nit:1134 */
6240 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6243 REGB5
= TAG_Bool(true);
6245 /* ./syntax//typing.nit:1149 */
6248 stack_frame_head
= fra
.me
.prev
;
6251 val_t
typing___AAbsAbsSendExpr___process_closures(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
6252 struct {struct stack_frame_t me
; val_t MORE_REG
[16];} fra
;
6258 static val_t once_value_2
; /* Once value */
6259 static val_t once_value_3
; /* Once value */
6260 static val_t once_value_4
; /* Once value */
6261 static val_t once_value_5
; /* Once value */
6262 static val_t once_value_6
; /* Once value */
6263 static val_t once_value_7
; /* Once value */
6264 static val_t once_value_8
; /* Once value */
6265 static val_t once_value_11
; /* Once value */
6266 static val_t once_value_12
; /* Once value */
6267 static val_t once_value_13
; /* Once value */
6268 static val_t once_value_14
; /* Once value */
6269 static val_t once_value_15
; /* Once value */
6270 static val_t once_value_16
; /* Once value */
6271 static val_t once_value_18
; /* Once value */
6272 static val_t once_value_19
; /* Once value */
6273 static val_t once_value_20
; /* Once value */
6274 static val_t once_value_21
; /* Once value */
6275 static val_t once_value_22
; /* Once value */
6276 static val_t once_value_24
; /* Once value */
6277 static val_t once_value_25
; /* Once value */
6278 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6279 fra
.me
.file
= LOCATE_typing
;
6281 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___process_closures
;
6282 fra
.me
.has_broke
= 0;
6283 fra
.me
.REG_size
= 17;
6284 fra
.me
.REG
[0] = NIT_NULL
;
6285 fra
.me
.REG
[1] = NIT_NULL
;
6286 fra
.me
.REG
[2] = NIT_NULL
;
6287 fra
.me
.REG
[3] = NIT_NULL
;
6288 fra
.me
.REG
[4] = NIT_NULL
;
6289 fra
.me
.REG
[5] = NIT_NULL
;
6290 fra
.me
.REG
[6] = NIT_NULL
;
6291 fra
.me
.REG
[7] = NIT_NULL
;
6292 fra
.me
.REG
[8] = NIT_NULL
;
6293 fra
.me
.REG
[9] = NIT_NULL
;
6294 fra
.me
.REG
[10] = NIT_NULL
;
6295 fra
.me
.REG
[11] = NIT_NULL
;
6296 fra
.me
.REG
[12] = NIT_NULL
;
6297 fra
.me
.REG
[13] = NIT_NULL
;
6298 fra
.me
.REG
[14] = NIT_NULL
;
6299 fra
.me
.REG
[15] = NIT_NULL
;
6300 fra
.me
.REG
[16] = NIT_NULL
;
6306 fra
.me
.REG
[5] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6307 fra
.me
.REG
[6] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6309 fra
.me
.REG
[7] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6310 /* ./syntax//typing.nit:1158 */
6312 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6313 if (UNTAG_Bool(REGB1
)) {
6314 fra
.me
.REG
[8] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6315 REGB1
= CALL_static_type___MMClosure___is_optional(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6316 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6317 /* ./syntax//typing.nit:1159 */
6318 if (UNTAG_Bool(REGB1
)) {
6320 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6322 /* ./syntax//typing.nit:1159 */
6325 /* ./syntax//typing.nit:1158 */
6328 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6332 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6333 /* ./syntax//typing.nit:1162 */
6334 if (UNTAG_Bool(REGB2
)) {
6336 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6337 if (UNTAG_Bool(REGB3
)) {
6338 REGB3
= TAG_Bool(false);
6341 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6345 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6346 if (UNTAG_Bool(REGB2
)) {
6347 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6348 if (UNTAG_Bool(REGB2
)) {
6349 fprintf(stderr
, "Reciever is null");
6350 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1162);
6353 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6354 /* ./../lib/standard//collection//array.nit:23 */
6355 if (UNTAG_Bool(REGB2
)) {
6357 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6358 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
6361 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6363 /* ./syntax//typing.nit:1162 */
6365 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
6366 /* ./../lib/standard//collection//array.nit:23 */
6367 if (UNTAG_Bool(REGB2
)) {
6369 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6370 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
6373 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
6375 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
6376 /* ./syntax//typing.nit:1163 */
6377 if (UNTAG_Bool(REGB3
)) {
6379 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
6380 /* ./syntax//typing.nit:1164 */
6381 if (UNTAG_Bool(REGB2
)) {
6383 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
6385 /* ./syntax//typing.nit:1164 */
6387 if (UNTAG_Bool(REGB2
)) {
6389 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB2
));
6390 /* ./syntax//typing.nit:1164 */
6392 REGB3
= TAG_Bool(false);
6395 if (UNTAG_Bool(REGB2
)) {
6397 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB2
);
6398 /* ./syntax//typing.nit:1165 */
6399 if (!once_value_2
) {
6400 fra
.me
.REG
[8] = BOX_NativeString("Error: ");
6402 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
6403 once_value_2
= fra
.me
.REG
[8];
6404 register_static_object(&once_value_2
);
6405 } else fra
.me
.REG
[8] = once_value_2
;
6406 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6407 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6408 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6409 if (!once_value_3
) {
6410 fra
.me
.REG
[8] = BOX_NativeString(" requires ");
6411 REGB2
= TAG_Int(10);
6412 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
6413 once_value_3
= fra
.me
.REG
[8];
6414 register_static_object(&once_value_3
);
6415 } else fra
.me
.REG
[8] = once_value_3
;
6416 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6417 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
6418 /* ./../lib/standard//collection//array.nit:23 */
6419 if (UNTAG_Bool(REGB2
)) {
6421 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6422 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
6425 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
6426 fra
.me
.REG
[8] = CALL_string___Object___to_s(REGB2
)(REGB2
);
6427 /* ./syntax//typing.nit:1165 */
6428 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6429 if (!once_value_4
) {
6430 fra
.me
.REG
[8] = BOX_NativeString(" blocks.");
6432 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
6433 once_value_4
= fra
.me
.REG
[8];
6434 register_static_object(&once_value_4
);
6435 } else fra
.me
.REG
[8] = once_value_4
;
6436 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6437 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6438 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
6440 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
6441 /* ./../lib/standard//collection//array.nit:23 */
6442 if (UNTAG_Bool(REGB2
)) {
6444 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6445 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
6448 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
6449 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
6450 /* ./syntax//typing.nit:1166 */
6451 if (UNTAG_Bool(REGB2
)) {
6452 REGB2
= TAG_Bool(true);
6454 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
6456 /* ./syntax//typing.nit:1166 */
6458 if (UNTAG_Bool(REGB2
)) {
6460 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB2
);
6461 /* ./syntax//typing.nit:1167 */
6462 if (!once_value_5
) {
6463 fra
.me
.REG
[8] = BOX_NativeString("Error: ");
6465 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
6466 once_value_5
= fra
.me
.REG
[8];
6467 register_static_object(&once_value_5
);
6468 } else fra
.me
.REG
[8] = once_value_5
;
6469 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6470 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6471 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6472 if (!once_value_6
) {
6473 fra
.me
.REG
[8] = BOX_NativeString(" requires ");
6474 REGB2
= TAG_Int(10);
6475 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
6476 once_value_6
= fra
.me
.REG
[8];
6477 register_static_object(&once_value_6
);
6478 } else fra
.me
.REG
[8] = once_value_6
;
6479 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6480 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
6481 /* ./../lib/standard//collection//array.nit:23 */
6482 if (UNTAG_Bool(REGB2
)) {
6484 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6485 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
6488 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
6489 fra
.me
.REG
[8] = CALL_string___Object___to_s(REGB2
)(REGB2
);
6490 /* ./syntax//typing.nit:1167 */
6491 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6492 if (!once_value_7
) {
6493 fra
.me
.REG
[8] = BOX_NativeString(" blocks, ");
6495 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
6496 once_value_7
= fra
.me
.REG
[8];
6497 register_static_object(&once_value_7
);
6498 } else fra
.me
.REG
[8] = once_value_7
;
6499 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6500 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6501 if (UNTAG_Bool(REGB2
)) {
6502 fprintf(stderr
, "Reciever is null");
6503 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1167);
6506 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6507 /* ./../lib/standard//collection//array.nit:23 */
6508 if (UNTAG_Bool(REGB2
)) {
6510 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6511 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
6514 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6515 fra
.me
.REG
[8] = CALL_string___Object___to_s(REGB2
)(REGB2
);
6516 /* ./syntax//typing.nit:1167 */
6517 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6518 if (!once_value_8
) {
6519 fra
.me
.REG
[8] = BOX_NativeString(" found.");
6521 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
6522 once_value_8
= fra
.me
.REG
[8];
6523 register_static_object(&once_value_8
);
6524 } else fra
.me
.REG
[8] = once_value_8
;
6525 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6526 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6527 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
6529 fra
.me
.REG
[7] = NIT_NULL
;
6530 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6531 /* ./syntax//typing.nit:1171 */
6532 if (UNTAG_Bool(REGB2
)) {
6534 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6535 if (UNTAG_Bool(REGB0
)) {
6536 REGB0
= TAG_Bool(false);
6539 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6543 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6544 if (UNTAG_Bool(REGB2
)) {
6545 fra
.me
.REG
[8] = NEW_Array_array___Array___init();
6546 fra
.me
.REG
[7] = fra
.me
.REG
[8];
6549 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
6550 /* ./syntax//typing.nit:1174 */
6551 if (UNTAG_Bool(REGB2
)) {
6553 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
6554 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6555 /* ./syntax//typing.nit:1174 */
6556 if (UNTAG_Bool(REGB0
)) {
6557 fprintf(stderr
, "Reciever is null");
6558 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1174);
6561 fra
.me
.REG
[8] = fra
.me
.REG
[4];
6563 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
6564 /* ./../lib/standard//collection//array.nit:233 */
6565 if (UNTAG_Bool(REGB0
)) {
6566 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
6567 if (UNTAG_Bool(REGB0
)) {
6569 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6570 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
6573 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[8]);
6574 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
6575 /* ./../lib/standard//collection//array.nit:233 */
6577 REGB3
= TAG_Bool(false);
6580 if (UNTAG_Bool(REGB0
)) {
6582 fprintf(stderr
, "Assert %s failed", "'index'");
6583 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
6586 fra
.me
.REG
[8] = ATTR_array___Array____items(fra
.me
.REG
[8]);
6587 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6588 /* ./../lib/standard//collection//array.nit:234 */
6589 if (UNTAG_Bool(REGB0
)) {
6590 fprintf(stderr
, "Reciever is null");
6591 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
6594 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB2
)];
6595 /* ./../lib/standard//collection//array.nit:234 */
6598 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6599 /* ./syntax//typing.nit:1174 */
6600 if (UNTAG_Bool(REGB2
)) {
6601 fprintf(stderr
, "Reciever is null");
6602 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1174);
6605 fra
.me
.REG
[8] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6607 fra
.me
.REG
[8] = NIT_NULL
;
6610 fra
.me
.REG
[9] = NEW_Range_range___Range___without_last(REGB2
, REGB1
);
6611 fra
.me
.REG
[9] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6612 /* ./syntax//typing.nit:1177 */
6614 REGB2
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6615 if (UNTAG_Bool(REGB2
)) {
6616 REGB2
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6617 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6618 /* ./syntax//typing.nit:1178 */
6619 if (UNTAG_Bool(REGB0
)) {
6620 fprintf(stderr
, "Reciever is null");
6621 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1178);
6624 fra
.me
.REG
[10] = fra
.me
.REG
[4];
6626 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
6627 /* ./../lib/standard//collection//array.nit:233 */
6628 if (UNTAG_Bool(REGB0
)) {
6629 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[10])!=NIT_NULL
);
6630 if (UNTAG_Bool(REGB0
)) {
6632 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6633 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
6636 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[10]);
6637 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
6638 /* ./../lib/standard//collection//array.nit:233 */
6640 REGB3
= TAG_Bool(false);
6643 if (UNTAG_Bool(REGB0
)) {
6645 fprintf(stderr
, "Assert %s failed", "'index'");
6646 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
6649 fra
.me
.REG
[10] = ATTR_array___Array____items(fra
.me
.REG
[10]);
6650 REGB0
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
6651 /* ./../lib/standard//collection//array.nit:234 */
6652 if (UNTAG_Bool(REGB0
)) {
6653 fprintf(stderr
, "Reciever is null");
6654 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
6657 fra
.me
.REG
[10] = ((Nit_NativeArray
)fra
.me
.REG
[10])->val
[UNTAG_Int(REGB2
)];
6658 /* ./../lib/standard//collection//array.nit:234 */
6661 fra
.me
.REG
[11] = CALL_parser_nodes___AClosureDef___n_id(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
6662 fra
.me
.REG
[11] = CALL_typing___AClosureId___to_symbol(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
6663 fra
.me
.REG
[12] = CALL_static_type___MMSignature___closure_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[11]);
6664 REGB2
= TAG_Bool(fra
.me
.REG
[12]==NIT_NULL
);
6665 /* ./syntax//typing.nit:1181 */
6666 if (UNTAG_Bool(REGB2
)) {
6668 REGB0
= TAG_Bool(fra
.me
.REG
[12]==NIT_NULL
);
6669 if (UNTAG_Bool(REGB0
)) {
6670 REGB0
= TAG_Bool(false);
6673 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[12])(fra
.me
.REG
[12], NIT_NULL
);
6677 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6678 if (UNTAG_Bool(REGB2
)) {
6679 fra
.me
.REG
[12] = NEW_EscapableClosure_escape___EscapableClosure___init(fra
.me
.REG
[10], fra
.me
.REG
[12], fra
.me
.REG
[7]);
6680 fra
.me
.REG
[13] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6681 /* ./syntax//typing.nit:1183 */
6682 CALL_escape___EscapableContext___push(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[12], fra
.me
.REG
[8]);
6683 /* ./syntax//typing.nit:1184 */
6684 CALL_typing___AClosureDef___accept_typing2(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[1], fra
.me
.REG
[12]);
6685 fra
.me
.REG
[12] = CALL_typing___TypingVisitor___escapable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6686 /* ./syntax//typing.nit:1185 */
6687 CALL_escape___EscapableContext___pop(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
6689 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
6690 /* ./../lib/standard//collection//array.nit:23 */
6691 if (UNTAG_Bool(REGB2
)) {
6693 fprintf(stderr
, "Uninitialized attribute %s", "_length");
6694 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
6697 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
6699 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB0
));
6700 /* ./syntax//typing.nit:1186 */
6701 if (UNTAG_Bool(REGB3
)) {
6703 REGB0
= TAG_Bool((REGB2
)==(REGB0
));
6705 /* ./syntax//typing.nit:1186 */
6707 if (UNTAG_Bool(REGB3
)) {
6708 fra
.me
.REG
[12] = CALL_parser_nodes___AClosureDef___n_id(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
6710 fra
.me
.REG
[13] = NEW_Array_array___Array___with_capacity(REGB3
);
6711 /* ./syntax//typing.nit:1187 */
6712 if (!once_value_11
) {
6713 fra
.me
.REG
[14] = BOX_NativeString("Error: no closure named '!");
6714 REGB3
= TAG_Int(26);
6715 fra
.me
.REG
[14] = NEW_String_string___String___with_native(fra
.me
.REG
[14], REGB3
);
6716 once_value_11
= fra
.me
.REG
[14];
6717 register_static_object(&once_value_11
);
6718 } else fra
.me
.REG
[14] = once_value_11
;
6719 array___Array___add(fra
.me
.REG
[13], fra
.me
.REG
[14]);
6720 fra
.me
.REG
[14] = CALL_string___Object___to_s(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
6721 array___Array___add(fra
.me
.REG
[13], fra
.me
.REG
[14]);
6722 if (!once_value_12
) {
6723 fra
.me
.REG
[14] = BOX_NativeString("' in ");
6725 fra
.me
.REG
[14] = NEW_String_string___String___with_native(fra
.me
.REG
[14], REGB3
);
6726 once_value_12
= fra
.me
.REG
[14];
6727 register_static_object(&once_value_12
);
6728 } else fra
.me
.REG
[14] = once_value_12
;
6729 array___Array___add(fra
.me
.REG
[13], fra
.me
.REG
[14]);
6730 fra
.me
.REG
[14] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6731 array___Array___add(fra
.me
.REG
[13], fra
.me
.REG
[14]);
6732 if (!once_value_13
) {
6733 fra
.me
.REG
[14] = BOX_NativeString("; only closure is !");
6734 REGB3
= TAG_Int(19);
6735 fra
.me
.REG
[14] = NEW_String_string___String___with_native(fra
.me
.REG
[14], REGB3
);
6736 once_value_13
= fra
.me
.REG
[14];
6737 register_static_object(&once_value_13
);
6738 } else fra
.me
.REG
[14] = once_value_13
;
6739 array___Array___add(fra
.me
.REG
[13], fra
.me
.REG
[14]);
6740 fra
.me
.REG
[14] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6741 REGB3
= TAG_Bool(fra
.me
.REG
[14]==NIT_NULL
);
6742 if (UNTAG_Bool(REGB3
)) {
6743 fprintf(stderr
, "Reciever is null");
6744 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1187);
6747 fra
.me
.REG
[14] = CALL_static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6748 fra
.me
.REG
[14] = CALL_string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6749 array___Array___add(fra
.me
.REG
[13], fra
.me
.REG
[14]);
6750 if (!once_value_14
) {
6751 fra
.me
.REG
[14] = BOX_NativeString(".");
6753 fra
.me
.REG
[14] = NEW_String_string___String___with_native(fra
.me
.REG
[14], REGB3
);
6754 once_value_14
= fra
.me
.REG
[14];
6755 register_static_object(&once_value_14
);
6756 } else fra
.me
.REG
[14] = once_value_14
;
6757 array___Array___add(fra
.me
.REG
[13], fra
.me
.REG
[14]);
6758 fra
.me
.REG
[13] = CALL_string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
6759 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[12], fra
.me
.REG
[13]);
6761 fra
.me
.REG
[13] = NEW_Array_array___Array___init();
6762 fra
.me
.REG
[12] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6763 /* ./syntax//typing.nit:1190 */
6765 REGB3
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
6766 if (UNTAG_Bool(REGB3
)) {
6767 fra
.me
.REG
[14] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
6769 fra
.me
.REG
[15] = NEW_Array_array___Array___with_capacity(REGB3
);
6770 /* ./syntax//typing.nit:1191 */
6771 if (!once_value_15
) {
6772 fra
.me
.REG
[16] = BOX_NativeString("!");
6774 fra
.me
.REG
[16] = NEW_String_string___String___with_native(fra
.me
.REG
[16], REGB3
);
6775 once_value_15
= fra
.me
.REG
[16];
6776 register_static_object(&once_value_15
);
6777 } else fra
.me
.REG
[16] = once_value_15
;
6778 array___Array___add(fra
.me
.REG
[15], fra
.me
.REG
[16]);
6779 fra
.me
.REG
[14] = CALL_static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6780 fra
.me
.REG
[14] = CALL_string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6781 array___Array___add(fra
.me
.REG
[15], fra
.me
.REG
[14]);
6782 if (!once_value_16
) {
6783 fra
.me
.REG
[14] = BOX_NativeString("");
6785 fra
.me
.REG
[14] = NEW_String_string___String___with_native(fra
.me
.REG
[14], REGB3
);
6786 once_value_16
= fra
.me
.REG
[14];
6787 register_static_object(&once_value_16
);
6788 } else fra
.me
.REG
[14] = once_value_16
;
6789 array___Array___add(fra
.me
.REG
[15], fra
.me
.REG
[14]);
6790 fra
.me
.REG
[15] = CALL_string___Object___to_s(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
6791 array___Array___add(fra
.me
.REG
[13], fra
.me
.REG
[15]);
6793 /* ./syntax//typing.nit:1190 */
6796 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
6799 fra
.me
.REG
[10] = CALL_parser_nodes___AClosureDef___n_id(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
6801 fra
.me
.REG
[12] = NEW_Array_array___Array___with_capacity(REGB3
);
6802 /* ./syntax//typing.nit:1193 */
6803 if (!once_value_18
) {
6804 fra
.me
.REG
[15] = BOX_NativeString("Error: no closure named '!");
6805 REGB3
= TAG_Int(26);
6806 fra
.me
.REG
[15] = NEW_String_string___String___with_native(fra
.me
.REG
[15], REGB3
);
6807 once_value_18
= fra
.me
.REG
[15];
6808 register_static_object(&once_value_18
);
6809 } else fra
.me
.REG
[15] = once_value_18
;
6810 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[15]);
6811 fra
.me
.REG
[11] = CALL_string___Object___to_s(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
6812 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[11]);
6813 if (!once_value_19
) {
6814 fra
.me
.REG
[11] = BOX_NativeString("' in ");
6816 fra
.me
.REG
[11] = NEW_String_string___String___with_native(fra
.me
.REG
[11], REGB3
);
6817 once_value_19
= fra
.me
.REG
[11];
6818 register_static_object(&once_value_19
);
6819 } else fra
.me
.REG
[11] = once_value_19
;
6820 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[11]);
6821 fra
.me
.REG
[11] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6822 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[11]);
6823 if (!once_value_20
) {
6824 fra
.me
.REG
[11] = BOX_NativeString("; only closures are ");
6825 REGB3
= TAG_Int(20);
6826 fra
.me
.REG
[11] = NEW_String_string___String___with_native(fra
.me
.REG
[11], REGB3
);
6827 once_value_20
= fra
.me
.REG
[11];
6828 register_static_object(&once_value_20
);
6829 } else fra
.me
.REG
[11] = once_value_20
;
6830 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[11]);
6831 if (!once_value_21
) {
6832 fra
.me
.REG
[11] = BOX_NativeString(",");
6834 fra
.me
.REG
[11] = NEW_String_string___String___with_native(fra
.me
.REG
[11], REGB3
);
6835 once_value_21
= fra
.me
.REG
[11];
6836 register_static_object(&once_value_21
);
6837 } else fra
.me
.REG
[11] = once_value_21
;
6838 fra
.me
.REG
[11] = CALL_string___Collection___join(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[11]);
6839 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[11]);
6840 if (!once_value_22
) {
6841 fra
.me
.REG
[11] = BOX_NativeString(".");
6843 fra
.me
.REG
[11] = NEW_String_string___String___with_native(fra
.me
.REG
[11], REGB3
);
6844 once_value_22
= fra
.me
.REG
[11];
6845 register_static_object(&once_value_22
);
6846 } else fra
.me
.REG
[11] = once_value_22
;
6847 array___Array___add(fra
.me
.REG
[12], fra
.me
.REG
[11]);
6848 fra
.me
.REG
[12] = CALL_string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
6849 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[10], fra
.me
.REG
[12]);
6853 /* ./syntax//typing.nit:1177 */
6856 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6859 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6860 /* ./syntax//typing.nit:1198 */
6861 if (UNTAG_Bool(REGB3
)) {
6863 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6864 if (UNTAG_Bool(REGB0
)) {
6865 REGB0
= TAG_Bool(false);
6868 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6872 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
6873 if (UNTAG_Bool(REGB3
)) {
6874 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[7]);
6875 fra
.me
.REG
[5] = fra
.me
.REG
[7];
6876 /* ./syntax//typing.nit:1199 */
6882 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
6883 /* ./syntax//typing.nit:1202 */
6884 if (UNTAG_Bool(REGB0
)) {
6886 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
6888 /* ./syntax//typing.nit:1202 */
6890 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6891 if (UNTAG_Bool(REGB0
)) {
6893 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
6894 /* ./syntax//typing.nit:1203 */
6895 if (!once_value_24
) {
6896 fra
.me
.REG
[9] = BOX_NativeString("Error: ");
6898 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB0
);
6899 once_value_24
= fra
.me
.REG
[9];
6900 register_static_object(&once_value_24
);
6901 } else fra
.me
.REG
[9] = once_value_24
;
6902 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[9]);
6903 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6904 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[3]);
6905 if (!once_value_25
) {
6906 fra
.me
.REG
[3] = BOX_NativeString(" does not require blocks.");
6907 REGB0
= TAG_Int(25);
6908 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
6909 once_value_25
= fra
.me
.REG
[3];
6910 register_static_object(&once_value_25
);
6911 } else fra
.me
.REG
[3] = once_value_25
;
6912 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[3]);
6913 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6914 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
6917 /* ./syntax//typing.nit:1205 */
6920 stack_frame_head
= fra
.me
.prev
;
6921 return fra
.me
.REG
[5];
6923 val_t
typing___AAbsSendExpr___prop(val_t p0
){
6924 struct {struct stack_frame_t me
;} fra
;
6927 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6928 fra
.me
.file
= LOCATE_typing
;
6930 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___prop
;
6931 fra
.me
.has_broke
= 0;
6932 fra
.me
.REG_size
= 1;
6933 fra
.me
.REG
[0] = NIT_NULL
;
6935 fra
.me
.REG
[0] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
6936 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
6937 /* ./syntax//typing.nit:1262 */
6938 if (UNTAG_Bool(REGB0
)) {
6940 fprintf(stderr
, "Cast failed");
6941 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1262);
6946 stack_frame_head
= fra
.me
.prev
;
6947 return fra
.me
.REG
[0];
6949 val_t
typing___AAbsSendExpr___return_type(val_t p0
){
6950 struct {struct stack_frame_t me
;} fra
;
6952 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6953 fra
.me
.file
= LOCATE_typing
;
6955 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___return_type
;
6956 fra
.me
.has_broke
= 0;
6957 fra
.me
.REG_size
= 1;
6958 fra
.me
.REG
[0] = NIT_NULL
;
6960 fra
.me
.REG
[0] = ATTR_typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]);
6961 /* ./syntax//typing.nit:1265 */
6962 stack_frame_head
= fra
.me
.prev
;
6963 return fra
.me
.REG
[0];
6965 void 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
){
6966 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6971 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6972 fra
.me
.file
= LOCATE_typing
;
6974 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___do_typing
;
6975 fra
.me
.has_broke
= 0;
6976 fra
.me
.REG_size
= 7;
6977 fra
.me
.REG
[0] = NIT_NULL
;
6978 fra
.me
.REG
[1] = NIT_NULL
;
6979 fra
.me
.REG
[2] = NIT_NULL
;
6980 fra
.me
.REG
[3] = NIT_NULL
;
6981 fra
.me
.REG
[4] = NIT_NULL
;
6982 fra
.me
.REG
[5] = NIT_NULL
;
6983 fra
.me
.REG
[6] = NIT_NULL
;
6992 fra
.me
.REG
[3] = CALL_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]);
6993 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6994 /* ./syntax//typing.nit:1214 */
6995 if (UNTAG_Bool(REGB0
)) {
6997 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6998 if (UNTAG_Bool(REGB2
)) {
6999 REGB2
= TAG_Bool(false);
7002 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
7006 if (UNTAG_Bool(REGB0
)) {
7009 fra
.me
.REG
[2] = CALL_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
);
7010 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7011 /* ./syntax//typing.nit:1216 */
7012 if (UNTAG_Bool(REGB1
)) {
7013 fprintf(stderr
, "Reciever is null");
7014 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1216);
7017 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7018 REGB1
= CALL_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]);
7019 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7020 if (UNTAG_Bool(REGB1
)) {
7023 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7024 /* ./syntax//typing.nit:1217 */
7025 if (UNTAG_Bool(REGB1
)) {
7026 fprintf(stderr
, "Reciever is null");
7027 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1217);
7030 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7031 fra
.me
.REG
[5] = CALL_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]);
7032 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7033 /* ./syntax//typing.nit:1218 */
7034 if (UNTAG_Bool(REGB1
)) {
7036 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7037 if (UNTAG_Bool(REGB0
)) {
7038 REGB0
= TAG_Bool(false);
7041 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
7045 if (UNTAG_Bool(REGB1
)) {
7046 fra
.me
.REG
[4] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7047 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7048 if (UNTAG_Bool(REGB1
)) {
7050 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7051 if (UNTAG_Bool(REGB0
)) {
7052 REGB0
= TAG_Bool(false);
7055 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7059 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7061 REGB0
= TAG_Bool(false);
7064 if (UNTAG_Bool(REGB1
)) {
7067 /* ./syntax//typing.nit:1219 */
7068 ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
7069 /* ./syntax//typing.nit:1220 */
7070 ATTR_typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
7071 /* ./syntax//typing.nit:1221 */
7072 ATTR_typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
7074 stack_frame_head
= fra
.me
.prev
;
7077 val_t
typing___AAbsSendExpr___get_property(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
7078 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
7084 static val_t once_value_1
; /* Once value */
7085 static val_t once_value_2
; /* Once value */
7086 static val_t once_value_3
; /* Once value */
7087 static val_t once_value_4
; /* Once value */
7088 static val_t once_value_6
; /* Once value */
7089 static val_t once_value_7
; /* Once value */
7090 static val_t once_value_8
; /* Once value */
7091 static val_t once_value_9
; /* Once value */
7092 static val_t once_value_10
; /* Once value */
7093 static val_t once_value_11
; /* Once value */
7094 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7095 fra
.me
.file
= LOCATE_typing
;
7097 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___get_property
;
7098 fra
.me
.has_broke
= 0;
7099 fra
.me
.REG_size
= 8;
7100 fra
.me
.REG
[0] = NIT_NULL
;
7101 fra
.me
.REG
[1] = NIT_NULL
;
7102 fra
.me
.REG
[2] = NIT_NULL
;
7103 fra
.me
.REG
[3] = NIT_NULL
;
7104 fra
.me
.REG
[4] = NIT_NULL
;
7105 fra
.me
.REG
[5] = NIT_NULL
;
7106 fra
.me
.REG
[6] = NIT_NULL
;
7107 fra
.me
.REG
[7] = NIT_NULL
;
7113 fra
.me
.REG
[4] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7114 fra
.me
.REG
[5] = NIT_NULL
;
7115 REGB1
= CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7116 /* ./syntax//typing.nit:1228 */
7117 if (UNTAG_Bool(REGB1
)) {
7118 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7119 fra
.me
.REG
[5] = fra
.me
.REG
[4];
7121 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7122 /* ./syntax//typing.nit:1229 */
7123 if (UNTAG_Bool(REGB1
)) {
7125 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7126 if (UNTAG_Bool(REGB2
)) {
7127 REGB2
= TAG_Bool(false);
7130 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
7134 if (UNTAG_Bool(REGB1
)) {
7135 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7136 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7137 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7139 REGB2
= TAG_Bool(false);
7142 if (UNTAG_Bool(REGB1
)) {
7143 fra
.me
.REG
[4] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7144 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7145 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7146 /* ./../lib/standard//collection//array.nit:23 */
7147 if (UNTAG_Bool(REGB1
)) {
7149 fprintf(stderr
, "Uninitialized attribute %s", "_length");
7150 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
7153 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7155 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7156 /* ./syntax//typing.nit:1231 */
7157 if (UNTAG_Bool(REGB2
)) {
7159 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB2
);
7160 /* ./syntax//typing.nit:1232 */
7161 if (!once_value_1
) {
7162 fra
.me
.REG
[7] = BOX_NativeString("Error: Ambigous method name '");
7163 REGB2
= TAG_Int(29);
7164 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7165 once_value_1
= fra
.me
.REG
[7];
7166 register_static_object(&once_value_1
);
7167 } else fra
.me
.REG
[7] = once_value_1
;
7168 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
7169 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7170 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
7171 if (!once_value_2
) {
7172 fra
.me
.REG
[7] = BOX_NativeString("' for ");
7174 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7175 once_value_2
= fra
.me
.REG
[7];
7176 register_static_object(&once_value_2
);
7177 } else fra
.me
.REG
[7] = once_value_2
;
7178 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
7179 if (!once_value_3
) {
7180 fra
.me
.REG
[7] = BOX_NativeString(", ");
7182 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7183 once_value_3
= fra
.me
.REG
[7];
7184 register_static_object(&once_value_3
);
7185 } else fra
.me
.REG
[7] = once_value_3
;
7186 fra
.me
.REG
[7] = CALL_string___Collection___join(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
7187 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
7188 if (!once_value_4
) {
7189 fra
.me
.REG
[7] = BOX_NativeString(". Use explicit designation.");
7190 REGB2
= TAG_Int(27);
7191 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7192 once_value_4
= fra
.me
.REG
[7];
7193 register_static_object(&once_value_4
);
7194 } else fra
.me
.REG
[7] = once_value_4
;
7195 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
7196 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7197 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
7198 fra
.me
.REG
[6] = NIT_NULL
;
7199 /* ./syntax//typing.nit:1233 */
7202 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7203 /* ./../lib/standard//collection//array.nit:23 */
7204 if (UNTAG_Bool(REGB2
)) {
7206 fprintf(stderr
, "Uninitialized attribute %s", "_length");
7207 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
7210 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7212 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
7213 /* ./syntax//typing.nit:1234 */
7214 if (UNTAG_Bool(REGB3
)) {
7216 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
7218 /* ./syntax//typing.nit:1234 */
7220 if (UNTAG_Bool(REGB3
)) {
7221 fra
.me
.REG
[7] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7222 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7223 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7224 /* ./syntax//typing.nit:1235 */
7225 if (UNTAG_Bool(REGB3
)) {
7226 fprintf(stderr
, "Reciever is null");
7227 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1235);
7230 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7231 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
7232 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
7233 /* ./syntax//typing.nit:1236 */
7234 if (UNTAG_Bool(REGB3
)) {
7236 fprintf(stderr
, "Assert failed");
7237 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1236);
7240 fra
.me
.REG
[5] = fra
.me
.REG
[4];
7241 /* ./syntax//typing.nit:1237 */
7245 REGB3
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7246 /* ./syntax//typing.nit:1241 */
7247 if (UNTAG_Bool(REGB3
)) {
7249 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7250 if (UNTAG_Bool(REGB1
)) {
7251 REGB1
= TAG_Bool(false);
7254 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
7258 if (UNTAG_Bool(REGB3
)) {
7259 /* ./syntax//typing.nit:1242 */
7260 if (UNTAG_Bool(REGB0
)) {
7262 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
7263 /* ./syntax//typing.nit:1243 */
7264 if (!once_value_6
) {
7265 fra
.me
.REG
[7] = BOX_NativeString("Error: Method or variable '");
7266 REGB0
= TAG_Int(27);
7267 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
7268 once_value_6
= fra
.me
.REG
[7];
7269 register_static_object(&once_value_6
);
7270 } else fra
.me
.REG
[7] = once_value_6
;
7271 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
7272 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7273 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
7274 if (!once_value_7
) {
7275 fra
.me
.REG
[7] = BOX_NativeString("' unknown in ");
7276 REGB0
= TAG_Int(13);
7277 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
7278 once_value_7
= fra
.me
.REG
[7];
7279 register_static_object(&once_value_7
);
7280 } else fra
.me
.REG
[7] = once_value_7
;
7281 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
7282 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7283 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
7284 if (!once_value_8
) {
7285 fra
.me
.REG
[7] = BOX_NativeString(".");
7287 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
7288 once_value_8
= fra
.me
.REG
[7];
7289 register_static_object(&once_value_8
);
7290 } else fra
.me
.REG
[7] = once_value_8
;
7291 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
7292 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7293 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7296 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
7297 /* ./syntax//typing.nit:1245 */
7298 if (!once_value_9
) {
7299 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
7300 REGB0
= TAG_Int(15);
7301 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
7302 once_value_9
= fra
.me
.REG
[7];
7303 register_static_object(&once_value_9
);
7304 } else fra
.me
.REG
[7] = once_value_9
;
7305 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[7]);
7306 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7307 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7308 if (!once_value_10
) {
7309 fra
.me
.REG
[3] = BOX_NativeString("' doesn't exists in ");
7310 REGB0
= TAG_Int(20);
7311 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7312 once_value_10
= fra
.me
.REG
[3];
7313 register_static_object(&once_value_10
);
7314 } else fra
.me
.REG
[3] = once_value_10
;
7315 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7316 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7317 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7318 if (!once_value_11
) {
7319 fra
.me
.REG
[2] = BOX_NativeString(".");
7321 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
7322 once_value_11
= fra
.me
.REG
[2];
7323 register_static_object(&once_value_11
);
7324 } else fra
.me
.REG
[2] = once_value_11
;
7325 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7326 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7327 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7329 fra
.me
.REG
[6] = NIT_NULL
;
7330 /* ./syntax//typing.nit:1247 */
7333 fra
.me
.REG
[6] = fra
.me
.REG
[5];
7334 /* ./syntax//typing.nit:1249 */
7337 stack_frame_head
= fra
.me
.prev
;
7338 return fra
.me
.REG
[6];
7340 val_t
typing___AAbsSendExpr___get_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
7341 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
7344 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7345 fra
.me
.file
= LOCATE_typing
;
7347 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___get_signature
;
7348 fra
.me
.has_broke
= 0;
7349 fra
.me
.REG_size
= 6;
7350 fra
.me
.REG
[0] = NIT_NULL
;
7351 fra
.me
.REG
[1] = NIT_NULL
;
7352 fra
.me
.REG
[2] = NIT_NULL
;
7353 fra
.me
.REG
[3] = NIT_NULL
;
7354 fra
.me
.REG
[4] = NIT_NULL
;
7355 fra
.me
.REG
[5] = NIT_NULL
;
7361 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7362 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___module(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7363 /* ./syntax//typing.nit:1255 */
7364 CALL_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
);
7365 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
7366 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7367 /* ./syntax//typing.nit:1257 */
7368 if (UNTAG_Bool(REGB0
)) {
7369 fra
.me
.REG
[3] = CALL_static_type___MMSignature___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7370 fra
.me
.REG
[2] = fra
.me
.REG
[3];
7372 /* ./syntax//typing.nit:1258 */
7375 stack_frame_head
= fra
.me
.prev
;
7376 return fra
.me
.REG
[2];
7378 void typing___ASuperInitCall___register_super_init_call(val_t p0
, val_t p1
, val_t p2
){
7379 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
7384 static val_t once_value_1
; /* Once value */
7385 static val_t once_value_2
; /* Once value */
7386 static val_t once_value_3
; /* Once value */
7387 static val_t once_value_4
; /* Once value */
7388 static val_t once_value_5
; /* Once value */
7389 static val_t once_value_6
; /* Once value */
7390 static val_t once_value_7
; /* Once value */
7391 static val_t once_value_8
; /* Once value */
7392 static val_t once_value_9
; /* Once value */
7393 static val_t once_value_10
; /* Once value */
7394 static val_t once_value_11
; /* Once value */
7395 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7396 fra
.me
.file
= LOCATE_typing
;
7398 fra
.me
.meth
= LOCATE_typing___ASuperInitCall___register_super_init_call
;
7399 fra
.me
.has_broke
= 0;
7400 fra
.me
.REG_size
= 10;
7401 fra
.me
.REG
[0] = NIT_NULL
;
7402 fra
.me
.REG
[1] = NIT_NULL
;
7403 fra
.me
.REG
[2] = NIT_NULL
;
7404 fra
.me
.REG
[3] = NIT_NULL
;
7405 fra
.me
.REG
[4] = NIT_NULL
;
7406 fra
.me
.REG
[5] = NIT_NULL
;
7407 fra
.me
.REG
[6] = NIT_NULL
;
7408 fra
.me
.REG
[7] = NIT_NULL
;
7409 fra
.me
.REG
[8] = NIT_NULL
;
7410 fra
.me
.REG
[9] = NIT_NULL
;
7414 fra
.me
.REG
[3] = CALL_parser_prod___ANode___parent(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7415 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7416 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[4]));
7417 /* ./syntax//typing.nit:1274 */
7418 if (UNTAG_Bool(REGB0
)) {
7420 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7421 if (UNTAG_Bool(REGB1
)) {
7422 REGB1
= TAG_Bool(false);
7425 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7429 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7430 if (UNTAG_Bool(REGB0
)) {
7431 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7432 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[0],fra
.me
.REG
[4]));
7433 if (UNTAG_Bool(REGB0
)) {
7435 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
7438 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7440 REGB1
= TAG_Bool(false);
7443 if (UNTAG_Bool(REGB0
)) {
7445 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
7446 /* ./syntax//typing.nit:1275 */
7447 if (!once_value_1
) {
7448 fra
.me
.REG
[3] = BOX_NativeString("Error: Constructor invocation ");
7449 REGB0
= TAG_Int(30);
7450 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7451 once_value_1
= fra
.me
.REG
[3];
7452 register_static_object(&once_value_1
);
7453 } else fra
.me
.REG
[3] = once_value_1
;
7454 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7455 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7456 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7457 if (!once_value_2
) {
7458 fra
.me
.REG
[3] = BOX_NativeString(" must not be in nested block.");
7459 REGB0
= TAG_Int(29);
7460 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7461 once_value_2
= fra
.me
.REG
[3];
7462 register_static_object(&once_value_2
);
7463 } else fra
.me
.REG
[3] = once_value_2
;
7464 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7465 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7466 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7468 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___module(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7469 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7470 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7471 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7472 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7473 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMModule_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7474 fra
.me
.REG
[4] = NIT_NULL
;
7475 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___explicit_super_init_calls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7476 REGB0
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
7477 /* ./syntax//typing.nit:1279 */
7478 if (UNTAG_Bool(REGB0
)) {
7480 fprintf(stderr
, "Cast failed");
7481 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1279);
7484 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7485 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7486 /* ./syntax//typing.nit:1280 */
7487 if (UNTAG_Bool(REGB0
)) {
7488 fra
.me
.REG
[6] = CALL_abstract_collection___SequenceRead___last(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7489 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
7490 /* ./syntax//typing.nit:1281 */
7491 if (UNTAG_Bool(REGB0
)) {
7492 fprintf(stderr
, "Reciever is null");
7493 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1281);
7496 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7497 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7498 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7499 fra
.me
.REG
[4] = fra
.me
.REG
[6];
7501 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7502 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7503 fra
.me
.REG
[6] = CALL_partial_order___PartialOrderElement___reverse_linear_extension(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7504 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7505 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[7]));
7506 /* ./syntax//typing.nit:1284 */
7507 if (UNTAG_Bool(REGB0
)) {
7509 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7512 if (UNTAG_Bool(REGB0
)) {
7513 REGB0
= TAG_Bool(true);
7514 /* ./syntax//typing.nit:1285 */
7515 CALL_typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
7517 REGB0
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7518 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7519 /* ./syntax//typing.nit:1286 */
7520 if (UNTAG_Bool(REGB0
)) {
7522 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
7523 /* ./syntax//typing.nit:1287 */
7524 if (!once_value_3
) {
7525 fra
.me
.REG
[8] = BOX_NativeString("Error: Constructor of class ");
7526 REGB0
= TAG_Int(28);
7527 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
7528 once_value_3
= fra
.me
.REG
[8];
7529 register_static_object(&once_value_3
);
7530 } else fra
.me
.REG
[8] = once_value_3
;
7531 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
7532 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7533 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
7534 if (!once_value_4
) {
7535 fra
.me
.REG
[8] = BOX_NativeString(" must be one in ");
7536 REGB0
= TAG_Int(16);
7537 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
7538 once_value_4
= fra
.me
.REG
[8];
7539 register_static_object(&once_value_4
);
7540 } else fra
.me
.REG
[8] = once_value_4
;
7541 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
7542 if (!once_value_5
) {
7543 fra
.me
.REG
[8] = BOX_NativeString(", ");
7545 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
7546 once_value_5
= fra
.me
.REG
[8];
7547 register_static_object(&once_value_5
);
7548 } else fra
.me
.REG
[8] = once_value_5
;
7549 fra
.me
.REG
[8] = CALL_string___Collection___join(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8]);
7550 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
7551 if (!once_value_6
) {
7552 fra
.me
.REG
[8] = BOX_NativeString(".");
7554 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
7555 once_value_6
= fra
.me
.REG
[8];
7556 register_static_object(&once_value_6
);
7557 } else fra
.me
.REG
[8] = once_value_6
;
7558 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
7559 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
7560 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
7562 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[4]));
7563 /* ./syntax//typing.nit:1288 */
7564 if (UNTAG_Bool(REGB0
)) {
7566 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7569 if (UNTAG_Bool(REGB0
)) {
7571 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
7572 /* ./syntax//typing.nit:1289 */
7573 if (!once_value_7
) {
7574 fra
.me
.REG
[8] = BOX_NativeString("Error: Only one super constructor invocation of class ");
7575 REGB0
= TAG_Int(54);
7576 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
7577 once_value_7
= fra
.me
.REG
[8];
7578 register_static_object(&once_value_7
);
7579 } else fra
.me
.REG
[8] = once_value_7
;
7580 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
7581 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7582 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
7583 if (!once_value_8
) {
7584 fra
.me
.REG
[8] = BOX_NativeString(" is allowed.");
7585 REGB0
= TAG_Int(12);
7586 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
7587 once_value_8
= fra
.me
.REG
[8];
7588 register_static_object(&once_value_8
);
7589 } else fra
.me
.REG
[8] = once_value_8
;
7590 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
7591 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
7592 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
7594 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7595 /* ./syntax//typing.nit:1291 */
7596 if (UNTAG_Bool(REGB0
)) {
7598 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7599 if (UNTAG_Bool(REGB1
)) {
7600 REGB1
= TAG_Bool(false);
7603 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7607 fra
.me
.REG
[6] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7608 /* ./syntax//typing.nit:1292 */
7610 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7611 if (UNTAG_Bool(REGB1
)) {
7612 fra
.me
.REG
[7] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7613 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[7],fra
.me
.REG
[4]));
7614 /* ./syntax//typing.nit:1293 */
7615 if (UNTAG_Bool(REGB1
)) {
7617 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
7620 if (UNTAG_Bool(REGB1
)) {
7621 REGB1
= TAG_Bool(true);
7623 /* ./syntax//typing.nit:1294 */
7625 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[7],fra
.me
.REG
[3]));
7626 /* ./syntax//typing.nit:1295 */
7627 if (UNTAG_Bool(REGB1
)) {
7629 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
7632 if (UNTAG_Bool(REGB1
)) {
7633 REGB1
= TAG_Bool(!UNTAG_Bool(REGB0
));
7634 /* ./syntax//typing.nit:1296 */
7635 if (UNTAG_Bool(REGB1
)) {
7637 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB1
);
7638 /* ./syntax//typing.nit:1297 */
7639 if (!once_value_9
) {
7640 fra
.me
.REG
[9] = BOX_NativeString("Error: Constructor of ");
7641 REGB1
= TAG_Int(22);
7642 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB1
);
7643 once_value_9
= fra
.me
.REG
[9];
7644 register_static_object(&once_value_9
);
7645 } else fra
.me
.REG
[9] = once_value_9
;
7646 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[9]);
7647 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
7648 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7649 if (!once_value_10
) {
7650 fra
.me
.REG
[7] = BOX_NativeString(" must be invoked before constructor of ");
7651 REGB1
= TAG_Int(39);
7652 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB1
);
7653 once_value_10
= fra
.me
.REG
[7];
7654 register_static_object(&once_value_10
);
7655 } else fra
.me
.REG
[7] = once_value_10
;
7656 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7657 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7658 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7659 if (!once_value_11
) {
7660 fra
.me
.REG
[7] = BOX_NativeString("");
7662 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB1
);
7663 once_value_11
= fra
.me
.REG
[7];
7664 register_static_object(&once_value_11
);
7665 } else fra
.me
.REG
[7] = once_value_11
;
7666 array___Array___add(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7667 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
7668 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
7670 /* ./syntax//typing.nit:1299 */
7671 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[2]);
7672 /* ./syntax//typing.nit:1300 */
7677 /* ./syntax//typing.nit:1292 */
7680 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7686 stack_frame_head
= fra
.me
.prev
;
7689 void typing___ANewExpr___after_typing(val_t p0
, val_t p1
){
7690 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
7694 static val_t once_value_2
; /* Once value */
7695 static val_t once_value_3
; /* Once value */
7696 static val_t once_value_4
; /* Once value */
7697 static val_t once_value_5
; /* Once value */
7698 static val_t once_value_6
; /* Once value */
7699 static val_t once_value_7
; /* Once value */
7700 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7701 fra
.me
.file
= LOCATE_typing
;
7703 fra
.me
.meth
= LOCATE_typing___ANewExpr___after_typing
;
7704 fra
.me
.has_broke
= 0;
7705 fra
.me
.REG_size
= 5;
7706 fra
.me
.REG
[0] = NIT_NULL
;
7707 fra
.me
.REG
[1] = NIT_NULL
;
7708 fra
.me
.REG
[2] = NIT_NULL
;
7709 fra
.me
.REG
[3] = NIT_NULL
;
7710 fra
.me
.REG
[4] = NIT_NULL
;
7713 fra
.me
.REG
[2] = CALL_parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7714 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7715 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7716 /* ./syntax//typing.nit:1312 */
7717 if (UNTAG_Bool(REGB0
)) {
7720 fra
.me
.REG
[2] = CALL_parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7721 fra
.me
.REG
[2] = CALL_syntax_base___AType___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7722 fra
.me
.REG
[3] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7723 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7724 REGB0
= CALL_abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7725 /* ./syntax//typing.nit:1314 */
7726 if (UNTAG_Bool(REGB0
)) {
7728 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
7729 /* ./syntax//typing.nit:1315 */
7730 if (!once_value_2
) {
7731 fra
.me
.REG
[4] = BOX_NativeString("Error: try to instantiate abstract class ");
7732 REGB0
= TAG_Int(41);
7733 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
7734 once_value_2
= fra
.me
.REG
[4];
7735 register_static_object(&once_value_2
);
7736 } else fra
.me
.REG
[4] = once_value_2
;
7737 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7738 fra
.me
.REG
[4] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7739 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7740 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7741 if (!once_value_3
) {
7742 fra
.me
.REG
[4] = BOX_NativeString(".");
7744 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
7745 once_value_3
= fra
.me
.REG
[4];
7746 register_static_object(&once_value_3
);
7747 } else fra
.me
.REG
[4] = once_value_3
;
7748 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7749 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7750 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
7751 /* ./syntax//typing.nit:1316 */
7754 fra
.me
.REG
[3] = CALL_parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7755 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7756 /* ./syntax//typing.nit:1319 */
7757 if (UNTAG_Bool(REGB0
)) {
7759 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7760 if (UNTAG_Bool(REGB1
)) {
7761 REGB1
= TAG_Bool(false);
7764 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
7768 if (UNTAG_Bool(REGB0
)) {
7769 /* ./syntax//typing.nit:1320 */
7770 if (!once_value_4
) {
7771 if (!once_value_5
) {
7772 fra
.me
.REG
[3] = BOX_NativeString("init");
7774 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7775 once_value_5
= fra
.me
.REG
[3];
7776 register_static_object(&once_value_5
);
7777 } else fra
.me
.REG
[3] = once_value_5
;
7778 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7779 once_value_4
= fra
.me
.REG
[3];
7780 register_static_object(&once_value_4
);
7781 } else fra
.me
.REG
[3] = once_value_4
;
7783 fra
.me
.REG
[4] = CALL_parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7784 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7785 /* ./syntax//typing.nit:1322 */
7786 if (UNTAG_Bool(REGB0
)) {
7787 fprintf(stderr
, "Reciever is null");
7788 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1322);
7791 fra
.me
.REG
[4] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7792 fra
.me
.REG
[3] = fra
.me
.REG
[4];
7794 REGB0
= TAG_Bool(false);
7795 REGB1
= TAG_Bool(false);
7796 fra
.me
.REG
[4] = CALL_syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7797 /* ./syntax//typing.nit:1325 */
7798 CALL_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
);
7799 fra
.me
.REG
[4] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
7800 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7801 /* ./syntax//typing.nit:1326 */
7802 if (UNTAG_Bool(REGB1
)) {
7804 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7805 if (UNTAG_Bool(REGB0
)) {
7806 REGB0
= TAG_Bool(false);
7809 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7813 if (UNTAG_Bool(REGB1
)) {
7816 fra
.me
.REG
[4] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7817 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7818 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7819 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7820 /* ./syntax//typing.nit:1328 */
7821 if (UNTAG_Bool(REGB1
)) {
7823 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
7824 /* ./syntax//typing.nit:1329 */
7825 if (!once_value_6
) {
7826 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
7828 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
7829 once_value_6
= fra
.me
.REG
[3];
7830 register_static_object(&once_value_6
);
7831 } else fra
.me
.REG
[3] = once_value_6
;
7832 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7833 fra
.me
.REG
[3] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7834 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7835 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7836 if (!once_value_7
) {
7837 fra
.me
.REG
[3] = BOX_NativeString(" is not a constructor.");
7838 REGB1
= TAG_Int(22);
7839 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
7840 once_value_7
= fra
.me
.REG
[3];
7841 register_static_object(&once_value_7
);
7842 } else fra
.me
.REG
[3] = once_value_7
;
7843 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7844 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7845 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7846 /* ./syntax//typing.nit:1330 */
7849 /* ./syntax//typing.nit:1332 */
7850 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
7851 REGB1
= TAG_Bool(true);
7852 /* ./syntax//typing.nit:1333 */
7853 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
7855 stack_frame_head
= fra
.me
.prev
;
7858 val_t
typing___ANewExpr___compute_raw_arguments(val_t p0
){
7859 struct {struct stack_frame_t me
;} fra
;
7861 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7862 fra
.me
.file
= LOCATE_typing
;
7864 fra
.me
.meth
= LOCATE_typing___ANewExpr___compute_raw_arguments
;
7865 fra
.me
.has_broke
= 0;
7866 fra
.me
.REG_size
= 1;
7867 fra
.me
.REG
[0] = NIT_NULL
;
7869 fra
.me
.REG
[0] = CALL_parser_nodes___ANewExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7870 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7871 /* ./syntax//typing.nit:1309 */
7874 stack_frame_head
= fra
.me
.prev
;
7875 return fra
.me
.REG
[0];
7877 val_t
typing___ASendExpr___closure_defs(val_t p0
){
7878 struct {struct stack_frame_t me
;} fra
;
7880 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7881 fra
.me
.file
= LOCATE_typing
;
7883 fra
.me
.meth
= LOCATE_typing___ASendExpr___closure_defs
;
7884 fra
.me
.has_broke
= 0;
7885 fra
.me
.REG_size
= 1;
7886 fra
.me
.REG
[0] = NIT_NULL
;
7888 fra
.me
.REG
[0] = NIT_NULL
;
7889 /* ./syntax//typing.nit:1343 */
7892 stack_frame_head
= fra
.me
.prev
;
7893 return fra
.me
.REG
[0];
7895 void typing___ASendExpr___after_typing(val_t p0
, val_t p1
){
7896 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7898 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7899 fra
.me
.file
= LOCATE_typing
;
7901 fra
.me
.meth
= LOCATE_typing___ASendExpr___after_typing
;
7902 fra
.me
.has_broke
= 0;
7903 fra
.me
.REG_size
= 2;
7904 fra
.me
.REG
[0] = NIT_NULL
;
7905 fra
.me
.REG
[1] = NIT_NULL
;
7908 /* ./syntax//typing.nit:1347 */
7909 CALL_typing___ASendExpr___do_all_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7910 stack_frame_head
= fra
.me
.prev
;
7913 val_t
typing___ASendExpr___name(val_t p0
){
7914 struct {struct stack_frame_t me
;} fra
;
7916 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7917 fra
.me
.file
= LOCATE_typing
;
7919 fra
.me
.meth
= LOCATE_typing___ASendExpr___name
;
7920 fra
.me
.has_broke
= 0;
7921 fra
.me
.REG_size
= 0;
7922 /* ./syntax//typing.nit:1339 */
7923 fprintf(stderr
, "Deferred method called");
7924 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1339);
7926 stack_frame_head
= fra
.me
.prev
;
7929 void typing___ASendExpr___do_all_typing(val_t p0
, val_t p1
){
7930 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
7934 static val_t once_value_2
; /* Once value */
7935 static val_t once_value_3
; /* Once value */
7936 static val_t once_value_4
; /* Once value */
7937 static val_t once_value_5
; /* Once value */
7938 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7939 fra
.me
.file
= LOCATE_typing
;
7941 fra
.me
.meth
= LOCATE_typing___ASendExpr___do_all_typing
;
7942 fra
.me
.has_broke
= 0;
7943 fra
.me
.REG_size
= 6;
7944 fra
.me
.REG
[0] = NIT_NULL
;
7945 fra
.me
.REG
[1] = NIT_NULL
;
7946 fra
.me
.REG
[2] = NIT_NULL
;
7947 fra
.me
.REG
[3] = NIT_NULL
;
7948 fra
.me
.REG
[4] = NIT_NULL
;
7949 fra
.me
.REG
[5] = NIT_NULL
;
7952 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7953 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7954 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7955 /* ./syntax//typing.nit:1352 */
7956 if (UNTAG_Bool(REGB0
)) {
7959 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7960 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7961 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7962 REGB0
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7963 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7964 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7965 fra
.me
.REG
[3] = CALL_typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7966 fra
.me
.REG
[4] = CALL_syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7967 fra
.me
.REG
[5] = CALL_syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7968 /* ./syntax//typing.nit:1353 */
7969 CALL_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], fra
.me
.REG
[5]);
7970 fra
.me
.REG
[5] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
7971 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7972 /* ./syntax//typing.nit:1354 */
7973 if (UNTAG_Bool(REGB1
)) {
7975 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7976 if (UNTAG_Bool(REGB0
)) {
7977 REGB0
= TAG_Bool(false);
7980 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
7984 if (UNTAG_Bool(REGB1
)) {
7987 fra
.me
.REG
[5] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
7988 REGB1
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
7989 /* ./syntax//typing.nit:1355 */
7990 if (UNTAG_Bool(REGB1
)) {
7992 fprintf(stderr
, "Cast failed");
7993 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1355);
7996 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7997 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7998 /* ./syntax//typing.nit:1357 */
7999 if (UNTAG_Bool(REGB1
)) {
8000 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8001 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8002 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8003 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8004 /* ./syntax//typing.nit:1358 */
8005 if (UNTAG_Bool(REGB1
)) {
8007 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
8008 /* ./syntax//typing.nit:1359 */
8009 if (!once_value_2
) {
8010 fra
.me
.REG
[3] = BOX_NativeString("Error: try to invoke constructor ");
8011 REGB1
= TAG_Int(33);
8012 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
8013 once_value_2
= fra
.me
.REG
[3];
8014 register_static_object(&once_value_2
);
8015 } else fra
.me
.REG
[3] = once_value_2
;
8016 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8017 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8018 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8019 if (!once_value_3
) {
8020 fra
.me
.REG
[3] = BOX_NativeString(" in a method.");
8021 REGB1
= TAG_Int(13);
8022 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
8023 once_value_3
= fra
.me
.REG
[3];
8024 register_static_object(&once_value_3
);
8025 } else fra
.me
.REG
[3] = once_value_3
;
8026 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8027 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8028 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
8030 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8031 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8032 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8033 /* ./syntax//typing.nit:1360 */
8034 if (UNTAG_Bool(REGB1
)) {
8036 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
8037 /* ./syntax//typing.nit:1361 */
8038 if (!once_value_4
) {
8039 fra
.me
.REG
[3] = BOX_NativeString("Error: constructor ");
8040 REGB1
= TAG_Int(19);
8041 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
8042 once_value_4
= fra
.me
.REG
[3];
8043 register_static_object(&once_value_4
);
8044 } else fra
.me
.REG
[3] = once_value_4
;
8045 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8046 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8047 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8048 if (!once_value_5
) {
8049 fra
.me
.REG
[3] = BOX_NativeString(" is not invoken on 'self'.");
8050 REGB1
= TAG_Int(26);
8051 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
8052 once_value_5
= fra
.me
.REG
[3];
8053 register_static_object(&once_value_5
);
8054 } else fra
.me
.REG
[3] = once_value_5
;
8055 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8056 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8057 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
8059 /* ./syntax//typing.nit:1363 */
8060 CALL_typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5]);
8064 fra
.me
.REG
[5] = CALL_syntax_base___AAbsSendExpr___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8065 /* ./syntax//typing.nit:1367 */
8066 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
8067 REGB1
= TAG_Bool(true);
8068 /* ./syntax//typing.nit:1368 */
8069 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
8071 stack_frame_head
= fra
.me
.prev
;
8074 val_t
typing___ASendReassignExpr___read_prop(val_t p0
){
8075 struct {struct stack_frame_t me
;} fra
;
8078 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8079 fra
.me
.file
= LOCATE_typing
;
8081 fra
.me
.meth
= LOCATE_typing___ASendReassignExpr___read_prop
;
8082 fra
.me
.has_broke
= 0;
8083 fra
.me
.REG_size
= 1;
8084 fra
.me
.REG
[0] = NIT_NULL
;
8086 fra
.me
.REG
[0] = ATTR_typing___ASendReassignExpr____read_prop(fra
.me
.REG
[0]);
8087 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
8088 /* ./syntax//typing.nit:1373 */
8089 if (UNTAG_Bool(REGB0
)) {
8091 fprintf(stderr
, "Cast failed");
8092 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1373);
8097 stack_frame_head
= fra
.me
.prev
;
8098 return fra
.me
.REG
[0];
8100 void typing___ASendReassignExpr___do_all_typing(val_t p0
, val_t p1
){
8101 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8106 static val_t once_value_2
; /* Once value */
8107 static val_t once_value_3
; /* Once value */
8108 static val_t once_value_4
; /* Once value */
8109 static val_t once_value_5
; /* Once value */
8110 static val_t once_value_6
; /* Once value */
8111 static val_t once_value_7
; /* Once value */
8112 static val_t once_value_8
; /* Once value */
8113 static val_t once_value_9
; /* Once value */
8114 static val_t once_value_10
; /* Once value */
8115 static val_t once_value_11
; /* Once value */
8116 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8117 fra
.me
.file
= LOCATE_typing
;
8119 fra
.me
.meth
= LOCATE_typing___ASendReassignExpr___do_all_typing
;
8120 fra
.me
.has_broke
= 0;
8121 fra
.me
.REG_size
= 7;
8122 fra
.me
.REG
[0] = NIT_NULL
;
8123 fra
.me
.REG
[1] = NIT_NULL
;
8124 fra
.me
.REG
[2] = NIT_NULL
;
8125 fra
.me
.REG
[3] = NIT_NULL
;
8126 fra
.me
.REG
[4] = NIT_NULL
;
8127 fra
.me
.REG
[5] = NIT_NULL
;
8128 fra
.me
.REG
[6] = NIT_NULL
;
8131 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8132 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8133 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8134 /* ./syntax//typing.nit:1377 */
8135 if (UNTAG_Bool(REGB0
)) {
8138 fra
.me
.REG
[2] = CALL_syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8139 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8140 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8141 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8142 REGB0
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8143 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8144 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8145 fra
.me
.REG
[4] = CALL_typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8146 /* ./syntax//typing.nit:1379 */
8147 CALL_typing___AAbsSendExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3], REGB0
, REGB1
, fra
.me
.REG
[4], fra
.me
.REG
[2], NIT_NULL
);
8148 fra
.me
.REG
[4] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
8149 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8150 /* ./syntax//typing.nit:1381 */
8151 if (UNTAG_Bool(REGB1
)) {
8153 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8154 if (UNTAG_Bool(REGB0
)) {
8155 REGB0
= TAG_Bool(false);
8158 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8162 if (UNTAG_Bool(REGB1
)) {
8165 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8166 /* ./syntax//typing.nit:1382 */
8167 if (UNTAG_Bool(REGB1
)) {
8168 fprintf(stderr
, "Reciever is null");
8169 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1382);
8172 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8173 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8174 if (UNTAG_Bool(REGB1
)) {
8175 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8176 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8177 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8178 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8179 /* ./syntax//typing.nit:1383 */
8180 if (UNTAG_Bool(REGB1
)) {
8182 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
8183 /* ./syntax//typing.nit:1384 */
8184 if (!once_value_2
) {
8185 fra
.me
.REG
[5] = BOX_NativeString("Error: try to invoke constructor ");
8186 REGB1
= TAG_Int(33);
8187 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
8188 once_value_2
= fra
.me
.REG
[5];
8189 register_static_object(&once_value_2
);
8190 } else fra
.me
.REG
[5] = once_value_2
;
8191 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8192 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8193 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8194 if (!once_value_3
) {
8195 fra
.me
.REG
[5] = BOX_NativeString(" in a method.");
8196 REGB1
= TAG_Int(13);
8197 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
8198 once_value_3
= fra
.me
.REG
[5];
8199 register_static_object(&once_value_3
);
8200 } else fra
.me
.REG
[5] = once_value_3
;
8201 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8202 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8203 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
8205 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8206 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8207 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8208 /* ./syntax//typing.nit:1385 */
8209 if (UNTAG_Bool(REGB1
)) {
8211 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
8212 /* ./syntax//typing.nit:1386 */
8213 if (!once_value_4
) {
8214 fra
.me
.REG
[5] = BOX_NativeString("Error: constructor ");
8215 REGB1
= TAG_Int(19);
8216 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
8217 once_value_4
= fra
.me
.REG
[5];
8218 register_static_object(&once_value_4
);
8219 } else fra
.me
.REG
[5] = once_value_4
;
8220 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8221 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8222 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8223 if (!once_value_5
) {
8224 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
8225 REGB1
= TAG_Int(26);
8226 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
8227 once_value_5
= fra
.me
.REG
[5];
8228 register_static_object(&once_value_5
);
8229 } else fra
.me
.REG
[5] = once_value_5
;
8230 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8231 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8232 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
8236 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8237 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8238 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8239 /* ./syntax//typing.nit:1389 */
8240 if (UNTAG_Bool(REGB1
)) {
8241 fprintf(stderr
, "Reciever is null");
8242 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1389);
8245 fra
.me
.REG
[3] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8246 fra
.me
.REG
[3] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8247 REGB1
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
8248 if (UNTAG_Bool(REGB1
)) {
8250 fprintf(stderr
, "Cast failed");
8251 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1389);
8254 fra
.me
.REG
[5] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8255 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8256 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8257 /* ./syntax//typing.nit:1390 */
8258 if (UNTAG_Bool(REGB1
)) {
8259 fra
.me
.REG
[5] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8260 fra
.me
.REG
[3] = fra
.me
.REG
[5];
8262 fra
.me
.REG
[3] = CALL_typing___AReassignFormExpr___do_rvalue_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
8263 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8264 /* ./syntax//typing.nit:1393 */
8265 if (UNTAG_Bool(REGB1
)) {
8267 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8268 if (UNTAG_Bool(REGB0
)) {
8269 REGB0
= TAG_Bool(false);
8272 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
8276 if (UNTAG_Bool(REGB1
)) {
8279 fra
.me
.REG
[5] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8280 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8281 /* ./syntax//typing.nit:1394 */
8282 CALL_syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[5]);
8283 /* ./syntax//typing.nit:1396 */
8284 ATTR_typing___ASendReassignExpr____read_prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
8285 fra
.me
.REG
[5] = CALL_array___Collection___to_a(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8286 fra
.me
.REG
[2] = fra
.me
.REG
[5];
8287 fra
.me
.REG
[5] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8288 /* ./syntax//typing.nit:1398 */
8289 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
8290 fra
.me
.REG
[5] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8291 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8292 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8293 REGB1
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8294 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8295 REGB0
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8297 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB2
);
8298 /* ./syntax//typing.nit:1400 */
8299 if (!once_value_6
) {
8300 fra
.me
.REG
[6] = BOX_NativeString("");
8302 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB2
);
8303 once_value_6
= fra
.me
.REG
[6];
8304 register_static_object(&once_value_6
);
8305 } else fra
.me
.REG
[6] = once_value_6
;
8306 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
8307 fra
.me
.REG
[6] = CALL_typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8308 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8309 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
8310 if (!once_value_7
) {
8311 fra
.me
.REG
[6] = BOX_NativeString("=");
8313 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB2
);
8314 once_value_7
= fra
.me
.REG
[6];
8315 register_static_object(&once_value_7
);
8316 } else fra
.me
.REG
[6] = once_value_7
;
8317 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
8318 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8319 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8320 CALL_typing___AAbsSendExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5], REGB1
, REGB0
, fra
.me
.REG
[3], fra
.me
.REG
[2], NIT_NULL
);
8321 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8322 /* ./syntax//typing.nit:1401 */
8323 if (UNTAG_Bool(REGB0
)) {
8324 fprintf(stderr
, "Reciever is null");
8325 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1401);
8328 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8329 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8330 if (UNTAG_Bool(REGB0
)) {
8331 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8332 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8333 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8334 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8335 /* ./syntax//typing.nit:1402 */
8336 if (UNTAG_Bool(REGB0
)) {
8338 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
8339 /* ./syntax//typing.nit:1403 */
8340 if (!once_value_8
) {
8341 fra
.me
.REG
[3] = BOX_NativeString("Error: try to invoke constructor ");
8342 REGB0
= TAG_Int(33);
8343 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
8344 once_value_8
= fra
.me
.REG
[3];
8345 register_static_object(&once_value_8
);
8346 } else fra
.me
.REG
[3] = once_value_8
;
8347 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
8348 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8349 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
8350 if (!once_value_9
) {
8351 fra
.me
.REG
[3] = BOX_NativeString(" in a method.");
8352 REGB0
= TAG_Int(13);
8353 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
8354 once_value_9
= fra
.me
.REG
[3];
8355 register_static_object(&once_value_9
);
8356 } else fra
.me
.REG
[3] = once_value_9
;
8357 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
8358 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8359 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
8361 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8362 REGB0
= CALL_typing___AExpr___is_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8363 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8364 /* ./syntax//typing.nit:1404 */
8365 if (UNTAG_Bool(REGB0
)) {
8367 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
8368 /* ./syntax//typing.nit:1405 */
8369 if (!once_value_10
) {
8370 fra
.me
.REG
[3] = BOX_NativeString("Error: constructor ");
8371 REGB0
= TAG_Int(19);
8372 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
8373 once_value_10
= fra
.me
.REG
[3];
8374 register_static_object(&once_value_10
);
8375 } else fra
.me
.REG
[3] = once_value_10
;
8376 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
8377 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8378 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
8379 if (!once_value_11
) {
8380 fra
.me
.REG
[4] = BOX_NativeString(" is not invoken on 'self'.");
8381 REGB0
= TAG_Int(26);
8382 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
8383 once_value_11
= fra
.me
.REG
[4];
8384 register_static_object(&once_value_11
);
8385 } else fra
.me
.REG
[4] = once_value_11
;
8386 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
8387 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8388 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
8392 REGB0
= TAG_Bool(true);
8393 /* ./syntax//typing.nit:1409 */
8394 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
8396 stack_frame_head
= fra
.me
.prev
;
8399 val_t
typing___ABinopExpr___compute_raw_arguments(val_t p0
){
8400 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
8403 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8404 fra
.me
.file
= LOCATE_typing
;
8406 fra
.me
.meth
= LOCATE_typing___ABinopExpr___compute_raw_arguments
;
8407 fra
.me
.has_broke
= 0;
8408 fra
.me
.REG_size
= 2;
8409 fra
.me
.REG
[0] = NIT_NULL
;
8410 fra
.me
.REG
[1] = NIT_NULL
;
8413 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
8414 fra
.me
.REG
[0] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8415 /* ./syntax//typing.nit:1414 */
8416 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
8419 stack_frame_head
= fra
.me
.prev
;
8420 return fra
.me
.REG
[1];
8422 void typing___AEqExpr___after_typing(val_t p0
, val_t p1
){
8423 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8427 static val_t once_value_2
; /* Once value */
8428 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8429 fra
.me
.file
= LOCATE_typing
;
8431 fra
.me
.meth
= LOCATE_typing___AEqExpr___after_typing
;
8432 fra
.me
.has_broke
= 0;
8433 fra
.me
.REG_size
= 4;
8434 fra
.me
.REG
[0] = NIT_NULL
;
8435 fra
.me
.REG
[1] = NIT_NULL
;
8436 fra
.me
.REG
[2] = NIT_NULL
;
8437 fra
.me
.REG
[3] = NIT_NULL
;
8440 fra
.me
.REG
[2] = fra
.me
.REG
[0];
8441 fra
.me
.REG
[3] = fra
.me
.REG
[1];
8442 /* ./syntax//typing.nit:1420 */
8443 CALL_SUPER_typing___AEqExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
8444 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8445 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8446 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8447 /* ./syntax//typing.nit:1421 */
8448 if (UNTAG_Bool(REGB0
)) {
8449 REGB0
= TAG_Bool(true);
8451 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8452 REGB1
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8453 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8456 if (UNTAG_Bool(REGB0
)) {
8459 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8460 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8461 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
8462 /* ./syntax//typing.nit:1422 */
8463 if (UNTAG_Bool(REGB0
)) {
8464 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8465 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8466 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8467 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8469 REGB1
= TAG_Bool(false);
8472 if (UNTAG_Bool(REGB0
)) {
8473 REGB0
= TAG_Bool(true);
8475 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8476 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8477 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
8479 /* ./syntax//typing.nit:1422 */
8481 if (UNTAG_Bool(REGB0
)) {
8482 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8483 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8484 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8485 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8486 /* ./syntax//typing.nit:1422 */
8488 REGB1
= TAG_Bool(false);
8491 if (UNTAG_Bool(REGB0
)) {
8492 /* ./syntax//typing.nit:1424 */
8493 if (!once_value_2
) {
8494 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
8495 REGB0
= TAG_Int(59);
8496 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
8497 once_value_2
= fra
.me
.REG
[1];
8498 register_static_object(&once_value_2
);
8499 } else fra
.me
.REG
[1] = once_value_2
;
8500 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
8502 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8503 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8504 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
8505 /* ./syntax//typing.nit:1427 */
8506 if (UNTAG_Bool(REGB0
)) {
8507 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8508 /* ./syntax//typing.nit:1428 */
8509 CALL_typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
8511 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8512 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8513 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
8514 /* ./syntax//typing.nit:1429 */
8515 if (UNTAG_Bool(REGB0
)) {
8516 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8517 /* ./syntax//typing.nit:1430 */
8518 CALL_typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
8522 stack_frame_head
= fra
.me
.prev
;
8525 val_t
typing___AEqExpr___name(val_t p0
){
8526 struct {struct stack_frame_t me
;} fra
;
8529 static val_t once_value_1
; /* Once value */
8530 static val_t once_value_2
; /* Once value */
8531 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8532 fra
.me
.file
= LOCATE_typing
;
8534 fra
.me
.meth
= LOCATE_typing___AEqExpr___name
;
8535 fra
.me
.has_broke
= 0;
8536 fra
.me
.REG_size
= 1;
8537 fra
.me
.REG
[0] = NIT_NULL
;
8539 /* ./syntax//typing.nit:1417 */
8540 if (!once_value_1
) {
8541 if (!once_value_2
) {
8542 fra
.me
.REG
[0] = BOX_NativeString("==");
8544 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
8545 once_value_2
= fra
.me
.REG
[0];
8546 register_static_object(&once_value_2
);
8547 } else fra
.me
.REG
[0] = once_value_2
;
8548 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8549 once_value_1
= fra
.me
.REG
[0];
8550 register_static_object(&once_value_1
);
8551 } else fra
.me
.REG
[0] = once_value_1
;
8554 stack_frame_head
= fra
.me
.prev
;
8555 return fra
.me
.REG
[0];
8557 void typing___AEqExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
8558 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8562 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8563 fra
.me
.file
= LOCATE_typing
;
8565 fra
.me
.meth
= LOCATE_typing___AEqExpr___try_to_isa
;
8566 fra
.me
.has_broke
= 0;
8567 fra
.me
.REG_size
= 4;
8568 fra
.me
.REG
[0] = NIT_NULL
;
8569 fra
.me
.REG
[1] = NIT_NULL
;
8570 fra
.me
.REG
[2] = NIT_NULL
;
8571 fra
.me
.REG
[3] = NIT_NULL
;
8575 fra
.me
.REG
[3] = CALL_typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8576 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8577 /* ./syntax//typing.nit:1437 */
8578 if (UNTAG_Bool(REGB0
)) {
8580 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8581 if (UNTAG_Bool(REGB1
)) {
8582 REGB1
= TAG_Bool(false);
8585 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
8589 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8590 if (UNTAG_Bool(REGB0
)) {
8591 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8592 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8593 fra
.me
.REG
[2] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8594 fra
.me
.REG
[2] = CALL_control_flow___VariableContext___sub_with(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
8595 /* ./syntax//typing.nit:1438 */
8596 ATTR_typing___AExpr____if_false_variable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
8598 stack_frame_head
= fra
.me
.prev
;
8601 void typing___ANeExpr___after_typing(val_t p0
, val_t p1
){
8602 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8606 static val_t once_value_2
; /* Once value */
8607 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8608 fra
.me
.file
= LOCATE_typing
;
8610 fra
.me
.meth
= LOCATE_typing___ANeExpr___after_typing
;
8611 fra
.me
.has_broke
= 0;
8612 fra
.me
.REG_size
= 4;
8613 fra
.me
.REG
[0] = NIT_NULL
;
8614 fra
.me
.REG
[1] = NIT_NULL
;
8615 fra
.me
.REG
[2] = NIT_NULL
;
8616 fra
.me
.REG
[3] = NIT_NULL
;
8619 fra
.me
.REG
[2] = fra
.me
.REG
[0];
8620 fra
.me
.REG
[3] = fra
.me
.REG
[1];
8621 /* ./syntax//typing.nit:1446 */
8622 CALL_SUPER_typing___ANeExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
8623 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8624 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8625 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8626 /* ./syntax//typing.nit:1447 */
8627 if (UNTAG_Bool(REGB0
)) {
8628 REGB0
= TAG_Bool(true);
8630 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8631 REGB1
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8632 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8635 if (UNTAG_Bool(REGB0
)) {
8638 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8639 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8640 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
8641 /* ./syntax//typing.nit:1448 */
8642 if (UNTAG_Bool(REGB0
)) {
8643 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8644 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8645 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8646 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8648 REGB1
= TAG_Bool(false);
8651 if (UNTAG_Bool(REGB0
)) {
8652 REGB0
= TAG_Bool(true);
8654 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8655 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8656 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
8658 /* ./syntax//typing.nit:1448 */
8660 if (UNTAG_Bool(REGB0
)) {
8661 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8662 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8663 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8664 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8665 /* ./syntax//typing.nit:1448 */
8667 REGB1
= TAG_Bool(false);
8670 if (UNTAG_Bool(REGB0
)) {
8671 /* ./syntax//typing.nit:1450 */
8672 if (!once_value_2
) {
8673 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
8674 REGB0
= TAG_Int(59);
8675 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
8676 once_value_2
= fra
.me
.REG
[1];
8677 register_static_object(&once_value_2
);
8678 } else fra
.me
.REG
[1] = once_value_2
;
8679 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
8681 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8682 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8683 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
8684 /* ./syntax//typing.nit:1453 */
8685 if (UNTAG_Bool(REGB0
)) {
8686 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8687 /* ./syntax//typing.nit:1454 */
8688 CALL_typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
8690 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8691 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8692 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
8693 /* ./syntax//typing.nit:1455 */
8694 if (UNTAG_Bool(REGB0
)) {
8695 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8696 /* ./syntax//typing.nit:1456 */
8697 CALL_typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
8701 stack_frame_head
= fra
.me
.prev
;
8704 val_t
typing___ANeExpr___name(val_t p0
){
8705 struct {struct stack_frame_t me
;} fra
;
8708 static val_t once_value_1
; /* Once value */
8709 static val_t once_value_2
; /* Once value */
8710 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8711 fra
.me
.file
= LOCATE_typing
;
8713 fra
.me
.meth
= LOCATE_typing___ANeExpr___name
;
8714 fra
.me
.has_broke
= 0;
8715 fra
.me
.REG_size
= 1;
8716 fra
.me
.REG
[0] = NIT_NULL
;
8718 /* ./syntax//typing.nit:1443 */
8719 if (!once_value_1
) {
8720 if (!once_value_2
) {
8721 fra
.me
.REG
[0] = BOX_NativeString("!=");
8723 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
8724 once_value_2
= fra
.me
.REG
[0];
8725 register_static_object(&once_value_2
);
8726 } else fra
.me
.REG
[0] = once_value_2
;
8727 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8728 once_value_1
= fra
.me
.REG
[0];
8729 register_static_object(&once_value_1
);
8730 } else fra
.me
.REG
[0] = once_value_1
;
8733 stack_frame_head
= fra
.me
.prev
;
8734 return fra
.me
.REG
[0];
8736 void typing___ANeExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
8737 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8741 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8742 fra
.me
.file
= LOCATE_typing
;
8744 fra
.me
.meth
= LOCATE_typing___ANeExpr___try_to_isa
;
8745 fra
.me
.has_broke
= 0;
8746 fra
.me
.REG_size
= 4;
8747 fra
.me
.REG
[0] = NIT_NULL
;
8748 fra
.me
.REG
[1] = NIT_NULL
;
8749 fra
.me
.REG
[2] = NIT_NULL
;
8750 fra
.me
.REG
[3] = NIT_NULL
;
8754 fra
.me
.REG
[3] = CALL_typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8755 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8756 /* ./syntax//typing.nit:1463 */
8757 if (UNTAG_Bool(REGB0
)) {
8759 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8760 if (UNTAG_Bool(REGB1
)) {
8761 REGB1
= TAG_Bool(false);
8764 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
8768 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8769 if (UNTAG_Bool(REGB0
)) {
8770 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8771 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8772 fra
.me
.REG
[2] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8773 fra
.me
.REG
[2] = CALL_control_flow___VariableContext___sub_with(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
8774 /* ./syntax//typing.nit:1464 */
8775 ATTR_typing___AExpr____if_true_variable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
8777 stack_frame_head
= fra
.me
.prev
;
8780 val_t
typing___ALtExpr___name(val_t p0
){
8781 struct {struct stack_frame_t me
;} fra
;
8784 static val_t once_value_1
; /* Once value */
8785 static val_t once_value_2
; /* Once value */
8786 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8787 fra
.me
.file
= LOCATE_typing
;
8789 fra
.me
.meth
= LOCATE_typing___ALtExpr___name
;
8790 fra
.me
.has_broke
= 0;
8791 fra
.me
.REG_size
= 1;
8792 fra
.me
.REG
[0] = NIT_NULL
;
8794 /* ./syntax//typing.nit:1469 */
8795 if (!once_value_1
) {
8796 if (!once_value_2
) {
8797 fra
.me
.REG
[0] = BOX_NativeString("<");
8799 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
8800 once_value_2
= fra
.me
.REG
[0];
8801 register_static_object(&once_value_2
);
8802 } else fra
.me
.REG
[0] = once_value_2
;
8803 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8804 once_value_1
= fra
.me
.REG
[0];
8805 register_static_object(&once_value_1
);
8806 } else fra
.me
.REG
[0] = once_value_1
;
8809 stack_frame_head
= fra
.me
.prev
;
8810 return fra
.me
.REG
[0];
8812 val_t
typing___ALeExpr___name(val_t p0
){
8813 struct {struct stack_frame_t me
;} fra
;
8816 static val_t once_value_1
; /* Once value */
8817 static val_t once_value_2
; /* Once value */
8818 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8819 fra
.me
.file
= LOCATE_typing
;
8821 fra
.me
.meth
= LOCATE_typing___ALeExpr___name
;
8822 fra
.me
.has_broke
= 0;
8823 fra
.me
.REG_size
= 1;
8824 fra
.me
.REG
[0] = NIT_NULL
;
8826 /* ./syntax//typing.nit:1472 */
8827 if (!once_value_1
) {
8828 if (!once_value_2
) {
8829 fra
.me
.REG
[0] = BOX_NativeString("<=");
8831 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
8832 once_value_2
= fra
.me
.REG
[0];
8833 register_static_object(&once_value_2
);
8834 } else fra
.me
.REG
[0] = once_value_2
;
8835 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8836 once_value_1
= fra
.me
.REG
[0];
8837 register_static_object(&once_value_1
);
8838 } else fra
.me
.REG
[0] = once_value_1
;
8841 stack_frame_head
= fra
.me
.prev
;
8842 return fra
.me
.REG
[0];
8844 val_t
typing___AGtExpr___name(val_t p0
){
8845 struct {struct stack_frame_t me
;} fra
;
8848 static val_t once_value_1
; /* Once value */
8849 static val_t once_value_2
; /* Once value */
8850 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8851 fra
.me
.file
= LOCATE_typing
;
8853 fra
.me
.meth
= LOCATE_typing___AGtExpr___name
;
8854 fra
.me
.has_broke
= 0;
8855 fra
.me
.REG_size
= 1;
8856 fra
.me
.REG
[0] = NIT_NULL
;
8858 /* ./syntax//typing.nit:1475 */
8859 if (!once_value_1
) {
8860 if (!once_value_2
) {
8861 fra
.me
.REG
[0] = BOX_NativeString(">");
8863 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
8864 once_value_2
= fra
.me
.REG
[0];
8865 register_static_object(&once_value_2
);
8866 } else fra
.me
.REG
[0] = once_value_2
;
8867 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8868 once_value_1
= fra
.me
.REG
[0];
8869 register_static_object(&once_value_1
);
8870 } else fra
.me
.REG
[0] = once_value_1
;
8873 stack_frame_head
= fra
.me
.prev
;
8874 return fra
.me
.REG
[0];
8876 val_t
typing___AGeExpr___name(val_t p0
){
8877 struct {struct stack_frame_t me
;} fra
;
8880 static val_t once_value_1
; /* Once value */
8881 static val_t once_value_2
; /* Once value */
8882 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8883 fra
.me
.file
= LOCATE_typing
;
8885 fra
.me
.meth
= LOCATE_typing___AGeExpr___name
;
8886 fra
.me
.has_broke
= 0;
8887 fra
.me
.REG_size
= 1;
8888 fra
.me
.REG
[0] = NIT_NULL
;
8890 /* ./syntax//typing.nit:1478 */
8891 if (!once_value_1
) {
8892 if (!once_value_2
) {
8893 fra
.me
.REG
[0] = BOX_NativeString(">=");
8895 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
8896 once_value_2
= fra
.me
.REG
[0];
8897 register_static_object(&once_value_2
);
8898 } else fra
.me
.REG
[0] = once_value_2
;
8899 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8900 once_value_1
= fra
.me
.REG
[0];
8901 register_static_object(&once_value_1
);
8902 } else fra
.me
.REG
[0] = once_value_1
;
8905 stack_frame_head
= fra
.me
.prev
;
8906 return fra
.me
.REG
[0];
8908 val_t
typing___APlusExpr___name(val_t p0
){
8909 struct {struct stack_frame_t me
;} fra
;
8912 static val_t once_value_1
; /* Once value */
8913 static val_t once_value_2
; /* Once value */
8914 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8915 fra
.me
.file
= LOCATE_typing
;
8917 fra
.me
.meth
= LOCATE_typing___APlusExpr___name
;
8918 fra
.me
.has_broke
= 0;
8919 fra
.me
.REG_size
= 1;
8920 fra
.me
.REG
[0] = NIT_NULL
;
8922 /* ./syntax//typing.nit:1481 */
8923 if (!once_value_1
) {
8924 if (!once_value_2
) {
8925 fra
.me
.REG
[0] = BOX_NativeString("+");
8927 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
8928 once_value_2
= fra
.me
.REG
[0];
8929 register_static_object(&once_value_2
);
8930 } else fra
.me
.REG
[0] = once_value_2
;
8931 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8932 once_value_1
= fra
.me
.REG
[0];
8933 register_static_object(&once_value_1
);
8934 } else fra
.me
.REG
[0] = once_value_1
;
8937 stack_frame_head
= fra
.me
.prev
;
8938 return fra
.me
.REG
[0];
8940 val_t
typing___AMinusExpr___name(val_t p0
){
8941 struct {struct stack_frame_t me
;} fra
;
8944 static val_t once_value_1
; /* Once value */
8945 static val_t once_value_2
; /* Once value */
8946 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8947 fra
.me
.file
= LOCATE_typing
;
8949 fra
.me
.meth
= LOCATE_typing___AMinusExpr___name
;
8950 fra
.me
.has_broke
= 0;
8951 fra
.me
.REG_size
= 1;
8952 fra
.me
.REG
[0] = NIT_NULL
;
8954 /* ./syntax//typing.nit:1484 */
8955 if (!once_value_1
) {
8956 if (!once_value_2
) {
8957 fra
.me
.REG
[0] = BOX_NativeString("-");
8959 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
8960 once_value_2
= fra
.me
.REG
[0];
8961 register_static_object(&once_value_2
);
8962 } else fra
.me
.REG
[0] = once_value_2
;
8963 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8964 once_value_1
= fra
.me
.REG
[0];
8965 register_static_object(&once_value_1
);
8966 } else fra
.me
.REG
[0] = once_value_1
;
8969 stack_frame_head
= fra
.me
.prev
;
8970 return fra
.me
.REG
[0];
8972 val_t
typing___AStarshipExpr___name(val_t p0
){
8973 struct {struct stack_frame_t me
;} fra
;
8976 static val_t once_value_1
; /* Once value */
8977 static val_t once_value_2
; /* Once value */
8978 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8979 fra
.me
.file
= LOCATE_typing
;
8981 fra
.me
.meth
= LOCATE_typing___AStarshipExpr___name
;
8982 fra
.me
.has_broke
= 0;
8983 fra
.me
.REG_size
= 1;
8984 fra
.me
.REG
[0] = NIT_NULL
;
8986 /* ./syntax//typing.nit:1487 */
8987 if (!once_value_1
) {
8988 if (!once_value_2
) {
8989 fra
.me
.REG
[0] = BOX_NativeString("<=>");
8991 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
8992 once_value_2
= fra
.me
.REG
[0];
8993 register_static_object(&once_value_2
);
8994 } else fra
.me
.REG
[0] = once_value_2
;
8995 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8996 once_value_1
= fra
.me
.REG
[0];
8997 register_static_object(&once_value_1
);
8998 } else fra
.me
.REG
[0] = once_value_1
;
9001 stack_frame_head
= fra
.me
.prev
;
9002 return fra
.me
.REG
[0];
9004 val_t
typing___AStarExpr___name(val_t p0
){
9005 struct {struct stack_frame_t me
;} fra
;
9008 static val_t once_value_1
; /* Once value */
9009 static val_t once_value_2
; /* Once value */
9010 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9011 fra
.me
.file
= LOCATE_typing
;
9013 fra
.me
.meth
= LOCATE_typing___AStarExpr___name
;
9014 fra
.me
.has_broke
= 0;
9015 fra
.me
.REG_size
= 1;
9016 fra
.me
.REG
[0] = NIT_NULL
;
9018 /* ./syntax//typing.nit:1490 */
9019 if (!once_value_1
) {
9020 if (!once_value_2
) {
9021 fra
.me
.REG
[0] = BOX_NativeString("*");
9023 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9024 once_value_2
= fra
.me
.REG
[0];
9025 register_static_object(&once_value_2
);
9026 } else fra
.me
.REG
[0] = once_value_2
;
9027 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9028 once_value_1
= fra
.me
.REG
[0];
9029 register_static_object(&once_value_1
);
9030 } else fra
.me
.REG
[0] = once_value_1
;
9033 stack_frame_head
= fra
.me
.prev
;
9034 return fra
.me
.REG
[0];
9036 val_t
typing___ASlashExpr___name(val_t p0
){
9037 struct {struct stack_frame_t me
;} fra
;
9040 static val_t once_value_1
; /* Once value */
9041 static val_t once_value_2
; /* Once value */
9042 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9043 fra
.me
.file
= LOCATE_typing
;
9045 fra
.me
.meth
= LOCATE_typing___ASlashExpr___name
;
9046 fra
.me
.has_broke
= 0;
9047 fra
.me
.REG_size
= 1;
9048 fra
.me
.REG
[0] = NIT_NULL
;
9050 /* ./syntax//typing.nit:1493 */
9051 if (!once_value_1
) {
9052 if (!once_value_2
) {
9053 fra
.me
.REG
[0] = BOX_NativeString("/");
9055 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9056 once_value_2
= fra
.me
.REG
[0];
9057 register_static_object(&once_value_2
);
9058 } else fra
.me
.REG
[0] = once_value_2
;
9059 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9060 once_value_1
= fra
.me
.REG
[0];
9061 register_static_object(&once_value_1
);
9062 } else fra
.me
.REG
[0] = once_value_1
;
9065 stack_frame_head
= fra
.me
.prev
;
9066 return fra
.me
.REG
[0];
9068 val_t
typing___APercentExpr___name(val_t p0
){
9069 struct {struct stack_frame_t me
;} fra
;
9072 static val_t once_value_1
; /* Once value */
9073 static val_t once_value_2
; /* Once value */
9074 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9075 fra
.me
.file
= LOCATE_typing
;
9077 fra
.me
.meth
= LOCATE_typing___APercentExpr___name
;
9078 fra
.me
.has_broke
= 0;
9079 fra
.me
.REG_size
= 1;
9080 fra
.me
.REG
[0] = NIT_NULL
;
9082 /* ./syntax//typing.nit:1496 */
9083 if (!once_value_1
) {
9084 if (!once_value_2
) {
9085 fra
.me
.REG
[0] = BOX_NativeString("%");
9087 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9088 once_value_2
= fra
.me
.REG
[0];
9089 register_static_object(&once_value_2
);
9090 } else fra
.me
.REG
[0] = once_value_2
;
9091 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9092 once_value_1
= fra
.me
.REG
[0];
9093 register_static_object(&once_value_1
);
9094 } else fra
.me
.REG
[0] = once_value_1
;
9097 stack_frame_head
= fra
.me
.prev
;
9098 return fra
.me
.REG
[0];
9100 val_t
typing___AUminusExpr___compute_raw_arguments(val_t p0
){
9101 struct {struct stack_frame_t me
;} fra
;
9103 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9104 fra
.me
.file
= LOCATE_typing
;
9106 fra
.me
.meth
= LOCATE_typing___AUminusExpr___compute_raw_arguments
;
9107 fra
.me
.has_broke
= 0;
9108 fra
.me
.REG_size
= 1;
9109 fra
.me
.REG
[0] = NIT_NULL
;
9111 fra
.me
.REG
[0] = NIT_NULL
;
9112 /* ./syntax//typing.nit:1501 */
9115 stack_frame_head
= fra
.me
.prev
;
9116 return fra
.me
.REG
[0];
9118 val_t
typing___AUminusExpr___name(val_t p0
){
9119 struct {struct stack_frame_t me
;} fra
;
9122 static val_t once_value_1
; /* Once value */
9123 static val_t once_value_2
; /* Once value */
9124 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9125 fra
.me
.file
= LOCATE_typing
;
9127 fra
.me
.meth
= LOCATE_typing___AUminusExpr___name
;
9128 fra
.me
.has_broke
= 0;
9129 fra
.me
.REG_size
= 1;
9130 fra
.me
.REG
[0] = NIT_NULL
;
9132 /* ./syntax//typing.nit:1500 */
9133 if (!once_value_1
) {
9134 if (!once_value_2
) {
9135 fra
.me
.REG
[0] = BOX_NativeString("unary -");
9137 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9138 once_value_2
= fra
.me
.REG
[0];
9139 register_static_object(&once_value_2
);
9140 } else fra
.me
.REG
[0] = once_value_2
;
9141 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9142 once_value_1
= fra
.me
.REG
[0];
9143 register_static_object(&once_value_1
);
9144 } else fra
.me
.REG
[0] = once_value_1
;
9147 stack_frame_head
= fra
.me
.prev
;
9148 return fra
.me
.REG
[0];
9150 val_t
typing___ACallFormExpr___closure_defs(val_t p0
){
9151 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9154 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9155 fra
.me
.file
= LOCATE_typing
;
9157 fra
.me
.meth
= LOCATE_typing___ACallFormExpr___closure_defs
;
9158 fra
.me
.has_broke
= 0;
9159 fra
.me
.REG_size
= 2;
9160 fra
.me
.REG
[0] = NIT_NULL
;
9161 fra
.me
.REG
[1] = NIT_NULL
;
9163 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9164 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9165 /* ./syntax//typing.nit:1534 */
9166 if (UNTAG_Bool(REGB0
)) {
9167 fra
.me
.REG
[1] = NIT_NULL
;
9168 /* ./syntax//typing.nit:1535 */
9171 fra
.me
.REG
[0] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9172 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9173 fra
.me
.REG
[1] = fra
.me
.REG
[0];
9174 /* ./syntax//typing.nit:1537 */
9178 stack_frame_head
= fra
.me
.prev
;
9179 return fra
.me
.REG
[1];
9181 void typing___ACallFormExpr___after_typing(val_t p0
, val_t p1
){
9182 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
9186 static val_t once_value_1
; /* Once value */
9187 static val_t once_value_2
; /* Once value */
9188 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9189 fra
.me
.file
= LOCATE_typing
;
9191 fra
.me
.meth
= LOCATE_typing___ACallFormExpr___after_typing
;
9192 fra
.me
.has_broke
= 0;
9193 fra
.me
.REG_size
= 9;
9194 fra
.me
.REG
[0] = NIT_NULL
;
9195 fra
.me
.REG
[1] = NIT_NULL
;
9196 fra
.me
.REG
[2] = NIT_NULL
;
9197 fra
.me
.REG
[3] = NIT_NULL
;
9198 fra
.me
.REG
[4] = NIT_NULL
;
9199 fra
.me
.REG
[5] = NIT_NULL
;
9200 fra
.me
.REG
[6] = NIT_NULL
;
9201 fra
.me
.REG
[7] = NIT_NULL
;
9202 fra
.me
.REG
[8] = NIT_NULL
;
9205 fra
.me
.REG
[2] = fra
.me
.REG
[0];
9206 fra
.me
.REG
[3] = fra
.me
.REG
[1];
9207 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9208 REGB0
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9209 /* ./syntax//typing.nit:1507 */
9210 if (UNTAG_Bool(REGB0
)) {
9211 fra
.me
.REG
[4] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9212 fra
.me
.REG
[4] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9213 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9214 fra
.me
.REG
[5] = CALL_control_flow___VariableContext_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9215 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9216 /* ./syntax//typing.nit:1510 */
9217 if (UNTAG_Bool(REGB0
)) {
9219 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9220 if (UNTAG_Bool(REGB1
)) {
9221 REGB1
= TAG_Bool(false);
9224 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9228 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9229 if (UNTAG_Bool(REGB0
)) {
9230 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_ClosureVariable
, ID_ClosureVariable
)) /*cast ClosureVariable*/;
9231 /* ./syntax//typing.nit:1512 */
9232 if (UNTAG_Bool(REGB0
)) {
9233 fra
.me
.REG
[6] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9234 fra
.me
.REG
[7] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9235 fra
.me
.REG
[8] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9236 fra
.me
.REG
[8] = NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
9237 /* ./syntax//typing.nit:1514 */
9238 ATTR_typing___AClosureCallExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
9240 fra
.me
.REG
[7] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9241 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9242 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9243 /* ./syntax//typing.nit:1516 */
9244 if (UNTAG_Bool(REGB0
)) {
9246 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
9247 /* ./syntax//typing.nit:1517 */
9248 if (!once_value_1
) {
9249 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
9251 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
9252 once_value_1
= fra
.me
.REG
[6];
9253 register_static_object(&once_value_1
);
9254 } else fra
.me
.REG
[6] = once_value_1
;
9255 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[6]);
9256 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9257 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[4]);
9258 if (!once_value_2
) {
9259 fra
.me
.REG
[4] = BOX_NativeString(" is variable, not a function.");
9260 REGB0
= TAG_Int(29);
9261 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
9262 once_value_2
= fra
.me
.REG
[4];
9263 register_static_object(&once_value_2
);
9264 } else fra
.me
.REG
[4] = once_value_2
;
9265 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[4]);
9266 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9267 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
9268 /* ./syntax//typing.nit:1518 */
9271 fra
.me
.REG
[7] = CALL_typing___ACallFormExpr___variable_create(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
9272 fra
.me
.REG
[8] = fra
.me
.REG
[7];
9273 /* ./syntax//typing.nit:1521 */
9274 ATTR_typing___AVarFormExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
9276 /* ./syntax//typing.nit:1523 */
9277 CALL_parser_prod___ANode___replace_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
9278 /* ./syntax//typing.nit:1524 */
9279 CALL_typing___ANode___after_typing(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9280 /* ./syntax//typing.nit:1525 */
9284 /* ./syntax//typing.nit:1529 */
9285 CALL_SUPER_typing___ACallFormExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
9287 stack_frame_head
= fra
.me
.prev
;
9290 val_t
typing___ACallFormExpr___variable_create(val_t p0
, val_t p1
){
9291 struct {struct stack_frame_t me
;} fra
;
9293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9294 fra
.me
.file
= LOCATE_typing
;
9296 fra
.me
.meth
= LOCATE_typing___ACallFormExpr___variable_create
;
9297 fra
.me
.has_broke
= 0;
9298 fra
.me
.REG_size
= 0;
9299 /* ./syntax//typing.nit:1541 */
9300 fprintf(stderr
, "Deferred method called");
9301 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1541);
9303 stack_frame_head
= fra
.me
.prev
;
9306 val_t
typing___ACallExpr___compute_raw_arguments(val_t p0
){
9307 struct {struct stack_frame_t me
;} fra
;
9309 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9310 fra
.me
.file
= LOCATE_typing
;
9312 fra
.me
.meth
= LOCATE_typing___ACallExpr___compute_raw_arguments
;
9313 fra
.me
.has_broke
= 0;
9314 fra
.me
.REG_size
= 1;
9315 fra
.me
.REG
[0] = NIT_NULL
;
9317 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9318 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9319 /* ./syntax//typing.nit:1552 */
9322 stack_frame_head
= fra
.me
.prev
;
9323 return fra
.me
.REG
[0];
9325 val_t
typing___ACallExpr___name(val_t p0
){
9326 struct {struct stack_frame_t me
;} fra
;
9328 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9329 fra
.me
.file
= LOCATE_typing
;
9331 fra
.me
.meth
= LOCATE_typing___ACallExpr___name
;
9332 fra
.me
.has_broke
= 0;
9333 fra
.me
.REG_size
= 1;
9334 fra
.me
.REG
[0] = NIT_NULL
;
9336 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9337 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9338 /* ./syntax//typing.nit:1551 */
9341 stack_frame_head
= fra
.me
.prev
;
9342 return fra
.me
.REG
[0];
9344 val_t
typing___ACallExpr___variable_create(val_t p0
, val_t p1
){
9345 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9347 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9348 fra
.me
.file
= LOCATE_typing
;
9350 fra
.me
.meth
= LOCATE_typing___ACallExpr___variable_create
;
9351 fra
.me
.has_broke
= 0;
9352 fra
.me
.REG_size
= 2;
9353 fra
.me
.REG
[0] = NIT_NULL
;
9354 fra
.me
.REG
[1] = NIT_NULL
;
9357 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9358 fra
.me
.REG
[0] = NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr(fra
.me
.REG
[0]);
9359 /* ./syntax//typing.nit:1548 */
9362 stack_frame_head
= fra
.me
.prev
;
9363 return fra
.me
.REG
[0];
9365 val_t
typing___ACallAssignExpr___compute_raw_arguments(val_t p0
){
9366 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9368 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9369 fra
.me
.file
= LOCATE_typing
;
9371 fra
.me
.meth
= LOCATE_typing___ACallAssignExpr___compute_raw_arguments
;
9372 fra
.me
.has_broke
= 0;
9373 fra
.me
.REG_size
= 2;
9374 fra
.me
.REG
[0] = NIT_NULL
;
9375 fra
.me
.REG
[1] = NIT_NULL
;
9377 fra
.me
.REG
[1] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9378 fra
.me
.REG
[1] = CALL_array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9379 fra
.me
.REG
[0] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9380 /* ./syntax//typing.nit:1564 */
9381 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
9382 /* ./syntax//typing.nit:1565 */
9385 stack_frame_head
= fra
.me
.prev
;
9386 return fra
.me
.REG
[1];
9388 val_t
typing___ACallAssignExpr___name(val_t p0
){
9389 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9392 static val_t once_value_1
; /* Once value */
9393 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9394 fra
.me
.file
= LOCATE_typing
;
9396 fra
.me
.meth
= LOCATE_typing___ACallAssignExpr___name
;
9397 fra
.me
.has_broke
= 0;
9398 fra
.me
.REG_size
= 2;
9399 fra
.me
.REG
[0] = NIT_NULL
;
9400 fra
.me
.REG
[1] = NIT_NULL
;
9402 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9403 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9404 /* ./syntax//typing.nit:1561 */
9405 if (!once_value_1
) {
9406 fra
.me
.REG
[1] = BOX_NativeString("=");
9408 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
9409 once_value_1
= fra
.me
.REG
[1];
9410 register_static_object(&once_value_1
);
9411 } else fra
.me
.REG
[1] = once_value_1
;
9412 fra
.me
.REG
[1] = CALL_string___String_____plus(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
9413 fra
.me
.REG
[1] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9416 stack_frame_head
= fra
.me
.prev
;
9417 return fra
.me
.REG
[1];
9419 val_t
typing___ACallAssignExpr___variable_create(val_t p0
, val_t p1
){
9420 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
9422 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9423 fra
.me
.file
= LOCATE_typing
;
9425 fra
.me
.meth
= LOCATE_typing___ACallAssignExpr___variable_create
;
9426 fra
.me
.has_broke
= 0;
9427 fra
.me
.REG_size
= 3;
9428 fra
.me
.REG
[0] = NIT_NULL
;
9429 fra
.me
.REG
[1] = NIT_NULL
;
9430 fra
.me
.REG
[2] = NIT_NULL
;
9433 fra
.me
.REG
[1] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9434 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_assign(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9435 fra
.me
.REG
[0] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9436 fra
.me
.REG
[0] = NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
9437 /* ./syntax//typing.nit:1558 */
9440 stack_frame_head
= fra
.me
.prev
;
9441 return fra
.me
.REG
[0];
9443 val_t
typing___ACallReassignExpr___compute_raw_arguments(val_t p0
){
9444 struct {struct stack_frame_t me
;} fra
;
9446 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9447 fra
.me
.file
= LOCATE_typing
;
9449 fra
.me
.meth
= LOCATE_typing___ACallReassignExpr___compute_raw_arguments
;
9450 fra
.me
.has_broke
= 0;
9451 fra
.me
.REG_size
= 1;
9452 fra
.me
.REG
[0] = NIT_NULL
;
9454 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9455 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9456 /* ./syntax//typing.nit:1576 */
9459 stack_frame_head
= fra
.me
.prev
;
9460 return fra
.me
.REG
[0];
9462 val_t
typing___ACallReassignExpr___name(val_t p0
){
9463 struct {struct stack_frame_t me
;} fra
;
9465 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9466 fra
.me
.file
= LOCATE_typing
;
9468 fra
.me
.meth
= LOCATE_typing___ACallReassignExpr___name
;
9469 fra
.me
.has_broke
= 0;
9470 fra
.me
.REG_size
= 1;
9471 fra
.me
.REG
[0] = NIT_NULL
;
9473 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9474 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9475 /* ./syntax//typing.nit:1575 */
9478 stack_frame_head
= fra
.me
.prev
;
9479 return fra
.me
.REG
[0];
9481 val_t
typing___ACallReassignExpr___variable_create(val_t p0
, val_t p1
){
9482 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
9484 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9485 fra
.me
.file
= LOCATE_typing
;
9487 fra
.me
.meth
= LOCATE_typing___ACallReassignExpr___variable_create
;
9488 fra
.me
.has_broke
= 0;
9489 fra
.me
.REG_size
= 3;
9490 fra
.me
.REG
[0] = NIT_NULL
;
9491 fra
.me
.REG
[1] = NIT_NULL
;
9492 fra
.me
.REG
[2] = NIT_NULL
;
9495 fra
.me
.REG
[1] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9496 fra
.me
.REG
[2] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9497 fra
.me
.REG
[0] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9498 fra
.me
.REG
[0] = NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
9499 /* ./syntax//typing.nit:1572 */
9502 stack_frame_head
= fra
.me
.prev
;
9503 return fra
.me
.REG
[0];
9505 val_t
typing___ABraExpr___closure_defs(val_t p0
){
9506 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9509 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9510 fra
.me
.file
= LOCATE_typing
;
9512 fra
.me
.meth
= LOCATE_typing___ABraExpr___closure_defs
;
9513 fra
.me
.has_broke
= 0;
9514 fra
.me
.REG_size
= 2;
9515 fra
.me
.REG
[0] = NIT_NULL
;
9516 fra
.me
.REG
[1] = NIT_NULL
;
9518 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9519 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9520 /* ./syntax//typing.nit:1584 */
9521 if (UNTAG_Bool(REGB0
)) {
9522 fra
.me
.REG
[1] = NIT_NULL
;
9523 /* ./syntax//typing.nit:1585 */
9526 fra
.me
.REG
[0] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9527 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9528 fra
.me
.REG
[1] = fra
.me
.REG
[0];
9529 /* ./syntax//typing.nit:1587 */
9533 stack_frame_head
= fra
.me
.prev
;
9534 return fra
.me
.REG
[1];
9536 val_t
typing___ABraExpr___compute_raw_arguments(val_t p0
){
9537 struct {struct stack_frame_t me
;} fra
;
9539 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9540 fra
.me
.file
= LOCATE_typing
;
9542 fra
.me
.meth
= LOCATE_typing___ABraExpr___compute_raw_arguments
;
9543 fra
.me
.has_broke
= 0;
9544 fra
.me
.REG_size
= 1;
9545 fra
.me
.REG
[0] = NIT_NULL
;
9547 fra
.me
.REG
[0] = CALL_parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9548 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9549 /* ./syntax//typing.nit:1581 */
9552 stack_frame_head
= fra
.me
.prev
;
9553 return fra
.me
.REG
[0];
9555 val_t
typing___ABraExpr___name(val_t p0
){
9556 struct {struct stack_frame_t me
;} fra
;
9559 static val_t once_value_1
; /* Once value */
9560 static val_t once_value_2
; /* Once value */
9561 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9562 fra
.me
.file
= LOCATE_typing
;
9564 fra
.me
.meth
= LOCATE_typing___ABraExpr___name
;
9565 fra
.me
.has_broke
= 0;
9566 fra
.me
.REG_size
= 1;
9567 fra
.me
.REG
[0] = NIT_NULL
;
9569 /* ./syntax//typing.nit:1580 */
9570 if (!once_value_1
) {
9571 if (!once_value_2
) {
9572 fra
.me
.REG
[0] = BOX_NativeString("[]");
9574 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9575 once_value_2
= fra
.me
.REG
[0];
9576 register_static_object(&once_value_2
);
9577 } else fra
.me
.REG
[0] = once_value_2
;
9578 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9579 once_value_1
= fra
.me
.REG
[0];
9580 register_static_object(&once_value_1
);
9581 } else fra
.me
.REG
[0] = once_value_1
;
9584 stack_frame_head
= fra
.me
.prev
;
9585 return fra
.me
.REG
[0];
9587 val_t
typing___ABraAssignExpr___compute_raw_arguments(val_t p0
){
9588 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9590 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9591 fra
.me
.file
= LOCATE_typing
;
9593 fra
.me
.meth
= LOCATE_typing___ABraAssignExpr___compute_raw_arguments
;
9594 fra
.me
.has_broke
= 0;
9595 fra
.me
.REG_size
= 2;
9596 fra
.me
.REG
[0] = NIT_NULL
;
9597 fra
.me
.REG
[1] = NIT_NULL
;
9599 fra
.me
.REG
[1] = CALL_parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9600 fra
.me
.REG
[1] = CALL_array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9601 fra
.me
.REG
[0] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9602 /* ./syntax//typing.nit:1596 */
9603 array___Array___add(fra
.me
.REG
[1], fra
.me
.REG
[0]);
9604 /* ./syntax//typing.nit:1597 */
9607 stack_frame_head
= fra
.me
.prev
;
9608 return fra
.me
.REG
[1];
9610 val_t
typing___ABraAssignExpr___name(val_t p0
){
9611 struct {struct stack_frame_t me
;} fra
;
9614 static val_t once_value_1
; /* Once value */
9615 static val_t once_value_2
; /* Once value */
9616 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9617 fra
.me
.file
= LOCATE_typing
;
9619 fra
.me
.meth
= LOCATE_typing___ABraAssignExpr___name
;
9620 fra
.me
.has_broke
= 0;
9621 fra
.me
.REG_size
= 1;
9622 fra
.me
.REG
[0] = NIT_NULL
;
9624 /* ./syntax//typing.nit:1593 */
9625 if (!once_value_1
) {
9626 if (!once_value_2
) {
9627 fra
.me
.REG
[0] = BOX_NativeString("[]=");
9629 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9630 once_value_2
= fra
.me
.REG
[0];
9631 register_static_object(&once_value_2
);
9632 } else fra
.me
.REG
[0] = once_value_2
;
9633 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9634 once_value_1
= fra
.me
.REG
[0];
9635 register_static_object(&once_value_1
);
9636 } else fra
.me
.REG
[0] = once_value_1
;
9639 stack_frame_head
= fra
.me
.prev
;
9640 return fra
.me
.REG
[0];
9642 val_t
typing___ABraReassignExpr___compute_raw_arguments(val_t p0
){
9643 struct {struct stack_frame_t me
;} fra
;
9645 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9646 fra
.me
.file
= LOCATE_typing
;
9648 fra
.me
.meth
= LOCATE_typing___ABraReassignExpr___compute_raw_arguments
;
9649 fra
.me
.has_broke
= 0;
9650 fra
.me
.REG_size
= 1;
9651 fra
.me
.REG
[0] = NIT_NULL
;
9653 fra
.me
.REG
[0] = CALL_parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9654 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9655 /* ./syntax//typing.nit:1603 */
9658 stack_frame_head
= fra
.me
.prev
;
9659 return fra
.me
.REG
[0];
9661 val_t
typing___ABraReassignExpr___name(val_t p0
){
9662 struct {struct stack_frame_t me
;} fra
;
9665 static val_t once_value_1
; /* Once value */
9666 static val_t once_value_2
; /* Once value */
9667 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9668 fra
.me
.file
= LOCATE_typing
;
9670 fra
.me
.meth
= LOCATE_typing___ABraReassignExpr___name
;
9671 fra
.me
.has_broke
= 0;
9672 fra
.me
.REG_size
= 1;
9673 fra
.me
.REG
[0] = NIT_NULL
;
9675 /* ./syntax//typing.nit:1602 */
9676 if (!once_value_1
) {
9677 if (!once_value_2
) {
9678 fra
.me
.REG
[0] = BOX_NativeString("[]");
9680 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9681 once_value_2
= fra
.me
.REG
[0];
9682 register_static_object(&once_value_2
);
9683 } else fra
.me
.REG
[0] = once_value_2
;
9684 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9685 once_value_1
= fra
.me
.REG
[0];
9686 register_static_object(&once_value_1
);
9687 } else fra
.me
.REG
[0] = once_value_1
;
9690 stack_frame_head
= fra
.me
.prev
;
9691 return fra
.me
.REG
[0];
9693 val_t
typing___AInitExpr___compute_raw_arguments(val_t p0
){
9694 struct {struct stack_frame_t me
;} fra
;
9696 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9697 fra
.me
.file
= LOCATE_typing
;
9699 fra
.me
.meth
= LOCATE_typing___AInitExpr___compute_raw_arguments
;
9700 fra
.me
.has_broke
= 0;
9701 fra
.me
.REG_size
= 1;
9702 fra
.me
.REG
[0] = NIT_NULL
;
9704 fra
.me
.REG
[0] = CALL_parser_nodes___AInitExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9705 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9706 /* ./syntax//typing.nit:1608 */
9709 stack_frame_head
= fra
.me
.prev
;
9710 return fra
.me
.REG
[0];
9712 val_t
typing___AInitExpr___name(val_t p0
){
9713 struct {struct stack_frame_t me
;} fra
;
9716 static val_t once_value_1
; /* Once value */
9717 static val_t once_value_2
; /* Once value */
9718 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9719 fra
.me
.file
= LOCATE_typing
;
9721 fra
.me
.meth
= LOCATE_typing___AInitExpr___name
;
9722 fra
.me
.has_broke
= 0;
9723 fra
.me
.REG_size
= 1;
9724 fra
.me
.REG
[0] = NIT_NULL
;
9726 /* ./syntax//typing.nit:1607 */
9727 if (!once_value_1
) {
9728 if (!once_value_2
) {
9729 fra
.me
.REG
[0] = BOX_NativeString("init");
9731 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9732 once_value_2
= fra
.me
.REG
[0];
9733 register_static_object(&once_value_2
);
9734 } else fra
.me
.REG
[0] = once_value_2
;
9735 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9736 once_value_1
= fra
.me
.REG
[0];
9737 register_static_object(&once_value_1
);
9738 } else fra
.me
.REG
[0] = once_value_1
;
9741 stack_frame_head
= fra
.me
.prev
;
9742 return fra
.me
.REG
[0];
9744 val_t
typing___AClosureCallExpr___variable(val_t p0
){
9745 struct {struct stack_frame_t me
;} fra
;
9748 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9749 fra
.me
.file
= LOCATE_typing
;
9751 fra
.me
.meth
= LOCATE_typing___AClosureCallExpr___variable
;
9752 fra
.me
.has_broke
= 0;
9753 fra
.me
.REG_size
= 1;
9754 fra
.me
.REG
[0] = NIT_NULL
;
9756 fra
.me
.REG
[0] = ATTR_typing___AClosureCallExpr____variable(fra
.me
.REG
[0]);
9757 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
9758 /* ./syntax//typing.nit:1613 */
9759 if (UNTAG_Bool(REGB0
)) {
9761 fprintf(stderr
, "Cast failed");
9762 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1613);
9767 stack_frame_head
= fra
.me
.prev
;
9768 return fra
.me
.REG
[0];
9770 void typing___AClosureCallExpr___after_typing(val_t p0
, val_t p1
){
9771 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
9775 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9776 fra
.me
.file
= LOCATE_typing
;
9778 fra
.me
.meth
= LOCATE_typing___AClosureCallExpr___after_typing
;
9779 fra
.me
.has_broke
= 0;
9780 fra
.me
.REG_size
= 5;
9781 fra
.me
.REG
[0] = NIT_NULL
;
9782 fra
.me
.REG
[1] = NIT_NULL
;
9783 fra
.me
.REG
[2] = NIT_NULL
;
9784 fra
.me
.REG
[3] = NIT_NULL
;
9785 fra
.me
.REG
[4] = NIT_NULL
;
9788 fra
.me
.REG
[2] = CALL_syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9789 fra
.me
.REG
[3] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9790 REGB0
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9791 /* ./syntax//typing.nit:1619 */
9792 if (UNTAG_Bool(REGB0
)) {
9793 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9794 REGB0
= TAG_Bool(true);
9795 CALL_control_flow___VariableContext___unreash__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
9797 fra
.me
.REG
[2] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9798 fra
.me
.REG
[2] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9799 fra
.me
.REG
[3] = CALL_parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9800 fra
.me
.REG
[3] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9801 fra
.me
.REG
[4] = CALL_typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9802 REGB0
= CALL_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]);
9803 fra
.me
.REG
[4] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9804 REGB1
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9805 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9806 /* ./syntax//typing.nit:1622 */
9807 if (UNTAG_Bool(REGB1
)) {
9808 fra
.me
.REG
[4] = CALL_parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9809 fra
.me
.REG
[4] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9810 fra
.me
.REG
[3] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9811 fra
.me
.REG
[3] = CALL_array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9812 /* ./syntax//typing.nit:1623 */
9813 CALL_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]);
9815 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9816 /* ./syntax//typing.nit:1625 */
9817 if (UNTAG_Bool(REGB0
)) {
9820 /* ./syntax//typing.nit:1626 */
9821 ATTR_typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9822 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9823 /* ./syntax//typing.nit:1627 */
9824 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9825 REGB0
= TAG_Bool(true);
9826 /* ./syntax//typing.nit:1628 */
9827 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
9829 stack_frame_head
= fra
.me
.prev
;
9832 val_t
typing___AClosureCallExpr___compute_raw_arguments(val_t p0
){
9833 struct {struct stack_frame_t me
;} fra
;
9835 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9836 fra
.me
.file
= LOCATE_typing
;
9838 fra
.me
.meth
= LOCATE_typing___AClosureCallExpr___compute_raw_arguments
;
9839 fra
.me
.has_broke
= 0;
9840 fra
.me
.REG_size
= 1;
9841 fra
.me
.REG
[0] = NIT_NULL
;
9843 fra
.me
.REG
[0] = CALL_parser_nodes___AClosureCallExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9844 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9845 /* ./syntax//typing.nit:1614 */
9848 stack_frame_head
= fra
.me
.prev
;
9849 return fra
.me
.REG
[0];
9851 val_t
typing___AClosureId___to_symbol(val_t p0
){
9852 struct {struct stack_frame_t me
;} fra
;
9854 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9855 fra
.me
.file
= LOCATE_typing
;
9857 fra
.me
.meth
= LOCATE_typing___AClosureId___to_symbol
;
9858 fra
.me
.has_broke
= 0;
9859 fra
.me
.REG_size
= 0;
9860 /* ./syntax//typing.nit:1633 */
9861 fprintf(stderr
, "Deferred method called");
9862 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1633);
9864 stack_frame_head
= fra
.me
.prev
;
9867 val_t
typing___ASimpleClosureId___to_symbol(val_t p0
){
9868 struct {struct stack_frame_t me
;} fra
;
9870 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9871 fra
.me
.file
= LOCATE_typing
;
9873 fra
.me
.meth
= LOCATE_typing___ASimpleClosureId___to_symbol
;
9874 fra
.me
.has_broke
= 0;
9875 fra
.me
.REG_size
= 1;
9876 fra
.me
.REG
[0] = NIT_NULL
;
9878 fra
.me
.REG
[0] = CALL_parser_nodes___ASimpleClosureId___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9879 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9880 /* ./syntax//typing.nit:1636 */
9883 stack_frame_head
= fra
.me
.prev
;
9884 return fra
.me
.REG
[0];
9886 val_t
typing___ABreakClosureId___to_symbol(val_t p0
){
9887 struct {struct stack_frame_t me
;} fra
;
9889 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9890 fra
.me
.file
= LOCATE_typing
;
9892 fra
.me
.meth
= LOCATE_typing___ABreakClosureId___to_symbol
;
9893 fra
.me
.has_broke
= 0;
9894 fra
.me
.REG_size
= 1;
9895 fra
.me
.REG
[0] = NIT_NULL
;
9897 fra
.me
.REG
[0] = CALL_parser_nodes___ABreakClosureId___n_kwbreak(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9898 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9899 /* ./syntax//typing.nit:1639 */
9902 stack_frame_head
= fra
.me
.prev
;
9903 return fra
.me
.REG
[0];
9905 val_t
typing___AClosureDef___closure(val_t p0
){
9906 struct {struct stack_frame_t me
;} fra
;
9909 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9910 fra
.me
.file
= LOCATE_typing
;
9912 fra
.me
.meth
= LOCATE_typing___AClosureDef___closure
;
9913 fra
.me
.has_broke
= 0;
9914 fra
.me
.REG_size
= 1;
9915 fra
.me
.REG
[0] = NIT_NULL
;
9917 fra
.me
.REG
[0] = ATTR_typing___AClosureDef____closure(fra
.me
.REG
[0]);
9918 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
9919 /* ./syntax//typing.nit:1644 */
9920 if (UNTAG_Bool(REGB0
)) {
9922 fprintf(stderr
, "Cast failed");
9923 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1644);
9928 stack_frame_head
= fra
.me
.prev
;
9929 return fra
.me
.REG
[0];
9931 void typing___AClosureDef___accept_typing(val_t p0
, val_t p1
){
9932 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
9935 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9936 fra
.me
.file
= LOCATE_typing
;
9938 fra
.me
.meth
= LOCATE_typing___AClosureDef___accept_typing
;
9939 fra
.me
.has_broke
= 0;
9940 fra
.me
.REG_size
= 3;
9941 fra
.me
.REG
[0] = NIT_NULL
;
9942 fra
.me
.REG
[1] = NIT_NULL
;
9943 fra
.me
.REG
[2] = NIT_NULL
;
9946 fra
.me
.REG
[2] = fra
.me
.REG
[0];
9947 REGB0
= TAG_Bool(ATTR_typing___AClosureDef____accept_typing2(fra
.me
.REG
[2])!=NIT_NULL
);
9948 /* ./syntax//typing.nit:1653 */
9949 if (UNTAG_Bool(REGB0
)) {
9951 fprintf(stderr
, "Uninitialized attribute %s", "_accept_typing2");
9952 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1653);
9955 REGB0
= ATTR_typing___AClosureDef____accept_typing2(fra
.me
.REG
[2]);
9956 if (UNTAG_Bool(REGB0
)) {
9957 CALL_SUPER_typing___AClosureDef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
9959 stack_frame_head
= fra
.me
.prev
;
9962 val_t
typing___AClosureDef___escapable(val_t p0
){
9963 struct {struct stack_frame_t me
;} fra
;
9965 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9966 fra
.me
.file
= LOCATE_typing
;
9968 fra
.me
.meth
= LOCATE_typing___AClosureDef___escapable
;
9969 fra
.me
.has_broke
= 0;
9970 fra
.me
.REG_size
= 1;
9971 fra
.me
.REG
[0] = NIT_NULL
;
9973 fra
.me
.REG
[0] = ATTR_typing___AClosureDef____escapable(fra
.me
.REG
[0]);
9974 /* ./syntax//typing.nit:1646 */
9975 stack_frame_head
= fra
.me
.prev
;
9976 return fra
.me
.REG
[0];
9978 void typing___AClosureDef___accept_typing2(val_t p0
, val_t p1
, val_t p2
){
9979 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
9984 static val_t once_value_1
; /* Once value */
9985 static val_t once_value_2
; /* Once value */
9986 static val_t once_value_3
; /* Once value */
9987 static val_t once_value_6
; /* Once value */
9988 static val_t once_value_7
; /* Once value */
9989 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9990 fra
.me
.file
= LOCATE_typing
;
9992 fra
.me
.meth
= LOCATE_typing___AClosureDef___accept_typing2
;
9993 fra
.me
.has_broke
= 0;
9994 fra
.me
.REG_size
= 9;
9995 fra
.me
.REG
[0] = NIT_NULL
;
9996 fra
.me
.REG
[1] = NIT_NULL
;
9997 fra
.me
.REG
[2] = NIT_NULL
;
9998 fra
.me
.REG
[3] = NIT_NULL
;
9999 fra
.me
.REG
[4] = NIT_NULL
;
10000 fra
.me
.REG
[5] = NIT_NULL
;
10001 fra
.me
.REG
[6] = NIT_NULL
;
10002 fra
.me
.REG
[7] = NIT_NULL
;
10003 fra
.me
.REG
[8] = NIT_NULL
;
10004 fra
.me
.REG
[0] = p0
;
10005 fra
.me
.REG
[1] = p1
;
10006 fra
.me
.REG
[2] = p2
;
10007 /* ./syntax//typing.nit:1658 */
10008 ATTR_typing___AClosureDef____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10009 fra
.me
.REG
[3] = CALL_escape___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10010 fra
.me
.REG
[3] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10011 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10012 fra
.me
.REG
[4] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10013 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10014 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
10015 /* ./syntax//typing.nit:1661 */
10016 if (UNTAG_Bool(REGB2
)) {
10018 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
10020 /* ./syntax//typing.nit:1661 */
10022 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
10023 if (UNTAG_Bool(REGB2
)) {
10024 REGB2
= TAG_Int(5);
10025 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB2
);
10026 /* ./syntax//typing.nit:1662 */
10027 if (!once_value_1
) {
10028 fra
.me
.REG
[5] = BOX_NativeString("Error: ");
10029 REGB2
= TAG_Int(7);
10030 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
10031 once_value_1
= fra
.me
.REG
[5];
10032 register_static_object(&once_value_1
);
10033 } else fra
.me
.REG
[5] = once_value_1
;
10034 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10035 REGB2
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10036 fra
.me
.REG
[5] = CALL_string___Object___to_s(REGB2
)(REGB2
);
10037 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10038 if (!once_value_2
) {
10039 fra
.me
.REG
[5] = BOX_NativeString(" automatic variable names expected, ");
10040 REGB2
= TAG_Int(36);
10041 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
10042 once_value_2
= fra
.me
.REG
[5];
10043 register_static_object(&once_value_2
);
10044 } else fra
.me
.REG
[5] = once_value_2
;
10045 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10046 fra
.me
.REG
[5] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10047 REGB2
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10048 fra
.me
.REG
[5] = CALL_string___Object___to_s(REGB2
)(REGB2
);
10049 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10050 if (!once_value_3
) {
10051 fra
.me
.REG
[5] = BOX_NativeString(" found.");
10052 REGB2
= TAG_Int(7);
10053 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
10054 once_value_3
= fra
.me
.REG
[5];
10055 register_static_object(&once_value_3
);
10056 } else fra
.me
.REG
[5] = once_value_3
;
10057 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10058 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10059 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
10060 /* ./syntax//typing.nit:1663 */
10063 fra
.me
.REG
[4] = CALL_escape___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10064 /* ./syntax//typing.nit:1666 */
10065 ATTR_typing___AClosureDef____closure(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
10066 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10067 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___base_variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10068 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10069 /* ./syntax//typing.nit:1670 */
10070 CALL_typing___TypingVisitor___base_variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
10071 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10072 fra
.me
.REG
[6] = CALL_control_flow___VariableContext___sub(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
10073 /* ./syntax//typing.nit:1671 */
10074 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
10075 fra
.me
.REG
[6] = NEW_Array_array___Array___init();
10076 /* ./syntax//typing.nit:1672 */
10077 CALL_syntax_base___AClosureDef___variables__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
10078 REGB2
= TAG_Int(0);
10079 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10080 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10081 fra
.me
.REG
[6] = NEW_Range_range___Range___without_last(REGB2
, REGB1
);
10082 fra
.me
.REG
[6] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10083 /* ./syntax//typing.nit:1673 */
10085 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10086 if (UNTAG_Bool(REGB1
)) {
10087 REGB1
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10088 fra
.me
.REG
[7] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10089 fra
.me
.REG
[7] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB1
);
10090 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
10091 /* ./syntax//typing.nit:1674 */
10092 if (UNTAG_Bool(REGB2
)) {
10093 fprintf(stderr
, "Reciever is null");
10094 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1674);
10097 fra
.me
.REG
[7] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10098 fra
.me
.REG
[8] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10099 fra
.me
.REG
[8] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[8])(fra
.me
.REG
[8], REGB1
);
10100 fra
.me
.REG
[8] = NEW_AutoVariable_syntax_base___AutoVariable___init(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10101 fra
.me
.REG
[7] = CALL_syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10102 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
10103 /* ./syntax//typing.nit:1675 */
10104 if (UNTAG_Bool(REGB2
)) {
10105 fprintf(stderr
, "Reciever is null");
10106 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1675);
10109 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10110 fra
.me
.REG
[7] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
10111 /* ./syntax//typing.nit:1676 */
10112 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
10113 fra
.me
.REG
[7] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10114 /* ./syntax//typing.nit:1677 */
10115 CALL_control_flow___VariableContext___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10117 /* ./syntax//typing.nit:1673 */
10120 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10123 REGB1
= TAG_Bool(true);
10124 /* ./syntax//typing.nit:1680 */
10125 ATTR_typing___AClosureDef____accept_typing2(fra
.me
.REG
[0]) = REGB1
;
10126 /* ./syntax//typing.nit:1681 */
10127 CALL_typing___ANode___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10128 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10129 REGB1
= CALL_control_flow___VariableContext___unreash(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10130 REGB2
= TAG_Bool(false);
10131 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
10132 /* ./syntax//typing.nit:1683 */
10133 if (UNTAG_Bool(REGB0
)) {
10135 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
10137 /* ./syntax//typing.nit:1683 */
10139 if (UNTAG_Bool(REGB0
)) {
10140 fra
.me
.REG
[6] = CALL_syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10141 fra
.me
.REG
[6] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10142 fra
.me
.REG
[6] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10143 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10144 /* ./syntax//typing.nit:1684 */
10145 if (UNTAG_Bool(REGB0
)) {
10147 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10148 if (UNTAG_Bool(REGB2
)) {
10149 REGB2
= TAG_Bool(false);
10152 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
10156 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10157 if (UNTAG_Bool(REGB0
)) {
10158 /* ./syntax//typing.nit:1685 */
10159 if (!once_value_6
) {
10160 fra
.me
.REG
[6] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
10161 REGB0
= TAG_Int(77);
10162 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
10163 once_value_6
= fra
.me
.REG
[6];
10164 register_static_object(&once_value_6
);
10165 } else fra
.me
.REG
[6] = once_value_6
;
10166 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
10168 fra
.me
.REG
[6] = CALL_syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10169 REGB0
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10170 /* ./syntax//typing.nit:1686 */
10171 if (UNTAG_Bool(REGB0
)) {
10172 fra
.me
.REG
[2] = CALL_escape___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10173 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
10174 if (UNTAG_Bool(REGB0
)) {
10176 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
10177 if (UNTAG_Bool(REGB2
)) {
10178 REGB2
= TAG_Bool(false);
10181 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
10185 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10187 REGB2
= TAG_Bool(false);
10190 if (UNTAG_Bool(REGB0
)) {
10191 /* ./syntax//typing.nit:1687 */
10192 if (!once_value_7
) {
10193 fra
.me
.REG
[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
10194 REGB0
= TAG_Int(80);
10195 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
10196 once_value_7
= fra
.me
.REG
[2];
10197 register_static_object(&once_value_7
);
10198 } else fra
.me
.REG
[2] = once_value_7
;
10199 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
10203 /* ./syntax//typing.nit:1690 */
10204 CALL_typing___TypingVisitor___variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
10205 /* ./syntax//typing.nit:1691 */
10206 CALL_typing___TypingVisitor___base_variable_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
10208 stack_frame_head
= fra
.me
.prev
;
10211 void typing___ATypeCheckExpr___check_expr_cast(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
10212 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
10216 static val_t once_value_2
; /* Once value */
10217 static val_t once_value_3
; /* Once value */
10218 static val_t once_value_4
; /* Once value */
10219 static val_t once_value_5
; /* Once value */
10220 static val_t once_value_6
; /* Once value */
10221 static val_t once_value_7
; /* Once value */
10222 static val_t once_value_8
; /* Once value */
10223 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10224 fra
.me
.file
= LOCATE_typing
;
10225 fra
.me
.line
= 1697;
10226 fra
.me
.meth
= LOCATE_typing___ATypeCheckExpr___check_expr_cast
;
10227 fra
.me
.has_broke
= 0;
10228 fra
.me
.REG_size
= 6;
10229 fra
.me
.REG
[0] = NIT_NULL
;
10230 fra
.me
.REG
[1] = NIT_NULL
;
10231 fra
.me
.REG
[2] = NIT_NULL
;
10232 fra
.me
.REG
[3] = NIT_NULL
;
10233 fra
.me
.REG
[4] = NIT_NULL
;
10234 fra
.me
.REG
[5] = NIT_NULL
;
10235 fra
.me
.REG
[0] = p0
;
10236 fra
.me
.REG
[1] = p1
;
10237 fra
.me
.REG
[2] = p2
;
10238 fra
.me
.REG
[3] = p3
;
10239 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
10240 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10241 /* ./syntax//typing.nit:1699 */
10242 if (UNTAG_Bool(REGB0
)) {
10245 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10246 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10247 /* ./syntax//typing.nit:1700 */
10248 if (UNTAG_Bool(REGB0
)) {
10251 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10252 fra
.me
.REG
[3] = CALL_syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10253 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
10254 /* ./syntax//typing.nit:1703 */
10255 if (UNTAG_Bool(REGB0
)) {
10257 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
10260 if (UNTAG_Bool(REGB0
)) {
10261 REGB0
= TAG_Int(3);
10262 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
10263 /* ./syntax//typing.nit:1704 */
10264 if (!once_value_2
) {
10265 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
10266 REGB0
= TAG_Int(33);
10267 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
10268 once_value_2
= fra
.me
.REG
[5];
10269 register_static_object(&once_value_2
);
10270 } else fra
.me
.REG
[5] = once_value_2
;
10271 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10272 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10273 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10274 if (!once_value_3
) {
10275 fra
.me
.REG
[5] = BOX_NativeString(".");
10276 REGB0
= TAG_Int(1);
10277 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
10278 once_value_3
= fra
.me
.REG
[5];
10279 register_static_object(&once_value_3
);
10280 } else fra
.me
.REG
[5] = once_value_3
;
10281 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10282 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10283 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
10285 REGB0
= CALL_static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
10286 /* ./syntax//typing.nit:1705 */
10287 if (UNTAG_Bool(REGB0
)) {
10288 REGB0
= TAG_Int(5);
10289 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
10290 /* ./syntax//typing.nit:1706 */
10291 if (!once_value_4
) {
10292 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
10293 REGB0
= TAG_Int(33);
10294 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
10295 once_value_4
= fra
.me
.REG
[5];
10296 register_static_object(&once_value_4
);
10297 } else fra
.me
.REG
[5] = once_value_4
;
10298 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10299 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10300 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10301 if (!once_value_5
) {
10302 fra
.me
.REG
[5] = BOX_NativeString(" since it is a ");
10303 REGB0
= TAG_Int(15);
10304 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
10305 once_value_5
= fra
.me
.REG
[5];
10306 register_static_object(&once_value_5
);
10307 } else fra
.me
.REG
[5] = once_value_5
;
10308 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10309 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10310 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10311 if (!once_value_6
) {
10312 fra
.me
.REG
[5] = BOX_NativeString(".");
10313 REGB0
= TAG_Int(1);
10314 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
10315 once_value_6
= fra
.me
.REG
[5];
10316 register_static_object(&once_value_6
);
10317 } else fra
.me
.REG
[5] = once_value_6
;
10318 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10319 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10320 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
10322 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10323 /* ./syntax//typing.nit:1707 */
10324 if (UNTAG_Bool(REGB0
)) {
10325 fra
.me
.REG
[2] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10326 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
10327 if (UNTAG_Bool(REGB0
)) {
10329 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
10333 REGB1
= TAG_Bool(false);
10336 if (UNTAG_Bool(REGB0
)) {
10337 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_MMTypeFormal
, ID_MMTypeFormal
)) /*cast MMTypeFormal*/;
10338 /* ./syntax//typing.nit:1708 */
10339 if (UNTAG_Bool(REGB0
)) {
10340 fra
.me
.REG
[3] = CALL_type_formal___MMTypeFormal___bound(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10341 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10343 REGB1
= TAG_Bool(false);
10346 if (UNTAG_Bool(REGB0
)) {
10348 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_AIsaExpr
, ID_AIsaExpr
)) /*cast AIsaExpr*/;
10349 /* ./syntax//typing.nit:1714 */
10350 if (UNTAG_Bool(REGB0
)) {
10351 /* ./syntax//typing.nit:1715 */
10352 if (!once_value_7
) {
10353 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '!= null'.");
10354 REGB0
= TAG_Int(26);
10355 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
10356 once_value_7
= fra
.me
.REG
[3];
10357 register_static_object(&once_value_7
);
10358 } else fra
.me
.REG
[3] = once_value_7
;
10359 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10361 /* ./syntax//typing.nit:1717 */
10362 if (!once_value_8
) {
10363 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
10364 REGB0
= TAG_Int(32);
10365 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
10366 once_value_8
= fra
.me
.REG
[3];
10367 register_static_object(&once_value_8
);
10368 } else fra
.me
.REG
[3] = once_value_8
;
10369 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10376 stack_frame_head
= fra
.me
.prev
;
10379 void typing___AIsaExpr___after_typing(val_t p0
, val_t p1
){
10380 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10384 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10385 fra
.me
.file
= LOCATE_typing
;
10386 fra
.me
.line
= 1725;
10387 fra
.me
.meth
= LOCATE_typing___AIsaExpr___after_typing
;
10388 fra
.me
.has_broke
= 0;
10389 fra
.me
.REG_size
= 5;
10390 fra
.me
.REG
[0] = NIT_NULL
;
10391 fra
.me
.REG
[1] = NIT_NULL
;
10392 fra
.me
.REG
[2] = NIT_NULL
;
10393 fra
.me
.REG
[3] = NIT_NULL
;
10394 fra
.me
.REG
[4] = NIT_NULL
;
10395 fra
.me
.REG
[0] = p0
;
10396 fra
.me
.REG
[1] = p1
;
10397 fra
.me
.REG
[2] = CALL_parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10398 fra
.me
.REG
[3] = CALL_parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10399 /* ./syntax//typing.nit:1727 */
10400 CALL_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]);
10401 fra
.me
.REG
[3] = CALL_parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10402 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10403 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10404 /* ./syntax//typing.nit:1728 */
10405 if (UNTAG_Bool(REGB0
)) {
10408 fra
.me
.REG
[3] = CALL_parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10409 fra
.me
.REG
[3] = CALL_typing___AExpr___its_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10410 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10411 /* ./syntax//typing.nit:1730 */
10412 if (UNTAG_Bool(REGB0
)) {
10414 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10415 if (UNTAG_Bool(REGB1
)) {
10416 REGB1
= TAG_Bool(false);
10419 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10423 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10424 if (UNTAG_Bool(REGB0
)) {
10425 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___variable_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10426 fra
.me
.REG
[4] = CALL_parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10427 fra
.me
.REG
[4] = CALL_syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10428 fra
.me
.REG
[4] = CALL_control_flow___VariableContext___sub_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[4]);
10429 /* ./syntax//typing.nit:1731 */
10430 ATTR_typing___AExpr____if_true_variable_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
10432 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10433 /* ./syntax//typing.nit:1733 */
10434 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
10435 REGB0
= TAG_Bool(true);
10436 /* ./syntax//typing.nit:1734 */
10437 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
10439 stack_frame_head
= fra
.me
.prev
;
10442 void typing___AAsCastExpr___after_typing(val_t p0
, val_t p1
){
10443 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
10447 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10448 fra
.me
.file
= LOCATE_typing
;
10449 fra
.me
.line
= 1740;
10450 fra
.me
.meth
= LOCATE_typing___AAsCastExpr___after_typing
;
10451 fra
.me
.has_broke
= 0;
10452 fra
.me
.REG_size
= 4;
10453 fra
.me
.REG
[0] = NIT_NULL
;
10454 fra
.me
.REG
[1] = NIT_NULL
;
10455 fra
.me
.REG
[2] = NIT_NULL
;
10456 fra
.me
.REG
[3] = NIT_NULL
;
10457 fra
.me
.REG
[0] = p0
;
10458 fra
.me
.REG
[1] = p1
;
10459 fra
.me
.REG
[2] = CALL_parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10460 fra
.me
.REG
[3] = CALL_parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10461 /* ./syntax//typing.nit:1742 */
10462 CALL_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]);
10463 fra
.me
.REG
[3] = CALL_parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10464 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10465 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10466 /* ./syntax//typing.nit:1743 */
10467 if (UNTAG_Bool(REGB0
)) {
10470 fra
.me
.REG
[3] = CALL_parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10471 fra
.me
.REG
[3] = CALL_syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10472 /* ./syntax//typing.nit:1744 */
10473 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
10474 fra
.me
.REG
[3] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
10475 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10476 /* ./syntax//typing.nit:1745 */
10477 if (UNTAG_Bool(REGB0
)) {
10479 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10480 if (UNTAG_Bool(REGB1
)) {
10481 REGB1
= TAG_Bool(false);
10484 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10488 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10489 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
10491 stack_frame_head
= fra
.me
.prev
;
10494 void typing___AAsNotnullExpr___after_typing(val_t p0
, val_t p1
){
10495 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10498 static val_t once_value_2
; /* Once value */
10499 static val_t once_value_3
; /* Once value */
10500 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10501 fra
.me
.file
= LOCATE_typing
;
10502 fra
.me
.line
= 1750;
10503 fra
.me
.meth
= LOCATE_typing___AAsNotnullExpr___after_typing
;
10504 fra
.me
.has_broke
= 0;
10505 fra
.me
.REG_size
= 5;
10506 fra
.me
.REG
[0] = NIT_NULL
;
10507 fra
.me
.REG
[1] = NIT_NULL
;
10508 fra
.me
.REG
[2] = NIT_NULL
;
10509 fra
.me
.REG
[3] = NIT_NULL
;
10510 fra
.me
.REG
[4] = NIT_NULL
;
10511 fra
.me
.REG
[0] = p0
;
10512 fra
.me
.REG
[1] = p1
;
10513 fra
.me
.REG
[2] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10514 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
10515 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10516 /* ./syntax//typing.nit:1752 */
10517 if (UNTAG_Bool(REGB0
)) {
10520 fra
.me
.REG
[2] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10521 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10522 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
10523 /* ./syntax//typing.nit:1754 */
10524 if (UNTAG_Bool(REGB0
)) {
10525 fra
.me
.REG
[3] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10526 /* ./syntax//typing.nit:1755 */
10527 if (!once_value_2
) {
10528 fra
.me
.REG
[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
10529 REGB0
= TAG_Int(43);
10530 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
10531 once_value_2
= fra
.me
.REG
[4];
10532 register_static_object(&once_value_2
);
10533 } else fra
.me
.REG
[4] = once_value_2
;
10534 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
10535 /* ./syntax//typing.nit:1756 */
10538 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10539 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10540 /* ./syntax//typing.nit:1757 */
10541 if (UNTAG_Bool(REGB0
)) {
10542 fra
.me
.REG
[2] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10543 /* ./syntax//typing.nit:1758 */
10544 if (!once_value_3
) {
10545 fra
.me
.REG
[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
10546 REGB0
= TAG_Int(45);
10547 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
10548 once_value_3
= fra
.me
.REG
[4];
10549 register_static_object(&once_value_3
);
10550 } else fra
.me
.REG
[4] = once_value_3
;
10551 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10554 fra
.me
.REG
[4] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10555 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10556 fra
.me
.REG
[4] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10557 /* ./syntax//typing.nit:1760 */
10558 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
10559 REGB0
= TAG_Bool(true);
10560 /* ./syntax//typing.nit:1761 */
10561 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
10563 stack_frame_head
= fra
.me
.prev
;
10566 void typing___AProxyExpr___after_typing(val_t p0
, val_t p1
){
10567 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10570 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10571 fra
.me
.file
= LOCATE_typing
;
10572 fra
.me
.line
= 1766;
10573 fra
.me
.meth
= LOCATE_typing___AProxyExpr___after_typing
;
10574 fra
.me
.has_broke
= 0;
10575 fra
.me
.REG_size
= 2;
10576 fra
.me
.REG
[0] = NIT_NULL
;
10577 fra
.me
.REG
[1] = NIT_NULL
;
10578 fra
.me
.REG
[0] = p0
;
10579 fra
.me
.REG
[1] = p1
;
10580 fra
.me
.REG
[1] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10581 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10582 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10583 /* ./syntax//typing.nit:1768 */
10584 if (UNTAG_Bool(REGB0
)) {
10587 REGB0
= TAG_Bool(true);
10588 /* ./syntax//typing.nit:1769 */
10589 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
10590 fra
.me
.REG
[1] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10591 REGB0
= CALL_syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10592 /* ./syntax//typing.nit:1770 */
10593 if (UNTAG_Bool(REGB0
)) {
10596 fra
.me
.REG
[1] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10597 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10598 /* ./syntax//typing.nit:1771 */
10599 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
10601 stack_frame_head
= fra
.me
.prev
;
10604 void typing___AOnceExpr___accept_typing(val_t p0
, val_t p1
){
10605 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10609 static val_t once_value_1
; /* Once value */
10610 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10611 fra
.me
.file
= LOCATE_typing
;
10612 fra
.me
.line
= 1776;
10613 fra
.me
.meth
= LOCATE_typing___AOnceExpr___accept_typing
;
10614 fra
.me
.has_broke
= 0;
10615 fra
.me
.REG_size
= 5;
10616 fra
.me
.REG
[0] = NIT_NULL
;
10617 fra
.me
.REG
[1] = NIT_NULL
;
10618 fra
.me
.REG
[2] = NIT_NULL
;
10619 fra
.me
.REG
[3] = NIT_NULL
;
10620 fra
.me
.REG
[4] = NIT_NULL
;
10621 fra
.me
.REG
[0] = p0
;
10622 fra
.me
.REG
[1] = p1
;
10623 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10624 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10625 REGB0
= CALL_typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10626 REGB1
= TAG_Int(0);
10627 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
10628 /* ./syntax//typing.nit:1778 */
10629 if (UNTAG_Bool(REGB1
)) {
10630 /* ./syntax//typing.nit:1779 */
10631 if (!once_value_1
) {
10632 fra
.me
.REG
[4] = BOX_NativeString("Useless once in a once expression.");
10633 REGB1
= TAG_Int(34);
10634 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
10635 once_value_1
= fra
.me
.REG
[4];
10636 register_static_object(&once_value_1
);
10637 } else fra
.me
.REG
[4] = once_value_1
;
10638 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10640 REGB1
= CALL_typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10641 REGB0
= TAG_Int(1);
10642 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
10643 /* ./syntax//typing.nit:1781 */
10644 CALL_typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
10645 /* ./syntax//typing.nit:1783 */
10646 CALL_SUPER_typing___AOnceExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10647 REGB0
= CALL_typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10648 REGB1
= TAG_Int(1);
10649 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
10650 /* ./syntax//typing.nit:1785 */
10651 CALL_typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
10652 stack_frame_head
= fra
.me
.prev
;