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 /* ./syntax//typing.nit:29 */
17 fra
.me
.REG
[1] = NEW_TypingVisitor_typing___TypingVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
18 /* ./syntax//typing.nit:30 */
19 fra
.me
.REG
[0] = CALL_syntax_base___MMSrcModule___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
20 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
21 stack_frame_head
= fra
.me
.prev
;
24 void typing___TypingVisitor___visit(val_t p0
, val_t p1
){
25 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
29 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
30 fra
.me
.file
= LOCATE_typing
;
32 fra
.me
.meth
= LOCATE_typing___TypingVisitor___visit
;
35 fra
.me
.REG
[0] = NIT_NULL
;
36 fra
.me
.REG
[1] = NIT_NULL
;
39 /* ./syntax//typing.nit:43 */
40 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
41 if (UNTAG_Bool(REGB0
)) {
43 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
44 if (UNTAG_Bool(REGB1
)) {
45 REGB1
= TAG_Bool(false);
48 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
52 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
53 if (UNTAG_Bool(REGB0
)) {
54 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
55 if (UNTAG_Bool(REGB0
)) {
56 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 43);
58 CALL_typing___ANode___accept_typing(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
60 stack_frame_head
= fra
.me
.prev
;
63 val_t
typing___TypingVisitor___scope_ctx(val_t p0
){
64 struct {struct stack_frame_t me
;} fra
;
67 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
68 fra
.me
.file
= LOCATE_typing
;
70 fra
.me
.meth
= LOCATE_typing___TypingVisitor___scope_ctx
;
73 fra
.me
.REG
[0] = NIT_NULL
;
75 /* ./syntax//typing.nit:46 */
76 REGB0
= TAG_Bool(ATTR_typing___TypingVisitor____scope_ctx(fra
.me
.REG
[0])!=NIT_NULL
);
77 if (UNTAG_Bool(REGB0
)) {
79 nit_abort("Uninitialized attribute %s", "_scope_ctx", LOCATE_typing
, 46);
81 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____scope_ctx(fra
.me
.REG
[0]);
82 stack_frame_head
= fra
.me
.prev
;
85 val_t
typing___TypingVisitor___flow_ctx(val_t p0
){
86 struct {struct stack_frame_t me
;} fra
;
89 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
90 fra
.me
.file
= LOCATE_typing
;
92 fra
.me
.meth
= LOCATE_typing___TypingVisitor___flow_ctx
;
95 fra
.me
.REG
[0] = NIT_NULL
;
97 /* ./syntax//typing.nit:50 */
98 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____flow_ctx(fra
.me
.REG
[0]);
99 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
100 if (UNTAG_Bool(REGB0
)) {
102 nit_abort("Cast failed", NULL
, LOCATE_typing
, 50);
106 stack_frame_head
= fra
.me
.prev
;
107 return fra
.me
.REG
[0];
109 void typing___TypingVisitor___flow_ctx__eq(val_t p0
, val_t p1
){
110 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} 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___flow_ctx__eq
;
116 fra
.me
.has_broke
= 0;
118 fra
.me
.REG
[0] = NIT_NULL
;
119 fra
.me
.REG
[1] = NIT_NULL
;
122 /* ./syntax//typing.nit:51 */
123 ATTR_typing___TypingVisitor____flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
124 stack_frame_head
= fra
.me
.prev
;
127 void typing___TypingVisitor___mark_is_set(val_t p0
, val_t p1
){
128 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
131 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
132 fra
.me
.file
= LOCATE_typing
;
134 fra
.me
.meth
= LOCATE_typing___TypingVisitor___mark_is_set
;
135 fra
.me
.has_broke
= 0;
137 fra
.me
.REG
[0] = NIT_NULL
;
138 fra
.me
.REG
[1] = NIT_NULL
;
139 fra
.me
.REG
[2] = NIT_NULL
;
142 /* ./syntax//typing.nit:56 */
143 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
144 REGB0
= CALL_flow___FlowContext___is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
145 if (UNTAG_Bool(REGB0
)) {
148 /* ./syntax//typing.nit:57 */
149 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
150 fra
.me
.REG
[1] = CALL_flow___FlowContext___sub_setvariable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
151 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
153 stack_frame_head
= fra
.me
.prev
;
156 void typing___TypingVisitor___mark_unreash(val_t p0
, val_t p1
){
157 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
159 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
160 fra
.me
.file
= LOCATE_typing
;
162 fra
.me
.meth
= LOCATE_typing___TypingVisitor___mark_unreash
;
163 fra
.me
.has_broke
= 0;
165 fra
.me
.REG
[0] = NIT_NULL
;
166 fra
.me
.REG
[1] = NIT_NULL
;
167 fra
.me
.REG
[2] = NIT_NULL
;
170 /* ./syntax//typing.nit:63 */
171 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
172 fra
.me
.REG
[1] = CALL_flow___FlowContext___sub_unreash(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
173 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
174 stack_frame_head
= fra
.me
.prev
;
177 void typing___TypingVisitor___enter_visit_block(val_t p0
, val_t p1
){
178 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
182 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
183 fra
.me
.file
= LOCATE_typing
;
185 fra
.me
.meth
= LOCATE_typing___TypingVisitor___enter_visit_block
;
186 fra
.me
.has_broke
= 0;
188 fra
.me
.REG
[0] = NIT_NULL
;
189 fra
.me
.REG
[1] = NIT_NULL
;
190 fra
.me
.REG
[2] = NIT_NULL
;
193 /* ./syntax//typing.nit:69 */
194 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
195 if (UNTAG_Bool(REGB0
)) {
197 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
198 if (UNTAG_Bool(REGB1
)) {
199 REGB1
= TAG_Bool(false);
202 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
206 if (UNTAG_Bool(REGB0
)) {
209 /* ./syntax//typing.nit:70 */
210 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
211 CALL_scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
212 /* ./syntax//typing.nit:71 */
213 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
214 /* ./syntax//typing.nit:72 */
215 fra
.me
.REG
[0] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
216 CALL_scope___ScopeContext___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
218 stack_frame_head
= fra
.me
.prev
;
221 val_t
typing___TypingVisitor___base_flow_ctx(val_t p0
){
222 struct {struct stack_frame_t me
;} fra
;
225 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
226 fra
.me
.file
= LOCATE_typing
;
228 fra
.me
.meth
= LOCATE_typing___TypingVisitor___base_flow_ctx
;
229 fra
.me
.has_broke
= 0;
231 fra
.me
.REG
[0] = NIT_NULL
;
233 /* ./syntax//typing.nit:76 */
234 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____base_flow_ctx(fra
.me
.REG
[0]);
235 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
236 if (UNTAG_Bool(REGB0
)) {
238 nit_abort("Cast failed", NULL
, LOCATE_typing
, 76);
242 stack_frame_head
= fra
.me
.prev
;
243 return fra
.me
.REG
[0];
245 void typing___TypingVisitor___base_flow_ctx__eq(val_t p0
, val_t p1
){
246 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
248 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
249 fra
.me
.file
= LOCATE_typing
;
251 fra
.me
.meth
= LOCATE_typing___TypingVisitor___base_flow_ctx__eq
;
252 fra
.me
.has_broke
= 0;
254 fra
.me
.REG
[0] = NIT_NULL
;
255 fra
.me
.REG
[1] = NIT_NULL
;
258 /* ./syntax//typing.nit:77 */
259 ATTR_typing___TypingVisitor____base_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
260 stack_frame_head
= fra
.me
.prev
;
263 val_t
typing___TypingVisitor___self_var(val_t p0
){
264 struct {struct stack_frame_t me
;} fra
;
267 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
268 fra
.me
.file
= LOCATE_typing
;
270 fra
.me
.meth
= LOCATE_typing___TypingVisitor___self_var
;
271 fra
.me
.has_broke
= 0;
273 fra
.me
.REG
[0] = NIT_NULL
;
275 /* ./syntax//typing.nit:80 */
276 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____self_var(fra
.me
.REG
[0]);
277 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
278 if (UNTAG_Bool(REGB0
)) {
280 nit_abort("Cast failed", NULL
, LOCATE_typing
, 80);
284 stack_frame_head
= fra
.me
.prev
;
285 return fra
.me
.REG
[0];
287 void typing___TypingVisitor___self_var__eq(val_t p0
, val_t p1
){
288 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
290 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
291 fra
.me
.file
= LOCATE_typing
;
293 fra
.me
.meth
= LOCATE_typing___TypingVisitor___self_var__eq
;
294 fra
.me
.has_broke
= 0;
296 fra
.me
.REG
[0] = NIT_NULL
;
297 fra
.me
.REG
[1] = NIT_NULL
;
300 /* ./syntax//typing.nit:81 */
301 ATTR_typing___TypingVisitor____self_var(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
302 stack_frame_head
= fra
.me
.prev
;
305 val_t
typing___TypingVisitor___top_block(val_t p0
){
306 struct {struct stack_frame_t me
;} fra
;
308 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
309 fra
.me
.file
= LOCATE_typing
;
311 fra
.me
.meth
= LOCATE_typing___TypingVisitor___top_block
;
312 fra
.me
.has_broke
= 0;
314 fra
.me
.REG
[0] = NIT_NULL
;
316 /* ./syntax//typing.nit:83 */
317 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____top_block(fra
.me
.REG
[0]);
318 stack_frame_head
= fra
.me
.prev
;
319 return fra
.me
.REG
[0];
321 void typing___TypingVisitor___top_block__eq(val_t p0
, val_t p1
){
322 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
324 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
325 fra
.me
.file
= LOCATE_typing
;
327 fra
.me
.meth
= LOCATE_typing___TypingVisitor___top_block__eq
;
328 fra
.me
.has_broke
= 0;
330 fra
.me
.REG
[0] = NIT_NULL
;
331 fra
.me
.REG
[1] = NIT_NULL
;
334 /* ./syntax//typing.nit:83 */
335 ATTR_typing___TypingVisitor____top_block(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
336 stack_frame_head
= fra
.me
.prev
;
339 val_t
typing___TypingVisitor___explicit_super_init_calls(val_t p0
){
340 struct {struct stack_frame_t me
;} fra
;
342 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
343 fra
.me
.file
= LOCATE_typing
;
345 fra
.me
.meth
= LOCATE_typing___TypingVisitor___explicit_super_init_calls
;
346 fra
.me
.has_broke
= 0;
348 fra
.me
.REG
[0] = NIT_NULL
;
350 /* ./syntax//typing.nit:86 */
351 fra
.me
.REG
[0] = ATTR_typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]);
352 stack_frame_head
= fra
.me
.prev
;
353 return fra
.me
.REG
[0];
355 void typing___TypingVisitor___explicit_super_init_calls__eq(val_t p0
, val_t p1
){
356 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
358 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
359 fra
.me
.file
= LOCATE_typing
;
361 fra
.me
.meth
= LOCATE_typing___TypingVisitor___explicit_super_init_calls__eq
;
362 fra
.me
.has_broke
= 0;
364 fra
.me
.REG
[0] = NIT_NULL
;
365 fra
.me
.REG
[1] = NIT_NULL
;
368 /* ./syntax//typing.nit:86 */
369 ATTR_typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
370 stack_frame_head
= fra
.me
.prev
;
373 val_t
typing___TypingVisitor___explicit_other_init_call(val_t p0
){
374 struct {struct stack_frame_t me
;} fra
;
377 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
378 fra
.me
.file
= LOCATE_typing
;
380 fra
.me
.meth
= LOCATE_typing___TypingVisitor___explicit_other_init_call
;
381 fra
.me
.has_broke
= 0;
383 fra
.me
.REG
[0] = NIT_NULL
;
385 /* ./syntax//typing.nit:89 */
386 REGB0
= TAG_Bool(ATTR_typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0])!=NIT_NULL
);
387 if (UNTAG_Bool(REGB0
)) {
389 nit_abort("Uninitialized attribute %s", "_explicit_other_init_call", LOCATE_typing
, 89);
391 REGB0
= ATTR_typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]);
392 stack_frame_head
= fra
.me
.prev
;
395 void typing___TypingVisitor___explicit_other_init_call__eq(val_t p0
, val_t p1
){
396 struct {struct stack_frame_t me
;} fra
;
399 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
400 fra
.me
.file
= LOCATE_typing
;
402 fra
.me
.meth
= LOCATE_typing___TypingVisitor___explicit_other_init_call__eq
;
403 fra
.me
.has_broke
= 0;
405 fra
.me
.REG
[0] = NIT_NULL
;
408 /* ./syntax//typing.nit:89 */
409 ATTR_typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]) = REGB0
;
410 stack_frame_head
= fra
.me
.prev
;
413 void typing___TypingVisitor___use_if_true_flow_ctx(val_t p0
, val_t p1
){
414 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
418 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
419 fra
.me
.file
= LOCATE_typing
;
421 fra
.me
.meth
= LOCATE_typing___TypingVisitor___use_if_true_flow_ctx
;
422 fra
.me
.has_broke
= 0;
424 fra
.me
.REG
[0] = NIT_NULL
;
425 fra
.me
.REG
[1] = NIT_NULL
;
428 /* ./syntax//typing.nit:95 */
429 fra
.me
.REG
[1] = CALL_typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
430 /* ./syntax//typing.nit:96 */
431 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
432 if (UNTAG_Bool(REGB0
)) {
434 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
435 if (UNTAG_Bool(REGB1
)) {
436 REGB1
= TAG_Bool(false);
439 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
443 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
444 if (UNTAG_Bool(REGB0
)) {
445 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
447 stack_frame_head
= fra
.me
.prev
;
450 void typing___TypingVisitor___use_if_false_flow_ctx(val_t p0
, val_t p1
){
451 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
455 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
456 fra
.me
.file
= LOCATE_typing
;
458 fra
.me
.meth
= LOCATE_typing___TypingVisitor___use_if_false_flow_ctx
;
459 fra
.me
.has_broke
= 0;
461 fra
.me
.REG
[0] = NIT_NULL
;
462 fra
.me
.REG
[1] = NIT_NULL
;
465 /* ./syntax//typing.nit:102 */
466 fra
.me
.REG
[1] = CALL_typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
467 /* ./syntax//typing.nit:103 */
468 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
469 if (UNTAG_Bool(REGB0
)) {
471 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
472 if (UNTAG_Bool(REGB1
)) {
473 REGB1
= TAG_Bool(false);
476 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
480 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
481 if (UNTAG_Bool(REGB0
)) {
482 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
484 stack_frame_head
= fra
.me
.prev
;
487 val_t
typing___TypingVisitor___is_default_closure_definition(val_t p0
){
488 struct {struct stack_frame_t me
;} fra
;
491 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
492 fra
.me
.file
= LOCATE_typing
;
494 fra
.me
.meth
= LOCATE_typing___TypingVisitor___is_default_closure_definition
;
495 fra
.me
.has_broke
= 0;
497 fra
.me
.REG
[0] = NIT_NULL
;
499 /* ./syntax//typing.nit:106 */
500 REGB0
= TAG_Bool(ATTR_typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0])!=NIT_NULL
);
501 if (UNTAG_Bool(REGB0
)) {
503 nit_abort("Uninitialized attribute %s", "_is_default_closure_definition", LOCATE_typing
, 106);
505 REGB0
= ATTR_typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]);
506 stack_frame_head
= fra
.me
.prev
;
509 void typing___TypingVisitor___is_default_closure_definition__eq(val_t p0
, val_t p1
){
510 struct {struct stack_frame_t me
;} fra
;
513 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
514 fra
.me
.file
= LOCATE_typing
;
516 fra
.me
.meth
= LOCATE_typing___TypingVisitor___is_default_closure_definition__eq
;
517 fra
.me
.has_broke
= 0;
519 fra
.me
.REG
[0] = NIT_NULL
;
522 /* ./syntax//typing.nit:106 */
523 ATTR_typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]) = REGB0
;
524 stack_frame_head
= fra
.me
.prev
;
527 val_t
typing___TypingVisitor___once_count(val_t p0
){
528 struct {struct stack_frame_t me
;} fra
;
531 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
532 fra
.me
.file
= LOCATE_typing
;
534 fra
.me
.meth
= LOCATE_typing___TypingVisitor___once_count
;
535 fra
.me
.has_broke
= 0;
537 fra
.me
.REG
[0] = NIT_NULL
;
539 /* ./syntax//typing.nit:109 */
540 REGB0
= TAG_Bool(ATTR_typing___TypingVisitor____once_count(fra
.me
.REG
[0])!=NIT_NULL
);
541 if (UNTAG_Bool(REGB0
)) {
543 nit_abort("Uninitialized attribute %s", "_once_count", LOCATE_typing
, 109);
545 REGB0
= ATTR_typing___TypingVisitor____once_count(fra
.me
.REG
[0]);
546 stack_frame_head
= fra
.me
.prev
;
549 void typing___TypingVisitor___once_count__eq(val_t p0
, val_t p1
){
550 struct {struct stack_frame_t me
;} fra
;
553 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
554 fra
.me
.file
= LOCATE_typing
;
556 fra
.me
.meth
= LOCATE_typing___TypingVisitor___once_count__eq
;
557 fra
.me
.has_broke
= 0;
559 fra
.me
.REG
[0] = NIT_NULL
;
562 /* ./syntax//typing.nit:109 */
563 ATTR_typing___TypingVisitor____once_count(fra
.me
.REG
[0]) = REGB0
;
564 stack_frame_head
= fra
.me
.prev
;
567 void typing___TypingVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
568 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_TypingVisitor
].i
;
569 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
571 if (init_table
[itpos0
]) return;
572 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
573 fra
.me
.file
= LOCATE_typing
;
575 fra
.me
.meth
= LOCATE_typing___TypingVisitor___init
;
576 fra
.me
.has_broke
= 0;
578 fra
.me
.REG
[0] = NIT_NULL
;
579 fra
.me
.REG
[1] = NIT_NULL
;
580 fra
.me
.REG
[2] = NIT_NULL
;
584 /* ./syntax//typing.nit:112 */
585 CALL_syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
586 stack_frame_head
= fra
.me
.prev
;
587 init_table
[itpos0
] = 1;
590 val_t
typing___TypingVisitor___get_default_constructor_for(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
591 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
596 static val_t once_value_6
; /* Once value */
597 static val_t once_value_7
; /* Once value */
598 static val_t once_value_8
; /* Once value */
599 static val_t once_value_10
; /* Once value */
600 static val_t once_value_11
; /* Once value */
601 static val_t once_value_12
; /* Once value */
602 static val_t once_value_13
; /* Once value */
603 static val_t once_value_14
; /* Once value */
604 static val_t once_value_15
; /* Once value */
605 static val_t once_value_16
; /* Once value */
606 static val_t once_value_18
; /* Once value */
607 static val_t once_value_19
; /* Once value */
608 static val_t once_value_20
; /* Once value */
609 static val_t once_value_21
; /* Once value */
610 static val_t once_value_22
; /* Once value */
611 static val_t once_value_23
; /* Once value */
612 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
613 fra
.me
.file
= LOCATE_typing
;
615 fra
.me
.meth
= LOCATE_typing___TypingVisitor___get_default_constructor_for
;
616 fra
.me
.has_broke
= 0;
617 fra
.me
.REG_size
= 11;
618 fra
.me
.REG
[0] = NIT_NULL
;
619 fra
.me
.REG
[1] = NIT_NULL
;
620 fra
.me
.REG
[2] = NIT_NULL
;
621 fra
.me
.REG
[3] = NIT_NULL
;
622 fra
.me
.REG
[4] = NIT_NULL
;
623 fra
.me
.REG
[5] = NIT_NULL
;
624 fra
.me
.REG
[6] = NIT_NULL
;
625 fra
.me
.REG
[7] = NIT_NULL
;
626 fra
.me
.REG
[8] = NIT_NULL
;
627 fra
.me
.REG
[9] = NIT_NULL
;
628 fra
.me
.REG
[10] = NIT_NULL
;
633 /* ./syntax//typing.nit:119 */
634 fra
.me
.REG
[4] = NEW_Array_array___Array___init();
635 /* ./syntax//typing.nit:120 */
636 fra
.me
.REG
[5] = NEW_Array_array___Array___init();
637 /* ./syntax//typing.nit:121 */
638 fra
.me
.REG
[6] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
639 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
640 if (UNTAG_Bool(REGB0
)) {
641 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 121);
643 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
644 fra
.me
.REG
[6] = REGB0
;
645 /* ./syntax//typing.nit:122 */
646 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
647 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[7])(fra
.me
.REG
[7], (&(fra
.me
)), ((fun_t
)OC_typing___TypingVisitor___get_default_constructor_for_1
));
648 switch ((&(fra
.me
))->has_broke
) {
650 case 1: (&(fra
.me
))->has_broke
= 0; goto label5
;
652 /* ./../lib/standard//collection//array.nit:23 */
653 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
654 if (UNTAG_Bool(REGB0
)) {
656 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
658 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
659 /* ./syntax//typing.nit:141 */
661 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
662 if (UNTAG_Bool(REGB2
)) {
664 /* ./../lib/standard//kernel.nit:207 */
665 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
666 /* ./syntax//typing.nit:141 */
669 if (UNTAG_Bool(REGB2
)) {
670 /* ./syntax//typing.nit:142 */
671 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
672 fra
.me
.REG
[7] = fra
.me
.REG
[3];
675 /* ./../lib/standard//collection//array.nit:23 */
676 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
677 if (UNTAG_Bool(REGB2
)) {
679 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
681 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
682 /* ./syntax//typing.nit:143 */
684 /* ./../lib/standard//kernel.nit:214 */
685 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB1
));
686 /* ./syntax//typing.nit:143 */
687 if (UNTAG_Bool(REGB1
)) {
688 /* ./syntax//typing.nit:144 */
689 fra
.me
.REG
[3] = NEW_Array_array___Array___init();
690 /* ./../lib/standard//collection//array.nit:234 */
692 /* ./../lib/standard//collection//array.nit:235 */
693 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
694 if (UNTAG_Bool(REGB2
)) {
696 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
698 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
699 /* ./../lib/standard//collection//array.nit:236 */
700 fra
.me
.REG
[6] = ATTR_array___Array____items(fra
.me
.REG
[4]);
701 /* ./../lib/standard//collection//array.nit:237 */
703 /* ./../lib/standard//collection//array.nit:23 */
704 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
705 if (UNTAG_Bool(REGB2
)) {
707 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
709 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
710 /* ./../lib/standard//kernel.nit:212 */
711 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
712 /* ./../lib/standard//collection//array.nit:237 */
713 if (UNTAG_Bool(REGB2
)) {
714 /* ./../lib/standard//collection//array.nit:238 */
715 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
716 if (UNTAG_Bool(REGB2
)) {
717 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
719 /* ./../lib/standard//collection//array.nit:654 */
720 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB1
)];
721 /* ./syntax//typing.nit:146 */
723 fra
.me
.REG
[9] = NEW_Array_array___Array___with_capacity(REGB2
);
725 fra
.me
.REG
[10] = BOX_NativeString("");
727 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB2
);
728 once_value_6
= fra
.me
.REG
[10];
729 register_static_object(&once_value_6
);
730 } else fra
.me
.REG
[10] = once_value_6
;
731 fra
.me
.REG
[10] = fra
.me
.REG
[10];
732 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
733 fra
.me
.REG
[10] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
734 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
736 fra
.me
.REG
[10] = BOX_NativeString("");
738 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB2
);
739 once_value_7
= fra
.me
.REG
[10];
740 register_static_object(&once_value_7
);
741 } else fra
.me
.REG
[10] = once_value_7
;
742 fra
.me
.REG
[10] = fra
.me
.REG
[10];
743 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
744 fra
.me
.REG
[8] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
745 REGB2
= TAG_Bool((fra
.me
.REG
[8]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[8], COLOR_MMSignature
, ID_MMSignature
)) /*cast MMSignature*/;
746 if (UNTAG_Bool(REGB2
)) {
748 nit_abort("Cast failed", NULL
, LOCATE_typing
, 146);
750 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
751 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
753 fra
.me
.REG
[8] = BOX_NativeString("");
755 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
756 once_value_8
= fra
.me
.REG
[8];
757 register_static_object(&once_value_8
);
758 } else fra
.me
.REG
[8] = once_value_8
;
759 fra
.me
.REG
[8] = fra
.me
.REG
[8];
760 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
761 fra
.me
.REG
[9] = CALL_string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
762 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[9]);
763 /* ./../lib/standard//collection//array.nit:239 */
765 /* ./../lib/standard//kernel.nit:215 */
766 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
767 /* ./../lib/standard//collection//array.nit:239 */
770 /* ./../lib/standard//collection//array.nit:237 */
775 /* ./syntax//typing.nit:148 */
777 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB1
);
778 if (!once_value_10
) {
779 fra
.me
.REG
[4] = BOX_NativeString("Error: Conflicting default constructor to call for ");
781 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
782 once_value_10
= fra
.me
.REG
[4];
783 register_static_object(&once_value_10
);
784 } else fra
.me
.REG
[4] = once_value_10
;
785 fra
.me
.REG
[4] = fra
.me
.REG
[4];
786 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
787 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
788 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
789 if (!once_value_11
) {
790 fra
.me
.REG
[4] = BOX_NativeString(": ");
792 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
793 once_value_11
= fra
.me
.REG
[4];
794 register_static_object(&once_value_11
);
795 } else fra
.me
.REG
[4] = once_value_11
;
796 fra
.me
.REG
[4] = fra
.me
.REG
[4];
797 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
798 if (!once_value_12
) {
799 fra
.me
.REG
[4] = BOX_NativeString(", ");
801 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
802 once_value_12
= fra
.me
.REG
[4];
803 register_static_object(&once_value_12
);
804 } else fra
.me
.REG
[4] = once_value_12
;
805 fra
.me
.REG
[4] = fra
.me
.REG
[4];
806 fra
.me
.REG
[4] = CALL_string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
807 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
808 if (!once_value_13
) {
809 fra
.me
.REG
[4] = BOX_NativeString(".");
811 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
812 once_value_13
= fra
.me
.REG
[4];
813 register_static_object(&once_value_13
);
814 } else fra
.me
.REG
[4] = once_value_13
;
815 fra
.me
.REG
[4] = fra
.me
.REG
[4];
816 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
817 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
818 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[6]);
819 /* ./syntax//typing.nit:149 */
820 fra
.me
.REG
[7] = NIT_NULL
;
823 /* ./../lib/standard//collection//array.nit:23 */
824 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
825 if (UNTAG_Bool(REGB1
)) {
827 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
829 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
830 /* ./syntax//typing.nit:150 */
832 /* ./../lib/standard//kernel.nit:214 */
833 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
834 /* ./syntax//typing.nit:150 */
835 if (UNTAG_Bool(REGB2
)) {
836 /* ./syntax//typing.nit:151 */
837 fra
.me
.REG
[6] = NEW_Array_array___Array___init();
838 /* ./../lib/standard//collection//array.nit:234 */
840 /* ./../lib/standard//collection//array.nit:235 */
841 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
842 if (UNTAG_Bool(REGB1
)) {
844 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
846 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
847 /* ./../lib/standard//collection//array.nit:236 */
848 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[5]);
849 /* ./../lib/standard//collection//array.nit:237 */
851 /* ./../lib/standard//collection//array.nit:23 */
852 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
853 if (UNTAG_Bool(REGB1
)) {
855 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
857 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
858 /* ./../lib/standard//kernel.nit:212 */
859 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
860 /* ./../lib/standard//collection//array.nit:237 */
861 if (UNTAG_Bool(REGB1
)) {
862 /* ./../lib/standard//collection//array.nit:238 */
863 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
864 if (UNTAG_Bool(REGB1
)) {
865 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
867 /* ./../lib/standard//collection//array.nit:654 */
868 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB2
)];
869 /* ./syntax//typing.nit:153 */
871 fra
.me
.REG
[9] = NEW_Array_array___Array___with_capacity(REGB1
);
872 if (!once_value_14
) {
873 fra
.me
.REG
[8] = BOX_NativeString("");
875 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
876 once_value_14
= fra
.me
.REG
[8];
877 register_static_object(&once_value_14
);
878 } else fra
.me
.REG
[8] = once_value_14
;
879 fra
.me
.REG
[8] = fra
.me
.REG
[8];
880 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
881 fra
.me
.REG
[8] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
882 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
883 if (!once_value_15
) {
884 fra
.me
.REG
[8] = BOX_NativeString("");
886 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
887 once_value_15
= fra
.me
.REG
[8];
888 register_static_object(&once_value_15
);
889 } else fra
.me
.REG
[8] = once_value_15
;
890 fra
.me
.REG
[8] = fra
.me
.REG
[8];
891 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
892 fra
.me
.REG
[3] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
893 REGB1
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_MMSignature
, ID_MMSignature
)) /*cast MMSignature*/;
894 if (UNTAG_Bool(REGB1
)) {
896 nit_abort("Cast failed", NULL
, LOCATE_typing
, 153);
898 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
899 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[3]);
900 if (!once_value_16
) {
901 fra
.me
.REG
[3] = BOX_NativeString("");
903 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
904 once_value_16
= fra
.me
.REG
[3];
905 register_static_object(&once_value_16
);
906 } else fra
.me
.REG
[3] = once_value_16
;
907 fra
.me
.REG
[3] = fra
.me
.REG
[3];
908 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[3]);
909 fra
.me
.REG
[9] = CALL_string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
910 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[9]);
911 /* ./../lib/standard//collection//array.nit:239 */
913 /* ./../lib/standard//kernel.nit:215 */
914 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
915 /* ./../lib/standard//collection//array.nit:239 */
918 /* ./../lib/standard//collection//array.nit:237 */
923 /* ./syntax//typing.nit:155 */
925 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB2
);
926 if (!once_value_18
) {
927 fra
.me
.REG
[5] = BOX_NativeString("Error: there is no available compatible constrctor in ");
929 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
930 once_value_18
= fra
.me
.REG
[5];
931 register_static_object(&once_value_18
);
932 } else fra
.me
.REG
[5] = once_value_18
;
933 fra
.me
.REG
[5] = fra
.me
.REG
[5];
934 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
935 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
936 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
937 if (!once_value_19
) {
938 fra
.me
.REG
[5] = BOX_NativeString(". Discarded candidates are ");
940 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
941 once_value_19
= fra
.me
.REG
[5];
942 register_static_object(&once_value_19
);
943 } else fra
.me
.REG
[5] = once_value_19
;
944 fra
.me
.REG
[5] = fra
.me
.REG
[5];
945 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
946 if (!once_value_20
) {
947 fra
.me
.REG
[5] = BOX_NativeString(", ");
949 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
950 once_value_20
= fra
.me
.REG
[5];
951 register_static_object(&once_value_20
);
952 } else fra
.me
.REG
[5] = once_value_20
;
953 fra
.me
.REG
[5] = fra
.me
.REG
[5];
954 fra
.me
.REG
[5] = CALL_string___Collection___join(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
955 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
956 if (!once_value_21
) {
957 fra
.me
.REG
[5] = BOX_NativeString(".");
959 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
960 once_value_21
= fra
.me
.REG
[5];
961 register_static_object(&once_value_21
);
962 } else fra
.me
.REG
[5] = once_value_21
;
963 fra
.me
.REG
[5] = fra
.me
.REG
[5];
964 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
965 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
966 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
967 /* ./syntax//typing.nit:156 */
968 fra
.me
.REG
[7] = NIT_NULL
;
971 /* ./syntax//typing.nit:158 */
973 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB2
);
974 if (!once_value_22
) {
975 fra
.me
.REG
[5] = BOX_NativeString("Error: there is no available compatible constrctor in ");
977 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
978 once_value_22
= fra
.me
.REG
[5];
979 register_static_object(&once_value_22
);
980 } else fra
.me
.REG
[5] = once_value_22
;
981 fra
.me
.REG
[5] = fra
.me
.REG
[5];
982 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
983 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
984 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
985 if (!once_value_23
) {
986 fra
.me
.REG
[2] = BOX_NativeString(".");
988 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB2
);
989 once_value_23
= fra
.me
.REG
[2];
990 register_static_object(&once_value_23
);
991 } else fra
.me
.REG
[2] = once_value_23
;
992 fra
.me
.REG
[2] = fra
.me
.REG
[2];
993 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
994 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
995 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
996 /* ./syntax//typing.nit:159 */
997 fra
.me
.REG
[7] = NIT_NULL
;
1003 stack_frame_head
= fra
.me
.prev
;
1004 return fra
.me
.REG
[7];
1006 void OC_typing___TypingVisitor___get_default_constructor_for_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1007 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1014 static val_t once_value_3
; /* Once value */
1015 static val_t once_value_4
; /* Once value */
1016 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1017 fra
.me
.file
= LOCATE_typing
;
1019 fra
.me
.meth
= LOCATE_typing___TypingVisitor___get_default_constructor_for
;
1020 fra
.me
.has_broke
= 0;
1021 fra
.me
.REG_size
= 4;
1022 fra
.me
.REG
[0] = NIT_NULL
;
1023 fra
.me
.REG
[1] = NIT_NULL
;
1024 fra
.me
.REG
[2] = NIT_NULL
;
1025 fra
.me
.REG
[3] = NIT_NULL
;
1026 fra
.me
.closure_ctx
= closctx_param
;
1027 fra
.me
.closure_funs
= CREG
;
1029 CREG
[0] = clos_fun0
;
1030 /* ./syntax//typing.nit:123 */
1031 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[2]);
1032 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1033 if (UNTAG_Bool(REGB0
)) {
1036 /* ./syntax//typing.nit:124 */
1037 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
1038 /* ./syntax//typing.nit:125 */
1039 fra
.me
.REG
[1] = CALL_static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
1040 fra
.me
.REG
[1] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1041 /* ./syntax//typing.nit:126 */
1042 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
1043 if (UNTAG_Bool(REGB0
)) {
1045 nit_abort("Assert failed", NULL
, LOCATE_typing
, 126);
1047 /* ./syntax//typing.nit:127 */
1048 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1049 /* ./syntax//typing.nit:128 */
1050 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1051 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___name(closctx
->REG
[3])(closctx
->REG
[3]);
1052 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
1053 if (UNTAG_Bool(REGB1
)) {
1055 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1058 if (UNTAG_Bool(REGB1
)) {
1059 /* ./syntax//typing.nit:129 */
1061 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1062 if (UNTAG_Bool(REGB2
)) {
1064 /* ./../lib/standard//kernel.nit:207 */
1065 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1066 /* ./syntax//typing.nit:129 */
1069 if (UNTAG_Bool(REGB2
)) {
1070 REGB2
= TAG_Bool(true);
1072 REGB1
= TAG_Bool(IS_EQUAL_OO(closctx
->REG
[6],REGB0
));
1073 if (UNTAG_Bool(REGB1
)) {
1075 /* ./../lib/standard//kernel.nit:207 */
1076 REGB3
= TAG_Bool((closctx
->REG
[6])==(REGB0
));
1077 /* ./syntax//typing.nit:129 */
1080 if (UNTAG_Bool(REGB1
)) {
1081 fra
.me
.REG
[3] = CALL_static_type___MMLocalProperty___signature(closctx
->REG
[3])(closctx
->REG
[3]);
1082 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1083 if (UNTAG_Bool(REGB1
)) {
1084 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 129);
1086 REGB1
= CALL_static_type___MMSignature_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1088 REGB3
= TAG_Bool(false);
1093 if (UNTAG_Bool(REGB2
)) {
1094 /* ./syntax//typing.nit:130 */
1095 closctx
->REG
[7] = fra
.me
.REG
[0];
1096 closctx
->has_broke
= 1;
1099 /* ./syntax//typing.nit:132 */
1100 CALL_abstract_collection___SimpleCollection___add(closctx
->REG
[5])(closctx
->REG
[5], fra
.me
.REG
[0]);
1103 /* ./syntax//typing.nit:134 */
1105 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
1106 if (UNTAG_Bool(REGB1
)) {
1108 /* ./../lib/standard//kernel.nit:207 */
1109 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
1110 /* ./syntax//typing.nit:134 */
1113 if (UNTAG_Bool(REGB1
)) {
1114 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1115 if (!once_value_3
) {
1116 if (!once_value_4
) {
1117 fra
.me
.REG
[3] = BOX_NativeString("init");
1119 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
1120 once_value_4
= fra
.me
.REG
[3];
1121 register_static_object(&once_value_4
);
1122 } else fra
.me
.REG
[3] = once_value_4
;
1123 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1124 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1125 once_value_3
= fra
.me
.REG
[3];
1126 register_static_object(&once_value_3
);
1127 } else fra
.me
.REG
[3] = once_value_3
;
1128 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1129 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
1130 if (UNTAG_Bool(REGB1
)) {
1132 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1136 REGB2
= TAG_Bool(false);
1139 if (UNTAG_Bool(REGB1
)) {
1140 /* ./syntax//typing.nit:135 */
1141 CALL_abstract_collection___SimpleCollection___add(closctx
->REG
[4])(closctx
->REG
[4], fra
.me
.REG
[0]);
1142 /* ./syntax//typing.nit:136 */
1143 CALL_abstract_collection___SimpleCollection___add(closctx
->REG
[5])(closctx
->REG
[5], fra
.me
.REG
[0]);
1145 /* ./syntax//typing.nit:138 */
1146 CALL_abstract_collection___SimpleCollection___add(closctx
->REG
[5])(closctx
->REG
[5], fra
.me
.REG
[0]);
1150 stack_frame_head
= fra
.me
.prev
;
1153 void typing___ANode___accept_typing(val_t p0
, val_t p1
){
1154 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1156 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1157 fra
.me
.file
= LOCATE_typing
;
1159 fra
.me
.meth
= LOCATE_typing___ANode___accept_typing
;
1160 fra
.me
.has_broke
= 0;
1161 fra
.me
.REG_size
= 2;
1162 fra
.me
.REG
[0] = NIT_NULL
;
1163 fra
.me
.REG
[1] = NIT_NULL
;
1166 /* ./syntax//typing.nit:170 */
1167 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1168 /* ./syntax//typing.nit:171 */
1169 CALL_typing___ANode___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1170 stack_frame_head
= fra
.me
.prev
;
1173 void typing___ANode___after_typing(val_t p0
, val_t p1
){
1174 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1176 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1177 fra
.me
.file
= LOCATE_typing
;
1179 fra
.me
.meth
= LOCATE_typing___ANode___after_typing
;
1180 fra
.me
.has_broke
= 0;
1181 fra
.me
.REG_size
= 2;
1182 fra
.me
.REG
[0] = NIT_NULL
;
1183 fra
.me
.REG
[1] = NIT_NULL
;
1186 stack_frame_head
= fra
.me
.prev
;
1189 void typing___AClassdef___accept_typing(val_t p0
, val_t p1
){
1190 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1193 static val_t once_value_1
; /* Once value */
1194 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1195 fra
.me
.file
= LOCATE_typing
;
1197 fra
.me
.meth
= LOCATE_typing___AClassdef___accept_typing
;
1198 fra
.me
.has_broke
= 0;
1199 fra
.me
.REG_size
= 5;
1200 fra
.me
.REG
[0] = NIT_NULL
;
1201 fra
.me
.REG
[1] = NIT_NULL
;
1202 fra
.me
.REG
[2] = NIT_NULL
;
1203 fra
.me
.REG
[3] = NIT_NULL
;
1204 fra
.me
.REG
[4] = NIT_NULL
;
1207 /* ./syntax//typing.nit:177 */
1208 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1209 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1210 /* ./syntax//typing.nit:179 */
1211 if (!once_value_1
) {
1212 fra
.me
.REG
[4] = BOX_NativeString("self");
1214 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
1215 once_value_1
= fra
.me
.REG
[4];
1216 register_static_object(&once_value_1
);
1217 } else fra
.me
.REG
[4] = once_value_1
;
1218 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1219 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1220 fra
.me
.REG
[4] = NEW_ParamVariable_syntax_base___ParamVariable___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1221 CALL_typing___TypingVisitor___self_var__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1222 /* ./syntax//typing.nit:180 */
1223 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1224 fra
.me
.REG
[2] = CALL_syntax_base___AClassdef___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1225 fra
.me
.REG
[2] = CALL_static_type___MMLocalClass___get_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1226 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1227 /* ./syntax//typing.nit:181 */
1228 CALL_SUPER_typing___AClassdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1229 stack_frame_head
= fra
.me
.prev
;
1232 val_t
typing___APropdef___self_var(val_t p0
){
1233 struct {struct stack_frame_t me
;} fra
;
1236 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1237 fra
.me
.file
= LOCATE_typing
;
1239 fra
.me
.meth
= LOCATE_typing___APropdef___self_var
;
1240 fra
.me
.has_broke
= 0;
1241 fra
.me
.REG_size
= 1;
1242 fra
.me
.REG
[0] = NIT_NULL
;
1244 /* ./syntax//typing.nit:186 */
1245 fra
.me
.REG
[0] = ATTR_typing___APropdef____self_var(fra
.me
.REG
[0]);
1246 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
1247 if (UNTAG_Bool(REGB0
)) {
1249 nit_abort("Cast failed", NULL
, LOCATE_typing
, 186);
1253 stack_frame_head
= fra
.me
.prev
;
1254 return fra
.me
.REG
[0];
1256 void typing___AAttrPropdef___accept_typing(val_t p0
, val_t p1
){
1257 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1261 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1262 fra
.me
.file
= LOCATE_typing
;
1264 fra
.me
.meth
= LOCATE_typing___AAttrPropdef___accept_typing
;
1265 fra
.me
.has_broke
= 0;
1266 fra
.me
.REG_size
= 5;
1267 fra
.me
.REG
[0] = NIT_NULL
;
1268 fra
.me
.REG
[1] = NIT_NULL
;
1269 fra
.me
.REG
[2] = NIT_NULL
;
1270 fra
.me
.REG
[3] = NIT_NULL
;
1271 fra
.me
.REG
[4] = NIT_NULL
;
1274 /* ./syntax//typing.nit:191 */
1275 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1276 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1277 /* ./syntax//typing.nit:193 */
1278 fra
.me
.REG
[4] = NEW_RootFlowContext_flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1279 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1280 /* ./syntax//typing.nit:194 */
1281 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1282 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1283 /* ./syntax//typing.nit:196 */
1284 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1285 CALL_scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1286 /* ./syntax//typing.nit:197 */
1287 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1288 ATTR_typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1289 /* ./syntax//typing.nit:198 */
1290 CALL_SUPER_typing___AAttrPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1291 /* ./syntax//typing.nit:199 */
1292 fra
.me
.REG
[1] = CALL_parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1293 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1294 if (UNTAG_Bool(REGB0
)) {
1296 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1297 if (UNTAG_Bool(REGB1
)) {
1298 REGB1
= TAG_Bool(false);
1301 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1305 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1306 if (UNTAG_Bool(REGB0
)) {
1307 /* ./syntax//typing.nit:200 */
1308 fra
.me
.REG
[1] = CALL_parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1309 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
1310 if (UNTAG_Bool(REGB0
)) {
1312 nit_abort("Cast failed", NULL
, LOCATE_typing
, 200);
1314 fra
.me
.REG
[2] = CALL_syntax_base___AAttrPropdef___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1315 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1316 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1317 if (UNTAG_Bool(REGB0
)) {
1318 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 200);
1320 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1321 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
1322 if (UNTAG_Bool(REGB0
)) {
1324 nit_abort("Cast failed", NULL
, LOCATE_typing
, 200);
1326 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1328 /* ./syntax//typing.nit:202 */
1329 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1330 CALL_scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1331 stack_frame_head
= fra
.me
.prev
;
1334 void typing___AMethPropdef___accept_typing(val_t p0
, val_t p1
){
1335 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1337 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1338 fra
.me
.file
= LOCATE_typing
;
1340 fra
.me
.meth
= LOCATE_typing___AMethPropdef___accept_typing
;
1341 fra
.me
.has_broke
= 0;
1342 fra
.me
.REG_size
= 5;
1343 fra
.me
.REG
[0] = NIT_NULL
;
1344 fra
.me
.REG
[1] = NIT_NULL
;
1345 fra
.me
.REG
[2] = NIT_NULL
;
1346 fra
.me
.REG
[3] = NIT_NULL
;
1347 fra
.me
.REG
[4] = NIT_NULL
;
1350 /* ./syntax//typing.nit:207 */
1351 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1352 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1353 /* ./syntax//typing.nit:209 */
1354 fra
.me
.REG
[4] = NEW_RootFlowContext_flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1355 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1356 /* ./syntax//typing.nit:210 */
1357 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1358 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1359 /* ./syntax//typing.nit:212 */
1360 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1361 CALL_scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1362 /* ./syntax//typing.nit:213 */
1363 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1364 ATTR_typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1365 /* ./syntax//typing.nit:214 */
1366 CALL_SUPER_typing___AMethPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1367 /* ./syntax//typing.nit:215 */
1368 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1369 CALL_scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1370 stack_frame_head
= fra
.me
.prev
;
1373 void typing___AConcreteMethPropdef___after_typing(val_t p0
, val_t p1
){
1374 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1378 static val_t once_value_1
; /* Once value */
1379 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1380 fra
.me
.file
= LOCATE_typing
;
1382 fra
.me
.meth
= LOCATE_typing___AConcreteMethPropdef___after_typing
;
1383 fra
.me
.has_broke
= 0;
1384 fra
.me
.REG_size
= 4;
1385 fra
.me
.REG
[0] = NIT_NULL
;
1386 fra
.me
.REG
[1] = NIT_NULL
;
1387 fra
.me
.REG
[2] = NIT_NULL
;
1388 fra
.me
.REG
[3] = NIT_NULL
;
1391 /* ./syntax//typing.nit:220 */
1392 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1393 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1394 /* ./syntax//typing.nit:222 */
1395 CALL_SUPER_typing___AConcreteMethPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1396 /* ./syntax//typing.nit:223 */
1397 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1398 REGB0
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1399 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1400 if (UNTAG_Bool(REGB0
)) {
1401 fra
.me
.REG
[1] = CALL_syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1402 fra
.me
.REG
[1] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1403 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1404 if (UNTAG_Bool(REGB0
)) {
1405 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 223);
1407 fra
.me
.REG
[1] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1408 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1409 if (UNTAG_Bool(REGB0
)) {
1411 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1412 if (UNTAG_Bool(REGB1
)) {
1413 REGB1
= TAG_Bool(false);
1416 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1420 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1422 REGB1
= TAG_Bool(false);
1425 if (UNTAG_Bool(REGB0
)) {
1426 /* ./syntax//typing.nit:224 */
1427 if (!once_value_1
) {
1428 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of function (a 'return' with a value was expected).");
1429 REGB0
= TAG_Int(78);
1430 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
1431 once_value_1
= fra
.me
.REG
[1];
1432 register_static_object(&once_value_1
);
1433 } else fra
.me
.REG
[1] = once_value_1
;
1434 fra
.me
.REG
[1] = fra
.me
.REG
[1];
1435 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
1437 stack_frame_head
= fra
.me
.prev
;
1440 void typing___AConcreteInitPropdef___accept_typing(val_t p0
, val_t p1
){
1441 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1444 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1445 fra
.me
.file
= LOCATE_typing
;
1447 fra
.me
.meth
= LOCATE_typing___AConcreteInitPropdef___accept_typing
;
1448 fra
.me
.has_broke
= 0;
1449 fra
.me
.REG_size
= 5;
1450 fra
.me
.REG
[0] = NIT_NULL
;
1451 fra
.me
.REG
[1] = NIT_NULL
;
1452 fra
.me
.REG
[2] = NIT_NULL
;
1453 fra
.me
.REG
[3] = NIT_NULL
;
1454 fra
.me
.REG
[4] = NIT_NULL
;
1457 /* ./syntax//typing.nit:230 */
1458 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1459 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1460 /* ./syntax//typing.nit:232 */
1461 fra
.me
.REG
[4] = CALL_parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1462 CALL_typing___TypingVisitor___top_block__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1463 /* ./syntax//typing.nit:233 */
1464 fra
.me
.REG
[2] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1465 CALL_typing___TypingVisitor___explicit_super_init_calls__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1466 /* ./syntax//typing.nit:234 */
1467 REGB0
= TAG_Bool(false);
1468 CALL_typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1469 /* ./syntax//typing.nit:235 */
1470 CALL_SUPER_typing___AConcreteInitPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1471 stack_frame_head
= fra
.me
.prev
;
1474 void typing___AConcreteInitPropdef___after_typing(val_t p0
, val_t p1
){
1475 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
1483 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1484 fra
.me
.file
= LOCATE_typing
;
1486 fra
.me
.meth
= LOCATE_typing___AConcreteInitPropdef___after_typing
;
1487 fra
.me
.has_broke
= 0;
1488 fra
.me
.REG_size
= 7;
1489 fra
.me
.REG
[0] = NIT_NULL
;
1490 fra
.me
.REG
[1] = NIT_NULL
;
1491 fra
.me
.REG
[2] = NIT_NULL
;
1492 fra
.me
.REG
[3] = NIT_NULL
;
1493 fra
.me
.REG
[4] = NIT_NULL
;
1494 fra
.me
.REG
[5] = NIT_NULL
;
1495 fra
.me
.REG
[6] = NIT_NULL
;
1498 /* ./syntax//typing.nit:238 */
1499 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1500 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1501 /* ./syntax//typing.nit:240 */
1502 CALL_SUPER_typing___AConcreteInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1503 /* ./syntax//typing.nit:241 */
1504 REGB0
= CALL_typing___TypingVisitor___explicit_other_init_call(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1505 if (UNTAG_Bool(REGB0
)) {
1506 REGB0
= TAG_Bool(true);
1508 fra
.me
.REG
[1] = CALL_syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1509 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1510 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1511 fra
.me
.REG
[0] = CALL_syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1512 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[0]));
1513 if (UNTAG_Bool(REGB1
)) {
1515 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1518 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1521 if (UNTAG_Bool(REGB0
)) {
1523 /* ./syntax//typing.nit:244 */
1525 /* ./syntax//typing.nit:245 */
1526 fra
.me
.REG
[0] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1527 /* ./../lib/standard//collection//array.nit:23 */
1528 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
1529 if (UNTAG_Bool(REGB1
)) {
1531 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
1533 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
1534 /* ./syntax//typing.nit:246 */
1535 fra
.me
.REG
[0] = NIT_NULL
;
1536 /* ./syntax//typing.nit:247 */
1537 fra
.me
.REG
[1] = NIT_NULL
;
1538 /* ./../lib/standard//kernel.nit:212 */
1539 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1540 /* ./syntax//typing.nit:248 */
1541 if (UNTAG_Bool(REGB2
)) {
1542 /* ./syntax//typing.nit:249 */
1543 fra
.me
.REG
[4] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1544 /* ./../lib/standard//collection//array.nit:243 */
1546 /* ./../lib/standard//collection//array.nit:245 */
1548 /* ./../lib/standard//kernel.nit:213 */
1549 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
1550 /* ./../lib/standard//collection//array.nit:245 */
1551 if (UNTAG_Bool(REGB3
)) {
1552 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1553 if (UNTAG_Bool(REGB3
)) {
1555 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
1557 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1558 /* ./../lib/standard//kernel.nit:212 */
1559 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1561 /* ./../lib/standard//collection//array.nit:245 */
1562 REGB4
= TAG_Bool(false);
1565 if (UNTAG_Bool(REGB3
)) {
1567 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
1569 /* ./../lib/standard//collection//array.nit:246 */
1570 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[4]);
1571 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1572 if (UNTAG_Bool(REGB3
)) {
1573 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
1575 /* ./../lib/standard//collection//array.nit:654 */
1576 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB2
)];
1577 /* ./../lib/standard//collection//array.nit:246 */
1580 /* ./syntax//typing.nit:249 */
1581 fra
.me
.REG
[0] = fra
.me
.REG
[4];
1582 /* ./syntax//typing.nit:250 */
1583 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1584 if (UNTAG_Bool(REGB2
)) {
1585 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 250);
1587 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1588 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1589 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1590 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1591 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1592 fra
.me
.REG
[1] = fra
.me
.REG
[5];
1594 /* ./syntax//typing.nit:252 */
1596 /* ./syntax//typing.nit:253 */
1598 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1599 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1600 fra
.me
.REG
[5] = CALL_partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1601 /* ./../lib/standard//collection//array.nit:23 */
1602 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1603 if (UNTAG_Bool(REGB3
)) {
1605 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
1607 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1608 /* ./../lib/standard//kernel.nit:212 */
1609 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1610 /* ./syntax//typing.nit:253 */
1611 if (UNTAG_Bool(REGB3
)) {
1612 /* ./syntax//typing.nit:254 */
1613 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1614 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1615 fra
.me
.REG
[5] = CALL_partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1616 /* ./../lib/standard//collection//array.nit:243 */
1618 /* ./../lib/standard//collection//array.nit:245 */
1620 /* ./../lib/standard//kernel.nit:213 */
1621 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1622 /* ./../lib/standard//collection//array.nit:245 */
1623 if (UNTAG_Bool(REGB4
)) {
1624 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1625 if (UNTAG_Bool(REGB4
)) {
1627 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
1629 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1630 /* ./../lib/standard//kernel.nit:212 */
1631 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1633 /* ./../lib/standard//collection//array.nit:245 */
1634 REGB5
= TAG_Bool(false);
1637 if (UNTAG_Bool(REGB4
)) {
1639 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
1641 /* ./../lib/standard//collection//array.nit:246 */
1642 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[5]);
1643 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1644 if (UNTAG_Bool(REGB4
)) {
1645 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
1647 /* ./../lib/standard//collection//array.nit:654 */
1648 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
1649 /* ./../lib/standard//collection//array.nit:246 */
1652 /* ./syntax//typing.nit:255 */
1653 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1654 REGB3
= CALL_abstractmetamodel___MMGlobalClass___is_interface(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1655 if (UNTAG_Bool(REGB3
)) {
1656 REGB3
= TAG_Bool(true);
1658 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1659 REGB4
= CALL_abstractmetamodel___MMGlobalClass___is_enum(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1662 if (UNTAG_Bool(REGB3
)) {
1663 REGB3
= TAG_Bool(true);
1665 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1666 REGB4
= CALL_abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1669 if (UNTAG_Bool(REGB3
)) {
1670 /* ./syntax//typing.nit:256 */
1672 /* ./../lib/standard//kernel.nit:215 */
1673 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1674 /* ./syntax//typing.nit:256 */
1677 /* ./syntax//typing.nit:257 */
1678 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1679 if (UNTAG_Bool(REGB3
)) {
1681 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1682 if (UNTAG_Bool(REGB4
)) {
1683 REGB4
= TAG_Bool(false);
1686 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1690 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1691 if (UNTAG_Bool(REGB3
)) {
1692 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1693 REGB3
= CALL_partial_order___PartialOrderElement_____leq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1694 if (UNTAG_Bool(REGB3
)) {
1695 REGB3
= TAG_Bool(true);
1697 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1698 if (UNTAG_Bool(REGB4
)) {
1699 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 257);
1701 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1702 REGB4
= CALL_abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1706 REGB4
= TAG_Bool(false);
1709 if (UNTAG_Bool(REGB3
)) {
1710 /* ./syntax//typing.nit:258 */
1711 REGB3
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[5],fra
.me
.REG
[1]));
1712 if (UNTAG_Bool(REGB3
)) {
1714 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
1717 if (UNTAG_Bool(REGB3
)) {
1719 /* ./../lib/standard//kernel.nit:215 */
1720 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1721 /* ./syntax//typing.nit:258 */
1724 /* ./syntax//typing.nit:259 */
1725 fra
.me
.REG
[4] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1726 REGB3
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
1727 if (UNTAG_Bool(REGB3
)) {
1729 nit_abort("Cast failed", NULL
, LOCATE_typing
, 259);
1731 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
1732 /* ./syntax//typing.nit:260 */
1734 /* ./../lib/standard//kernel.nit:215 */
1735 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1736 /* ./syntax//typing.nit:260 */
1738 /* ./../lib/standard//kernel.nit:212 */
1739 REGB3
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1740 /* ./syntax//typing.nit:261 */
1741 if (UNTAG_Bool(REGB3
)) {
1742 /* ./syntax//typing.nit:262 */
1743 fra
.me
.REG
[4] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1744 /* ./../lib/standard//collection//array.nit:243 */
1746 /* ./../lib/standard//collection//array.nit:245 */
1748 /* ./../lib/standard//kernel.nit:213 */
1749 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1750 /* ./../lib/standard//collection//array.nit:245 */
1751 if (UNTAG_Bool(REGB4
)) {
1752 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1753 if (UNTAG_Bool(REGB4
)) {
1755 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
1757 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1758 /* ./../lib/standard//kernel.nit:212 */
1759 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1761 /* ./../lib/standard//collection//array.nit:245 */
1762 REGB5
= TAG_Bool(false);
1765 if (UNTAG_Bool(REGB4
)) {
1767 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
1769 /* ./../lib/standard//collection//array.nit:246 */
1770 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[4]);
1771 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1772 if (UNTAG_Bool(REGB4
)) {
1773 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
1775 /* ./../lib/standard//collection//array.nit:654 */
1776 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB3
)];
1777 /* ./../lib/standard//collection//array.nit:246 */
1780 /* ./syntax//typing.nit:262 */
1781 fra
.me
.REG
[0] = fra
.me
.REG
[4];
1782 /* ./syntax//typing.nit:263 */
1783 REGB3
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1784 if (UNTAG_Bool(REGB3
)) {
1785 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 263);
1787 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1788 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1789 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1790 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1791 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
1792 fra
.me
.REG
[1] = fra
.me
.REG
[6];
1794 /* ./syntax//typing.nit:265 */
1795 fra
.me
.REG
[0] = NIT_NULL
;
1796 /* ./syntax//typing.nit:266 */
1797 fra
.me
.REG
[1] = NIT_NULL
;
1800 /* ./syntax//typing.nit:269 */
1801 fra
.me
.REG
[6] = CALL_syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1802 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]);
1803 /* ./syntax//typing.nit:270 */
1804 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1805 if (UNTAG_Bool(REGB3
)) {
1807 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1808 if (UNTAG_Bool(REGB4
)) {
1809 REGB4
= TAG_Bool(false);
1812 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
1816 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1817 if (UNTAG_Bool(REGB3
)) {
1818 /* ./syntax//typing.nit:271 */
1819 fra
.me
.REG
[5] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1820 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
1822 /* ./syntax//typing.nit:273 */
1824 /* ./../lib/standard//kernel.nit:215 */
1825 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1826 /* ./syntax//typing.nit:273 */
1831 /* ./syntax//typing.nit:253 */
1837 stack_frame_head
= fra
.me
.prev
;
1840 void typing___AParam___after_typing(val_t p0
, val_t p1
){
1841 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1843 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1844 fra
.me
.file
= LOCATE_typing
;
1846 fra
.me
.meth
= LOCATE_typing___AParam___after_typing
;
1847 fra
.me
.has_broke
= 0;
1848 fra
.me
.REG_size
= 2;
1849 fra
.me
.REG
[0] = NIT_NULL
;
1850 fra
.me
.REG
[1] = NIT_NULL
;
1853 /* ./syntax//typing.nit:283 */
1854 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1855 fra
.me
.REG
[0] = CALL_syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1856 CALL_scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1857 stack_frame_head
= fra
.me
.prev
;
1860 val_t
typing___AClosureDecl___escapable(val_t p0
){
1861 struct {struct stack_frame_t me
;} fra
;
1863 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1864 fra
.me
.file
= LOCATE_typing
;
1866 fra
.me
.meth
= LOCATE_typing___AClosureDecl___escapable
;
1867 fra
.me
.has_broke
= 0;
1868 fra
.me
.REG_size
= 1;
1869 fra
.me
.REG
[0] = NIT_NULL
;
1871 /* ./syntax//typing.nit:288 */
1872 fra
.me
.REG
[0] = ATTR_typing___AClosureDecl____escapable(fra
.me
.REG
[0]);
1873 stack_frame_head
= fra
.me
.prev
;
1874 return fra
.me
.REG
[0];
1876 void typing___AClosureDecl___accept_typing(val_t p0
, val_t p1
){
1877 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
1882 static val_t once_value_1
; /* Once value */
1883 static val_t once_value_2
; /* Once value */
1884 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1885 fra
.me
.file
= LOCATE_typing
;
1887 fra
.me
.meth
= LOCATE_typing___AClosureDecl___accept_typing
;
1888 fra
.me
.has_broke
= 0;
1889 fra
.me
.REG_size
= 10;
1890 fra
.me
.REG
[0] = NIT_NULL
;
1891 fra
.me
.REG
[1] = NIT_NULL
;
1892 fra
.me
.REG
[2] = NIT_NULL
;
1893 fra
.me
.REG
[3] = NIT_NULL
;
1894 fra
.me
.REG
[4] = NIT_NULL
;
1895 fra
.me
.REG
[5] = NIT_NULL
;
1896 fra
.me
.REG
[6] = NIT_NULL
;
1897 fra
.me
.REG
[7] = NIT_NULL
;
1898 fra
.me
.REG
[8] = NIT_NULL
;
1899 fra
.me
.REG
[9] = NIT_NULL
;
1902 /* ./syntax//typing.nit:291 */
1903 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1904 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1905 /* ./syntax//typing.nit:294 */
1906 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1907 fra
.me
.REG
[5] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1908 CALL_scope___ScopeContext___add_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1909 /* ./syntax//typing.nit:296 */
1910 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1911 /* ./syntax//typing.nit:297 */
1912 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1913 /* ./syntax//typing.nit:298 */
1914 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1915 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1916 /* ./syntax//typing.nit:300 */
1917 fra
.me
.REG
[6] = NIT_NULL
;
1918 /* ./syntax//typing.nit:301 */
1919 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1920 fra
.me
.REG
[7] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1921 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1922 if (UNTAG_Bool(REGB0
)) {
1923 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 301);
1925 fra
.me
.REG
[7] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1926 /* ./syntax//typing.nit:302 */
1927 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1928 if (UNTAG_Bool(REGB0
)) {
1930 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1931 if (UNTAG_Bool(REGB1
)) {
1932 REGB1
= TAG_Bool(false);
1935 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
1939 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1940 if (UNTAG_Bool(REGB0
)) {
1941 fra
.me
.REG
[8] = NEW_Array_array___Array___init();
1942 fra
.me
.REG
[6] = fra
.me
.REG
[8];
1944 /* ./syntax//typing.nit:303 */
1945 fra
.me
.REG
[8] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1946 fra
.me
.REG
[8] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1947 fra
.me
.REG
[8] = NEW_EscapableClosure_scope___EscapableClosure___init(fra
.me
.REG
[2], fra
.me
.REG
[8], fra
.me
.REG
[6]);
1948 /* ./syntax//typing.nit:304 */
1949 ATTR_typing___AClosureDecl____escapable(fra
.me
.REG
[2]) = fra
.me
.REG
[8];
1950 /* ./syntax//typing.nit:305 */
1951 fra
.me
.REG
[9] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1952 CALL_scope___ScopeContext___push_escapable(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8], NIT_NULL
);
1953 /* ./syntax//typing.nit:307 */
1954 REGB0
= TAG_Bool(true);
1955 CALL_typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1956 /* ./syntax//typing.nit:309 */
1957 CALL_SUPER_typing___AClosureDecl___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1958 /* ./syntax//typing.nit:311 */
1959 REGB0
= TAG_Bool(false);
1960 CALL_typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1961 /* ./syntax//typing.nit:313 */
1962 fra
.me
.REG
[1] = CALL_parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1963 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1964 if (UNTAG_Bool(REGB0
)) {
1966 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1967 if (UNTAG_Bool(REGB1
)) {
1968 REGB1
= TAG_Bool(false);
1971 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1975 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1976 if (UNTAG_Bool(REGB0
)) {
1977 /* ./syntax//typing.nit:314 */
1978 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1979 REGB0
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1980 REGB1
= TAG_Bool(false);
1981 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1982 if (UNTAG_Bool(REGB2
)) {
1984 /* ./../lib/standard//kernel.nit:175 */
1985 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1986 /* ./syntax//typing.nit:314 */
1989 if (UNTAG_Bool(REGB2
)) {
1990 /* ./syntax//typing.nit:315 */
1991 fra
.me
.REG
[1] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1992 fra
.me
.REG
[1] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1993 fra
.me
.REG
[1] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1994 fra
.me
.REG
[1] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1995 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1996 if (UNTAG_Bool(REGB2
)) {
1998 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1999 if (UNTAG_Bool(REGB1
)) {
2000 REGB1
= TAG_Bool(false);
2003 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2007 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2008 if (UNTAG_Bool(REGB2
)) {
2009 /* ./syntax//typing.nit:316 */
2010 if (!once_value_1
) {
2011 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
2012 REGB2
= TAG_Int(77);
2013 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB2
);
2014 once_value_1
= fra
.me
.REG
[1];
2015 register_static_object(&once_value_1
);
2016 } else fra
.me
.REG
[1] = once_value_1
;
2017 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2018 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
2020 /* ./syntax//typing.nit:317 */
2021 fra
.me
.REG
[1] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2022 fra
.me
.REG
[1] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2023 REGB2
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2024 if (UNTAG_Bool(REGB2
)) {
2025 fra
.me
.REG
[8] = CALL_scope___EscapableBlock___break_list(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2026 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2027 if (UNTAG_Bool(REGB2
)) {
2029 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2030 if (UNTAG_Bool(REGB1
)) {
2031 REGB1
= TAG_Bool(false);
2034 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
2038 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2040 REGB1
= TAG_Bool(false);
2043 if (UNTAG_Bool(REGB2
)) {
2044 /* ./syntax//typing.nit:318 */
2045 if (!once_value_2
) {
2046 fra
.me
.REG
[8] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
2047 REGB2
= TAG_Int(80);
2048 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
2049 once_value_2
= fra
.me
.REG
[8];
2050 register_static_object(&once_value_2
);
2051 } else fra
.me
.REG
[8] = once_value_2
;
2052 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2053 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[8]);
2058 /* ./syntax//typing.nit:322 */
2059 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2060 if (UNTAG_Bool(REGB2
)) {
2062 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2063 if (UNTAG_Bool(REGB1
)) {
2064 REGB1
= TAG_Bool(false);
2067 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2071 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2072 if (UNTAG_Bool(REGB2
)) {
2073 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2074 if (UNTAG_Bool(REGB2
)) {
2075 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 322);
2077 /* ./../lib/standard//collection//array.nit:234 */
2079 /* ./../lib/standard//collection//array.nit:235 */
2080 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2081 if (UNTAG_Bool(REGB1
)) {
2083 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
2085 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2086 /* ./../lib/standard//collection//array.nit:236 */
2087 fra
.me
.REG
[8] = ATTR_array___Array____items(fra
.me
.REG
[6]);
2088 /* ./../lib/standard//collection//array.nit:237 */
2090 /* ./../lib/standard//collection//array.nit:23 */
2091 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2092 if (UNTAG_Bool(REGB1
)) {
2094 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
2096 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2097 /* ./../lib/standard//kernel.nit:212 */
2098 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
2099 /* ./../lib/standard//collection//array.nit:237 */
2100 if (UNTAG_Bool(REGB1
)) {
2101 /* ./../lib/standard//collection//array.nit:238 */
2102 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2103 if (UNTAG_Bool(REGB1
)) {
2104 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
2106 /* ./../lib/standard//collection//array.nit:654 */
2107 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB2
)];
2108 /* ./syntax//typing.nit:323 */
2109 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
2110 /* ./../lib/standard//collection//array.nit:239 */
2112 /* ./../lib/standard//kernel.nit:215 */
2113 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
2114 /* ./../lib/standard//collection//array.nit:239 */
2117 /* ./../lib/standard//collection//array.nit:237 */
2123 /* ./syntax//typing.nit:326 */
2124 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2125 /* ./syntax//typing.nit:327 */
2126 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2127 /* ./syntax//typing.nit:328 */
2128 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2129 CALL_scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2130 stack_frame_head
= fra
.me
.prev
;
2133 val_t
typing___AType___stype(val_t p0
){
2134 struct {struct stack_frame_t me
;} 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___AType___stype
;
2141 fra
.me
.has_broke
= 0;
2142 fra
.me
.REG_size
= 1;
2143 fra
.me
.REG
[0] = NIT_NULL
;
2145 /* ./syntax//typing.nit:333 */
2146 fra
.me
.REG
[0] = ATTR_typing___AType____stype(fra
.me
.REG
[0]);
2147 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2148 if (UNTAG_Bool(REGB0
)) {
2150 nit_abort("Cast failed", NULL
, LOCATE_typing
, 333);
2154 stack_frame_head
= fra
.me
.prev
;
2155 return fra
.me
.REG
[0];
2157 val_t
typing___AType___is_typed(val_t p0
){
2158 struct {struct stack_frame_t me
;} fra
;
2162 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2163 fra
.me
.file
= LOCATE_typing
;
2165 fra
.me
.meth
= LOCATE_typing___AType___is_typed
;
2166 fra
.me
.has_broke
= 0;
2167 fra
.me
.REG_size
= 1;
2168 fra
.me
.REG
[0] = NIT_NULL
;
2170 /* ./syntax//typing.nit:334 */
2171 fra
.me
.REG
[0] = ATTR_typing___AType____stype(fra
.me
.REG
[0]);
2172 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2173 if (UNTAG_Bool(REGB0
)) {
2175 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2176 if (UNTAG_Bool(REGB1
)) {
2177 REGB1
= TAG_Bool(false);
2180 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2184 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2187 stack_frame_head
= fra
.me
.prev
;
2190 void typing___AType___after_typing(val_t p0
, val_t p1
){
2191 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2193 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2194 fra
.me
.file
= LOCATE_typing
;
2196 fra
.me
.meth
= LOCATE_typing___AType___after_typing
;
2197 fra
.me
.has_broke
= 0;
2198 fra
.me
.REG_size
= 2;
2199 fra
.me
.REG
[0] = NIT_NULL
;
2200 fra
.me
.REG
[1] = NIT_NULL
;
2203 /* ./syntax//typing.nit:339 */
2204 fra
.me
.REG
[1] = CALL_syntax_base___AType___get_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2205 ATTR_typing___AType____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2206 stack_frame_head
= fra
.me
.prev
;
2209 val_t
typing___AExpr___is_typed(val_t p0
){
2210 struct {struct stack_frame_t me
;} fra
;
2213 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2214 fra
.me
.file
= LOCATE_typing
;
2216 fra
.me
.meth
= LOCATE_typing___AExpr___is_typed
;
2217 fra
.me
.has_broke
= 0;
2218 fra
.me
.REG_size
= 1;
2219 fra
.me
.REG
[0] = NIT_NULL
;
2221 /* ./syntax//typing.nit:344 */
2222 REGB0
= TAG_Bool(ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0])!=NIT_NULL
);
2223 if (UNTAG_Bool(REGB0
)) {
2225 nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_typing
, 344);
2227 REGB0
= ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]);
2228 stack_frame_head
= fra
.me
.prev
;
2231 val_t
typing___AExpr___is_statement(val_t p0
){
2232 struct {struct stack_frame_t me
;} fra
;
2236 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2237 fra
.me
.file
= LOCATE_typing
;
2239 fra
.me
.meth
= LOCATE_typing___AExpr___is_statement
;
2240 fra
.me
.has_broke
= 0;
2241 fra
.me
.REG_size
= 1;
2242 fra
.me
.REG
[0] = NIT_NULL
;
2244 /* ./syntax//typing.nit:345 */
2245 fra
.me
.REG
[0] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
2246 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2247 if (UNTAG_Bool(REGB0
)) {
2249 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2250 if (UNTAG_Bool(REGB1
)) {
2251 REGB1
= TAG_Bool(false);
2254 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2260 stack_frame_head
= fra
.me
.prev
;
2263 val_t
typing___AExpr___stype(val_t p0
){
2264 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2267 static val_t once_value_1
; /* Once value */
2268 static val_t once_value_2
; /* Once value */
2269 static val_t once_value_3
; /* Once value */
2270 static val_t once_value_4
; /* Once value */
2271 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2272 fra
.me
.file
= LOCATE_typing
;
2274 fra
.me
.meth
= LOCATE_typing___AExpr___stype
;
2275 fra
.me
.has_broke
= 0;
2276 fra
.me
.REG_size
= 3;
2277 fra
.me
.REG
[0] = NIT_NULL
;
2278 fra
.me
.REG
[1] = NIT_NULL
;
2279 fra
.me
.REG
[2] = NIT_NULL
;
2281 /* ./syntax//typing.nit:348 */
2282 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2283 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2284 if (UNTAG_Bool(REGB0
)) {
2285 /* ./syntax//typing.nit:349 */
2287 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
2288 if (!once_value_1
) {
2289 fra
.me
.REG
[2] = BOX_NativeString("");
2291 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2292 once_value_1
= fra
.me
.REG
[2];
2293 register_static_object(&once_value_1
);
2294 } else fra
.me
.REG
[2] = once_value_1
;
2295 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2296 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2297 fra
.me
.REG
[2] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2298 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2299 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2300 if (!once_value_2
) {
2301 fra
.me
.REG
[2] = BOX_NativeString(": not is_typed");
2302 REGB0
= TAG_Int(14);
2303 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2304 once_value_2
= fra
.me
.REG
[2];
2305 register_static_object(&once_value_2
);
2306 } else fra
.me
.REG
[2] = once_value_2
;
2307 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2308 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2309 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2310 CALL_file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2311 /* ./syntax//typing.nit:350 */
2312 nit_abort("Aborted", NULL
, LOCATE_typing
, 350);
2314 /* ./syntax//typing.nit:352 */
2315 REGB0
= CALL_syntax_base___AExpr___is_statement(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2316 if (UNTAG_Bool(REGB0
)) {
2317 /* ./syntax//typing.nit:353 */
2319 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
2320 if (!once_value_3
) {
2321 fra
.me
.REG
[2] = BOX_NativeString("");
2323 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2324 once_value_3
= fra
.me
.REG
[2];
2325 register_static_object(&once_value_3
);
2326 } else fra
.me
.REG
[2] = once_value_3
;
2327 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2328 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2329 fra
.me
.REG
[2] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2330 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2331 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2332 if (!once_value_4
) {
2333 fra
.me
.REG
[2] = BOX_NativeString(": is_statement");
2334 REGB0
= TAG_Int(14);
2335 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2336 once_value_4
= fra
.me
.REG
[2];
2337 register_static_object(&once_value_4
);
2338 } else fra
.me
.REG
[2] = once_value_4
;
2339 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2340 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2341 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2342 CALL_file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2343 /* ./syntax//typing.nit:354 */
2344 nit_abort("Aborted", NULL
, LOCATE_typing
, 354);
2346 /* ./syntax//typing.nit:356 */
2347 fra
.me
.REG
[0] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
2348 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2349 if (UNTAG_Bool(REGB0
)) {
2351 nit_abort("Cast failed", NULL
, LOCATE_typing
, 356);
2355 stack_frame_head
= fra
.me
.prev
;
2356 return fra
.me
.REG
[0];
2358 void typing___AExpr___after_typing(val_t p0
, val_t p1
){
2359 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2362 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2363 fra
.me
.file
= LOCATE_typing
;
2365 fra
.me
.meth
= LOCATE_typing___AExpr___after_typing
;
2366 fra
.me
.has_broke
= 0;
2367 fra
.me
.REG_size
= 2;
2368 fra
.me
.REG
[0] = NIT_NULL
;
2369 fra
.me
.REG
[1] = NIT_NULL
;
2372 /* ./syntax//typing.nit:363 */
2373 REGB0
= TAG_Bool(true);
2374 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2375 stack_frame_head
= fra
.me
.prev
;
2378 val_t
typing___AExpr___is_implicit_self(val_t p0
){
2379 struct {struct stack_frame_t me
;} fra
;
2382 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2383 fra
.me
.file
= LOCATE_typing
;
2385 fra
.me
.meth
= LOCATE_typing___AExpr___is_implicit_self
;
2386 fra
.me
.has_broke
= 0;
2387 fra
.me
.REG_size
= 1;
2388 fra
.me
.REG
[0] = NIT_NULL
;
2390 /* ./syntax//typing.nit:367 */
2391 REGB0
= TAG_Bool(false);
2394 stack_frame_head
= fra
.me
.prev
;
2397 val_t
typing___AExpr___is_self(val_t p0
){
2398 struct {struct stack_frame_t me
;} fra
;
2401 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2402 fra
.me
.file
= LOCATE_typing
;
2404 fra
.me
.meth
= LOCATE_typing___AExpr___is_self
;
2405 fra
.me
.has_broke
= 0;
2406 fra
.me
.REG_size
= 1;
2407 fra
.me
.REG
[0] = NIT_NULL
;
2409 /* ./syntax//typing.nit:370 */
2410 REGB0
= TAG_Bool(false);
2413 stack_frame_head
= fra
.me
.prev
;
2416 val_t
typing___AExpr___its_variable(val_t p0
){
2417 struct {struct stack_frame_t me
;} fra
;
2419 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2420 fra
.me
.file
= LOCATE_typing
;
2422 fra
.me
.meth
= LOCATE_typing___AExpr___its_variable
;
2423 fra
.me
.has_broke
= 0;
2424 fra
.me
.REG_size
= 1;
2425 fra
.me
.REG
[0] = NIT_NULL
;
2427 /* ./syntax//typing.nit:373 */
2428 fra
.me
.REG
[0] = NIT_NULL
;
2431 stack_frame_head
= fra
.me
.prev
;
2432 return fra
.me
.REG
[0];
2434 val_t
typing___AExpr___if_true_flow_ctx(val_t p0
){
2435 struct {struct stack_frame_t me
;} fra
;
2437 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2438 fra
.me
.file
= LOCATE_typing
;
2440 fra
.me
.meth
= LOCATE_typing___AExpr___if_true_flow_ctx
;
2441 fra
.me
.has_broke
= 0;
2442 fra
.me
.REG_size
= 1;
2443 fra
.me
.REG
[0] = NIT_NULL
;
2445 /* ./syntax//typing.nit:375 */
2446 fra
.me
.REG
[0] = ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]);
2447 stack_frame_head
= fra
.me
.prev
;
2448 return fra
.me
.REG
[0];
2450 val_t
typing___AExpr___if_false_flow_ctx(val_t p0
){
2451 struct {struct stack_frame_t me
;} fra
;
2453 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2454 fra
.me
.file
= LOCATE_typing
;
2456 fra
.me
.meth
= LOCATE_typing___AExpr___if_false_flow_ctx
;
2457 fra
.me
.has_broke
= 0;
2458 fra
.me
.REG_size
= 1;
2459 fra
.me
.REG
[0] = NIT_NULL
;
2461 /* ./syntax//typing.nit:378 */
2462 fra
.me
.REG
[0] = ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]);
2463 stack_frame_head
= fra
.me
.prev
;
2464 return fra
.me
.REG
[0];
2466 val_t
typing___AVardeclExpr___variable(val_t p0
){
2467 struct {struct stack_frame_t me
;} fra
;
2470 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2471 fra
.me
.file
= LOCATE_typing
;
2473 fra
.me
.meth
= LOCATE_typing___AVardeclExpr___variable
;
2474 fra
.me
.has_broke
= 0;
2475 fra
.me
.REG_size
= 1;
2476 fra
.me
.REG
[0] = NIT_NULL
;
2478 /* ./syntax//typing.nit:384 */
2479 fra
.me
.REG
[0] = ATTR_typing___AVardeclExpr____variable(fra
.me
.REG
[0]);
2480 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2481 if (UNTAG_Bool(REGB0
)) {
2483 nit_abort("Cast failed", NULL
, LOCATE_typing
, 384);
2487 stack_frame_head
= fra
.me
.prev
;
2488 return fra
.me
.REG
[0];
2490 void typing___AVardeclExpr___after_typing(val_t p0
, val_t p1
){
2491 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2495 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2496 fra
.me
.file
= LOCATE_typing
;
2498 fra
.me
.meth
= LOCATE_typing___AVardeclExpr___after_typing
;
2499 fra
.me
.has_broke
= 0;
2500 fra
.me
.REG_size
= 5;
2501 fra
.me
.REG
[0] = NIT_NULL
;
2502 fra
.me
.REG
[1] = NIT_NULL
;
2503 fra
.me
.REG
[2] = NIT_NULL
;
2504 fra
.me
.REG
[3] = NIT_NULL
;
2505 fra
.me
.REG
[4] = NIT_NULL
;
2508 /* ./syntax//typing.nit:388 */
2509 fra
.me
.REG
[2] = CALL_parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2510 fra
.me
.REG
[2] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2511 fra
.me
.REG
[3] = CALL_parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2512 fra
.me
.REG
[3] = NEW_VarVariable_syntax_base___VarVariable___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2513 /* ./syntax//typing.nit:389 */
2514 ATTR_typing___AVardeclExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
2515 /* ./syntax//typing.nit:390 */
2516 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2517 CALL_scope___ScopeContext___add_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2518 /* ./syntax//typing.nit:391 */
2519 fra
.me
.REG
[2] = CALL_parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2520 /* ./syntax//typing.nit:392 */
2521 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2522 if (UNTAG_Bool(REGB0
)) {
2524 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2525 if (UNTAG_Bool(REGB1
)) {
2526 REGB1
= TAG_Bool(false);
2529 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2533 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2534 if (UNTAG_Bool(REGB0
)) {
2535 CALL_typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2537 /* ./syntax//typing.nit:394 */
2538 fra
.me
.REG
[4] = CALL_parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2539 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2540 if (UNTAG_Bool(REGB0
)) {
2542 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2543 if (UNTAG_Bool(REGB1
)) {
2544 REGB1
= TAG_Bool(false);
2547 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2551 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2552 if (UNTAG_Bool(REGB0
)) {
2553 /* ./syntax//typing.nit:395 */
2554 fra
.me
.REG
[4] = CALL_parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2555 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2556 if (UNTAG_Bool(REGB0
)) {
2557 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 395);
2559 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2560 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2561 if (UNTAG_Bool(REGB0
)) {
2564 /* ./syntax//typing.nit:396 */
2565 fra
.me
.REG
[4] = CALL_parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2566 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2567 if (UNTAG_Bool(REGB0
)) {
2568 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 396);
2570 fra
.me
.REG
[4] = CALL_syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2571 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2572 /* ./syntax//typing.nit:397 */
2573 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2574 if (UNTAG_Bool(REGB0
)) {
2576 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2577 if (UNTAG_Bool(REGB1
)) {
2578 REGB1
= TAG_Bool(false);
2581 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2585 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2586 if (UNTAG_Bool(REGB0
)) {
2587 /* ./syntax//typing.nit:398 */
2588 fra
.me
.REG
[4] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2589 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
2592 /* ./syntax//typing.nit:400 */
2593 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2594 if (UNTAG_Bool(REGB0
)) {
2596 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2597 if (UNTAG_Bool(REGB1
)) {
2598 REGB1
= TAG_Bool(false);
2601 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2605 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2606 if (UNTAG_Bool(REGB0
)) {
2607 /* ./syntax//typing.nit:401 */
2608 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2609 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2610 if (UNTAG_Bool(REGB0
)) {
2613 /* ./syntax//typing.nit:402 */
2614 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2615 if (UNTAG_Bool(REGB0
)) {
2616 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 402);
2618 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2619 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2621 /* ./syntax//typing.nit:404 */
2622 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2623 fra
.me
.REG
[1] = CALL_static_type___MMType___as_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2624 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2627 /* ./syntax//typing.nit:406 */
2628 REGB0
= TAG_Bool(true);
2629 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2631 stack_frame_head
= fra
.me
.prev
;
2634 void typing___ABlockExpr___accept_typing(val_t p0
, val_t p1
){
2635 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2638 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2639 fra
.me
.file
= LOCATE_typing
;
2641 fra
.me
.meth
= LOCATE_typing___ABlockExpr___accept_typing
;
2642 fra
.me
.has_broke
= 0;
2643 fra
.me
.REG_size
= 3;
2644 fra
.me
.REG
[0] = NIT_NULL
;
2645 fra
.me
.REG
[1] = NIT_NULL
;
2646 fra
.me
.REG
[2] = NIT_NULL
;
2649 /* ./syntax//typing.nit:413 */
2650 fra
.me
.REG
[2] = CALL_parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2651 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_typing___ABlockExpr___accept_typing_1
));
2652 /* ./syntax//typing.nit:422 */
2653 REGB0
= TAG_Bool(true);
2654 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2655 stack_frame_head
= fra
.me
.prev
;
2658 void OC_typing___ABlockExpr___accept_typing_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
2659 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2663 static val_t once_value_2
; /* 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___ABlockExpr___accept_typing
;
2668 fra
.me
.has_broke
= 0;
2669 fra
.me
.REG_size
= 2;
2670 fra
.me
.REG
[0] = NIT_NULL
;
2671 fra
.me
.REG
[1] = NIT_NULL
;
2672 fra
.me
.closure_ctx
= closctx_param
;
2673 fra
.me
.closure_funs
= CREG
;
2675 CREG
[0] = clos_fun0
;
2676 /* ./syntax//typing.nit:414 */
2677 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2678 REGB0
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2679 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2680 if (UNTAG_Bool(REGB0
)) {
2681 /* ./syntax//typing.nit:415 */
2682 CALL_parser_prod___Visitor___enter_visit(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2684 /* ./syntax//typing.nit:416 */
2685 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2686 REGB0
= CALL_flow___FlowContext___already_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2687 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2688 if (UNTAG_Bool(REGB0
)) {
2689 /* ./syntax//typing.nit:417 */
2690 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2691 REGB0
= TAG_Bool(true);
2692 CALL_flow___FlowContext___already_unreash__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
2693 /* ./syntax//typing.nit:418 */
2694 if (!once_value_2
) {
2695 fra
.me
.REG
[1] = BOX_NativeString("Error: unreachable statement.");
2696 REGB0
= TAG_Int(29);
2697 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
2698 once_value_2
= fra
.me
.REG
[1];
2699 register_static_object(&once_value_2
);
2700 } else fra
.me
.REG
[1] = once_value_2
;
2701 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2702 CALL_syntax_base___AbsSyntaxVisitor___error(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[1]);
2705 stack_frame_head
= fra
.me
.prev
;
2708 void typing___AReturnExpr___after_typing(val_t p0
, val_t p1
){
2709 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2713 static val_t once_value_1
; /* Once value */
2714 static val_t once_value_3
; /* Once value */
2715 static val_t once_value_4
; /* Once value */
2716 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2717 fra
.me
.file
= LOCATE_typing
;
2719 fra
.me
.meth
= LOCATE_typing___AReturnExpr___after_typing
;
2720 fra
.me
.has_broke
= 0;
2721 fra
.me
.REG_size
= 5;
2722 fra
.me
.REG
[0] = NIT_NULL
;
2723 fra
.me
.REG
[1] = NIT_NULL
;
2724 fra
.me
.REG
[2] = NIT_NULL
;
2725 fra
.me
.REG
[3] = NIT_NULL
;
2726 fra
.me
.REG
[4] = NIT_NULL
;
2729 /* ./syntax//typing.nit:429 */
2730 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2731 /* ./syntax//typing.nit:430 */
2732 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2733 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2734 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2735 if (UNTAG_Bool(REGB0
)) {
2736 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 430);
2738 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2739 /* ./syntax//typing.nit:432 */
2740 REGB0
= CALL_typing___TypingVisitor___is_default_closure_definition(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2741 if (UNTAG_Bool(REGB0
)) {
2742 /* ./syntax//typing.nit:433 */
2743 if (!once_value_1
) {
2744 fra
.me
.REG
[3] = BOX_NativeString("Error: 'return' invalid in default closure definitions. Use 'continue' or 'break'.");
2745 REGB0
= TAG_Int(82);
2746 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
2747 once_value_1
= fra
.me
.REG
[3];
2748 register_static_object(&once_value_1
);
2749 } else fra
.me
.REG
[3] = once_value_1
;
2750 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2751 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2752 /* ./syntax//typing.nit:434 */
2755 /* ./syntax//typing.nit:437 */
2756 fra
.me
.REG
[3] = CALL_parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2757 /* ./syntax//typing.nit:438 */
2758 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2759 if (UNTAG_Bool(REGB0
)) {
2761 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2762 if (UNTAG_Bool(REGB1
)) {
2763 REGB1
= TAG_Bool(false);
2766 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2770 if (UNTAG_Bool(REGB0
)) {
2771 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2772 if (UNTAG_Bool(REGB0
)) {
2774 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2775 if (UNTAG_Bool(REGB1
)) {
2776 REGB1
= TAG_Bool(false);
2779 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2783 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2785 REGB1
= TAG_Bool(false);
2788 if (UNTAG_Bool(REGB0
)) {
2789 /* ./syntax//typing.nit:439 */
2790 if (!once_value_3
) {
2791 fra
.me
.REG
[4] = BOX_NativeString("Error: Return without value in a function.");
2792 REGB0
= TAG_Int(42);
2793 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2794 once_value_3
= fra
.me
.REG
[4];
2795 register_static_object(&once_value_3
);
2796 } else fra
.me
.REG
[4] = once_value_3
;
2797 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2798 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
2800 /* ./syntax//typing.nit:440 */
2801 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2802 if (UNTAG_Bool(REGB0
)) {
2804 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2805 if (UNTAG_Bool(REGB1
)) {
2806 REGB1
= TAG_Bool(false);
2809 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2813 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2814 if (UNTAG_Bool(REGB0
)) {
2815 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2816 if (UNTAG_Bool(REGB0
)) {
2818 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2819 if (UNTAG_Bool(REGB1
)) {
2820 REGB1
= TAG_Bool(false);
2823 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2828 REGB1
= TAG_Bool(false);
2831 if (UNTAG_Bool(REGB0
)) {
2832 /* ./syntax//typing.nit:441 */
2833 if (!once_value_4
) {
2834 fra
.me
.REG
[4] = BOX_NativeString("Error: Return with value in a procedure.");
2835 REGB0
= TAG_Int(40);
2836 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2837 once_value_4
= fra
.me
.REG
[4];
2838 register_static_object(&once_value_4
);
2839 } else fra
.me
.REG
[4] = once_value_4
;
2840 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2841 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
2843 /* ./syntax//typing.nit:442 */
2844 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2845 if (UNTAG_Bool(REGB0
)) {
2847 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2848 if (UNTAG_Bool(REGB1
)) {
2849 REGB1
= TAG_Bool(false);
2852 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2856 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2857 if (UNTAG_Bool(REGB0
)) {
2858 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2859 if (UNTAG_Bool(REGB0
)) {
2861 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2862 if (UNTAG_Bool(REGB1
)) {
2863 REGB1
= TAG_Bool(false);
2866 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2870 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2872 REGB1
= TAG_Bool(false);
2875 if (UNTAG_Bool(REGB0
)) {
2876 /* ./syntax//typing.nit:443 */
2877 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2881 /* ./syntax//typing.nit:445 */
2882 REGB0
= TAG_Bool(true);
2883 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2885 stack_frame_head
= fra
.me
.prev
;
2888 void typing___AContinueExpr___after_typing(val_t p0
, val_t p1
){
2889 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2893 static val_t once_value_2
; /* Once value */
2894 static val_t once_value_3
; /* Once value */
2895 static val_t once_value_4
; /* Once value */
2896 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2897 fra
.me
.file
= LOCATE_typing
;
2899 fra
.me
.meth
= LOCATE_typing___AContinueExpr___after_typing
;
2900 fra
.me
.has_broke
= 0;
2901 fra
.me
.REG_size
= 4;
2902 fra
.me
.REG
[0] = NIT_NULL
;
2903 fra
.me
.REG
[1] = NIT_NULL
;
2904 fra
.me
.REG
[2] = NIT_NULL
;
2905 fra
.me
.REG
[3] = NIT_NULL
;
2908 /* ./syntax//typing.nit:452 */
2909 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2910 /* ./syntax//typing.nit:453 */
2911 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2912 fra
.me
.REG
[2] = CALL_scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
2913 /* ./syntax//typing.nit:454 */
2914 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2915 if (UNTAG_Bool(REGB0
)) {
2917 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2918 if (UNTAG_Bool(REGB1
)) {
2919 REGB1
= TAG_Bool(false);
2922 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2926 if (UNTAG_Bool(REGB0
)) {
2929 /* ./syntax//typing.nit:456 */
2930 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2931 if (UNTAG_Bool(REGB0
)) {
2932 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 456);
2934 REGB0
= CALL_scope___EscapableBlock___is_break_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2935 if (UNTAG_Bool(REGB0
)) {
2936 /* ./syntax//typing.nit:457 */
2937 if (!once_value_2
) {
2938 fra
.me
.REG
[3] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
2939 REGB0
= TAG_Int(39);
2940 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
2941 once_value_2
= fra
.me
.REG
[3];
2942 register_static_object(&once_value_2
);
2943 } else fra
.me
.REG
[3] = once_value_2
;
2944 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2945 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2946 /* ./syntax//typing.nit:458 */
2949 /* ./syntax//typing.nit:461 */
2950 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2951 if (UNTAG_Bool(REGB0
)) {
2952 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 461);
2954 fra
.me
.REG
[2] = CALL_scope___EscapableBlock___continue_stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2955 /* ./syntax//typing.nit:462 */
2956 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2957 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2958 if (UNTAG_Bool(REGB0
)) {
2960 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2961 if (UNTAG_Bool(REGB1
)) {
2962 REGB1
= TAG_Bool(false);
2965 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2969 if (UNTAG_Bool(REGB0
)) {
2970 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2971 if (UNTAG_Bool(REGB0
)) {
2973 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2974 if (UNTAG_Bool(REGB1
)) {
2975 REGB1
= TAG_Bool(false);
2978 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2982 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2984 REGB1
= TAG_Bool(false);
2987 if (UNTAG_Bool(REGB0
)) {
2988 /* ./syntax//typing.nit:463 */
2989 if (!once_value_3
) {
2990 fra
.me
.REG
[3] = BOX_NativeString("Error: continue with a value required in this block.");
2991 REGB0
= TAG_Int(52);
2992 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
2993 once_value_3
= fra
.me
.REG
[3];
2994 register_static_object(&once_value_3
);
2995 } else fra
.me
.REG
[3] = once_value_3
;
2996 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2997 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2999 /* ./syntax//typing.nit:464 */
3000 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3001 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3002 if (UNTAG_Bool(REGB0
)) {
3004 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3005 if (UNTAG_Bool(REGB1
)) {
3006 REGB1
= TAG_Bool(false);
3009 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3013 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3014 if (UNTAG_Bool(REGB0
)) {
3015 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3016 if (UNTAG_Bool(REGB0
)) {
3018 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3019 if (UNTAG_Bool(REGB1
)) {
3020 REGB1
= TAG_Bool(false);
3023 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3028 REGB1
= TAG_Bool(false);
3031 if (UNTAG_Bool(REGB0
)) {
3032 /* ./syntax//typing.nit:465 */
3033 if (!once_value_4
) {
3034 fra
.me
.REG
[3] = BOX_NativeString("Error: continue without value required in this block.");
3035 REGB0
= TAG_Int(53);
3036 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3037 once_value_4
= fra
.me
.REG
[3];
3038 register_static_object(&once_value_4
);
3039 } else fra
.me
.REG
[3] = once_value_4
;
3040 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3041 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3043 /* ./syntax//typing.nit:466 */
3044 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3045 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3046 if (UNTAG_Bool(REGB0
)) {
3048 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3049 if (UNTAG_Bool(REGB1
)) {
3050 REGB1
= TAG_Bool(false);
3053 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3057 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3058 if (UNTAG_Bool(REGB0
)) {
3059 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3060 if (UNTAG_Bool(REGB0
)) {
3062 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3063 if (UNTAG_Bool(REGB1
)) {
3064 REGB1
= TAG_Bool(false);
3067 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3071 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3073 REGB1
= TAG_Bool(false);
3076 if (UNTAG_Bool(REGB0
)) {
3077 /* ./syntax//typing.nit:467 */
3078 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3079 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
3080 if (UNTAG_Bool(REGB0
)) {
3082 nit_abort("Cast failed", NULL
, LOCATE_typing
, 467);
3084 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3088 /* ./syntax//typing.nit:469 */
3089 REGB0
= TAG_Bool(true);
3090 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3092 stack_frame_head
= fra
.me
.prev
;
3095 void typing___ABreakExpr___after_typing(val_t p0
, val_t p1
){
3096 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3100 static val_t once_value_2
; /* Once value */
3101 static val_t once_value_3
; /* Once value */
3102 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3103 fra
.me
.file
= LOCATE_typing
;
3105 fra
.me
.meth
= LOCATE_typing___ABreakExpr___after_typing
;
3106 fra
.me
.has_broke
= 0;
3107 fra
.me
.REG_size
= 5;
3108 fra
.me
.REG
[0] = NIT_NULL
;
3109 fra
.me
.REG
[1] = NIT_NULL
;
3110 fra
.me
.REG
[2] = NIT_NULL
;
3111 fra
.me
.REG
[3] = NIT_NULL
;
3112 fra
.me
.REG
[4] = NIT_NULL
;
3115 /* ./syntax//typing.nit:476 */
3116 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3117 /* ./syntax//typing.nit:477 */
3118 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3119 /* ./syntax//typing.nit:478 */
3120 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3121 fra
.me
.REG
[3] = CALL_scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
3122 /* ./syntax//typing.nit:479 */
3123 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3124 if (UNTAG_Bool(REGB0
)) {
3126 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3127 if (UNTAG_Bool(REGB1
)) {
3128 REGB1
= TAG_Bool(false);
3131 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3135 if (UNTAG_Bool(REGB0
)) {
3138 /* ./syntax//typing.nit:481 */
3139 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3140 if (UNTAG_Bool(REGB0
)) {
3141 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 481);
3143 fra
.me
.REG
[4] = CALL_scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3144 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3145 /* ./syntax//typing.nit:483 */
3146 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3147 if (UNTAG_Bool(REGB0
)) {
3148 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 483);
3150 fra
.me
.REG
[3] = CALL_scope___EscapableBlock___break_list(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3151 /* ./syntax//typing.nit:484 */
3152 fra
.me
.REG
[2] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3153 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3154 if (UNTAG_Bool(REGB0
)) {
3156 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3157 if (UNTAG_Bool(REGB1
)) {
3158 REGB1
= TAG_Bool(false);
3161 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3165 if (UNTAG_Bool(REGB0
)) {
3166 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3167 if (UNTAG_Bool(REGB0
)) {
3169 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3170 if (UNTAG_Bool(REGB1
)) {
3171 REGB1
= TAG_Bool(false);
3174 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3178 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3180 REGB1
= TAG_Bool(false);
3183 if (UNTAG_Bool(REGB0
)) {
3184 /* ./syntax//typing.nit:485 */
3185 if (!once_value_2
) {
3186 fra
.me
.REG
[2] = BOX_NativeString("Error: break with a value required in this block.");
3187 REGB0
= TAG_Int(49);
3188 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
3189 once_value_2
= fra
.me
.REG
[2];
3190 register_static_object(&once_value_2
);
3191 } else fra
.me
.REG
[2] = once_value_2
;
3192 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3193 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3195 /* ./syntax//typing.nit:486 */
3196 fra
.me
.REG
[2] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3197 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3198 if (UNTAG_Bool(REGB0
)) {
3200 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3201 if (UNTAG_Bool(REGB1
)) {
3202 REGB1
= TAG_Bool(false);
3205 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3209 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3210 if (UNTAG_Bool(REGB0
)) {
3211 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3212 if (UNTAG_Bool(REGB0
)) {
3214 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3215 if (UNTAG_Bool(REGB1
)) {
3216 REGB1
= TAG_Bool(false);
3219 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3224 REGB1
= TAG_Bool(false);
3227 if (UNTAG_Bool(REGB0
)) {
3228 /* ./syntax//typing.nit:487 */
3229 if (!once_value_3
) {
3230 fra
.me
.REG
[2] = BOX_NativeString("Error: break without value required in this block.");
3231 REGB0
= TAG_Int(50);
3232 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
3233 once_value_3
= fra
.me
.REG
[2];
3234 register_static_object(&once_value_3
);
3235 } else fra
.me
.REG
[2] = once_value_3
;
3236 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3237 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3239 /* ./syntax//typing.nit:488 */
3240 fra
.me
.REG
[2] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3241 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3242 if (UNTAG_Bool(REGB0
)) {
3244 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3245 if (UNTAG_Bool(REGB1
)) {
3246 REGB1
= TAG_Bool(false);
3249 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3253 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3254 if (UNTAG_Bool(REGB0
)) {
3255 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3256 if (UNTAG_Bool(REGB0
)) {
3258 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3259 if (UNTAG_Bool(REGB1
)) {
3260 REGB1
= TAG_Bool(false);
3263 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3267 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3269 REGB1
= TAG_Bool(false);
3272 if (UNTAG_Bool(REGB0
)) {
3273 /* ./syntax//typing.nit:490 */
3274 fra
.me
.REG
[2] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3275 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
3276 if (UNTAG_Bool(REGB0
)) {
3278 nit_abort("Cast failed", NULL
, LOCATE_typing
, 490);
3280 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3281 if (UNTAG_Bool(REGB0
)) {
3282 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 490);
3284 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3288 /* ./syntax//typing.nit:492 */
3289 REGB0
= TAG_Bool(true);
3290 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3292 stack_frame_head
= fra
.me
.prev
;
3295 void typing___AAbortExpr___after_typing(val_t p0
, val_t p1
){
3296 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3299 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3300 fra
.me
.file
= LOCATE_typing
;
3302 fra
.me
.meth
= LOCATE_typing___AAbortExpr___after_typing
;
3303 fra
.me
.has_broke
= 0;
3304 fra
.me
.REG_size
= 2;
3305 fra
.me
.REG
[0] = NIT_NULL
;
3306 fra
.me
.REG
[1] = NIT_NULL
;
3309 /* ./syntax//typing.nit:499 */
3310 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3311 /* ./syntax//typing.nit:500 */
3312 REGB0
= TAG_Bool(true);
3313 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3314 stack_frame_head
= fra
.me
.prev
;
3317 val_t
typing___AAbsControl___escapable(val_t p0
){
3318 struct {struct stack_frame_t me
;} fra
;
3320 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3321 fra
.me
.file
= LOCATE_typing
;
3323 fra
.me
.meth
= LOCATE_typing___AAbsControl___escapable
;
3324 fra
.me
.has_broke
= 0;
3325 fra
.me
.REG_size
= 1;
3326 fra
.me
.REG
[0] = NIT_NULL
;
3328 /* ./syntax//typing.nit:507 */
3329 fra
.me
.REG
[0] = ATTR_typing___AAbsControl____escapable(fra
.me
.REG
[0]);
3330 stack_frame_head
= fra
.me
.prev
;
3331 return fra
.me
.REG
[0];
3333 void typing___AAbsControl___process_control(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
3334 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3338 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3339 fra
.me
.file
= LOCATE_typing
;
3341 fra
.me
.meth
= LOCATE_typing___AAbsControl___process_control
;
3342 fra
.me
.has_broke
= 0;
3343 fra
.me
.REG_size
= 7;
3344 fra
.me
.REG
[0] = NIT_NULL
;
3345 fra
.me
.REG
[1] = NIT_NULL
;
3346 fra
.me
.REG
[2] = NIT_NULL
;
3347 fra
.me
.REG
[3] = NIT_NULL
;
3348 fra
.me
.REG
[4] = NIT_NULL
;
3349 fra
.me
.REG
[5] = NIT_NULL
;
3350 fra
.me
.REG
[6] = NIT_NULL
;
3356 /* ./syntax//typing.nit:514 */
3357 ATTR_typing___AAbsControl____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3358 /* ./syntax//typing.nit:515 */
3359 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3360 CALL_scope___ScopeContext___push_escapable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3361 /* ./syntax//typing.nit:518 */
3362 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3363 /* ./syntax//typing.nit:519 */
3364 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3365 /* ./syntax//typing.nit:520 */
3366 if (UNTAG_Bool(REGB0
)) {
3367 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3368 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3370 /* ./syntax//typing.nit:523 */
3371 CALL_typing___AAbsControl___process_control_inside(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3372 /* ./syntax//typing.nit:526 */
3373 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3374 REGB1
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3375 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
3376 if (UNTAG_Bool(REGB1
)) {
3377 /* ./syntax//typing.nit:527 */
3378 fra
.me
.REG
[5] = CALL_scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3379 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3380 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3382 /* ./syntax//typing.nit:531 */
3383 fra
.me
.REG
[6] = CALL_scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3384 REGB1
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3385 if (UNTAG_Bool(REGB1
)) {
3386 /* ./syntax//typing.nit:532 */
3387 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3388 /* ./syntax//typing.nit:533 */
3389 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3391 /* ./syntax//typing.nit:535 */
3392 fra
.me
.REG
[2] = CALL_scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3393 fra
.me
.REG
[2] = CALL_flow___FlowContext___merge(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3394 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3396 /* ./syntax//typing.nit:538 */
3397 if (UNTAG_Bool(REGB0
)) {
3398 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3400 /* ./syntax//typing.nit:539 */
3401 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3402 CALL_scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3403 /* ./syntax//typing.nit:540 */
3404 REGB0
= TAG_Bool(true);
3405 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3406 stack_frame_head
= fra
.me
.prev
;
3409 void typing___AAbsControl___process_control_inside(val_t p0
, val_t p1
){
3410 struct {struct stack_frame_t me
;} fra
;
3412 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3413 fra
.me
.file
= LOCATE_typing
;
3415 fra
.me
.meth
= LOCATE_typing___AAbsControl___process_control_inside
;
3416 fra
.me
.has_broke
= 0;
3417 fra
.me
.REG_size
= 0;
3418 /* ./syntax//typing.nit:543 */
3419 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 543);
3420 stack_frame_head
= fra
.me
.prev
;
3423 void typing___ADoExpr___accept_typing(val_t p0
, val_t p1
){
3424 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3427 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3428 fra
.me
.file
= LOCATE_typing
;
3430 fra
.me
.meth
= LOCATE_typing___ADoExpr___accept_typing
;
3431 fra
.me
.has_broke
= 0;
3432 fra
.me
.REG_size
= 4;
3433 fra
.me
.REG
[0] = NIT_NULL
;
3434 fra
.me
.REG
[1] = NIT_NULL
;
3435 fra
.me
.REG
[2] = NIT_NULL
;
3436 fra
.me
.REG
[3] = NIT_NULL
;
3439 /* ./syntax//typing.nit:551 */
3440 fra
.me
.REG
[2] = NEW_BreakOnlyEscapableBlock_scope___BreakOnlyEscapableBlock___init(fra
.me
.REG
[0]);
3441 fra
.me
.REG
[3] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3442 REGB0
= TAG_Bool(false);
3443 CALL_typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3444 stack_frame_head
= fra
.me
.prev
;
3447 void typing___ADoExpr___process_control_inside(val_t p0
, val_t p1
){
3448 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3450 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3451 fra
.me
.file
= LOCATE_typing
;
3453 fra
.me
.meth
= LOCATE_typing___ADoExpr___process_control_inside
;
3454 fra
.me
.has_broke
= 0;
3455 fra
.me
.REG_size
= 2;
3456 fra
.me
.REG
[0] = NIT_NULL
;
3457 fra
.me
.REG
[1] = NIT_NULL
;
3460 /* ./syntax//typing.nit:556 */
3461 fra
.me
.REG
[0] = CALL_parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3462 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3463 stack_frame_head
= fra
.me
.prev
;
3466 void typing___AIfExpr___accept_typing(val_t p0
, val_t p1
){
3467 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3470 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3471 fra
.me
.file
= LOCATE_typing
;
3473 fra
.me
.meth
= LOCATE_typing___AIfExpr___accept_typing
;
3474 fra
.me
.has_broke
= 0;
3475 fra
.me
.REG_size
= 5;
3476 fra
.me
.REG
[0] = NIT_NULL
;
3477 fra
.me
.REG
[1] = NIT_NULL
;
3478 fra
.me
.REG
[2] = NIT_NULL
;
3479 fra
.me
.REG
[3] = NIT_NULL
;
3480 fra
.me
.REG
[4] = NIT_NULL
;
3483 /* ./syntax//typing.nit:563 */
3484 fra
.me
.REG
[2] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3485 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3486 /* ./syntax//typing.nit:564 */
3487 fra
.me
.REG
[2] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3488 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3489 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3490 /* ./syntax//typing.nit:567 */
3491 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3492 /* ./syntax//typing.nit:568 */
3493 fra
.me
.REG
[2] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3494 CALL_typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3495 /* ./syntax//typing.nit:571 */
3496 fra
.me
.REG
[2] = CALL_parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3497 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3498 /* ./syntax//typing.nit:574 */
3499 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3500 /* ./syntax//typing.nit:577 */
3501 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3502 /* ./syntax//typing.nit:578 */
3503 fra
.me
.REG
[3] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3504 CALL_typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3505 /* ./syntax//typing.nit:581 */
3506 fra
.me
.REG
[3] = CALL_parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3507 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3508 /* ./syntax//typing.nit:584 */
3509 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3510 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3511 fra
.me
.REG
[4] = CALL_flow___FlowContext___merge_reash(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3512 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3513 /* ./syntax//typing.nit:585 */
3514 REGB0
= TAG_Bool(true);
3515 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3516 stack_frame_head
= fra
.me
.prev
;
3519 void typing___AWhileExpr___accept_typing(val_t p0
, val_t p1
){
3520 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3523 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3524 fra
.me
.file
= LOCATE_typing
;
3526 fra
.me
.meth
= LOCATE_typing___AWhileExpr___accept_typing
;
3527 fra
.me
.has_broke
= 0;
3528 fra
.me
.REG_size
= 4;
3529 fra
.me
.REG
[0] = NIT_NULL
;
3530 fra
.me
.REG
[1] = NIT_NULL
;
3531 fra
.me
.REG
[2] = NIT_NULL
;
3532 fra
.me
.REG
[3] = NIT_NULL
;
3535 /* ./syntax//typing.nit:593 */
3536 fra
.me
.REG
[2] = NEW_EscapableBlock_scope___EscapableBlock___init(fra
.me
.REG
[0]);
3537 fra
.me
.REG
[3] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3538 REGB0
= TAG_Bool(true);
3539 CALL_typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3540 stack_frame_head
= fra
.me
.prev
;
3543 void typing___AWhileExpr___process_control_inside(val_t p0
, val_t p1
){
3544 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3547 static val_t once_value_1
; /* Once value */
3548 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3549 fra
.me
.file
= LOCATE_typing
;
3551 fra
.me
.meth
= LOCATE_typing___AWhileExpr___process_control_inside
;
3552 fra
.me
.has_broke
= 0;
3553 fra
.me
.REG_size
= 5;
3554 fra
.me
.REG
[0] = NIT_NULL
;
3555 fra
.me
.REG
[1] = NIT_NULL
;
3556 fra
.me
.REG
[2] = NIT_NULL
;
3557 fra
.me
.REG
[3] = NIT_NULL
;
3558 fra
.me
.REG
[4] = NIT_NULL
;
3561 /* ./syntax//typing.nit:598 */
3562 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3563 /* ./syntax//typing.nit:601 */
3564 fra
.me
.REG
[3] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3565 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3566 /* ./syntax//typing.nit:602 */
3567 fra
.me
.REG
[3] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3568 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3569 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
3570 /* ./syntax//typing.nit:604 */
3571 fra
.me
.REG
[4] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3572 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_ATrueExpr
, ID_ATrueExpr
)) /*cast ATrueExpr*/;
3573 if (UNTAG_Bool(REGB0
)) {
3574 /* ./syntax//typing.nit:605 */
3575 if (!once_value_1
) {
3576 fra
.me
.REG
[4] = BOX_NativeString("Warning: use 'loop' instead of 'while true do'.");
3577 REGB0
= TAG_Int(47);
3578 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
3579 once_value_1
= fra
.me
.REG
[4];
3580 register_static_object(&once_value_1
);
3581 } else fra
.me
.REG
[4] = once_value_1
;
3582 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3583 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3585 /* ./syntax//typing.nit:609 */
3586 fra
.me
.REG
[4] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3587 CALL_typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3588 /* ./syntax//typing.nit:612 */
3589 fra
.me
.REG
[4] = CALL_parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3590 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3591 /* ./syntax//typing.nit:615 */
3592 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3593 /* ./syntax//typing.nit:616 */
3594 fra
.me
.REG
[2] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3595 CALL_typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3596 /* ./syntax//typing.nit:617 */
3597 fra
.me
.REG
[0] = CALL_typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3598 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3599 if (UNTAG_Bool(REGB0
)) {
3600 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 617);
3602 fra
.me
.REG
[0] = CALL_scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3603 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3604 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3605 stack_frame_head
= fra
.me
.prev
;
3608 void typing___ALoopExpr___accept_typing(val_t p0
, val_t p1
){
3609 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3612 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3613 fra
.me
.file
= LOCATE_typing
;
3615 fra
.me
.meth
= LOCATE_typing___ALoopExpr___accept_typing
;
3616 fra
.me
.has_broke
= 0;
3617 fra
.me
.REG_size
= 4;
3618 fra
.me
.REG
[0] = NIT_NULL
;
3619 fra
.me
.REG
[1] = NIT_NULL
;
3620 fra
.me
.REG
[2] = NIT_NULL
;
3621 fra
.me
.REG
[3] = NIT_NULL
;
3624 /* ./syntax//typing.nit:625 */
3625 fra
.me
.REG
[2] = NEW_EscapableBlock_scope___EscapableBlock___init(fra
.me
.REG
[0]);
3626 fra
.me
.REG
[3] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3627 REGB0
= TAG_Bool(true);
3628 CALL_typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3629 stack_frame_head
= fra
.me
.prev
;
3632 void typing___ALoopExpr___process_control_inside(val_t p0
, val_t p1
){
3633 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3635 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3636 fra
.me
.file
= LOCATE_typing
;
3638 fra
.me
.meth
= LOCATE_typing___ALoopExpr___process_control_inside
;
3639 fra
.me
.has_broke
= 0;
3640 fra
.me
.REG_size
= 3;
3641 fra
.me
.REG
[0] = NIT_NULL
;
3642 fra
.me
.REG
[1] = NIT_NULL
;
3643 fra
.me
.REG
[2] = NIT_NULL
;
3646 /* ./syntax//typing.nit:631 */
3647 fra
.me
.REG
[2] = CALL_parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3648 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3649 /* ./syntax//typing.nit:634 */
3650 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3651 stack_frame_head
= fra
.me
.prev
;
3654 val_t
typing___AForExpr___variable(val_t p0
){
3655 struct {struct stack_frame_t me
;} fra
;
3658 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3659 fra
.me
.file
= LOCATE_typing
;
3661 fra
.me
.meth
= LOCATE_typing___AForExpr___variable
;
3662 fra
.me
.has_broke
= 0;
3663 fra
.me
.REG_size
= 1;
3664 fra
.me
.REG
[0] = NIT_NULL
;
3666 /* ./syntax//typing.nit:641 */
3667 fra
.me
.REG
[0] = ATTR_typing___AForExpr____variable(fra
.me
.REG
[0]);
3668 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
3669 if (UNTAG_Bool(REGB0
)) {
3671 nit_abort("Cast failed", NULL
, LOCATE_typing
, 641);
3675 stack_frame_head
= fra
.me
.prev
;
3676 return fra
.me
.REG
[0];
3678 void typing___AForExpr___accept_typing(val_t p0
, val_t p1
){
3679 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3682 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3683 fra
.me
.file
= LOCATE_typing
;
3685 fra
.me
.meth
= LOCATE_typing___AForExpr___accept_typing
;
3686 fra
.me
.has_broke
= 0;
3687 fra
.me
.REG_size
= 4;
3688 fra
.me
.REG
[0] = NIT_NULL
;
3689 fra
.me
.REG
[1] = NIT_NULL
;
3690 fra
.me
.REG
[2] = NIT_NULL
;
3691 fra
.me
.REG
[3] = NIT_NULL
;
3694 /* ./syntax//typing.nit:645 */
3695 fra
.me
.REG
[2] = NEW_EscapableBlock_scope___EscapableBlock___init(fra
.me
.REG
[0]);
3696 fra
.me
.REG
[3] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3697 REGB0
= TAG_Bool(true);
3698 CALL_typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3699 stack_frame_head
= fra
.me
.prev
;
3702 void typing___AForExpr___process_control_inside(val_t p0
, val_t p1
){
3703 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3706 static val_t once_value_2
; /* Once value */
3707 static val_t once_value_3
; /* Once value */
3708 static val_t once_value_4
; /* Once value */
3709 static val_t once_value_5
; /* Once value */
3710 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3711 fra
.me
.file
= LOCATE_typing
;
3713 fra
.me
.meth
= LOCATE_typing___AForExpr___process_control_inside
;
3714 fra
.me
.has_broke
= 0;
3715 fra
.me
.REG_size
= 6;
3716 fra
.me
.REG
[0] = NIT_NULL
;
3717 fra
.me
.REG
[1] = NIT_NULL
;
3718 fra
.me
.REG
[2] = NIT_NULL
;
3719 fra
.me
.REG
[3] = NIT_NULL
;
3720 fra
.me
.REG
[4] = NIT_NULL
;
3721 fra
.me
.REG
[5] = NIT_NULL
;
3724 /* ./syntax//typing.nit:650 */
3725 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3726 CALL_scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3727 /* ./syntax//typing.nit:651 */
3728 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3729 /* ./syntax//typing.nit:654 */
3730 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3731 fra
.me
.REG
[3] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3732 fra
.me
.REG
[4] = CALL_parser_nodes___AForExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3733 fra
.me
.REG
[4] = NEW_AutoVariable_syntax_base___AutoVariable___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3734 /* ./syntax//typing.nit:655 */
3735 ATTR_typing___AForExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
3736 /* ./syntax//typing.nit:656 */
3737 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3738 CALL_scope___ScopeContext___add_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3739 /* ./syntax//typing.nit:659 */
3740 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3741 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3742 /* ./syntax//typing.nit:661 */
3743 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3744 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_collection(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3745 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
3746 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3747 if (UNTAG_Bool(REGB0
)) {
3750 /* ./syntax//typing.nit:662 */
3751 fra
.me
.REG
[5] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3752 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3753 /* ./syntax//typing.nit:665 */
3754 if (!once_value_2
) {
3755 if (!once_value_3
) {
3756 fra
.me
.REG
[3] = BOX_NativeString("iterator");
3758 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3759 once_value_3
= fra
.me
.REG
[3];
3760 register_static_object(&once_value_3
);
3761 } else fra
.me
.REG
[3] = once_value_3
;
3762 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3763 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3764 once_value_2
= fra
.me
.REG
[3];
3765 register_static_object(&once_value_2
);
3766 } else fra
.me
.REG
[3] = once_value_2
;
3767 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3768 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[3]);
3769 /* ./syntax//typing.nit:666 */
3770 fra
.me
.REG
[5] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3771 fra
.me
.REG
[5] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3772 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
3773 if (UNTAG_Bool(REGB0
)) {
3775 nit_abort("Cast failed", NULL
, LOCATE_typing
, 666);
3777 /* ./syntax//typing.nit:667 */
3778 if (!once_value_4
) {
3779 if (!once_value_5
) {
3780 fra
.me
.REG
[3] = BOX_NativeString("item");
3782 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3783 once_value_5
= fra
.me
.REG
[3];
3784 register_static_object(&once_value_5
);
3785 } else fra
.me
.REG
[3] = once_value_5
;
3786 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3787 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3788 once_value_4
= fra
.me
.REG
[3];
3789 register_static_object(&once_value_4
);
3790 } else fra
.me
.REG
[3] = once_value_4
;
3791 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3792 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[3]);
3793 /* ./syntax//typing.nit:668 */
3794 fra
.me
.REG
[5] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3795 fra
.me
.REG
[5] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3796 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
3797 if (UNTAG_Bool(REGB0
)) {
3799 nit_abort("Cast failed", NULL
, LOCATE_typing
, 668);
3801 /* ./syntax//typing.nit:669 */
3802 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3803 REGB0
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3804 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3805 if (UNTAG_Bool(REGB0
)) {
3806 fra
.me
.REG
[3] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3807 fra
.me
.REG
[5] = fra
.me
.REG
[3];
3809 /* ./syntax//typing.nit:670 */
3810 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3811 /* ./syntax//typing.nit:673 */
3812 fra
.me
.REG
[0] = CALL_parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3813 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3814 /* ./syntax//typing.nit:676 */
3815 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3816 /* ./syntax//typing.nit:677 */
3817 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3818 CALL_scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3820 stack_frame_head
= fra
.me
.prev
;
3823 void typing___AAssertExpr___accept_typing(val_t p0
, val_t p1
){
3824 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3828 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3829 fra
.me
.file
= LOCATE_typing
;
3831 fra
.me
.meth
= LOCATE_typing___AAssertExpr___accept_typing
;
3832 fra
.me
.has_broke
= 0;
3833 fra
.me
.REG_size
= 4;
3834 fra
.me
.REG
[0] = NIT_NULL
;
3835 fra
.me
.REG
[1] = NIT_NULL
;
3836 fra
.me
.REG
[2] = NIT_NULL
;
3837 fra
.me
.REG
[3] = NIT_NULL
;
3840 /* ./syntax//typing.nit:685 */
3841 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3842 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3843 /* ./syntax//typing.nit:686 */
3844 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3845 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3846 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3847 /* ./syntax//typing.nit:689 */
3848 fra
.me
.REG
[3] = CALL_parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3849 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3850 if (UNTAG_Bool(REGB0
)) {
3852 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3853 if (UNTAG_Bool(REGB1
)) {
3854 REGB1
= TAG_Bool(false);
3857 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3861 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3862 if (UNTAG_Bool(REGB0
)) {
3863 /* ./syntax//typing.nit:690 */
3864 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3865 /* ./syntax//typing.nit:691 */
3866 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3867 CALL_typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3868 /* ./syntax//typing.nit:692 */
3869 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3870 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3871 /* ./syntax//typing.nit:693 */
3872 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3874 /* ./syntax//typing.nit:697 */
3875 fra
.me
.REG
[3] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3876 CALL_typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3877 /* ./syntax//typing.nit:698 */
3878 REGB0
= TAG_Bool(true);
3879 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3880 stack_frame_head
= fra
.me
.prev
;
3883 val_t
typing___AVarFormExpr___variable(val_t p0
){
3884 struct {struct stack_frame_t me
;} fra
;
3887 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3888 fra
.me
.file
= LOCATE_typing
;
3890 fra
.me
.meth
= LOCATE_typing___AVarFormExpr___variable
;
3891 fra
.me
.has_broke
= 0;
3892 fra
.me
.REG_size
= 1;
3893 fra
.me
.REG
[0] = NIT_NULL
;
3895 /* ./syntax//typing.nit:704 */
3896 fra
.me
.REG
[0] = ATTR_typing___AVarFormExpr____variable(fra
.me
.REG
[0]);
3897 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
3898 if (UNTAG_Bool(REGB0
)) {
3900 nit_abort("Cast failed", NULL
, LOCATE_typing
, 704);
3904 stack_frame_head
= fra
.me
.prev
;
3905 return fra
.me
.REG
[0];
3907 val_t
typing___AVarExpr___its_variable(val_t p0
){
3908 struct {struct stack_frame_t me
;} fra
;
3910 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3911 fra
.me
.file
= LOCATE_typing
;
3913 fra
.me
.meth
= LOCATE_typing___AVarExpr___its_variable
;
3914 fra
.me
.has_broke
= 0;
3915 fra
.me
.REG_size
= 1;
3916 fra
.me
.REG
[0] = NIT_NULL
;
3918 /* ./syntax//typing.nit:708 */
3919 fra
.me
.REG
[0] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3922 stack_frame_head
= fra
.me
.prev
;
3923 return fra
.me
.REG
[0];
3925 void typing___AVarExpr___after_typing(val_t p0
, val_t p1
){
3926 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3930 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3931 fra
.me
.file
= LOCATE_typing
;
3933 fra
.me
.meth
= LOCATE_typing___AVarExpr___after_typing
;
3934 fra
.me
.has_broke
= 0;
3935 fra
.me
.REG_size
= 4;
3936 fra
.me
.REG
[0] = NIT_NULL
;
3937 fra
.me
.REG
[1] = NIT_NULL
;
3938 fra
.me
.REG
[2] = NIT_NULL
;
3939 fra
.me
.REG
[3] = NIT_NULL
;
3942 /* ./syntax//typing.nit:712 */
3943 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3944 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3945 CALL_flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3946 /* ./syntax//typing.nit:713 */
3947 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3948 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3949 fra
.me
.REG
[3] = CALL_flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3950 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
3951 /* ./syntax//typing.nit:714 */
3952 fra
.me
.REG
[3] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
3953 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3954 if (UNTAG_Bool(REGB0
)) {
3956 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3957 if (UNTAG_Bool(REGB1
)) {
3958 REGB1
= TAG_Bool(false);
3961 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3965 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3966 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3967 stack_frame_head
= fra
.me
.prev
;
3970 void typing___AVarAssignExpr___after_typing(val_t p0
, val_t p1
){
3971 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3975 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3976 fra
.me
.file
= LOCATE_typing
;
3978 fra
.me
.meth
= LOCATE_typing___AVarAssignExpr___after_typing
;
3979 fra
.me
.has_broke
= 0;
3980 fra
.me
.REG_size
= 5;
3981 fra
.me
.REG
[0] = NIT_NULL
;
3982 fra
.me
.REG
[1] = NIT_NULL
;
3983 fra
.me
.REG
[2] = NIT_NULL
;
3984 fra
.me
.REG
[3] = NIT_NULL
;
3985 fra
.me
.REG
[4] = NIT_NULL
;
3988 /* ./syntax//typing.nit:721 */
3989 fra
.me
.REG
[2] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3990 CALL_typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3991 /* ./syntax//typing.nit:724 */
3992 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3993 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3994 fra
.me
.REG
[3] = CALL_flow___FlowContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3995 /* ./syntax//typing.nit:725 */
3996 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3997 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3998 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3999 if (UNTAG_Bool(REGB0
)) {
4002 /* ./syntax//typing.nit:726 */
4003 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4004 if (UNTAG_Bool(REGB0
)) {
4006 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4007 if (UNTAG_Bool(REGB1
)) {
4008 REGB1
= TAG_Bool(false);
4011 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4015 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4016 if (UNTAG_Bool(REGB0
)) {
4017 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4018 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4019 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4021 REGB1
= TAG_Bool(false);
4024 if (UNTAG_Bool(REGB0
)) {
4027 /* ./syntax//typing.nit:729 */
4028 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4029 fra
.me
.REG
[2] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4030 fra
.me
.REG
[4] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4031 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4032 fra
.me
.REG
[4] = CALL_flow___FlowContext___sub_with(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[4]);
4033 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4034 /* ./syntax//typing.nit:731 */
4035 REGB0
= TAG_Bool(true);
4036 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4038 stack_frame_head
= fra
.me
.prev
;
4041 val_t
typing___AReassignFormExpr___do_rvalue_typing(val_t p0
, val_t p1
, val_t p2
){
4042 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4046 static val_t once_value_2
; /* Once value */
4047 static val_t once_value_3
; /* Once value */
4048 static val_t once_value_4
; /* Once value */
4049 static val_t once_value_5
; /* Once value */
4050 static val_t once_value_6
; /* Once value */
4051 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4052 fra
.me
.file
= LOCATE_typing
;
4054 fra
.me
.meth
= LOCATE_typing___AReassignFormExpr___do_rvalue_typing
;
4055 fra
.me
.has_broke
= 0;
4056 fra
.me
.REG_size
= 8;
4057 fra
.me
.REG
[0] = NIT_NULL
;
4058 fra
.me
.REG
[1] = NIT_NULL
;
4059 fra
.me
.REG
[2] = NIT_NULL
;
4060 fra
.me
.REG
[3] = NIT_NULL
;
4061 fra
.me
.REG
[4] = NIT_NULL
;
4062 fra
.me
.REG
[5] = NIT_NULL
;
4063 fra
.me
.REG
[6] = NIT_NULL
;
4064 fra
.me
.REG
[7] = NIT_NULL
;
4068 /* ./syntax//typing.nit:741 */
4069 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4070 if (UNTAG_Bool(REGB0
)) {
4072 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4073 if (UNTAG_Bool(REGB1
)) {
4074 REGB1
= TAG_Bool(false);
4077 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4081 if (UNTAG_Bool(REGB0
)) {
4082 /* ./syntax//typing.nit:742 */
4083 fra
.me
.REG
[3] = NIT_NULL
;
4086 /* ./syntax//typing.nit:744 */
4087 fra
.me
.REG
[4] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4088 fra
.me
.REG
[4] = CALL_typing___AAssignOp___method_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4089 /* ./syntax//typing.nit:745 */
4090 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
4091 if (UNTAG_Bool(REGB0
)) {
4092 /* ./syntax//typing.nit:746 */
4094 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
4095 if (!once_value_2
) {
4096 fra
.me
.REG
[6] = BOX_NativeString("Error: Method '");
4097 REGB0
= TAG_Int(15);
4098 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
4099 once_value_2
= fra
.me
.REG
[6];
4100 register_static_object(&once_value_2
);
4101 } else fra
.me
.REG
[6] = once_value_2
;
4102 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4103 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4104 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4105 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4106 if (!once_value_3
) {
4107 fra
.me
.REG
[6] = BOX_NativeString("' call on 'null'.");
4108 REGB0
= TAG_Int(17);
4109 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
4110 once_value_3
= fra
.me
.REG
[6];
4111 register_static_object(&once_value_3
);
4112 } else fra
.me
.REG
[6] = once_value_3
;
4113 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4114 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4115 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4116 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4117 /* ./syntax//typing.nit:747 */
4118 fra
.me
.REG
[3] = NIT_NULL
;
4121 /* ./syntax//typing.nit:749 */
4122 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4123 if (UNTAG_Bool(REGB0
)) {
4124 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 749);
4126 fra
.me
.REG
[5] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4127 /* ./syntax//typing.nit:750 */
4128 REGB0
= CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4129 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4130 if (UNTAG_Bool(REGB0
)) {
4131 /* ./syntax//typing.nit:751 */
4133 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
4134 if (!once_value_4
) {
4135 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
4136 REGB0
= TAG_Int(15);
4137 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4138 once_value_4
= fra
.me
.REG
[7];
4139 register_static_object(&once_value_4
);
4140 } else fra
.me
.REG
[7] = once_value_4
;
4141 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4142 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4143 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4144 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4145 if (!once_value_5
) {
4146 fra
.me
.REG
[7] = BOX_NativeString("' doesn't exists in ");
4147 REGB0
= TAG_Int(20);
4148 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4149 once_value_5
= fra
.me
.REG
[7];
4150 register_static_object(&once_value_5
);
4151 } else fra
.me
.REG
[7] = once_value_5
;
4152 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4153 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4154 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4155 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4156 if (!once_value_6
) {
4157 fra
.me
.REG
[7] = BOX_NativeString(".");
4159 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4160 once_value_6
= fra
.me
.REG
[7];
4161 register_static_object(&once_value_6
);
4162 } else fra
.me
.REG
[7] = once_value_6
;
4163 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4164 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4165 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4166 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
4167 /* ./syntax//typing.nit:752 */
4168 fra
.me
.REG
[3] = NIT_NULL
;
4171 /* ./syntax//typing.nit:754 */
4172 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4173 /* ./syntax//typing.nit:755 */
4174 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4175 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4176 REGB0
= TAG_Bool(false);
4177 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
);
4178 /* ./syntax//typing.nit:756 */
4179 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4180 /* ./syntax//typing.nit:757 */
4181 ATTR_typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4182 /* ./syntax//typing.nit:758 */
4183 fra
.me
.REG
[0] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4185 fra
.me
.REG
[4] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
4186 fra
.me
.REG
[4] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4187 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
4188 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4189 if (UNTAG_Bool(REGB0
)) {
4190 fra
.me
.REG
[3] = NIT_NULL
;
4193 /* ./syntax//typing.nit:759 */
4194 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4195 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4196 if (UNTAG_Bool(REGB0
)) {
4197 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 759);
4199 fra
.me
.REG
[2] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4200 fra
.me
.REG
[3] = fra
.me
.REG
[2];
4203 stack_frame_head
= fra
.me
.prev
;
4204 return fra
.me
.REG
[3];
4206 val_t
typing___AReassignFormExpr___assign_method(val_t p0
){
4207 struct {struct stack_frame_t me
;} fra
;
4210 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4211 fra
.me
.file
= LOCATE_typing
;
4213 fra
.me
.meth
= LOCATE_typing___AReassignFormExpr___assign_method
;
4214 fra
.me
.has_broke
= 0;
4215 fra
.me
.REG_size
= 1;
4216 fra
.me
.REG
[0] = NIT_NULL
;
4218 /* ./syntax//typing.nit:762 */
4219 fra
.me
.REG
[0] = ATTR_typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]);
4220 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
4221 if (UNTAG_Bool(REGB0
)) {
4223 nit_abort("Cast failed", NULL
, LOCATE_typing
, 762);
4227 stack_frame_head
= fra
.me
.prev
;
4228 return fra
.me
.REG
[0];
4230 void typing___AVarReassignExpr___after_typing(val_t p0
, val_t p1
){
4231 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4235 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4236 fra
.me
.file
= LOCATE_typing
;
4238 fra
.me
.meth
= LOCATE_typing___AVarReassignExpr___after_typing
;
4239 fra
.me
.has_broke
= 0;
4240 fra
.me
.REG_size
= 5;
4241 fra
.me
.REG
[0] = NIT_NULL
;
4242 fra
.me
.REG
[1] = NIT_NULL
;
4243 fra
.me
.REG
[2] = NIT_NULL
;
4244 fra
.me
.REG
[3] = NIT_NULL
;
4245 fra
.me
.REG
[4] = NIT_NULL
;
4248 /* ./syntax//typing.nit:769 */
4249 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4250 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4251 CALL_flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4252 /* ./syntax//typing.nit:770 */
4253 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4254 CALL_typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4255 /* ./syntax//typing.nit:771 */
4256 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4257 fra
.me
.REG
[2] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4258 fra
.me
.REG
[2] = CALL_flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4259 /* ./syntax//typing.nit:772 */
4260 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]);
4261 /* ./syntax//typing.nit:773 */
4262 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4263 if (UNTAG_Bool(REGB0
)) {
4265 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4266 if (UNTAG_Bool(REGB1
)) {
4267 REGB1
= TAG_Bool(false);
4270 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4274 if (UNTAG_Bool(REGB0
)) {
4277 /* ./syntax//typing.nit:776 */
4278 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4279 fra
.me
.REG
[4] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4280 fra
.me
.REG
[4] = CALL_flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4281 /* ./syntax//typing.nit:777 */
4282 fra
.me
.REG
[3] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4283 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4284 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4285 if (UNTAG_Bool(REGB0
)) {
4288 /* ./syntax//typing.nit:778 */
4289 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4290 if (UNTAG_Bool(REGB0
)) {
4292 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4293 if (UNTAG_Bool(REGB1
)) {
4294 REGB1
= TAG_Bool(false);
4297 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4301 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4302 if (UNTAG_Bool(REGB0
)) {
4303 fra
.me
.REG
[3] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4304 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
4305 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4307 REGB1
= TAG_Bool(false);
4310 if (UNTAG_Bool(REGB0
)) {
4313 /* ./syntax//typing.nit:781 */
4314 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4315 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4316 fra
.me
.REG
[2] = CALL_flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
4317 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4318 /* ./syntax//typing.nit:783 */
4319 REGB0
= TAG_Bool(true);
4320 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4322 stack_frame_head
= fra
.me
.prev
;
4325 val_t
typing___AAssignOp___method_name(val_t p0
){
4326 struct {struct stack_frame_t me
;} fra
;
4328 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4329 fra
.me
.file
= LOCATE_typing
;
4331 fra
.me
.meth
= LOCATE_typing___AAssignOp___method_name
;
4332 fra
.me
.has_broke
= 0;
4333 fra
.me
.REG_size
= 0;
4334 /* ./syntax//typing.nit:788 */
4335 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 788);
4336 stack_frame_head
= fra
.me
.prev
;
4339 val_t
typing___APlusAssignOp___method_name(val_t p0
){
4340 struct {struct stack_frame_t me
;} fra
;
4343 static val_t once_value_1
; /* Once value */
4344 static val_t once_value_2
; /* Once value */
4345 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4346 fra
.me
.file
= LOCATE_typing
;
4348 fra
.me
.meth
= LOCATE_typing___APlusAssignOp___method_name
;
4349 fra
.me
.has_broke
= 0;
4350 fra
.me
.REG_size
= 1;
4351 fra
.me
.REG
[0] = NIT_NULL
;
4353 /* ./syntax//typing.nit:791 */
4354 if (!once_value_1
) {
4355 if (!once_value_2
) {
4356 fra
.me
.REG
[0] = BOX_NativeString("+");
4358 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4359 once_value_2
= fra
.me
.REG
[0];
4360 register_static_object(&once_value_2
);
4361 } else fra
.me
.REG
[0] = once_value_2
;
4362 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4363 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4364 once_value_1
= fra
.me
.REG
[0];
4365 register_static_object(&once_value_1
);
4366 } else fra
.me
.REG
[0] = once_value_1
;
4367 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4370 stack_frame_head
= fra
.me
.prev
;
4371 return fra
.me
.REG
[0];
4373 val_t
typing___AMinusAssignOp___method_name(val_t p0
){
4374 struct {struct stack_frame_t me
;} fra
;
4377 static val_t once_value_1
; /* Once value */
4378 static val_t once_value_2
; /* Once value */
4379 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4380 fra
.me
.file
= LOCATE_typing
;
4382 fra
.me
.meth
= LOCATE_typing___AMinusAssignOp___method_name
;
4383 fra
.me
.has_broke
= 0;
4384 fra
.me
.REG_size
= 1;
4385 fra
.me
.REG
[0] = NIT_NULL
;
4387 /* ./syntax//typing.nit:794 */
4388 if (!once_value_1
) {
4389 if (!once_value_2
) {
4390 fra
.me
.REG
[0] = BOX_NativeString("-");
4392 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4393 once_value_2
= fra
.me
.REG
[0];
4394 register_static_object(&once_value_2
);
4395 } else fra
.me
.REG
[0] = once_value_2
;
4396 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4397 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4398 once_value_1
= fra
.me
.REG
[0];
4399 register_static_object(&once_value_1
);
4400 } else fra
.me
.REG
[0] = once_value_1
;
4401 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4404 stack_frame_head
= fra
.me
.prev
;
4405 return fra
.me
.REG
[0];
4407 val_t
typing___ASelfExpr___variable(val_t p0
){
4408 struct {struct stack_frame_t me
;} fra
;
4411 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4412 fra
.me
.file
= LOCATE_typing
;
4414 fra
.me
.meth
= LOCATE_typing___ASelfExpr___variable
;
4415 fra
.me
.has_broke
= 0;
4416 fra
.me
.REG_size
= 1;
4417 fra
.me
.REG
[0] = NIT_NULL
;
4419 /* ./syntax//typing.nit:799 */
4420 fra
.me
.REG
[0] = ATTR_typing___ASelfExpr____variable(fra
.me
.REG
[0]);
4421 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
4422 if (UNTAG_Bool(REGB0
)) {
4424 nit_abort("Cast failed", NULL
, LOCATE_typing
, 799);
4428 stack_frame_head
= fra
.me
.prev
;
4429 return fra
.me
.REG
[0];
4431 val_t
typing___ASelfExpr___its_variable(val_t p0
){
4432 struct {struct stack_frame_t me
;} fra
;
4434 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4435 fra
.me
.file
= LOCATE_typing
;
4437 fra
.me
.meth
= LOCATE_typing___ASelfExpr___its_variable
;
4438 fra
.me
.has_broke
= 0;
4439 fra
.me
.REG_size
= 1;
4440 fra
.me
.REG
[0] = NIT_NULL
;
4442 /* ./syntax//typing.nit:801 */
4443 fra
.me
.REG
[0] = CALL_syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4446 stack_frame_head
= fra
.me
.prev
;
4447 return fra
.me
.REG
[0];
4449 void typing___ASelfExpr___after_typing(val_t p0
, val_t p1
){
4450 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4453 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4454 fra
.me
.file
= LOCATE_typing
;
4456 fra
.me
.meth
= LOCATE_typing___ASelfExpr___after_typing
;
4457 fra
.me
.has_broke
= 0;
4458 fra
.me
.REG_size
= 3;
4459 fra
.me
.REG
[0] = NIT_NULL
;
4460 fra
.me
.REG
[1] = NIT_NULL
;
4461 fra
.me
.REG
[2] = NIT_NULL
;
4464 /* ./syntax//typing.nit:805 */
4465 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4466 ATTR_typing___ASelfExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4467 /* ./syntax//typing.nit:806 */
4468 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4469 fra
.me
.REG
[2] = CALL_syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4470 fra
.me
.REG
[2] = CALL_flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4471 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4472 /* ./syntax//typing.nit:807 */
4473 REGB0
= TAG_Bool(true);
4474 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4475 stack_frame_head
= fra
.me
.prev
;
4478 val_t
typing___ASelfExpr___is_self(val_t p0
){
4479 struct {struct stack_frame_t me
;} fra
;
4482 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4483 fra
.me
.file
= LOCATE_typing
;
4485 fra
.me
.meth
= LOCATE_typing___ASelfExpr___is_self
;
4486 fra
.me
.has_broke
= 0;
4487 fra
.me
.REG_size
= 1;
4488 fra
.me
.REG
[0] = NIT_NULL
;
4490 /* ./syntax//typing.nit:810 */
4491 REGB0
= TAG_Bool(true);
4494 stack_frame_head
= fra
.me
.prev
;
4497 val_t
typing___AImplicitSelfExpr___is_implicit_self(val_t p0
){
4498 struct {struct stack_frame_t me
;} fra
;
4501 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4502 fra
.me
.file
= LOCATE_typing
;
4504 fra
.me
.meth
= LOCATE_typing___AImplicitSelfExpr___is_implicit_self
;
4505 fra
.me
.has_broke
= 0;
4506 fra
.me
.REG_size
= 1;
4507 fra
.me
.REG
[0] = NIT_NULL
;
4509 /* ./syntax//typing.nit:814 */
4510 REGB0
= TAG_Bool(true);
4513 stack_frame_head
= fra
.me
.prev
;
4516 void typing___AIfexprExpr___accept_typing(val_t p0
, val_t p1
){
4517 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4521 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4522 fra
.me
.file
= LOCATE_typing
;
4524 fra
.me
.meth
= LOCATE_typing___AIfexprExpr___accept_typing
;
4525 fra
.me
.has_broke
= 0;
4526 fra
.me
.REG_size
= 5;
4527 fra
.me
.REG
[0] = NIT_NULL
;
4528 fra
.me
.REG
[1] = NIT_NULL
;
4529 fra
.me
.REG
[2] = NIT_NULL
;
4530 fra
.me
.REG
[3] = NIT_NULL
;
4531 fra
.me
.REG
[4] = NIT_NULL
;
4534 /* ./syntax//typing.nit:820 */
4535 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4536 /* ./syntax//typing.nit:823 */
4537 fra
.me
.REG
[3] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4538 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4539 /* ./syntax//typing.nit:824 */
4540 fra
.me
.REG
[3] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4541 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4542 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
4543 /* ./syntax//typing.nit:827 */
4544 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4545 CALL_typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4546 /* ./syntax//typing.nit:830 */
4547 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4548 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4549 /* ./syntax//typing.nit:833 */
4550 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4551 /* ./syntax//typing.nit:836 */
4552 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4553 /* ./syntax//typing.nit:837 */
4554 fra
.me
.REG
[2] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4555 CALL_typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4556 /* ./syntax//typing.nit:840 */
4557 fra
.me
.REG
[2] = CALL_parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4558 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4559 /* ./syntax//typing.nit:843 */
4560 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4561 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4562 fra
.me
.REG
[3] = CALL_flow___FlowContext___merge_reash(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[4], fra
.me
.REG
[3]);
4563 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4564 /* ./syntax//typing.nit:845 */
4566 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
4567 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4568 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4569 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4570 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4571 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
, fra
.me
.REG
[3]);
4572 /* ./syntax//typing.nit:846 */
4573 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4574 if (UNTAG_Bool(REGB0
)) {
4576 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4577 if (UNTAG_Bool(REGB1
)) {
4578 REGB1
= TAG_Bool(false);
4581 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4585 if (UNTAG_Bool(REGB0
)) {
4588 /* ./syntax//typing.nit:848 */
4589 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4590 /* ./syntax//typing.nit:849 */
4591 REGB0
= TAG_Bool(true);
4592 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4594 stack_frame_head
= fra
.me
.prev
;
4597 void typing___ABoolExpr___after_typing(val_t p0
, val_t p1
){
4598 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4601 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4602 fra
.me
.file
= LOCATE_typing
;
4604 fra
.me
.meth
= LOCATE_typing___ABoolExpr___after_typing
;
4605 fra
.me
.has_broke
= 0;
4606 fra
.me
.REG_size
= 2;
4607 fra
.me
.REG
[0] = NIT_NULL
;
4608 fra
.me
.REG
[1] = NIT_NULL
;
4611 /* ./syntax//typing.nit:856 */
4612 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4613 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4614 /* ./syntax//typing.nit:857 */
4615 REGB0
= TAG_Bool(true);
4616 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4617 stack_frame_head
= fra
.me
.prev
;
4620 void typing___AOrExpr___accept_typing(val_t p0
, val_t p1
){
4621 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4625 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4626 fra
.me
.file
= LOCATE_typing
;
4628 fra
.me
.meth
= LOCATE_typing___AOrExpr___accept_typing
;
4629 fra
.me
.has_broke
= 0;
4630 fra
.me
.REG_size
= 5;
4631 fra
.me
.REG
[0] = NIT_NULL
;
4632 fra
.me
.REG
[1] = NIT_NULL
;
4633 fra
.me
.REG
[2] = NIT_NULL
;
4634 fra
.me
.REG
[3] = NIT_NULL
;
4635 fra
.me
.REG
[4] = NIT_NULL
;
4638 /* ./syntax//typing.nit:864 */
4639 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4640 /* ./syntax//typing.nit:865 */
4641 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4642 /* ./syntax//typing.nit:866 */
4643 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4644 /* ./syntax//typing.nit:869 */
4645 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4646 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4647 /* ./syntax//typing.nit:872 */
4648 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4649 CALL_typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4650 /* ./syntax//typing.nit:875 */
4651 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4652 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4653 /* ./syntax//typing.nit:876 */
4654 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4655 fra
.me
.REG
[4] = CALL_typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4656 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4657 if (UNTAG_Bool(REGB0
)) {
4659 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4660 if (UNTAG_Bool(REGB1
)) {
4661 REGB1
= TAG_Bool(false);
4664 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4668 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4669 if (UNTAG_Bool(REGB0
)) {
4670 /* ./syntax//typing.nit:877 */
4671 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4672 fra
.me
.REG
[4] = CALL_typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4673 ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4675 /* ./syntax//typing.nit:879 */
4676 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4677 ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4679 /* ./syntax//typing.nit:882 */
4680 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4681 /* ./syntax//typing.nit:884 */
4682 fra
.me
.REG
[2] = CALL_parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4683 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4684 /* ./syntax//typing.nit:885 */
4685 fra
.me
.REG
[2] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4686 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4687 /* ./syntax//typing.nit:886 */
4688 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4689 /* ./syntax//typing.nit:887 */
4690 REGB0
= TAG_Bool(true);
4691 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4692 stack_frame_head
= fra
.me
.prev
;
4695 void typing___AAndExpr___accept_typing(val_t p0
, val_t p1
){
4696 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4700 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4701 fra
.me
.file
= LOCATE_typing
;
4703 fra
.me
.meth
= LOCATE_typing___AAndExpr___accept_typing
;
4704 fra
.me
.has_broke
= 0;
4705 fra
.me
.REG_size
= 5;
4706 fra
.me
.REG
[0] = NIT_NULL
;
4707 fra
.me
.REG
[1] = NIT_NULL
;
4708 fra
.me
.REG
[2] = NIT_NULL
;
4709 fra
.me
.REG
[3] = NIT_NULL
;
4710 fra
.me
.REG
[4] = NIT_NULL
;
4713 /* ./syntax//typing.nit:894 */
4714 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4715 /* ./syntax//typing.nit:895 */
4716 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4717 /* ./syntax//typing.nit:898 */
4718 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4719 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4720 /* ./syntax//typing.nit:901 */
4721 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4722 CALL_typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4723 /* ./syntax//typing.nit:904 */
4724 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4725 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4726 /* ./syntax//typing.nit:905 */
4727 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4728 fra
.me
.REG
[4] = CALL_typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4729 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4730 if (UNTAG_Bool(REGB0
)) {
4732 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4733 if (UNTAG_Bool(REGB1
)) {
4734 REGB1
= TAG_Bool(false);
4737 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4741 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4742 if (UNTAG_Bool(REGB0
)) {
4743 /* ./syntax//typing.nit:906 */
4744 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4745 fra
.me
.REG
[4] = CALL_typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4746 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4748 /* ./syntax//typing.nit:908 */
4749 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4750 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4752 /* ./syntax//typing.nit:911 */
4753 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4754 /* ./syntax//typing.nit:913 */
4755 fra
.me
.REG
[2] = CALL_parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4756 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4757 /* ./syntax//typing.nit:914 */
4758 fra
.me
.REG
[2] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4759 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4760 /* ./syntax//typing.nit:915 */
4761 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4762 /* ./syntax//typing.nit:916 */
4763 REGB0
= TAG_Bool(true);
4764 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4765 stack_frame_head
= fra
.me
.prev
;
4768 void typing___ANotExpr___after_typing(val_t p0
, val_t p1
){
4769 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4772 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4773 fra
.me
.file
= LOCATE_typing
;
4775 fra
.me
.meth
= LOCATE_typing___ANotExpr___after_typing
;
4776 fra
.me
.has_broke
= 0;
4777 fra
.me
.REG_size
= 4;
4778 fra
.me
.REG
[0] = NIT_NULL
;
4779 fra
.me
.REG
[1] = NIT_NULL
;
4780 fra
.me
.REG
[2] = NIT_NULL
;
4781 fra
.me
.REG
[3] = NIT_NULL
;
4784 /* ./syntax//typing.nit:923 */
4785 fra
.me
.REG
[2] = CALL_parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4786 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4787 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4788 /* ./syntax//typing.nit:926 */
4789 fra
.me
.REG
[3] = CALL_parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4790 fra
.me
.REG
[3] = ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[3]);
4791 ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4792 /* ./syntax//typing.nit:927 */
4793 fra
.me
.REG
[3] = CALL_parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4794 fra
.me
.REG
[3] = ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[3]);
4795 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4796 /* ./syntax//typing.nit:929 */
4797 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4798 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4799 /* ./syntax//typing.nit:930 */
4800 REGB0
= TAG_Bool(true);
4801 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4802 stack_frame_head
= fra
.me
.prev
;
4805 void typing___AOrElseExpr___after_typing(val_t p0
, val_t p1
){
4806 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4810 static val_t once_value_1
; /* Once value */
4811 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4812 fra
.me
.file
= LOCATE_typing
;
4814 fra
.me
.meth
= LOCATE_typing___AOrElseExpr___after_typing
;
4815 fra
.me
.has_broke
= 0;
4816 fra
.me
.REG_size
= 7;
4817 fra
.me
.REG
[0] = NIT_NULL
;
4818 fra
.me
.REG
[1] = NIT_NULL
;
4819 fra
.me
.REG
[2] = NIT_NULL
;
4820 fra
.me
.REG
[3] = NIT_NULL
;
4821 fra
.me
.REG
[4] = NIT_NULL
;
4822 fra
.me
.REG
[5] = NIT_NULL
;
4823 fra
.me
.REG
[6] = NIT_NULL
;
4826 /* ./syntax//typing.nit:937 */
4827 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4828 /* ./syntax//typing.nit:940 */
4829 fra
.me
.REG
[3] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4830 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4831 /* ./syntax//typing.nit:941 */
4832 fra
.me
.REG
[3] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4833 CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4834 /* ./syntax//typing.nit:944 */
4835 fra
.me
.REG
[3] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4836 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4837 /* ./syntax//typing.nit:945 */
4838 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4839 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4840 if (UNTAG_Bool(REGB0
)) {
4841 /* ./syntax//typing.nit:946 */
4842 fra
.me
.REG
[4] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4843 if (!once_value_1
) {
4844 fra
.me
.REG
[5] = BOX_NativeString("Warning: left operant of a 'or else' is not a nullable type.");
4845 REGB0
= TAG_Int(60);
4846 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
4847 once_value_1
= fra
.me
.REG
[5];
4848 register_static_object(&once_value_1
);
4849 } else fra
.me
.REG
[5] = once_value_1
;
4850 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4851 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4853 /* ./syntax//typing.nit:948 */
4854 fra
.me
.REG
[5] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4855 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4857 /* ./syntax//typing.nit:952 */
4858 fra
.me
.REG
[5] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4859 fra
.me
.REG
[5] = CALL_typing___AExpr___its_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4860 /* ./syntax//typing.nit:953 */
4861 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4862 if (UNTAG_Bool(REGB0
)) {
4864 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4865 if (UNTAG_Bool(REGB1
)) {
4866 REGB1
= TAG_Bool(false);
4869 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
4873 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4874 if (UNTAG_Bool(REGB0
)) {
4875 /* ./syntax//typing.nit:954 */
4876 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4877 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4878 CALL_flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[6]);
4880 /* ./syntax//typing.nit:958 */
4881 fra
.me
.REG
[6] = CALL_parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4882 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
4883 /* ./syntax//typing.nit:959 */
4884 fra
.me
.REG
[6] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4885 CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
4886 /* ./syntax//typing.nit:962 */
4887 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4888 /* ./syntax//typing.nit:965 */
4890 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
4891 fra
.me
.REG
[6] = CALL_parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4892 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
4893 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
4894 /* ./syntax//typing.nit:966 */
4895 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4896 if (UNTAG_Bool(REGB0
)) {
4898 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4899 if (UNTAG_Bool(REGB1
)) {
4900 REGB1
= TAG_Bool(false);
4903 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4907 if (UNTAG_Bool(REGB0
)) {
4910 /* ./syntax//typing.nit:968 */
4911 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4912 /* ./syntax//typing.nit:969 */
4913 REGB0
= TAG_Bool(true);
4914 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4916 stack_frame_head
= fra
.me
.prev
;
4919 void typing___AIntExpr___after_typing(val_t p0
, val_t p1
){
4920 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4923 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4924 fra
.me
.file
= LOCATE_typing
;
4926 fra
.me
.meth
= LOCATE_typing___AIntExpr___after_typing
;
4927 fra
.me
.has_broke
= 0;
4928 fra
.me
.REG_size
= 2;
4929 fra
.me
.REG
[0] = NIT_NULL
;
4930 fra
.me
.REG
[1] = NIT_NULL
;
4933 /* ./syntax//typing.nit:976 */
4934 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4935 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4936 /* ./syntax//typing.nit:977 */
4937 REGB0
= TAG_Bool(true);
4938 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4939 stack_frame_head
= fra
.me
.prev
;
4942 void typing___AFloatExpr___after_typing(val_t p0
, val_t p1
){
4943 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4946 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4947 fra
.me
.file
= LOCATE_typing
;
4949 fra
.me
.meth
= LOCATE_typing___AFloatExpr___after_typing
;
4950 fra
.me
.has_broke
= 0;
4951 fra
.me
.REG_size
= 2;
4952 fra
.me
.REG
[0] = NIT_NULL
;
4953 fra
.me
.REG
[1] = NIT_NULL
;
4956 /* ./syntax//typing.nit:984 */
4957 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_float(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4958 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4959 /* ./syntax//typing.nit:985 */
4960 REGB0
= TAG_Bool(true);
4961 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4962 stack_frame_head
= fra
.me
.prev
;
4965 void typing___ACharExpr___after_typing(val_t p0
, val_t p1
){
4966 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4969 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4970 fra
.me
.file
= LOCATE_typing
;
4972 fra
.me
.meth
= LOCATE_typing___ACharExpr___after_typing
;
4973 fra
.me
.has_broke
= 0;
4974 fra
.me
.REG_size
= 2;
4975 fra
.me
.REG
[0] = NIT_NULL
;
4976 fra
.me
.REG
[1] = NIT_NULL
;
4979 /* ./syntax//typing.nit:992 */
4980 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_char(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4981 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4982 /* ./syntax//typing.nit:993 */
4983 REGB0
= TAG_Bool(true);
4984 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4985 stack_frame_head
= fra
.me
.prev
;
4988 void typing___AStringFormExpr___after_typing(val_t p0
, val_t p1
){
4989 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4992 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4993 fra
.me
.file
= LOCATE_typing
;
4995 fra
.me
.meth
= LOCATE_typing___AStringFormExpr___after_typing
;
4996 fra
.me
.has_broke
= 0;
4997 fra
.me
.REG_size
= 2;
4998 fra
.me
.REG
[0] = NIT_NULL
;
4999 fra
.me
.REG
[1] = NIT_NULL
;
5002 /* ./syntax//typing.nit:1000 */
5003 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5004 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5005 /* ./syntax//typing.nit:1001 */
5006 REGB0
= TAG_Bool(true);
5007 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5008 stack_frame_head
= fra
.me
.prev
;
5011 val_t
typing___ASuperstringExpr___atype(val_t p0
){
5012 struct {struct stack_frame_t me
;} fra
;
5015 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5016 fra
.me
.file
= LOCATE_typing
;
5018 fra
.me
.meth
= LOCATE_typing___ASuperstringExpr___atype
;
5019 fra
.me
.has_broke
= 0;
5020 fra
.me
.REG_size
= 1;
5021 fra
.me
.REG
[0] = NIT_NULL
;
5023 /* ./syntax//typing.nit:1006 */
5024 fra
.me
.REG
[0] = ATTR_typing___ASuperstringExpr____atype(fra
.me
.REG
[0]);
5025 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
5026 if (UNTAG_Bool(REGB0
)) {
5028 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1006);
5032 stack_frame_head
= fra
.me
.prev
;
5033 return fra
.me
.REG
[0];
5035 void typing___ASuperstringExpr___after_typing(val_t p0
, val_t p1
){
5036 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5039 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5040 fra
.me
.file
= LOCATE_typing
;
5042 fra
.me
.meth
= LOCATE_typing___ASuperstringExpr___after_typing
;
5043 fra
.me
.has_broke
= 0;
5044 fra
.me
.REG_size
= 5;
5045 fra
.me
.REG
[0] = NIT_NULL
;
5046 fra
.me
.REG
[1] = NIT_NULL
;
5047 fra
.me
.REG
[2] = NIT_NULL
;
5048 fra
.me
.REG
[3] = NIT_NULL
;
5049 fra
.me
.REG
[4] = NIT_NULL
;
5052 /* ./syntax//typing.nit:1010 */
5053 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5054 /* ./syntax//typing.nit:1011 */
5055 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5056 /* ./syntax//typing.nit:1012 */
5057 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5058 /* ./syntax//typing.nit:1013 */
5059 fra
.me
.REG
[4] = CALL_parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5060 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_typing___ASuperstringExpr___after_typing_1
));
5061 /* ./syntax//typing.nit:1014 */
5062 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5063 /* ./syntax//typing.nit:1015 */
5064 ATTR_typing___ASuperstringExpr____atype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5065 /* ./syntax//typing.nit:1016 */
5066 REGB0
= TAG_Bool(true);
5067 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5068 stack_frame_head
= fra
.me
.prev
;
5071 void OC_typing___ASuperstringExpr___after_typing_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
5072 struct {struct stack_frame_t me
;} fra
;
5075 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5076 fra
.me
.file
= LOCATE_typing
;
5078 fra
.me
.meth
= LOCATE_typing___ASuperstringExpr___after_typing
;
5079 fra
.me
.has_broke
= 0;
5080 fra
.me
.REG_size
= 1;
5081 fra
.me
.REG
[0] = NIT_NULL
;
5082 fra
.me
.closure_ctx
= closctx_param
;
5083 fra
.me
.closure_funs
= CREG
;
5085 CREG
[0] = clos_fun0
;
5086 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], closctx
->REG
[2]);
5087 stack_frame_head
= fra
.me
.prev
;
5090 void typing___ANullExpr___after_typing(val_t p0
, val_t p1
){
5091 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5094 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5095 fra
.me
.file
= LOCATE_typing
;
5097 fra
.me
.meth
= LOCATE_typing___ANullExpr___after_typing
;
5098 fra
.me
.has_broke
= 0;
5099 fra
.me
.REG_size
= 2;
5100 fra
.me
.REG
[0] = NIT_NULL
;
5101 fra
.me
.REG
[1] = NIT_NULL
;
5104 /* ./syntax//typing.nit:1023 */
5105 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5106 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5107 /* ./syntax//typing.nit:1024 */
5108 REGB0
= TAG_Bool(true);
5109 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5110 stack_frame_head
= fra
.me
.prev
;
5113 void typing___AArrayExpr___after_typing(val_t p0
, val_t p1
){
5114 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5118 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5119 fra
.me
.file
= LOCATE_typing
;
5121 fra
.me
.meth
= LOCATE_typing___AArrayExpr___after_typing
;
5122 fra
.me
.has_broke
= 0;
5123 fra
.me
.REG_size
= 3;
5124 fra
.me
.REG
[0] = NIT_NULL
;
5125 fra
.me
.REG
[1] = NIT_NULL
;
5126 fra
.me
.REG
[2] = NIT_NULL
;
5129 /* ./syntax//typing.nit:1031 */
5130 fra
.me
.REG
[2] = CALL_parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5131 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]);
5132 /* ./syntax//typing.nit:1032 */
5133 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5134 if (UNTAG_Bool(REGB0
)) {
5136 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5137 if (UNTAG_Bool(REGB1
)) {
5138 REGB1
= TAG_Bool(false);
5141 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5145 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5146 if (UNTAG_Bool(REGB0
)) {
5147 CALL_typing___AArrayExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
5149 stack_frame_head
= fra
.me
.prev
;
5152 void typing___AArrayExpr___do_typing(val_t p0
, val_t p1
, val_t p2
){
5153 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5156 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5157 fra
.me
.file
= LOCATE_typing
;
5159 fra
.me
.meth
= LOCATE_typing___AArrayExpr___do_typing
;
5160 fra
.me
.has_broke
= 0;
5161 fra
.me
.REG_size
= 3;
5162 fra
.me
.REG
[0] = NIT_NULL
;
5163 fra
.me
.REG
[1] = NIT_NULL
;
5164 fra
.me
.REG
[2] = NIT_NULL
;
5168 /* ./syntax//typing.nit:1037 */
5169 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5170 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5171 /* ./syntax//typing.nit:1038 */
5172 REGB0
= TAG_Bool(true);
5173 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5174 stack_frame_head
= fra
.me
.prev
;
5177 void typing___ARangeExpr___after_typing(val_t p0
, val_t p1
){
5178 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5182 static val_t once_value_2
; /* Once value */
5183 static val_t once_value_3
; /* Once value */
5184 static val_t once_value_4
; /* Once value */
5185 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5186 fra
.me
.file
= LOCATE_typing
;
5188 fra
.me
.meth
= LOCATE_typing___ARangeExpr___after_typing
;
5189 fra
.me
.has_broke
= 0;
5190 fra
.me
.REG_size
= 6;
5191 fra
.me
.REG
[0] = NIT_NULL
;
5192 fra
.me
.REG
[1] = NIT_NULL
;
5193 fra
.me
.REG
[2] = NIT_NULL
;
5194 fra
.me
.REG
[3] = NIT_NULL
;
5195 fra
.me
.REG
[4] = NIT_NULL
;
5196 fra
.me
.REG
[5] = NIT_NULL
;
5199 /* ./syntax//typing.nit:1045 */
5200 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5201 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5202 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5203 if (UNTAG_Bool(REGB0
)) {
5204 REGB0
= TAG_Bool(true);
5206 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5207 REGB1
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5208 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5211 if (UNTAG_Bool(REGB0
)) {
5214 /* ./syntax//typing.nit:1046 */
5215 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5216 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5217 /* ./syntax//typing.nit:1047 */
5218 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5219 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5220 /* ./syntax//typing.nit:1048 */
5221 REGB0
= CALL_static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5222 if (UNTAG_Bool(REGB0
)) {
5223 /* ./syntax//typing.nit:1049 */
5224 fra
.me
.REG
[2] = fra
.me
.REG
[3];
5226 /* ./syntax//typing.nit:1050 */
5227 REGB0
= CALL_static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5228 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5229 if (UNTAG_Bool(REGB0
)) {
5230 /* ./syntax//typing.nit:1051 */
5232 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
5233 if (!once_value_2
) {
5234 fra
.me
.REG
[5] = BOX_NativeString("Type error: ");
5235 REGB0
= TAG_Int(12);
5236 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5237 once_value_2
= fra
.me
.REG
[5];
5238 register_static_object(&once_value_2
);
5239 } else fra
.me
.REG
[5] = once_value_2
;
5240 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5241 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5242 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5243 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5244 if (!once_value_3
) {
5245 fra
.me
.REG
[5] = BOX_NativeString(" incompatible with ");
5246 REGB0
= TAG_Int(19);
5247 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5248 once_value_3
= fra
.me
.REG
[5];
5249 register_static_object(&once_value_3
);
5250 } else fra
.me
.REG
[5] = once_value_3
;
5251 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5252 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5253 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5254 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5255 if (!once_value_4
) {
5256 fra
.me
.REG
[3] = BOX_NativeString(".");
5258 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5259 once_value_4
= fra
.me
.REG
[3];
5260 register_static_object(&once_value_4
);
5261 } else fra
.me
.REG
[3] = once_value_4
;
5262 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5263 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5264 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5265 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
5266 /* ./syntax//typing.nit:1052 */
5270 /* ./syntax//typing.nit:1054 */
5271 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_discrete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5272 /* ./syntax//typing.nit:1055 */
5273 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5274 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5275 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5276 if (UNTAG_Bool(REGB0
)) {
5277 REGB0
= TAG_Bool(true);
5279 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5280 REGB1
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5281 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5284 if (UNTAG_Bool(REGB0
)) {
5287 /* ./syntax//typing.nit:1056 */
5288 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5289 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5290 /* ./syntax//typing.nit:1057 */
5291 REGB0
= TAG_Bool(true);
5292 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5294 stack_frame_head
= fra
.me
.prev
;
5297 val_t
typing___ASuperExpr___init_in_superclass(val_t p0
){
5298 struct {struct stack_frame_t me
;} fra
;
5300 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5301 fra
.me
.file
= LOCATE_typing
;
5303 fra
.me
.meth
= LOCATE_typing___ASuperExpr___init_in_superclass
;
5304 fra
.me
.has_broke
= 0;
5305 fra
.me
.REG_size
= 1;
5306 fra
.me
.REG
[0] = NIT_NULL
;
5308 /* ./syntax//typing.nit:1062 */
5309 fra
.me
.REG
[0] = ATTR_typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]);
5310 stack_frame_head
= fra
.me
.prev
;
5311 return fra
.me
.REG
[0];
5313 val_t
typing___ASuperExpr___compute_raw_arguments(val_t p0
){
5314 struct {struct stack_frame_t me
;} fra
;
5316 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5317 fra
.me
.file
= LOCATE_typing
;
5319 fra
.me
.meth
= LOCATE_typing___ASuperExpr___compute_raw_arguments
;
5320 fra
.me
.has_broke
= 0;
5321 fra
.me
.REG_size
= 1;
5322 fra
.me
.REG
[0] = NIT_NULL
;
5324 /* ./syntax//typing.nit:1063 */
5325 fra
.me
.REG
[0] = CALL_parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5326 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5329 stack_frame_head
= fra
.me
.prev
;
5330 return fra
.me
.REG
[0];
5332 void typing___ASuperExpr___after_typing(val_t p0
, val_t p1
){
5333 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
5338 static val_t once_value_1
; /* Once value */
5339 static val_t once_value_2
; /* Once value */
5340 static val_t once_value_3
; /* Once value */
5341 static val_t once_value_5
; /* Once value */
5342 static val_t once_value_6
; /* Once value */
5343 static val_t once_value_8
; /* Once value */
5344 static val_t once_value_9
; /* Once value */
5345 static val_t once_value_10
; /* Once value */
5346 static val_t once_value_11
; /* Once value */
5347 static val_t once_value_12
; /* Once value */
5348 static val_t once_value_13
; /* Once value */
5349 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5350 fra
.me
.file
= LOCATE_typing
;
5352 fra
.me
.meth
= LOCATE_typing___ASuperExpr___after_typing
;
5353 fra
.me
.has_broke
= 0;
5354 fra
.me
.REG_size
= 9;
5355 fra
.me
.REG
[0] = NIT_NULL
;
5356 fra
.me
.REG
[1] = NIT_NULL
;
5357 fra
.me
.REG
[2] = NIT_NULL
;
5358 fra
.me
.REG
[3] = NIT_NULL
;
5359 fra
.me
.REG
[4] = NIT_NULL
;
5360 fra
.me
.REG
[5] = NIT_NULL
;
5361 fra
.me
.REG
[6] = NIT_NULL
;
5362 fra
.me
.REG
[7] = NIT_NULL
;
5363 fra
.me
.REG
[8] = NIT_NULL
;
5366 /* ./syntax//typing.nit:1066 */
5367 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5368 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5369 fra
.me
.REG
[2] = CALL_partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5370 /* ./syntax//typing.nit:1067 */
5371 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5372 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5373 if (UNTAG_Bool(REGB0
)) {
5374 /* ./syntax//typing.nit:1068 */
5375 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5376 REGB0
= TAG_Bool(true);
5377 CALL_abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
5379 /* ./syntax//typing.nit:1069 */
5380 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5381 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5382 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5383 if (UNTAG_Bool(REGB0
)) {
5384 /* ./syntax//typing.nit:1070 */
5385 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5386 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5387 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5388 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5389 /* ./../lib/standard//collection//array.nit:231 */
5390 fra
.me
.REG
[3] = fra
.me
.REG
[4];
5391 /* ./../lib/standard//collection//array.nit:234 */
5393 /* ./../lib/standard//collection//array.nit:235 */
5394 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5395 if (UNTAG_Bool(REGB1
)) {
5397 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
5399 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5400 /* ./../lib/standard//collection//array.nit:236 */
5401 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[3]);
5402 /* ./../lib/standard//collection//array.nit:237 */
5404 /* ./../lib/standard//collection//array.nit:23 */
5405 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5406 if (UNTAG_Bool(REGB1
)) {
5408 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5410 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5411 /* ./../lib/standard//kernel.nit:212 */
5412 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5413 /* ./../lib/standard//collection//array.nit:237 */
5414 if (UNTAG_Bool(REGB1
)) {
5415 /* ./../lib/standard//collection//array.nit:238 */
5416 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5417 if (UNTAG_Bool(REGB1
)) {
5418 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
5420 /* ./../lib/standard//collection//array.nit:654 */
5421 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
5422 /* ./syntax//typing.nit:1072 */
5423 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5424 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5425 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5426 if (UNTAG_Bool(REGB1
)) {
5427 /* ./syntax//typing.nit:1073 */
5429 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB1
);
5430 if (!once_value_1
) {
5431 fra
.me
.REG
[8] = BOX_NativeString("Error: ");
5433 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
5434 once_value_1
= fra
.me
.REG
[8];
5435 register_static_object(&once_value_1
);
5436 } else fra
.me
.REG
[8] = once_value_1
;
5437 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5438 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5439 fra
.me
.REG
[8] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5440 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
5441 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5442 if (!once_value_2
) {
5443 fra
.me
.REG
[8] = BOX_NativeString("::");
5445 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
5446 once_value_2
= fra
.me
.REG
[8];
5447 register_static_object(&once_value_2
);
5448 } else fra
.me
.REG
[8] = once_value_2
;
5449 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5450 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5451 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5452 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5453 if (!once_value_3
) {
5454 fra
.me
.REG
[8] = BOX_NativeString(" is not a constructor.");
5455 REGB1
= TAG_Int(22);
5456 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
5457 once_value_3
= fra
.me
.REG
[8];
5458 register_static_object(&once_value_3
);
5459 } else fra
.me
.REG
[8] = once_value_3
;
5460 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5461 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5462 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5463 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
5465 /* ./syntax//typing.nit:1075 */
5466 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5467 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5468 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
5469 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5471 /* ./../lib/standard//collection//array.nit:239 */
5473 /* ./../lib/standard//kernel.nit:215 */
5474 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5475 /* ./../lib/standard//collection//array.nit:239 */
5478 /* ./../lib/standard//collection//array.nit:237 */
5483 /* ./syntax//typing.nit:1078 */
5484 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5485 if (UNTAG_Bool(REGB0
)) {
5486 /* ./syntax//typing.nit:1079 */
5488 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
5489 if (!once_value_5
) {
5490 fra
.me
.REG
[3] = BOX_NativeString("Error: No contructor named ");
5491 REGB0
= TAG_Int(27);
5492 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5493 once_value_5
= fra
.me
.REG
[3];
5494 register_static_object(&once_value_5
);
5495 } else fra
.me
.REG
[3] = once_value_5
;
5496 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5497 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5498 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5499 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5500 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5501 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5502 if (!once_value_6
) {
5503 fra
.me
.REG
[3] = BOX_NativeString(" in superclasses.");
5504 REGB0
= TAG_Int(17);
5505 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5506 once_value_6
= fra
.me
.REG
[3];
5507 register_static_object(&once_value_6
);
5508 } else fra
.me
.REG
[3] = once_value_6
;
5509 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5510 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5511 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5512 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
5513 /* ./syntax//typing.nit:1080 */
5516 /* ./../lib/standard//collection//array.nit:23 */
5517 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5518 if (UNTAG_Bool(REGB0
)) {
5520 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5522 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5523 /* ./syntax//typing.nit:1081 */
5525 /* ./../lib/standard//kernel.nit:214 */
5526 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
5527 /* ./syntax//typing.nit:1081 */
5528 if (UNTAG_Bool(REGB1
)) {
5529 /* ./syntax//typing.nit:1082 */
5531 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB1
);
5532 if (!once_value_8
) {
5533 fra
.me
.REG
[3] = BOX_NativeString("Error: Conflicting contructors named ");
5534 REGB1
= TAG_Int(37);
5535 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5536 once_value_8
= fra
.me
.REG
[3];
5537 register_static_object(&once_value_8
);
5538 } else fra
.me
.REG
[3] = once_value_8
;
5539 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5540 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5541 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5542 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5543 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5544 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5545 if (!once_value_9
) {
5546 fra
.me
.REG
[3] = BOX_NativeString(" in superclasses: ");
5547 REGB1
= TAG_Int(18);
5548 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5549 once_value_9
= fra
.me
.REG
[3];
5550 register_static_object(&once_value_9
);
5551 } else fra
.me
.REG
[3] = once_value_9
;
5552 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5553 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5554 if (!once_value_10
) {
5555 fra
.me
.REG
[3] = BOX_NativeString(", ");
5557 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5558 once_value_10
= fra
.me
.REG
[3];
5559 register_static_object(&once_value_10
);
5560 } else fra
.me
.REG
[3] = once_value_10
;
5561 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5562 fra
.me
.REG
[3] = CALL_string___Collection___join(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5563 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5564 if (!once_value_11
) {
5565 fra
.me
.REG
[3] = BOX_NativeString(".");
5567 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5568 once_value_11
= fra
.me
.REG
[3];
5569 register_static_object(&once_value_11
);
5570 } else fra
.me
.REG
[3] = once_value_11
;
5571 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5572 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5573 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5574 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
5575 /* ./syntax//typing.nit:1083 */
5579 /* ./syntax//typing.nit:1085 */
5580 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5581 /* ./syntax//typing.nit:1086 */
5582 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
5583 if (UNTAG_Bool(REGB1
)) {
5585 nit_abort("Assert failed", NULL
, LOCATE_typing
, 1086);
5587 /* ./syntax//typing.nit:1087 */
5588 ATTR_typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5589 /* ./syntax//typing.nit:1088 */
5590 CALL_typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
5591 /* ./syntax//typing.nit:1089 */
5592 fra
.me
.REG
[5] = CALL_parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5593 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5595 /* ./../lib/standard//kernel.nit:214 */
5596 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB0
));
5597 /* ./syntax//typing.nit:1089 */
5598 if (UNTAG_Bool(REGB0
)) {
5599 /* ./syntax//typing.nit:1090 */
5600 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5601 fra
.me
.REG
[5] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5602 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
5603 if (UNTAG_Bool(REGB0
)) {
5605 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1090);
5607 REGB0
= TAG_Bool(true);
5608 fra
.me
.REG
[5] = CALL_typing___AAbsSendExpr___get_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[4], REGB0
);
5609 /* ./syntax//typing.nit:1091 */
5610 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5611 fra
.me
.REG
[3] = CALL_typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5612 CALL_typing___AAbsAbsSendExpr___process_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[4], fra
.me
.REG
[3]);
5615 /* ./syntax//typing.nit:1094 */
5617 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
5618 if (!once_value_12
) {
5619 fra
.me
.REG
[4] = BOX_NativeString("Error: No super method to call for ");
5620 REGB0
= TAG_Int(35);
5621 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5622 once_value_12
= fra
.me
.REG
[4];
5623 register_static_object(&once_value_12
);
5624 } else fra
.me
.REG
[4] = once_value_12
;
5625 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5626 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5627 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5628 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5629 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5630 if (!once_value_13
) {
5631 fra
.me
.REG
[4] = BOX_NativeString(".");
5633 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5634 once_value_13
= fra
.me
.REG
[4];
5635 register_static_object(&once_value_13
);
5636 } else fra
.me
.REG
[4] = once_value_13
;
5637 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5638 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5639 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5640 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
5641 /* ./syntax//typing.nit:1095 */
5645 /* ./syntax//typing.nit:1098 */
5646 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5647 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5648 fra
.me
.REG
[4] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5649 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
5650 if (UNTAG_Bool(REGB0
)) {
5652 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1098);
5654 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5655 if (UNTAG_Bool(REGB0
)) {
5656 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1098);
5658 fra
.me
.REG
[4] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5659 fra
.me
.REG
[4] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5660 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5661 if (UNTAG_Bool(REGB0
)) {
5663 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5664 if (UNTAG_Bool(REGB1
)) {
5665 REGB1
= TAG_Bool(false);
5668 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5672 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5673 if (UNTAG_Bool(REGB0
)) {
5674 /* ./syntax//typing.nit:1099 */
5675 fra
.me
.REG
[4] = NEW_Array_array___Array___init();
5676 /* ./syntax//typing.nit:1100 */
5677 fra
.me
.REG
[3] = NIT_NULL
;
5678 /* ./../lib/standard//collection//array.nit:234 */
5680 /* ./../lib/standard//collection//array.nit:235 */
5681 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5682 if (UNTAG_Bool(REGB1
)) {
5684 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
5686 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5687 /* ./../lib/standard//collection//array.nit:236 */
5688 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[2]);
5689 /* ./../lib/standard//collection//array.nit:237 */
5691 /* ./../lib/standard//collection//array.nit:23 */
5692 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5693 if (UNTAG_Bool(REGB1
)) {
5695 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5697 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5698 /* ./../lib/standard//kernel.nit:212 */
5699 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5700 /* ./../lib/standard//collection//array.nit:237 */
5701 if (UNTAG_Bool(REGB1
)) {
5702 /* ./../lib/standard//collection//array.nit:238 */
5703 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5704 if (UNTAG_Bool(REGB1
)) {
5705 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
5707 /* ./../lib/standard//collection//array.nit:654 */
5708 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
5709 /* ./syntax//typing.nit:1102 */
5710 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
5711 if (UNTAG_Bool(REGB1
)) {
5713 nit_abort("Assert failed", NULL
, LOCATE_typing
, 1102);
5715 /* ./syntax//typing.nit:1103 */
5716 fra
.me
.REG
[7] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5717 fra
.me
.REG
[7] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5718 REGB1
= TAG_Bool((fra
.me
.REG
[7]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[7], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
5719 if (UNTAG_Bool(REGB1
)) {
5721 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1103);
5723 fra
.me
.REG
[7] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5724 fra
.me
.REG
[7] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5725 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5726 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5727 if (UNTAG_Bool(REGB1
)) {
5728 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1103);
5730 fra
.me
.REG
[6] = CALL_static_type___MMType___for_module(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
5731 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5732 fra
.me
.REG
[7] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5733 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5734 if (UNTAG_Bool(REGB1
)) {
5735 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1103);
5737 fra
.me
.REG
[7] = CALL_static_type___MMSignature___recv(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5738 fra
.me
.REG
[7] = CALL_static_type___MMType___adapt_to(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5739 /* ./syntax//typing.nit:1104 */
5740 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
5741 /* ./syntax//typing.nit:1105 */
5742 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5743 if (UNTAG_Bool(REGB1
)) {
5745 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5746 if (UNTAG_Bool(REGB2
)) {
5747 REGB2
= TAG_Bool(false);
5750 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5754 if (UNTAG_Bool(REGB1
)) {
5755 REGB1
= TAG_Bool(true);
5757 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5758 if (UNTAG_Bool(REGB2
)) {
5759 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1105);
5761 REGB2
= CALL_static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
5764 if (UNTAG_Bool(REGB1
)) {
5765 /* ./syntax//typing.nit:1106 */
5766 fra
.me
.REG
[3] = fra
.me
.REG
[7];
5768 /* ./../lib/standard//collection//array.nit:239 */
5770 /* ./../lib/standard//kernel.nit:215 */
5771 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5772 /* ./../lib/standard//collection//array.nit:239 */
5775 /* ./../lib/standard//collection//array.nit:237 */
5780 /* ./../lib/standard//collection//array.nit:234 */
5782 /* ./../lib/standard//collection//array.nit:235 */
5783 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5784 if (UNTAG_Bool(REGB1
)) {
5786 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
5788 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5789 /* ./../lib/standard//collection//array.nit:236 */
5790 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[4]);
5791 /* ./../lib/standard//collection//array.nit:237 */
5793 /* ./../lib/standard//collection//array.nit:23 */
5794 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5795 if (UNTAG_Bool(REGB1
)) {
5797 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5799 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5800 /* ./../lib/standard//kernel.nit:212 */
5801 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5802 /* ./../lib/standard//collection//array.nit:237 */
5803 if (UNTAG_Bool(REGB1
)) {
5804 /* ./../lib/standard//collection//array.nit:238 */
5805 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5806 if (UNTAG_Bool(REGB1
)) {
5807 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
5809 /* ./../lib/standard//collection//array.nit:654 */
5810 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
5811 /* ./syntax//typing.nit:1110 */
5812 REGB1
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
5813 if (UNTAG_Bool(REGB1
)) {
5815 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1110);
5817 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]);
5818 /* ./../lib/standard//collection//array.nit:239 */
5820 /* ./../lib/standard//kernel.nit:215 */
5821 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5822 /* ./../lib/standard//collection//array.nit:239 */
5825 /* ./../lib/standard//collection//array.nit:237 */
5830 /* ./syntax//typing.nit:1112 */
5831 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5833 /* ./syntax//typing.nit:1114 */
5834 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5835 /* ./syntax//typing.nit:1115 */
5836 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
5837 if (UNTAG_Bool(REGB0
)) {
5839 nit_abort("Assert failed", NULL
, LOCATE_typing
, 1115);
5841 /* ./syntax//typing.nit:1116 */
5842 ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5843 /* ./syntax//typing.nit:1117 */
5844 REGB0
= TAG_Bool(true);
5845 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5847 stack_frame_head
= fra
.me
.prev
;
5850 val_t
typing___AAttrFormExpr___prop(val_t p0
){
5851 struct {struct stack_frame_t me
;} fra
;
5854 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5855 fra
.me
.file
= LOCATE_typing
;
5857 fra
.me
.meth
= LOCATE_typing___AAttrFormExpr___prop
;
5858 fra
.me
.has_broke
= 0;
5859 fra
.me
.REG_size
= 1;
5860 fra
.me
.REG
[0] = NIT_NULL
;
5862 /* ./syntax//typing.nit:1122 */
5863 fra
.me
.REG
[0] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
5864 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
5865 if (UNTAG_Bool(REGB0
)) {
5867 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1122);
5871 stack_frame_head
= fra
.me
.prev
;
5872 return fra
.me
.REG
[0];
5874 val_t
typing___AAttrFormExpr___attr_type(val_t p0
){
5875 struct {struct stack_frame_t me
;} fra
;
5878 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5879 fra
.me
.file
= LOCATE_typing
;
5881 fra
.me
.meth
= LOCATE_typing___AAttrFormExpr___attr_type
;
5882 fra
.me
.has_broke
= 0;
5883 fra
.me
.REG_size
= 1;
5884 fra
.me
.REG
[0] = NIT_NULL
;
5886 /* ./syntax//typing.nit:1125 */
5887 fra
.me
.REG
[0] = ATTR_typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]);
5888 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
5889 if (UNTAG_Bool(REGB0
)) {
5891 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1125);
5895 stack_frame_head
= fra
.me
.prev
;
5896 return fra
.me
.REG
[0];
5898 void typing___AAttrFormExpr___do_typing(val_t p0
, val_t p1
){
5899 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5903 static val_t once_value_2
; /* Once value */
5904 static val_t once_value_3
; /* Once value */
5905 static val_t once_value_4
; /* Once value */
5906 static val_t once_value_5
; /* Once value */
5907 static val_t once_value_6
; /* Once value */
5908 static val_t once_value_7
; /* Once value */
5909 static val_t once_value_8
; /* Once value */
5910 static val_t once_value_9
; /* Once value */
5911 static val_t once_value_10
; /* Once value */
5912 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5913 fra
.me
.file
= LOCATE_typing
;
5915 fra
.me
.meth
= LOCATE_typing___AAttrFormExpr___do_typing
;
5916 fra
.me
.has_broke
= 0;
5917 fra
.me
.REG_size
= 7;
5918 fra
.me
.REG
[0] = NIT_NULL
;
5919 fra
.me
.REG
[1] = NIT_NULL
;
5920 fra
.me
.REG
[2] = NIT_NULL
;
5921 fra
.me
.REG
[3] = NIT_NULL
;
5922 fra
.me
.REG
[4] = NIT_NULL
;
5923 fra
.me
.REG
[5] = NIT_NULL
;
5924 fra
.me
.REG
[6] = NIT_NULL
;
5927 /* ./syntax//typing.nit:1131 */
5928 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5929 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5930 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5931 if (UNTAG_Bool(REGB0
)) {
5934 /* ./syntax//typing.nit:1132 */
5935 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5936 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5937 /* ./syntax//typing.nit:1133 */
5938 fra
.me
.REG
[3] = CALL_parser_nodes___AAttrFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5939 fra
.me
.REG
[3] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5940 /* ./syntax//typing.nit:1134 */
5941 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
5942 if (UNTAG_Bool(REGB0
)) {
5943 /* ./syntax//typing.nit:1135 */
5945 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
5946 if (!once_value_2
) {
5947 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute '");
5948 REGB0
= TAG_Int(18);
5949 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5950 once_value_2
= fra
.me
.REG
[5];
5951 register_static_object(&once_value_2
);
5952 } else fra
.me
.REG
[5] = once_value_2
;
5953 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5954 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5955 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5956 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5957 if (!once_value_3
) {
5958 fra
.me
.REG
[5] = BOX_NativeString("' access on 'null'.");
5959 REGB0
= TAG_Int(19);
5960 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5961 once_value_3
= fra
.me
.REG
[5];
5962 register_static_object(&once_value_3
);
5963 } else fra
.me
.REG
[5] = once_value_3
;
5964 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5965 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5966 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5967 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
5968 /* ./syntax//typing.nit:1136 */
5971 /* ./syntax//typing.nit:1138 */
5972 fra
.me
.REG
[4] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5973 /* ./syntax//typing.nit:1139 */
5974 REGB0
= CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5975 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5976 if (UNTAG_Bool(REGB0
)) {
5977 /* ./syntax//typing.nit:1140 */
5979 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
5980 if (!once_value_4
) {
5981 fra
.me
.REG
[6] = BOX_NativeString("Error: Attribute ");
5982 REGB0
= TAG_Int(17);
5983 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
5984 once_value_4
= fra
.me
.REG
[6];
5985 register_static_object(&once_value_4
);
5986 } else fra
.me
.REG
[6] = once_value_4
;
5987 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5988 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5989 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5990 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5991 if (!once_value_5
) {
5992 fra
.me
.REG
[6] = BOX_NativeString(" doesn't exists in ");
5993 REGB0
= TAG_Int(19);
5994 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
5995 once_value_5
= fra
.me
.REG
[6];
5996 register_static_object(&once_value_5
);
5997 } else fra
.me
.REG
[6] = once_value_5
;
5998 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5999 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6000 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6001 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6002 if (!once_value_6
) {
6003 fra
.me
.REG
[6] = BOX_NativeString(".");
6005 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
6006 once_value_6
= fra
.me
.REG
[6];
6007 register_static_object(&once_value_6
);
6008 } else fra
.me
.REG
[6] = once_value_6
;
6009 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6010 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6011 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6012 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
6013 /* ./syntax//typing.nit:1141 */
6016 /* ./syntax//typing.nit:1143 */
6017 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___select_attribute(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6018 /* ./syntax//typing.nit:1144 */
6019 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6020 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6021 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6022 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6023 REGB0
= CALL_abstractmetamodel___MMModule___visibility_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6025 /* ./../lib/standard//kernel.nit:212 */
6026 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6027 /* ./syntax//typing.nit:1144 */
6028 if (UNTAG_Bool(REGB1
)) {
6029 /* ./syntax//typing.nit:1145 */
6031 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB1
);
6032 if (!once_value_7
) {
6033 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute ");
6034 REGB1
= TAG_Int(17);
6035 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
6036 once_value_7
= fra
.me
.REG
[5];
6037 register_static_object(&once_value_7
);
6038 } else fra
.me
.REG
[5] = once_value_7
;
6039 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6040 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
6041 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6042 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6043 if (!once_value_8
) {
6044 fra
.me
.REG
[3] = BOX_NativeString(" from ");
6046 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
6047 once_value_8
= fra
.me
.REG
[3];
6048 register_static_object(&once_value_8
);
6049 } else fra
.me
.REG
[3] = once_value_8
;
6050 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6051 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6052 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6053 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6054 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6055 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6056 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6057 if (!once_value_9
) {
6058 fra
.me
.REG
[3] = BOX_NativeString(" is invisible in ");
6059 REGB1
= TAG_Int(17);
6060 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
6061 once_value_9
= fra
.me
.REG
[3];
6062 register_static_object(&once_value_9
);
6063 } else fra
.me
.REG
[3] = once_value_9
;
6064 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6065 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6066 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6067 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6068 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6069 if (!once_value_10
) {
6070 fra
.me
.REG
[3] = BOX_NativeString("");
6072 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
6073 once_value_10
= fra
.me
.REG
[3];
6074 register_static_object(&once_value_10
);
6075 } else fra
.me
.REG
[3] = once_value_10
;
6076 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6077 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6078 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6079 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
6081 /* ./syntax//typing.nit:1147 */
6082 ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
6083 /* ./syntax//typing.nit:1148 */
6084 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6085 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6086 /* ./syntax//typing.nit:1149 */
6087 fra
.me
.REG
[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6088 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6089 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6090 if (UNTAG_Bool(REGB1
)) {
6091 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6092 if (UNTAG_Bool(REGB1
)) {
6093 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1149);
6095 fra
.me
.REG
[4] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6096 fra
.me
.REG
[2] = fra
.me
.REG
[4];
6098 /* ./syntax//typing.nit:1150 */
6099 ATTR_typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
6101 stack_frame_head
= fra
.me
.prev
;
6104 void typing___AAttrExpr___after_typing(val_t p0
, val_t p1
){
6105 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6109 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6110 fra
.me
.file
= LOCATE_typing
;
6112 fra
.me
.meth
= LOCATE_typing___AAttrExpr___after_typing
;
6113 fra
.me
.has_broke
= 0;
6114 fra
.me
.REG_size
= 2;
6115 fra
.me
.REG
[0] = NIT_NULL
;
6116 fra
.me
.REG
[1] = NIT_NULL
;
6119 /* ./syntax//typing.nit:1157 */
6120 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6121 /* ./syntax//typing.nit:1158 */
6122 fra
.me
.REG
[1] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6123 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6124 if (UNTAG_Bool(REGB0
)) {
6126 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6127 if (UNTAG_Bool(REGB1
)) {
6128 REGB1
= TAG_Bool(false);
6131 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
6135 if (UNTAG_Bool(REGB0
)) {
6138 /* ./syntax//typing.nit:1159 */
6139 fra
.me
.REG
[1] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6140 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6141 /* ./syntax//typing.nit:1160 */
6142 REGB0
= TAG_Bool(true);
6143 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6145 stack_frame_head
= fra
.me
.prev
;
6148 void typing___AAttrAssignExpr___after_typing(val_t p0
, val_t p1
){
6149 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6153 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6154 fra
.me
.file
= LOCATE_typing
;
6156 fra
.me
.meth
= LOCATE_typing___AAttrAssignExpr___after_typing
;
6157 fra
.me
.has_broke
= 0;
6158 fra
.me
.REG_size
= 4;
6159 fra
.me
.REG
[0] = NIT_NULL
;
6160 fra
.me
.REG
[1] = NIT_NULL
;
6161 fra
.me
.REG
[2] = NIT_NULL
;
6162 fra
.me
.REG
[3] = NIT_NULL
;
6165 /* ./syntax//typing.nit:1167 */
6166 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6167 /* ./syntax//typing.nit:1168 */
6168 fra
.me
.REG
[2] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6169 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6170 if (UNTAG_Bool(REGB0
)) {
6172 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6173 if (UNTAG_Bool(REGB1
)) {
6174 REGB1
= TAG_Bool(false);
6177 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6181 if (UNTAG_Bool(REGB0
)) {
6184 /* ./syntax//typing.nit:1169 */
6185 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6186 fra
.me
.REG
[3] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6187 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6188 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6189 if (UNTAG_Bool(REGB0
)) {
6192 /* ./syntax//typing.nit:1170 */
6193 REGB0
= TAG_Bool(true);
6194 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6196 stack_frame_head
= fra
.me
.prev
;
6199 void typing___AAttrReassignExpr___after_typing(val_t p0
, val_t p1
){
6200 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6204 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6205 fra
.me
.file
= LOCATE_typing
;
6207 fra
.me
.meth
= LOCATE_typing___AAttrReassignExpr___after_typing
;
6208 fra
.me
.has_broke
= 0;
6209 fra
.me
.REG_size
= 4;
6210 fra
.me
.REG
[0] = NIT_NULL
;
6211 fra
.me
.REG
[1] = NIT_NULL
;
6212 fra
.me
.REG
[2] = NIT_NULL
;
6213 fra
.me
.REG
[3] = NIT_NULL
;
6216 /* ./syntax//typing.nit:1177 */
6217 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6218 /* ./syntax//typing.nit:1178 */
6219 fra
.me
.REG
[2] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6220 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6221 if (UNTAG_Bool(REGB0
)) {
6223 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6224 if (UNTAG_Bool(REGB1
)) {
6225 REGB1
= TAG_Bool(false);
6228 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6232 if (UNTAG_Bool(REGB0
)) {
6235 /* ./syntax//typing.nit:1179 */
6236 fra
.me
.REG
[2] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6237 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]);
6238 /* ./syntax//typing.nit:1180 */
6239 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6240 if (UNTAG_Bool(REGB0
)) {
6242 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6243 if (UNTAG_Bool(REGB1
)) {
6244 REGB1
= TAG_Bool(false);
6247 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6251 if (UNTAG_Bool(REGB0
)) {
6254 /* ./syntax//typing.nit:1181 */
6255 fra
.me
.REG
[3] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6256 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6257 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]);
6258 /* ./syntax//typing.nit:1182 */
6259 REGB0
= TAG_Bool(true);
6260 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6262 stack_frame_head
= fra
.me
.prev
;
6265 void typing___AIssetAttrExpr___after_typing(val_t p0
, val_t p1
){
6266 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6270 static val_t once_value_2
; /* Once value */
6271 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6272 fra
.me
.file
= LOCATE_typing
;
6274 fra
.me
.meth
= LOCATE_typing___AIssetAttrExpr___after_typing
;
6275 fra
.me
.has_broke
= 0;
6276 fra
.me
.REG_size
= 3;
6277 fra
.me
.REG
[0] = NIT_NULL
;
6278 fra
.me
.REG
[1] = NIT_NULL
;
6279 fra
.me
.REG
[2] = NIT_NULL
;
6282 /* ./syntax//typing.nit:1189 */
6283 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6284 /* ./syntax//typing.nit:1190 */
6285 fra
.me
.REG
[2] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6286 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6287 if (UNTAG_Bool(REGB0
)) {
6289 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6290 if (UNTAG_Bool(REGB1
)) {
6291 REGB1
= TAG_Bool(false);
6294 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6298 if (UNTAG_Bool(REGB0
)) {
6301 /* ./syntax//typing.nit:1191 */
6302 fra
.me
.REG
[2] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6303 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6304 if (UNTAG_Bool(REGB0
)) {
6305 /* ./syntax//typing.nit:1192 */
6306 if (!once_value_2
) {
6307 fra
.me
.REG
[2] = BOX_NativeString("Error: isset on a nullable attribute.");
6308 REGB0
= TAG_Int(37);
6309 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
6310 once_value_2
= fra
.me
.REG
[2];
6311 register_static_object(&once_value_2
);
6312 } else fra
.me
.REG
[2] = once_value_2
;
6313 fra
.me
.REG
[2] = fra
.me
.REG
[2];
6314 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6316 /* ./syntax//typing.nit:1194 */
6317 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6318 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6319 /* ./syntax//typing.nit:1195 */
6320 REGB0
= TAG_Bool(true);
6321 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6323 stack_frame_head
= fra
.me
.prev
;
6326 val_t
typing___AAbsAbsSendExpr___prop_signature(val_t p0
){
6327 struct {struct stack_frame_t me
;} fra
;
6330 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6331 fra
.me
.file
= LOCATE_typing
;
6333 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___prop_signature
;
6334 fra
.me
.has_broke
= 0;
6335 fra
.me
.REG_size
= 1;
6336 fra
.me
.REG
[0] = NIT_NULL
;
6338 /* ./syntax//typing.nit:1201 */
6339 fra
.me
.REG
[0] = ATTR_typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]);
6340 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
6341 if (UNTAG_Bool(REGB0
)) {
6343 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1201);
6347 stack_frame_head
= fra
.me
.prev
;
6348 return fra
.me
.REG
[0];
6350 val_t
typing___AAbsAbsSendExpr___raw_arguments(val_t p0
){
6351 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6355 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6356 fra
.me
.file
= LOCATE_typing
;
6358 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___raw_arguments
;
6359 fra
.me
.has_broke
= 0;
6360 fra
.me
.REG_size
= 4;
6361 fra
.me
.REG
[0] = NIT_NULL
;
6362 fra
.me
.REG
[1] = NIT_NULL
;
6363 fra
.me
.REG
[2] = NIT_NULL
;
6364 fra
.me
.REG
[3] = NIT_NULL
;
6366 /* ./syntax//typing.nit:1207 */
6367 fra
.me
.REG
[1] = ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]);
6368 /* ./syntax//typing.nit:1208 */
6369 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6370 if (UNTAG_Bool(REGB0
)) {
6372 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6373 if (UNTAG_Bool(REGB1
)) {
6374 REGB1
= TAG_Bool(false);
6377 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
6381 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6382 if (UNTAG_Bool(REGB0
)) {
6383 /* ./syntax//typing.nit:1209 */
6384 fra
.me
.REG
[2] = fra
.me
.REG
[1];
6387 /* ./syntax//typing.nit:1211 */
6388 fra
.me
.REG
[3] = CALL_typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6389 fra
.me
.REG
[1] = fra
.me
.REG
[3];
6390 /* ./syntax//typing.nit:1212 */
6391 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6392 if (UNTAG_Bool(REGB0
)) {
6394 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6395 if (UNTAG_Bool(REGB1
)) {
6396 REGB1
= TAG_Bool(false);
6399 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
6403 if (UNTAG_Bool(REGB0
)) {
6404 fra
.me
.REG
[3] = NEW_Array_array___Array___init();
6405 fra
.me
.REG
[1] = fra
.me
.REG
[3];
6407 /* ./syntax//typing.nit:1213 */
6408 ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6409 /* ./syntax//typing.nit:1214 */
6410 fra
.me
.REG
[2] = fra
.me
.REG
[1];
6414 stack_frame_head
= fra
.me
.prev
;
6415 return fra
.me
.REG
[2];
6417 val_t
typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0
){
6418 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6421 static val_t once_value_1
; /* Once value */
6422 static val_t once_value_2
; /* Once value */
6423 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6424 fra
.me
.file
= LOCATE_typing
;
6426 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___compute_raw_arguments
;
6427 fra
.me
.has_broke
= 0;
6428 fra
.me
.REG_size
= 3;
6429 fra
.me
.REG
[0] = NIT_NULL
;
6430 fra
.me
.REG
[1] = NIT_NULL
;
6431 fra
.me
.REG
[2] = NIT_NULL
;
6433 /* ./syntax//typing.nit:1222 */
6435 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
6436 if (!once_value_1
) {
6437 fra
.me
.REG
[2] = BOX_NativeString("");
6439 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
6440 once_value_1
= fra
.me
.REG
[2];
6441 register_static_object(&once_value_1
);
6442 } else fra
.me
.REG
[2] = once_value_1
;
6443 fra
.me
.REG
[2] = fra
.me
.REG
[2];
6444 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6445 fra
.me
.REG
[2] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6446 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6447 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6448 if (!once_value_2
) {
6449 fra
.me
.REG
[2] = BOX_NativeString(" no compute_raw_arguments");
6450 REGB0
= TAG_Int(25);
6451 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
6452 once_value_2
= fra
.me
.REG
[2];
6453 register_static_object(&once_value_2
);
6454 } else fra
.me
.REG
[2] = once_value_2
;
6455 fra
.me
.REG
[2] = fra
.me
.REG
[2];
6456 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6457 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6458 CALL_file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6459 /* ./syntax//typing.nit:1223 */
6460 fra
.me
.REG
[1] = NIT_NULL
;
6463 stack_frame_head
= fra
.me
.prev
;
6464 return fra
.me
.REG
[1];
6466 val_t
typing___AAbsAbsSendExpr___process_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
6467 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6481 static val_t once_value_1
; /* Once value */
6482 static val_t once_value_2
; /* Once value */
6483 static val_t once_value_3
; /* Once value */
6484 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6485 fra
.me
.file
= LOCATE_typing
;
6487 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___process_signature
;
6488 fra
.me
.has_broke
= 0;
6489 fra
.me
.REG_size
= 7;
6490 fra
.me
.REG
[0] = NIT_NULL
;
6491 fra
.me
.REG
[1] = NIT_NULL
;
6492 fra
.me
.REG
[2] = NIT_NULL
;
6493 fra
.me
.REG
[3] = NIT_NULL
;
6494 fra
.me
.REG
[4] = NIT_NULL
;
6495 fra
.me
.REG
[5] = NIT_NULL
;
6496 fra
.me
.REG
[6] = NIT_NULL
;
6502 /* ./syntax//typing.nit:1229 */
6503 REGB0
= CALL_vararg___MMSignature___vararg_rank(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6504 /* ./syntax//typing.nit:1230 */
6505 REGB1
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6506 /* ./syntax//typing.nit:1232 */
6507 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6508 if (UNTAG_Bool(REGB2
)) {
6510 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6511 if (UNTAG_Bool(REGB3
)) {
6512 REGB3
= TAG_Bool(false);
6515 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6519 if (UNTAG_Bool(REGB2
)) {
6522 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6523 if (UNTAG_Bool(REGB3
)) {
6524 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1232);
6526 /* ./../lib/standard//collection//array.nit:23 */
6527 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6528 if (UNTAG_Bool(REGB3
)) {
6530 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
6532 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6533 /* ./syntax//typing.nit:1232 */
6536 /* ./../lib/standard//kernel.nit:214 */
6537 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
6538 /* ./syntax//typing.nit:1233 */
6539 if (UNTAG_Bool(REGB3
)) {
6540 REGB3
= TAG_Bool(true);
6542 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
6543 if (UNTAG_Bool(REGB4
)) {
6545 /* ./../lib/standard//kernel.nit:207 */
6546 REGB5
= TAG_Bool((REGB1
)==(REGB2
));
6547 /* ./syntax//typing.nit:1233 */
6550 REGB4
= TAG_Bool(!UNTAG_Bool(REGB4
));
6551 if (UNTAG_Bool(REGB4
)) {
6553 /* ./../lib/standard//kernel.nit:216 */
6554 REGB4
= TAG_Int(-UNTAG_Int(REGB4
));
6555 /* ./syntax//typing.nit:1233 */
6556 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB4
));
6557 if (UNTAG_Bool(REGB5
)) {
6559 /* ./../lib/standard//kernel.nit:207 */
6560 REGB4
= TAG_Bool((REGB0
)==(REGB4
));
6561 /* ./syntax//typing.nit:1233 */
6565 REGB4
= TAG_Bool(false);
6570 if (UNTAG_Bool(REGB3
)) {
6571 /* ./syntax//typing.nit:1234 */
6573 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB3
);
6574 if (!once_value_1
) {
6575 fra
.me
.REG
[6] = BOX_NativeString("Error: arity missmatch; prototype is '");
6576 REGB3
= TAG_Int(38);
6577 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB3
);
6578 once_value_1
= fra
.me
.REG
[6];
6579 register_static_object(&once_value_1
);
6580 } else fra
.me
.REG
[6] = once_value_1
;
6581 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6582 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6583 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6584 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6585 if (!once_value_2
) {
6586 fra
.me
.REG
[3] = BOX_NativeString("");
6588 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB3
);
6589 once_value_2
= fra
.me
.REG
[3];
6590 register_static_object(&once_value_2
);
6591 } else fra
.me
.REG
[3] = once_value_2
;
6592 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6593 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6594 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6595 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6596 if (!once_value_3
) {
6597 fra
.me
.REG
[3] = BOX_NativeString("'.");
6599 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB3
);
6600 once_value_3
= fra
.me
.REG
[3];
6601 register_static_object(&once_value_3
);
6602 } else fra
.me
.REG
[3] = once_value_3
;
6603 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6604 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6605 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6606 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
6607 /* ./syntax//typing.nit:1235 */
6608 REGB3
= TAG_Bool(false);
6611 /* ./syntax//typing.nit:1237 */
6613 /* ./syntax//typing.nit:1238 */
6615 /* ./../lib/standard//kernel.nit:327 */
6617 /* ./../lib/standard//kernel.nit:332 */
6619 /* ./../lib/standard//kernel.nit:212 */
6620 REGB7
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
6621 /* ./../lib/standard//kernel.nit:332 */
6622 if (UNTAG_Bool(REGB7
)) {
6623 /* ./syntax//typing.nit:1238 */
6625 /* ./syntax//typing.nit:1240 */
6626 fra
.me
.REG
[5] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB7
);
6627 /* ./syntax//typing.nit:1241 */
6628 REGB8
= TAG_Bool(IS_EQUAL_OO(REGB7
,REGB0
));
6629 if (UNTAG_Bool(REGB8
)) {
6631 /* ./../lib/standard//kernel.nit:207 */
6632 REGB7
= TAG_Bool((REGB7
)==(REGB0
));
6633 /* ./syntax//typing.nit:1241 */
6636 if (UNTAG_Bool(REGB8
)) {
6637 /* ./syntax//typing.nit:1242 */
6639 /* ./../lib/standard//kernel.nit:217 */
6640 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
6641 /* ./../lib/standard//kernel.nit:321 */
6643 /* ./../lib/standard//kernel.nit:211 */
6644 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<=UNTAG_Int(REGB7
));
6645 /* ./../lib/standard//kernel.nit:321 */
6646 if (UNTAG_Bool(REGB9
)) {
6647 /* ./syntax//typing.nit:1243 */
6648 REGB9
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6649 if (UNTAG_Bool(REGB9
)) {
6650 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1243);
6652 /* ./../lib/standard//collection//array.nit:243 */
6653 fra
.me
.REG
[0] = fra
.me
.REG
[4];
6655 /* ./../lib/standard//collection//array.nit:245 */
6656 REGB10
= TAG_Int(0);
6657 /* ./../lib/standard//kernel.nit:213 */
6658 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)>=UNTAG_Int(REGB10
));
6659 /* ./../lib/standard//collection//array.nit:245 */
6660 if (UNTAG_Bool(REGB10
)) {
6661 REGB10
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
6662 if (UNTAG_Bool(REGB10
)) {
6664 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
6666 REGB10
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
6667 /* ./../lib/standard//kernel.nit:212 */
6668 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)<UNTAG_Int(REGB10
));
6670 /* ./../lib/standard//collection//array.nit:245 */
6671 REGB11
= TAG_Bool(false);
6674 if (UNTAG_Bool(REGB10
)) {
6676 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
6678 /* ./../lib/standard//collection//array.nit:246 */
6679 fra
.me
.REG
[0] = ATTR_array___Array____items(fra
.me
.REG
[0]);
6680 REGB10
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6681 if (UNTAG_Bool(REGB10
)) {
6682 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
6684 /* ./../lib/standard//collection//array.nit:654 */
6685 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB9
)];
6686 /* ./../lib/standard//collection//array.nit:246 */
6689 /* ./syntax//typing.nit:1244 */
6690 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
6691 /* ./syntax//typing.nit:1245 */
6693 /* ./../lib/standard//kernel.nit:215 */
6694 REGB9
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB9
));
6695 /* ./syntax//typing.nit:1245 */
6697 /* ./../lib/standard//kernel.nit:323 */
6699 /* ./../lib/standard//kernel.nit:215 */
6700 REGB9
= TAG_Int(UNTAG_Int(REGB8
)+UNTAG_Int(REGB9
));
6701 /* ./../lib/standard//kernel.nit:323 */
6704 /* ./../lib/standard//kernel.nit:321 */
6710 /* ./syntax//typing.nit:1248 */
6711 REGB8
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6712 if (UNTAG_Bool(REGB8
)) {
6713 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1248);
6715 /* ./../lib/standard//collection//array.nit:243 */
6716 fra
.me
.REG
[3] = fra
.me
.REG
[4];
6718 /* ./../lib/standard//collection//array.nit:245 */
6720 /* ./../lib/standard//kernel.nit:213 */
6721 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB7
));
6722 /* ./../lib/standard//collection//array.nit:245 */
6723 if (UNTAG_Bool(REGB7
)) {
6724 REGB7
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6725 if (UNTAG_Bool(REGB7
)) {
6727 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
6729 REGB7
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6730 /* ./../lib/standard//kernel.nit:212 */
6731 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB7
));
6733 /* ./../lib/standard//collection//array.nit:245 */
6734 REGB9
= TAG_Bool(false);
6737 if (UNTAG_Bool(REGB7
)) {
6739 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
6741 /* ./../lib/standard//collection//array.nit:246 */
6742 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
6743 REGB7
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6744 if (UNTAG_Bool(REGB7
)) {
6745 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
6747 /* ./../lib/standard//collection//array.nit:654 */
6748 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB8
)];
6749 /* ./../lib/standard//collection//array.nit:246 */
6752 /* ./syntax//typing.nit:1248 */
6753 fra
.me
.REG
[0] = fra
.me
.REG
[3];
6754 /* ./syntax//typing.nit:1249 */
6755 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
6756 /* ./syntax//typing.nit:1250 */
6758 /* ./../lib/standard//kernel.nit:215 */
6759 REGB8
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB8
));
6760 /* ./syntax//typing.nit:1250 */
6763 /* ./../lib/standard//kernel.nit:334 */
6765 /* ./../lib/standard//kernel.nit:215 */
6766 REGB8
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB8
));
6767 /* ./../lib/standard//kernel.nit:334 */
6770 /* ./../lib/standard//kernel.nit:332 */
6775 /* ./syntax//typing.nit:1253 */
6776 REGB4
= TAG_Bool(true);
6780 stack_frame_head
= fra
.me
.prev
;
6783 val_t
typing___AAbsAbsSendExpr___process_closures(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
6784 struct {struct stack_frame_t me
; val_t MORE_REG
[16];} fra
;
6792 static val_t once_value_2
; /* Once value */
6793 static val_t once_value_3
; /* Once value */
6794 static val_t once_value_4
; /* Once value */
6795 static val_t once_value_5
; /* Once value */
6796 static val_t once_value_6
; /* Once value */
6797 static val_t once_value_7
; /* Once value */
6798 static val_t once_value_8
; /* Once value */
6799 static val_t once_value_11
; /* Once value */
6800 static val_t once_value_12
; /* Once value */
6801 static val_t once_value_13
; /* Once value */
6802 static val_t once_value_14
; /* Once value */
6803 static val_t once_value_15
; /* Once value */
6804 static val_t once_value_16
; /* Once value */
6805 static val_t once_value_18
; /* Once value */
6806 static val_t once_value_19
; /* Once value */
6807 static val_t once_value_20
; /* Once value */
6808 static val_t once_value_21
; /* Once value */
6809 static val_t once_value_22
; /* Once value */
6810 static val_t once_value_24
; /* Once value */
6811 static val_t once_value_25
; /* Once value */
6812 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6813 fra
.me
.file
= LOCATE_typing
;
6815 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___process_closures
;
6816 fra
.me
.has_broke
= 0;
6817 fra
.me
.REG_size
= 17;
6818 fra
.me
.REG
[0] = NIT_NULL
;
6819 fra
.me
.REG
[1] = NIT_NULL
;
6820 fra
.me
.REG
[2] = NIT_NULL
;
6821 fra
.me
.REG
[3] = NIT_NULL
;
6822 fra
.me
.REG
[4] = NIT_NULL
;
6823 fra
.me
.REG
[5] = NIT_NULL
;
6824 fra
.me
.REG
[6] = NIT_NULL
;
6825 fra
.me
.REG
[7] = NIT_NULL
;
6826 fra
.me
.REG
[8] = NIT_NULL
;
6827 fra
.me
.REG
[9] = NIT_NULL
;
6828 fra
.me
.REG
[10] = NIT_NULL
;
6829 fra
.me
.REG
[11] = NIT_NULL
;
6830 fra
.me
.REG
[12] = NIT_NULL
;
6831 fra
.me
.REG
[13] = NIT_NULL
;
6832 fra
.me
.REG
[14] = NIT_NULL
;
6833 fra
.me
.REG
[15] = NIT_NULL
;
6834 fra
.me
.REG
[16] = NIT_NULL
;
6840 /* ./syntax//typing.nit:1259 */
6841 fra
.me
.REG
[5] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6842 /* ./syntax//typing.nit:1260 */
6843 fra
.me
.REG
[6] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6844 /* ./syntax//typing.nit:1261 */
6846 /* ./../lib/standard//collection//array.nit:231 */
6847 fra
.me
.REG
[7] = fra
.me
.REG
[6];
6848 /* ./../lib/standard//collection//array.nit:234 */
6850 /* ./../lib/standard//collection//array.nit:235 */
6851 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
6852 if (UNTAG_Bool(REGB2
)) {
6854 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
6856 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
6857 /* ./../lib/standard//collection//array.nit:236 */
6858 fra
.me
.REG
[8] = ATTR_array___Array____items(fra
.me
.REG
[7]);
6859 /* ./../lib/standard//collection//array.nit:237 */
6861 /* ./../lib/standard//collection//array.nit:23 */
6862 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
6863 if (UNTAG_Bool(REGB2
)) {
6865 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
6867 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
6868 /* ./../lib/standard//kernel.nit:212 */
6869 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
6870 /* ./../lib/standard//collection//array.nit:237 */
6871 if (UNTAG_Bool(REGB2
)) {
6872 /* ./../lib/standard//collection//array.nit:238 */
6873 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6874 if (UNTAG_Bool(REGB2
)) {
6875 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
6877 /* ./../lib/standard//collection//array.nit:654 */
6878 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
6879 /* ./syntax//typing.nit:1263 */
6880 REGB2
= CALL_static_type___MMClosure___is_optional(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6881 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6882 if (UNTAG_Bool(REGB2
)) {
6884 /* ./../lib/standard//kernel.nit:215 */
6885 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6886 /* ./syntax//typing.nit:1263 */
6889 /* ./../lib/standard//collection//array.nit:239 */
6891 /* ./../lib/standard//kernel.nit:215 */
6892 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
6893 /* ./../lib/standard//collection//array.nit:239 */
6896 /* ./../lib/standard//collection//array.nit:237 */
6901 /* ./syntax//typing.nit:1265 */
6903 /* ./syntax//typing.nit:1266 */
6904 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6905 if (UNTAG_Bool(REGB2
)) {
6907 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6908 if (UNTAG_Bool(REGB3
)) {
6909 REGB3
= TAG_Bool(false);
6912 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6916 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6917 if (UNTAG_Bool(REGB2
)) {
6918 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6919 if (UNTAG_Bool(REGB2
)) {
6920 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1266);
6922 /* ./../lib/standard//collection//array.nit:23 */
6923 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6924 if (UNTAG_Bool(REGB2
)) {
6926 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
6928 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6929 /* ./syntax//typing.nit:1266 */
6932 /* ./../lib/standard//collection//array.nit:23 */
6933 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
6934 if (UNTAG_Bool(REGB2
)) {
6936 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
6938 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
6939 /* ./syntax//typing.nit:1267 */
6941 /* ./../lib/standard//kernel.nit:214 */
6942 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
6943 /* ./syntax//typing.nit:1267 */
6944 if (UNTAG_Bool(REGB3
)) {
6945 /* ./syntax//typing.nit:1268 */
6947 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
6948 if (UNTAG_Bool(REGB2
)) {
6950 /* ./../lib/standard//kernel.nit:207 */
6951 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
6952 /* ./syntax//typing.nit:1268 */
6955 if (UNTAG_Bool(REGB2
)) {
6957 /* ./../lib/standard//kernel.nit:214 */
6958 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB2
));
6960 /* ./syntax//typing.nit:1268 */
6961 REGB3
= TAG_Bool(false);
6964 if (UNTAG_Bool(REGB2
)) {
6965 /* ./syntax//typing.nit:1269 */
6967 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB2
);
6968 if (!once_value_2
) {
6969 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
6971 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
6972 once_value_2
= fra
.me
.REG
[7];
6973 register_static_object(&once_value_2
);
6974 } else fra
.me
.REG
[7] = once_value_2
;
6975 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6976 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6977 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6978 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6979 if (!once_value_3
) {
6980 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
6981 REGB2
= TAG_Int(10);
6982 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
6983 once_value_3
= fra
.me
.REG
[7];
6984 register_static_object(&once_value_3
);
6985 } else fra
.me
.REG
[7] = once_value_3
;
6986 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6987 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6988 /* ./../lib/standard//collection//array.nit:23 */
6989 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
6990 if (UNTAG_Bool(REGB2
)) {
6992 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
6994 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
6995 /* ./syntax//typing.nit:1269 */
6996 fra
.me
.REG
[7] = CALL_string___Object___to_s(REGB2
)(REGB2
);
6997 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6998 if (!once_value_4
) {
6999 fra
.me
.REG
[7] = BOX_NativeString(" blocks.");
7001 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7002 once_value_4
= fra
.me
.REG
[7];
7003 register_static_object(&once_value_4
);
7004 } else fra
.me
.REG
[7] = once_value_4
;
7005 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7006 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7007 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
7008 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
7010 /* ./../lib/standard//collection//array.nit:23 */
7011 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7012 if (UNTAG_Bool(REGB2
)) {
7014 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7016 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7017 /* ./../lib/standard//kernel.nit:214 */
7018 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7019 /* ./syntax//typing.nit:1270 */
7020 if (UNTAG_Bool(REGB2
)) {
7021 REGB2
= TAG_Bool(true);
7023 /* ./../lib/standard//kernel.nit:212 */
7024 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
7025 /* ./syntax//typing.nit:1270 */
7028 if (UNTAG_Bool(REGB2
)) {
7029 /* ./syntax//typing.nit:1271 */
7031 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB2
);
7032 if (!once_value_5
) {
7033 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
7035 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7036 once_value_5
= fra
.me
.REG
[7];
7037 register_static_object(&once_value_5
);
7038 } else fra
.me
.REG
[7] = once_value_5
;
7039 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7040 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7041 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7042 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7043 if (!once_value_6
) {
7044 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
7045 REGB2
= TAG_Int(10);
7046 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7047 once_value_6
= fra
.me
.REG
[7];
7048 register_static_object(&once_value_6
);
7049 } else fra
.me
.REG
[7] = once_value_6
;
7050 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7051 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7052 /* ./../lib/standard//collection//array.nit:23 */
7053 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7054 if (UNTAG_Bool(REGB2
)) {
7056 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7058 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7059 /* ./syntax//typing.nit:1271 */
7060 fra
.me
.REG
[7] = CALL_string___Object___to_s(REGB2
)(REGB2
);
7061 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7062 if (!once_value_7
) {
7063 fra
.me
.REG
[7] = BOX_NativeString(" blocks, ");
7065 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7066 once_value_7
= fra
.me
.REG
[7];
7067 register_static_object(&once_value_7
);
7068 } else fra
.me
.REG
[7] = once_value_7
;
7069 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7070 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7071 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7072 if (UNTAG_Bool(REGB2
)) {
7073 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1271);
7075 /* ./../lib/standard//collection//array.nit:23 */
7076 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7077 if (UNTAG_Bool(REGB2
)) {
7079 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7081 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7082 /* ./syntax//typing.nit:1271 */
7083 fra
.me
.REG
[7] = CALL_string___Object___to_s(REGB2
)(REGB2
);
7084 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7085 if (!once_value_8
) {
7086 fra
.me
.REG
[7] = BOX_NativeString(" found.");
7088 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7089 once_value_8
= fra
.me
.REG
[7];
7090 register_static_object(&once_value_8
);
7091 } else fra
.me
.REG
[7] = once_value_8
;
7092 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7093 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7094 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
7095 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
7097 /* ./syntax//typing.nit:1274 */
7098 fra
.me
.REG
[8] = NIT_NULL
;
7099 /* ./syntax//typing.nit:1275 */
7100 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7101 if (UNTAG_Bool(REGB2
)) {
7103 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7104 if (UNTAG_Bool(REGB0
)) {
7105 REGB0
= TAG_Bool(false);
7108 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
7112 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7113 if (UNTAG_Bool(REGB2
)) {
7114 fra
.me
.REG
[7] = NEW_Array_array___Array___init();
7115 fra
.me
.REG
[8] = fra
.me
.REG
[7];
7117 /* ./syntax//typing.nit:1278 */
7119 /* ./../lib/standard//kernel.nit:214 */
7120 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7121 /* ./syntax//typing.nit:1278 */
7122 if (UNTAG_Bool(REGB2
)) {
7124 /* ./../lib/standard//kernel.nit:217 */
7125 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
7126 /* ./syntax//typing.nit:1278 */
7127 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7128 if (UNTAG_Bool(REGB0
)) {
7129 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1278);
7131 /* ./../lib/standard//collection//array.nit:243 */
7132 fra
.me
.REG
[7] = fra
.me
.REG
[4];
7133 /* ./../lib/standard//collection//array.nit:245 */
7135 /* ./../lib/standard//kernel.nit:213 */
7136 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
7137 /* ./../lib/standard//collection//array.nit:245 */
7138 if (UNTAG_Bool(REGB0
)) {
7139 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
7140 if (UNTAG_Bool(REGB0
)) {
7142 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
7144 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
7145 /* ./../lib/standard//kernel.nit:212 */
7146 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
7148 /* ./../lib/standard//collection//array.nit:245 */
7149 REGB3
= TAG_Bool(false);
7152 if (UNTAG_Bool(REGB0
)) {
7154 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
7156 /* ./../lib/standard//collection//array.nit:246 */
7157 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[7]);
7158 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
7159 if (UNTAG_Bool(REGB0
)) {
7160 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
7162 /* ./../lib/standard//collection//array.nit:654 */
7163 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB2
)];
7164 /* ./../lib/standard//collection//array.nit:246 */
7167 /* ./syntax//typing.nit:1278 */
7168 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
7169 if (UNTAG_Bool(REGB2
)) {
7170 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1278);
7172 fra
.me
.REG
[7] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
7174 fra
.me
.REG
[7] = NIT_NULL
;
7176 /* ./syntax//typing.nit:1281 */
7178 /* ./../lib/standard//kernel.nit:327 */
7180 /* ./../lib/standard//kernel.nit:332 */
7182 /* ./../lib/standard//kernel.nit:212 */
7183 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
7184 /* ./../lib/standard//kernel.nit:332 */
7185 if (UNTAG_Bool(REGB3
)) {
7186 /* ./syntax//typing.nit:1281 */
7188 /* ./syntax//typing.nit:1282 */
7189 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7190 if (UNTAG_Bool(REGB4
)) {
7191 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1282);
7193 /* ./../lib/standard//collection//array.nit:243 */
7194 fra
.me
.REG
[9] = fra
.me
.REG
[4];
7195 /* ./../lib/standard//collection//array.nit:245 */
7197 /* ./../lib/standard//kernel.nit:213 */
7198 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
7199 /* ./../lib/standard//collection//array.nit:245 */
7200 if (UNTAG_Bool(REGB4
)) {
7201 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
7202 if (UNTAG_Bool(REGB4
)) {
7204 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
7206 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[9]);
7207 /* ./../lib/standard//kernel.nit:212 */
7208 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
7210 /* ./../lib/standard//collection//array.nit:245 */
7211 REGB5
= TAG_Bool(false);
7214 if (UNTAG_Bool(REGB4
)) {
7216 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
7218 /* ./../lib/standard//collection//array.nit:246 */
7219 fra
.me
.REG
[9] = ATTR_array___Array____items(fra
.me
.REG
[9]);
7220 REGB4
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
7221 if (UNTAG_Bool(REGB4
)) {
7222 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
7224 /* ./../lib/standard//collection//array.nit:654 */
7225 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB3
)];
7226 /* ./../lib/standard//collection//array.nit:246 */
7229 /* ./syntax//typing.nit:1283 */
7230 fra
.me
.REG
[10] = CALL_parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
7231 fra
.me
.REG
[10] = CALL_typing___AClosureId___to_symbol(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
7232 /* ./syntax//typing.nit:1284 */
7233 fra
.me
.REG
[11] = CALL_static_type___MMSignature___closure_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[10]);
7234 /* ./syntax//typing.nit:1285 */
7235 REGB3
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
7236 if (UNTAG_Bool(REGB3
)) {
7238 REGB4
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
7239 if (UNTAG_Bool(REGB4
)) {
7240 REGB4
= TAG_Bool(false);
7243 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[11])(fra
.me
.REG
[11], NIT_NULL
);
7247 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
7248 if (UNTAG_Bool(REGB3
)) {
7249 /* ./syntax//typing.nit:1286 */
7250 fra
.me
.REG
[11] = NEW_EscapableClosure_scope___EscapableClosure___init(fra
.me
.REG
[9], fra
.me
.REG
[11], fra
.me
.REG
[8]);
7251 /* ./syntax//typing.nit:1287 */
7252 fra
.me
.REG
[12] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7253 CALL_scope___ScopeContext___push_escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[11], fra
.me
.REG
[7]);
7254 /* ./syntax//typing.nit:1288 */
7255 CALL_typing___AClosureDef___accept_typing2(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[1], fra
.me
.REG
[11]);
7256 /* ./syntax//typing.nit:1289 */
7257 fra
.me
.REG
[11] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7258 CALL_scope___ScopeContext___pop(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
7260 /* ./../lib/standard//collection//array.nit:23 */
7261 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7262 if (UNTAG_Bool(REGB3
)) {
7264 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7266 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7267 /* ./syntax//typing.nit:1290 */
7269 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB3
,REGB4
));
7270 if (UNTAG_Bool(REGB5
)) {
7272 /* ./../lib/standard//kernel.nit:207 */
7273 REGB4
= TAG_Bool((REGB3
)==(REGB4
));
7274 /* ./syntax//typing.nit:1290 */
7277 if (UNTAG_Bool(REGB5
)) {
7278 /* ./syntax//typing.nit:1291 */
7279 fra
.me
.REG
[11] = CALL_parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
7281 fra
.me
.REG
[12] = NEW_Array_array___Array___with_capacity(REGB5
);
7282 if (!once_value_11
) {
7283 fra
.me
.REG
[13] = BOX_NativeString("Error: no closure named '!");
7284 REGB5
= TAG_Int(26);
7285 fra
.me
.REG
[13] = NEW_String_string___String___with_native(fra
.me
.REG
[13], REGB5
);
7286 once_value_11
= fra
.me
.REG
[13];
7287 register_static_object(&once_value_11
);
7288 } else fra
.me
.REG
[13] = once_value_11
;
7289 fra
.me
.REG
[13] = fra
.me
.REG
[13];
7290 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7291 fra
.me
.REG
[13] = CALL_string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
7292 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7293 if (!once_value_12
) {
7294 fra
.me
.REG
[13] = BOX_NativeString("' in ");
7296 fra
.me
.REG
[13] = NEW_String_string___String___with_native(fra
.me
.REG
[13], REGB5
);
7297 once_value_12
= fra
.me
.REG
[13];
7298 register_static_object(&once_value_12
);
7299 } else fra
.me
.REG
[13] = once_value_12
;
7300 fra
.me
.REG
[13] = fra
.me
.REG
[13];
7301 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7302 fra
.me
.REG
[13] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7303 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7304 if (!once_value_13
) {
7305 fra
.me
.REG
[13] = BOX_NativeString("; only closure is !");
7306 REGB5
= TAG_Int(19);
7307 fra
.me
.REG
[13] = NEW_String_string___String___with_native(fra
.me
.REG
[13], REGB5
);
7308 once_value_13
= fra
.me
.REG
[13];
7309 register_static_object(&once_value_13
);
7310 } else fra
.me
.REG
[13] = once_value_13
;
7311 fra
.me
.REG
[13] = fra
.me
.REG
[13];
7312 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7313 fra
.me
.REG
[13] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7314 REGB5
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
7315 if (UNTAG_Bool(REGB5
)) {
7316 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1291);
7318 fra
.me
.REG
[13] = CALL_static_type___MMClosure___name(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
7319 fra
.me
.REG
[13] = CALL_string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
7320 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7321 if (!once_value_14
) {
7322 fra
.me
.REG
[13] = BOX_NativeString(".");
7324 fra
.me
.REG
[13] = NEW_String_string___String___with_native(fra
.me
.REG
[13], REGB5
);
7325 once_value_14
= fra
.me
.REG
[13];
7326 register_static_object(&once_value_14
);
7327 } else fra
.me
.REG
[13] = once_value_14
;
7328 fra
.me
.REG
[13] = fra
.me
.REG
[13];
7329 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7330 fra
.me
.REG
[12] = CALL_string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
7331 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[11], fra
.me
.REG
[12]);
7333 /* ./syntax//typing.nit:1293 */
7334 fra
.me
.REG
[12] = NEW_Array_array___Array___init();
7335 /* ./../lib/standard//collection//array.nit:231 */
7336 fra
.me
.REG
[11] = fra
.me
.REG
[6];
7337 /* ./../lib/standard//collection//array.nit:234 */
7339 /* ./../lib/standard//collection//array.nit:235 */
7340 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
7341 if (UNTAG_Bool(REGB4
)) {
7343 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
7345 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[11]);
7346 /* ./../lib/standard//collection//array.nit:236 */
7347 fra
.me
.REG
[13] = ATTR_array___Array____items(fra
.me
.REG
[11]);
7348 /* ./../lib/standard//collection//array.nit:237 */
7350 /* ./../lib/standard//collection//array.nit:23 */
7351 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
7352 if (UNTAG_Bool(REGB4
)) {
7354 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7356 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[11]);
7357 /* ./../lib/standard//kernel.nit:212 */
7358 REGB4
= TAG_Bool(UNTAG_Int(REGB5
)<UNTAG_Int(REGB4
));
7359 /* ./../lib/standard//collection//array.nit:237 */
7360 if (UNTAG_Bool(REGB4
)) {
7361 /* ./../lib/standard//collection//array.nit:238 */
7362 REGB4
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
7363 if (UNTAG_Bool(REGB4
)) {
7364 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
7366 /* ./../lib/standard//collection//array.nit:654 */
7367 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB5
)];
7368 /* ./syntax//typing.nit:1295 */
7370 fra
.me
.REG
[15] = NEW_Array_array___Array___with_capacity(REGB4
);
7371 if (!once_value_15
) {
7372 fra
.me
.REG
[16] = BOX_NativeString("!");
7374 fra
.me
.REG
[16] = NEW_String_string___String___with_native(fra
.me
.REG
[16], REGB4
);
7375 once_value_15
= fra
.me
.REG
[16];
7376 register_static_object(&once_value_15
);
7377 } else fra
.me
.REG
[16] = once_value_15
;
7378 fra
.me
.REG
[16] = fra
.me
.REG
[16];
7379 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[16]);
7380 fra
.me
.REG
[14] = CALL_static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
7381 fra
.me
.REG
[14] = CALL_string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
7382 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
7383 if (!once_value_16
) {
7384 fra
.me
.REG
[14] = BOX_NativeString("");
7386 fra
.me
.REG
[14] = NEW_String_string___String___with_native(fra
.me
.REG
[14], REGB4
);
7387 once_value_16
= fra
.me
.REG
[14];
7388 register_static_object(&once_value_16
);
7389 } else fra
.me
.REG
[14] = once_value_16
;
7390 fra
.me
.REG
[14] = fra
.me
.REG
[14];
7391 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
7392 fra
.me
.REG
[15] = CALL_string___Object___to_s(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
7393 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[15]);
7394 /* ./../lib/standard//collection//array.nit:239 */
7396 /* ./../lib/standard//kernel.nit:215 */
7397 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
7398 /* ./../lib/standard//collection//array.nit:239 */
7401 /* ./../lib/standard//collection//array.nit:237 */
7406 /* ./syntax//typing.nit:1297 */
7407 fra
.me
.REG
[9] = CALL_parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
7409 fra
.me
.REG
[13] = NEW_Array_array___Array___with_capacity(REGB5
);
7410 if (!once_value_18
) {
7411 fra
.me
.REG
[11] = BOX_NativeString("Error: no closure named '!");
7412 REGB5
= TAG_Int(26);
7413 fra
.me
.REG
[11] = NEW_String_string___String___with_native(fra
.me
.REG
[11], REGB5
);
7414 once_value_18
= fra
.me
.REG
[11];
7415 register_static_object(&once_value_18
);
7416 } else fra
.me
.REG
[11] = once_value_18
;
7417 fra
.me
.REG
[11] = fra
.me
.REG
[11];
7418 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[11]);
7419 fra
.me
.REG
[10] = CALL_string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
7420 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
7421 if (!once_value_19
) {
7422 fra
.me
.REG
[10] = BOX_NativeString("' in ");
7424 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB5
);
7425 once_value_19
= fra
.me
.REG
[10];
7426 register_static_object(&once_value_19
);
7427 } else fra
.me
.REG
[10] = once_value_19
;
7428 fra
.me
.REG
[10] = fra
.me
.REG
[10];
7429 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
7430 fra
.me
.REG
[10] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7431 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
7432 if (!once_value_20
) {
7433 fra
.me
.REG
[10] = BOX_NativeString("; only closures are ");
7434 REGB5
= TAG_Int(20);
7435 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB5
);
7436 once_value_20
= fra
.me
.REG
[10];
7437 register_static_object(&once_value_20
);
7438 } else fra
.me
.REG
[10] = once_value_20
;
7439 fra
.me
.REG
[10] = fra
.me
.REG
[10];
7440 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
7441 if (!once_value_21
) {
7442 fra
.me
.REG
[10] = BOX_NativeString(",");
7444 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB5
);
7445 once_value_21
= fra
.me
.REG
[10];
7446 register_static_object(&once_value_21
);
7447 } else fra
.me
.REG
[10] = once_value_21
;
7448 fra
.me
.REG
[10] = fra
.me
.REG
[10];
7449 fra
.me
.REG
[10] = CALL_string___Collection___join(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[10]);
7450 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
7451 if (!once_value_22
) {
7452 fra
.me
.REG
[10] = BOX_NativeString(".");
7454 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB5
);
7455 once_value_22
= fra
.me
.REG
[10];
7456 register_static_object(&once_value_22
);
7457 } else fra
.me
.REG
[10] = once_value_22
;
7458 fra
.me
.REG
[10] = fra
.me
.REG
[10];
7459 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
7460 fra
.me
.REG
[13] = CALL_string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
7461 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[13]);
7464 /* ./../lib/standard//kernel.nit:334 */
7466 /* ./../lib/standard//kernel.nit:215 */
7467 REGB5
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB5
));
7468 /* ./../lib/standard//kernel.nit:334 */
7471 /* ./../lib/standard//kernel.nit:332 */
7476 /* ./syntax//typing.nit:1302 */
7477 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
7478 if (UNTAG_Bool(REGB2
)) {
7480 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
7481 if (UNTAG_Bool(REGB0
)) {
7482 REGB0
= TAG_Bool(false);
7485 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
7489 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7490 if (UNTAG_Bool(REGB2
)) {
7491 /* ./syntax//typing.nit:1303 */
7492 fra
.me
.REG
[8] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[8]);
7493 fra
.me
.REG
[5] = fra
.me
.REG
[8];
7498 /* ./syntax//typing.nit:1306 */
7500 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
7501 if (UNTAG_Bool(REGB0
)) {
7503 /* ./../lib/standard//kernel.nit:207 */
7504 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
7505 /* ./syntax//typing.nit:1306 */
7508 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7509 if (UNTAG_Bool(REGB0
)) {
7510 /* ./syntax//typing.nit:1307 */
7512 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB0
);
7513 if (!once_value_24
) {
7514 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
7516 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
7517 once_value_24
= fra
.me
.REG
[6];
7518 register_static_object(&once_value_24
);
7519 } else fra
.me
.REG
[6] = once_value_24
;
7520 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7521 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
7522 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7523 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
7524 if (!once_value_25
) {
7525 fra
.me
.REG
[3] = BOX_NativeString(" does not require blocks.");
7526 REGB0
= TAG_Int(25);
7527 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7528 once_value_25
= fra
.me
.REG
[3];
7529 register_static_object(&once_value_25
);
7530 } else fra
.me
.REG
[3] = once_value_25
;
7531 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7532 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
7533 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
7534 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
7537 /* ./syntax//typing.nit:1309 */
7540 stack_frame_head
= fra
.me
.prev
;
7541 return fra
.me
.REG
[5];
7543 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
){
7544 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7549 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7550 fra
.me
.file
= LOCATE_typing
;
7552 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___do_typing
;
7553 fra
.me
.has_broke
= 0;
7554 fra
.me
.REG_size
= 7;
7555 fra
.me
.REG
[0] = NIT_NULL
;
7556 fra
.me
.REG
[1] = NIT_NULL
;
7557 fra
.me
.REG
[2] = NIT_NULL
;
7558 fra
.me
.REG
[3] = NIT_NULL
;
7559 fra
.me
.REG
[4] = NIT_NULL
;
7560 fra
.me
.REG
[5] = NIT_NULL
;
7561 fra
.me
.REG
[6] = NIT_NULL
;
7570 /* ./syntax//typing.nit:1317 */
7571 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]);
7572 /* ./syntax//typing.nit:1318 */
7573 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7574 if (UNTAG_Bool(REGB0
)) {
7576 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7577 if (UNTAG_Bool(REGB2
)) {
7578 REGB2
= TAG_Bool(false);
7581 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
7585 if (UNTAG_Bool(REGB0
)) {
7588 /* ./syntax//typing.nit:1319 */
7589 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
);
7590 /* ./syntax//typing.nit:1320 */
7591 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7592 if (UNTAG_Bool(REGB1
)) {
7593 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1320);
7595 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7596 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]);
7597 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7598 if (UNTAG_Bool(REGB1
)) {
7601 /* ./syntax//typing.nit:1321 */
7602 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7603 if (UNTAG_Bool(REGB1
)) {
7604 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1321);
7606 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7607 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]);
7608 /* ./syntax//typing.nit:1322 */
7609 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7610 if (UNTAG_Bool(REGB1
)) {
7612 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7613 if (UNTAG_Bool(REGB0
)) {
7614 REGB0
= TAG_Bool(false);
7617 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
7621 if (UNTAG_Bool(REGB1
)) {
7622 fra
.me
.REG
[4] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7623 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7624 if (UNTAG_Bool(REGB1
)) {
7626 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7627 if (UNTAG_Bool(REGB0
)) {
7628 REGB0
= TAG_Bool(false);
7631 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7635 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7637 REGB0
= TAG_Bool(false);
7640 if (UNTAG_Bool(REGB1
)) {
7643 /* ./syntax//typing.nit:1323 */
7644 ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
7645 /* ./syntax//typing.nit:1324 */
7646 ATTR_typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
7647 /* ./syntax//typing.nit:1325 */
7648 ATTR_typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
7650 stack_frame_head
= fra
.me
.prev
;
7653 val_t
typing___AAbsSendExpr___get_property(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
7654 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
7660 static val_t once_value_1
; /* Once value */
7661 static val_t once_value_2
; /* Once value */
7662 static val_t once_value_3
; /* Once value */
7663 static val_t once_value_4
; /* Once value */
7664 static val_t once_value_5
; /* Once value */
7665 static val_t once_value_6
; /* Once value */
7666 static val_t once_value_8
; /* Once value */
7667 static val_t once_value_9
; /* Once value */
7668 static val_t once_value_10
; /* Once value */
7669 static val_t once_value_11
; /* Once value */
7670 static val_t once_value_12
; /* Once value */
7671 static val_t once_value_13
; /* Once value */
7672 static val_t once_value_14
; /* Once value */
7673 static val_t once_value_15
; /* Once value */
7674 static val_t once_value_16
; /* Once value */
7675 static val_t once_value_17
; /* Once value */
7676 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7677 fra
.me
.file
= LOCATE_typing
;
7679 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___get_property
;
7680 fra
.me
.has_broke
= 0;
7681 fra
.me
.REG_size
= 10;
7682 fra
.me
.REG
[0] = NIT_NULL
;
7683 fra
.me
.REG
[1] = NIT_NULL
;
7684 fra
.me
.REG
[2] = NIT_NULL
;
7685 fra
.me
.REG
[3] = NIT_NULL
;
7686 fra
.me
.REG
[4] = NIT_NULL
;
7687 fra
.me
.REG
[5] = NIT_NULL
;
7688 fra
.me
.REG
[6] = NIT_NULL
;
7689 fra
.me
.REG
[7] = NIT_NULL
;
7690 fra
.me
.REG
[8] = NIT_NULL
;
7691 fra
.me
.REG
[9] = NIT_NULL
;
7697 /* ./syntax//typing.nit:1330 */
7698 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
7699 if (UNTAG_Bool(REGB1
)) {
7700 /* ./syntax//typing.nit:1331 */
7701 if (!once_value_1
) {
7702 if (!once_value_2
) {
7703 fra
.me
.REG
[4] = BOX_NativeString("==");
7705 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
7706 once_value_2
= fra
.me
.REG
[4];
7707 register_static_object(&once_value_2
);
7708 } else fra
.me
.REG
[4] = once_value_2
;
7709 fra
.me
.REG
[4] = fra
.me
.REG
[4];
7710 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7711 once_value_1
= fra
.me
.REG
[4];
7712 register_static_object(&once_value_1
);
7713 } else fra
.me
.REG
[4] = once_value_1
;
7714 fra
.me
.REG
[4] = fra
.me
.REG
[4];
7715 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
7716 if (UNTAG_Bool(REGB1
)) {
7718 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7721 if (UNTAG_Bool(REGB1
)) {
7722 REGB1
= TAG_Bool(true);
7724 if (!once_value_3
) {
7725 if (!once_value_4
) {
7726 fra
.me
.REG
[4] = BOX_NativeString("!=");
7728 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB2
);
7729 once_value_4
= fra
.me
.REG
[4];
7730 register_static_object(&once_value_4
);
7731 } else fra
.me
.REG
[4] = once_value_4
;
7732 fra
.me
.REG
[4] = fra
.me
.REG
[4];
7733 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7734 once_value_3
= fra
.me
.REG
[4];
7735 register_static_object(&once_value_3
);
7736 } else fra
.me
.REG
[4] = once_value_3
;
7737 fra
.me
.REG
[4] = fra
.me
.REG
[4];
7738 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
7739 if (UNTAG_Bool(REGB2
)) {
7741 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7746 if (UNTAG_Bool(REGB1
)) {
7747 /* ./syntax//typing.nit:1333 */
7748 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7749 fra
.me
.REG
[4] = CALL_static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7750 fra
.me
.REG
[2] = fra
.me
.REG
[4];
7752 /* ./syntax//typing.nit:1335 */
7754 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
7755 if (!once_value_5
) {
7756 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
7757 REGB1
= TAG_Int(15);
7758 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
7759 once_value_5
= fra
.me
.REG
[5];
7760 register_static_object(&once_value_5
);
7761 } else fra
.me
.REG
[5] = once_value_5
;
7762 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7763 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7764 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7765 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7766 if (!once_value_6
) {
7767 fra
.me
.REG
[5] = BOX_NativeString("' call on 'null'.");
7768 REGB1
= TAG_Int(17);
7769 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
7770 once_value_6
= fra
.me
.REG
[5];
7771 register_static_object(&once_value_6
);
7772 } else fra
.me
.REG
[5] = once_value_6
;
7773 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7774 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7775 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7776 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7777 /* ./syntax//typing.nit:1336 */
7778 fra
.me
.REG
[4] = NIT_NULL
;
7782 /* ./syntax//typing.nit:1339 */
7783 fra
.me
.REG
[5] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7784 /* ./syntax//typing.nit:1340 */
7785 fra
.me
.REG
[6] = NIT_NULL
;
7786 /* ./syntax//typing.nit:1341 */
7787 REGB1
= CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7788 if (UNTAG_Bool(REGB1
)) {
7789 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7790 fra
.me
.REG
[6] = fra
.me
.REG
[7];
7792 /* ./syntax//typing.nit:1342 */
7793 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
7794 if (UNTAG_Bool(REGB1
)) {
7796 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
7797 if (UNTAG_Bool(REGB2
)) {
7798 REGB2
= TAG_Bool(false);
7801 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
7805 if (UNTAG_Bool(REGB1
)) {
7806 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7807 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
7808 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
7810 REGB2
= TAG_Bool(false);
7813 if (UNTAG_Bool(REGB1
)) {
7814 /* ./syntax//typing.nit:1343 */
7815 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7816 /* ./../lib/standard//collection//array.nit:23 */
7817 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
7818 if (UNTAG_Bool(REGB1
)) {
7820 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7822 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
7823 /* ./syntax//typing.nit:1344 */
7825 /* ./../lib/standard//kernel.nit:214 */
7826 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7827 /* ./syntax//typing.nit:1344 */
7828 if (UNTAG_Bool(REGB2
)) {
7829 /* ./syntax//typing.nit:1345 */
7831 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB2
);
7832 if (!once_value_8
) {
7833 fra
.me
.REG
[9] = BOX_NativeString("Error: Ambigous method name '");
7834 REGB2
= TAG_Int(29);
7835 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
7836 once_value_8
= fra
.me
.REG
[9];
7837 register_static_object(&once_value_8
);
7838 } else fra
.me
.REG
[9] = once_value_8
;
7839 fra
.me
.REG
[9] = fra
.me
.REG
[9];
7840 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
7841 fra
.me
.REG
[9] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7842 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
7843 if (!once_value_9
) {
7844 fra
.me
.REG
[9] = BOX_NativeString("' for ");
7846 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
7847 once_value_9
= fra
.me
.REG
[9];
7848 register_static_object(&once_value_9
);
7849 } else fra
.me
.REG
[9] = once_value_9
;
7850 fra
.me
.REG
[9] = fra
.me
.REG
[9];
7851 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
7852 if (!once_value_10
) {
7853 fra
.me
.REG
[9] = BOX_NativeString(", ");
7855 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
7856 once_value_10
= fra
.me
.REG
[9];
7857 register_static_object(&once_value_10
);
7858 } else fra
.me
.REG
[9] = once_value_10
;
7859 fra
.me
.REG
[9] = fra
.me
.REG
[9];
7860 fra
.me
.REG
[9] = CALL_string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
7861 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
7862 if (!once_value_11
) {
7863 fra
.me
.REG
[9] = BOX_NativeString(". Use explicit designation.");
7864 REGB2
= TAG_Int(27);
7865 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
7866 once_value_11
= fra
.me
.REG
[9];
7867 register_static_object(&once_value_11
);
7868 } else fra
.me
.REG
[9] = once_value_11
;
7869 fra
.me
.REG
[9] = fra
.me
.REG
[9];
7870 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
7871 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
7872 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
7873 /* ./syntax//typing.nit:1346 */
7874 fra
.me
.REG
[4] = NIT_NULL
;
7877 /* ./../lib/standard//collection//array.nit:23 */
7878 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
7879 if (UNTAG_Bool(REGB2
)) {
7881 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7883 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
7884 /* ./syntax//typing.nit:1347 */
7886 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
7887 if (UNTAG_Bool(REGB3
)) {
7889 /* ./../lib/standard//kernel.nit:207 */
7890 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
7891 /* ./syntax//typing.nit:1347 */
7894 if (UNTAG_Bool(REGB3
)) {
7895 /* ./syntax//typing.nit:1348 */
7896 fra
.me
.REG
[7] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
7897 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
7898 if (UNTAG_Bool(REGB3
)) {
7899 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1348);
7901 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
7902 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
7903 /* ./syntax//typing.nit:1349 */
7904 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
7905 if (UNTAG_Bool(REGB3
)) {
7907 nit_abort("Assert failed", NULL
, LOCATE_typing
, 1349);
7909 /* ./syntax//typing.nit:1350 */
7910 fra
.me
.REG
[6] = fra
.me
.REG
[7];
7914 /* ./syntax//typing.nit:1354 */
7915 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
7916 if (UNTAG_Bool(REGB3
)) {
7918 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
7919 if (UNTAG_Bool(REGB1
)) {
7920 REGB1
= TAG_Bool(false);
7923 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
7927 if (UNTAG_Bool(REGB3
)) {
7928 /* ./syntax//typing.nit:1355 */
7929 if (UNTAG_Bool(REGB0
)) {
7930 /* ./syntax//typing.nit:1356 */
7932 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
7933 if (!once_value_12
) {
7934 fra
.me
.REG
[5] = BOX_NativeString("Error: Method or variable '");
7935 REGB0
= TAG_Int(27);
7936 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
7937 once_value_12
= fra
.me
.REG
[5];
7938 register_static_object(&once_value_12
);
7939 } else fra
.me
.REG
[5] = once_value_12
;
7940 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7941 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
7942 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7943 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
7944 if (!once_value_13
) {
7945 fra
.me
.REG
[5] = BOX_NativeString("' unknown in ");
7946 REGB0
= TAG_Int(13);
7947 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
7948 once_value_13
= fra
.me
.REG
[5];
7949 register_static_object(&once_value_13
);
7950 } else fra
.me
.REG
[5] = once_value_13
;
7951 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7952 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
7953 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7954 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
7955 if (!once_value_14
) {
7956 fra
.me
.REG
[5] = BOX_NativeString(".");
7958 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
7959 once_value_14
= fra
.me
.REG
[5];
7960 register_static_object(&once_value_14
);
7961 } else fra
.me
.REG
[5] = once_value_14
;
7962 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7963 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
7964 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
7965 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
7967 /* ./syntax//typing.nit:1358 */
7969 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
7970 if (!once_value_15
) {
7971 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
7972 REGB0
= TAG_Int(15);
7973 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
7974 once_value_15
= fra
.me
.REG
[5];
7975 register_static_object(&once_value_15
);
7976 } else fra
.me
.REG
[5] = once_value_15
;
7977 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7978 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
7979 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7980 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
7981 if (!once_value_16
) {
7982 fra
.me
.REG
[3] = BOX_NativeString("' doesn't exists in ");
7983 REGB0
= TAG_Int(20);
7984 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7985 once_value_16
= fra
.me
.REG
[3];
7986 register_static_object(&once_value_16
);
7987 } else fra
.me
.REG
[3] = once_value_16
;
7988 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7989 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
7990 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7991 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
7992 if (!once_value_17
) {
7993 fra
.me
.REG
[2] = BOX_NativeString(".");
7995 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
7996 once_value_17
= fra
.me
.REG
[2];
7997 register_static_object(&once_value_17
);
7998 } else fra
.me
.REG
[2] = once_value_17
;
7999 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8000 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
8001 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8002 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
8004 /* ./syntax//typing.nit:1360 */
8005 fra
.me
.REG
[4] = NIT_NULL
;
8008 /* ./syntax//typing.nit:1362 */
8009 fra
.me
.REG
[4] = fra
.me
.REG
[6];
8012 stack_frame_head
= fra
.me
.prev
;
8013 return fra
.me
.REG
[4];
8015 val_t
typing___AAbsSendExpr___get_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8016 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
8019 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8020 fra
.me
.file
= LOCATE_typing
;
8022 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___get_signature
;
8023 fra
.me
.has_broke
= 0;
8024 fra
.me
.REG_size
= 6;
8025 fra
.me
.REG
[0] = NIT_NULL
;
8026 fra
.me
.REG
[1] = NIT_NULL
;
8027 fra
.me
.REG
[2] = NIT_NULL
;
8028 fra
.me
.REG
[3] = NIT_NULL
;
8029 fra
.me
.REG
[4] = NIT_NULL
;
8030 fra
.me
.REG
[5] = NIT_NULL
;
8036 /* ./syntax//typing.nit:1368 */
8037 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8038 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8039 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
);
8040 /* ./syntax//typing.nit:1369 */
8041 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
8042 /* ./syntax//typing.nit:1370 */
8043 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8044 if (UNTAG_Bool(REGB0
)) {
8045 fra
.me
.REG
[3] = CALL_static_type___MMSignature___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8046 fra
.me
.REG
[2] = fra
.me
.REG
[3];
8048 /* ./syntax//typing.nit:1371 */
8051 stack_frame_head
= fra
.me
.prev
;
8052 return fra
.me
.REG
[2];
8054 val_t
typing___AAbsSendExpr___prop(val_t p0
){
8055 struct {struct stack_frame_t me
;} fra
;
8058 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8059 fra
.me
.file
= LOCATE_typing
;
8061 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___prop
;
8062 fra
.me
.has_broke
= 0;
8063 fra
.me
.REG_size
= 1;
8064 fra
.me
.REG
[0] = NIT_NULL
;
8066 /* ./syntax//typing.nit:1375 */
8067 fra
.me
.REG
[0] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
8068 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
8069 if (UNTAG_Bool(REGB0
)) {
8071 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1375);
8075 stack_frame_head
= fra
.me
.prev
;
8076 return fra
.me
.REG
[0];
8078 val_t
typing___AAbsSendExpr___return_type(val_t p0
){
8079 struct {struct stack_frame_t me
;} fra
;
8081 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8082 fra
.me
.file
= LOCATE_typing
;
8084 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___return_type
;
8085 fra
.me
.has_broke
= 0;
8086 fra
.me
.REG_size
= 1;
8087 fra
.me
.REG
[0] = NIT_NULL
;
8089 /* ./syntax//typing.nit:1378 */
8090 fra
.me
.REG
[0] = ATTR_typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]);
8091 stack_frame_head
= fra
.me
.prev
;
8092 return fra
.me
.REG
[0];
8094 void typing___ASuperInitCall___register_super_init_call(val_t p0
, val_t p1
, val_t p2
){
8095 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
8100 static val_t once_value_1
; /* Once value */
8101 static val_t once_value_2
; /* Once value */
8102 static val_t once_value_3
; /* Once value */
8103 static val_t once_value_4
; /* Once value */
8104 static val_t once_value_5
; /* Once value */
8105 static val_t once_value_6
; /* Once value */
8106 static val_t once_value_7
; /* Once value */
8107 static val_t once_value_8
; /* Once value */
8108 static val_t once_value_9
; /* Once value */
8109 static val_t once_value_10
; /* Once value */
8110 static val_t once_value_11
; /* Once value */
8111 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8112 fra
.me
.file
= LOCATE_typing
;
8114 fra
.me
.meth
= LOCATE_typing___ASuperInitCall___register_super_init_call
;
8115 fra
.me
.has_broke
= 0;
8116 fra
.me
.REG_size
= 11;
8117 fra
.me
.REG
[0] = NIT_NULL
;
8118 fra
.me
.REG
[1] = NIT_NULL
;
8119 fra
.me
.REG
[2] = NIT_NULL
;
8120 fra
.me
.REG
[3] = NIT_NULL
;
8121 fra
.me
.REG
[4] = NIT_NULL
;
8122 fra
.me
.REG
[5] = NIT_NULL
;
8123 fra
.me
.REG
[6] = NIT_NULL
;
8124 fra
.me
.REG
[7] = NIT_NULL
;
8125 fra
.me
.REG
[8] = NIT_NULL
;
8126 fra
.me
.REG
[9] = NIT_NULL
;
8127 fra
.me
.REG
[10] = NIT_NULL
;
8131 /* ./syntax//typing.nit:1387 */
8132 fra
.me
.REG
[3] = CALL_parser_prod___ANode___parent(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8133 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8134 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[4]));
8135 if (UNTAG_Bool(REGB0
)) {
8137 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8138 if (UNTAG_Bool(REGB1
)) {
8139 REGB1
= TAG_Bool(false);
8142 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8146 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8147 if (UNTAG_Bool(REGB0
)) {
8148 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8149 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[0],fra
.me
.REG
[4]));
8150 if (UNTAG_Bool(REGB0
)) {
8152 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
8155 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8157 REGB1
= TAG_Bool(false);
8160 if (UNTAG_Bool(REGB0
)) {
8161 /* ./syntax//typing.nit:1388 */
8163 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
8164 if (!once_value_1
) {
8165 fra
.me
.REG
[3] = BOX_NativeString("Error: Constructor invocation ");
8166 REGB0
= TAG_Int(30);
8167 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
8168 once_value_1
= fra
.me
.REG
[3];
8169 register_static_object(&once_value_1
);
8170 } else fra
.me
.REG
[3] = once_value_1
;
8171 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8172 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8173 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8174 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8175 if (!once_value_2
) {
8176 fra
.me
.REG
[3] = BOX_NativeString(" must not be in nested block.");
8177 REGB0
= TAG_Int(29);
8178 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
8179 once_value_2
= fra
.me
.REG
[3];
8180 register_static_object(&once_value_2
);
8181 } else fra
.me
.REG
[3] = once_value_2
;
8182 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8183 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8184 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8185 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
8187 /* ./syntax//typing.nit:1390 */
8188 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8189 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8190 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8191 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8192 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8193 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMModule_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8194 /* ./syntax//typing.nit:1391 */
8195 fra
.me
.REG
[4] = NIT_NULL
;
8196 /* ./syntax//typing.nit:1392 */
8197 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___explicit_super_init_calls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8198 REGB0
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
8199 if (UNTAG_Bool(REGB0
)) {
8201 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1392);
8203 /* ./syntax//typing.nit:1393 */
8204 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8205 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8206 if (UNTAG_Bool(REGB0
)) {
8207 /* ./syntax//typing.nit:1394 */
8208 fra
.me
.REG
[6] = CALL_abstract_collection___SequenceRead___last(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8209 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8210 if (UNTAG_Bool(REGB0
)) {
8211 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1394);
8213 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8214 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8215 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8216 fra
.me
.REG
[4] = fra
.me
.REG
[6];
8218 /* ./syntax//typing.nit:1396 */
8219 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8220 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8221 fra
.me
.REG
[6] = CALL_partial_order___PartialOrderElement___reverse_linear_extension(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8222 /* ./syntax//typing.nit:1397 */
8223 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8224 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[7]));
8225 if (UNTAG_Bool(REGB0
)) {
8227 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
8230 if (UNTAG_Bool(REGB0
)) {
8231 /* ./syntax//typing.nit:1398 */
8232 REGB0
= TAG_Bool(true);
8233 CALL_typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
8235 /* ./syntax//typing.nit:1399 */
8236 REGB0
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
8237 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8238 if (UNTAG_Bool(REGB0
)) {
8239 /* ./syntax//typing.nit:1400 */
8241 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
8242 if (!once_value_3
) {
8243 fra
.me
.REG
[8] = BOX_NativeString("Error: Constructor of class ");
8244 REGB0
= TAG_Int(28);
8245 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8246 once_value_3
= fra
.me
.REG
[8];
8247 register_static_object(&once_value_3
);
8248 } else fra
.me
.REG
[8] = once_value_3
;
8249 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8250 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8251 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8252 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8253 if (!once_value_4
) {
8254 fra
.me
.REG
[8] = BOX_NativeString(" must be one in ");
8255 REGB0
= TAG_Int(16);
8256 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8257 once_value_4
= fra
.me
.REG
[8];
8258 register_static_object(&once_value_4
);
8259 } else fra
.me
.REG
[8] = once_value_4
;
8260 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8261 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8262 if (!once_value_5
) {
8263 fra
.me
.REG
[8] = BOX_NativeString(", ");
8265 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8266 once_value_5
= fra
.me
.REG
[8];
8267 register_static_object(&once_value_5
);
8268 } else fra
.me
.REG
[8] = once_value_5
;
8269 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8270 fra
.me
.REG
[8] = CALL_string___Collection___join(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8]);
8271 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8272 if (!once_value_6
) {
8273 fra
.me
.REG
[8] = BOX_NativeString(".");
8275 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8276 once_value_6
= fra
.me
.REG
[8];
8277 register_static_object(&once_value_6
);
8278 } else fra
.me
.REG
[8] = once_value_6
;
8279 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8280 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8281 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8282 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
8284 /* ./syntax//typing.nit:1401 */
8285 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[4]));
8286 if (UNTAG_Bool(REGB0
)) {
8288 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8291 if (UNTAG_Bool(REGB0
)) {
8292 /* ./syntax//typing.nit:1402 */
8294 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
8295 if (!once_value_7
) {
8296 fra
.me
.REG
[8] = BOX_NativeString("Error: Only one super constructor invocation of class ");
8297 REGB0
= TAG_Int(54);
8298 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8299 once_value_7
= fra
.me
.REG
[8];
8300 register_static_object(&once_value_7
);
8301 } else fra
.me
.REG
[8] = once_value_7
;
8302 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8303 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8304 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8305 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8306 if (!once_value_8
) {
8307 fra
.me
.REG
[8] = BOX_NativeString(" is allowed.");
8308 REGB0
= TAG_Int(12);
8309 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8310 once_value_8
= fra
.me
.REG
[8];
8311 register_static_object(&once_value_8
);
8312 } else fra
.me
.REG
[8] = once_value_8
;
8313 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8314 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8315 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8316 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
8318 /* ./../lib/standard//collection//array.nit:234 */
8320 /* ./../lib/standard//collection//array.nit:235 */
8321 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8322 if (UNTAG_Bool(REGB1
)) {
8324 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
8326 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8327 /* ./../lib/standard//collection//array.nit:236 */
8328 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[6]);
8329 /* ./../lib/standard//collection//array.nit:237 */
8331 /* ./../lib/standard//collection//array.nit:23 */
8332 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8333 if (UNTAG_Bool(REGB1
)) {
8335 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
8337 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8338 /* ./../lib/standard//kernel.nit:212 */
8339 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
8340 /* ./../lib/standard//collection//array.nit:237 */
8341 if (UNTAG_Bool(REGB1
)) {
8342 /* ./../lib/standard//collection//array.nit:238 */
8343 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8344 if (UNTAG_Bool(REGB1
)) {
8345 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
8347 /* ./../lib/standard//collection//array.nit:654 */
8348 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
8349 /* ./syntax//typing.nit:1405 */
8350 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[8],fra
.me
.REG
[4]));
8351 if (UNTAG_Bool(REGB1
)) {
8353 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[4]);
8356 if (UNTAG_Bool(REGB1
)) {
8357 /* ./syntax//typing.nit:1406 */
8358 fra
.me
.REG
[4] = NIT_NULL
;
8360 /* ./syntax//typing.nit:1407 */
8361 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[8],fra
.me
.REG
[3]));
8362 if (UNTAG_Bool(REGB1
)) {
8364 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
8367 if (UNTAG_Bool(REGB1
)) {
8368 /* ./syntax//typing.nit:1408 */
8369 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8370 if (UNTAG_Bool(REGB1
)) {
8372 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8373 if (UNTAG_Bool(REGB2
)) {
8374 REGB2
= TAG_Bool(false);
8377 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8381 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8382 if (UNTAG_Bool(REGB1
)) {
8383 /* ./syntax//typing.nit:1409 */
8385 fra
.me
.REG
[9] = NEW_Array_array___Array___with_capacity(REGB1
);
8386 if (!once_value_9
) {
8387 fra
.me
.REG
[10] = BOX_NativeString("Error: Constructor of ");
8388 REGB1
= TAG_Int(22);
8389 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB1
);
8390 once_value_9
= fra
.me
.REG
[10];
8391 register_static_object(&once_value_9
);
8392 } else fra
.me
.REG
[10] = once_value_9
;
8393 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8394 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
8395 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8396 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
8397 if (!once_value_10
) {
8398 fra
.me
.REG
[8] = BOX_NativeString(" must be invoked before constructor of ");
8399 REGB1
= TAG_Int(39);
8400 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
8401 once_value_10
= fra
.me
.REG
[8];
8402 register_static_object(&once_value_10
);
8403 } else fra
.me
.REG
[8] = once_value_10
;
8404 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8405 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
8406 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8407 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
8408 if (!once_value_11
) {
8409 fra
.me
.REG
[8] = BOX_NativeString("");
8411 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
8412 once_value_11
= fra
.me
.REG
[8];
8413 register_static_object(&once_value_11
);
8414 } else fra
.me
.REG
[8] = once_value_11
;
8415 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8416 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
8417 fra
.me
.REG
[9] = CALL_string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8418 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[9]);
8420 /* ./syntax//typing.nit:1411 */
8421 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
8422 /* ./syntax//typing.nit:1412 */
8426 /* ./../lib/standard//collection//array.nit:239 */
8428 /* ./../lib/standard//kernel.nit:215 */
8429 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
8430 /* ./../lib/standard//collection//array.nit:239 */
8433 /* ./../lib/standard//collection//array.nit:237 */
8442 stack_frame_head
= fra
.me
.prev
;
8445 val_t
typing___ANewExpr___compute_raw_arguments(val_t p0
){
8446 struct {struct stack_frame_t me
;} fra
;
8448 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8449 fra
.me
.file
= LOCATE_typing
;
8451 fra
.me
.meth
= LOCATE_typing___ANewExpr___compute_raw_arguments
;
8452 fra
.me
.has_broke
= 0;
8453 fra
.me
.REG_size
= 1;
8454 fra
.me
.REG
[0] = NIT_NULL
;
8456 /* ./syntax//typing.nit:1421 */
8457 fra
.me
.REG
[0] = CALL_parser_nodes___ANewExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8458 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8461 stack_frame_head
= fra
.me
.prev
;
8462 return fra
.me
.REG
[0];
8464 void typing___ANewExpr___after_typing(val_t p0
, val_t p1
){
8465 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
8469 static val_t once_value_2
; /* Once value */
8470 static val_t once_value_3
; /* Once value */
8471 static val_t once_value_4
; /* Once value */
8472 static val_t once_value_5
; /* Once value */
8473 static val_t once_value_6
; /* Once value */
8474 static val_t once_value_7
; /* Once value */
8475 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8476 fra
.me
.file
= LOCATE_typing
;
8478 fra
.me
.meth
= LOCATE_typing___ANewExpr___after_typing
;
8479 fra
.me
.has_broke
= 0;
8480 fra
.me
.REG_size
= 5;
8481 fra
.me
.REG
[0] = NIT_NULL
;
8482 fra
.me
.REG
[1] = NIT_NULL
;
8483 fra
.me
.REG
[2] = NIT_NULL
;
8484 fra
.me
.REG
[3] = NIT_NULL
;
8485 fra
.me
.REG
[4] = NIT_NULL
;
8488 /* ./syntax//typing.nit:1424 */
8489 fra
.me
.REG
[2] = CALL_parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8490 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8491 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8492 if (UNTAG_Bool(REGB0
)) {
8495 /* ./syntax//typing.nit:1425 */
8496 fra
.me
.REG
[2] = CALL_parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8497 fra
.me
.REG
[2] = CALL_syntax_base___AType___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8498 /* ./syntax//typing.nit:1426 */
8499 fra
.me
.REG
[3] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8500 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8501 REGB0
= CALL_abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8502 if (UNTAG_Bool(REGB0
)) {
8503 /* ./syntax//typing.nit:1427 */
8505 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
8506 if (!once_value_2
) {
8507 fra
.me
.REG
[4] = BOX_NativeString("Error: try to instantiate abstract class ");
8508 REGB0
= TAG_Int(41);
8509 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
8510 once_value_2
= fra
.me
.REG
[4];
8511 register_static_object(&once_value_2
);
8512 } else fra
.me
.REG
[4] = once_value_2
;
8513 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8514 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8515 fra
.me
.REG
[4] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8516 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8517 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8518 if (!once_value_3
) {
8519 fra
.me
.REG
[4] = BOX_NativeString(".");
8521 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
8522 once_value_3
= fra
.me
.REG
[4];
8523 register_static_object(&once_value_3
);
8524 } else fra
.me
.REG
[4] = once_value_3
;
8525 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8526 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8527 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8528 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
8529 /* ./syntax//typing.nit:1428 */
8532 /* ./syntax//typing.nit:1431 */
8533 fra
.me
.REG
[3] = CALL_parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8534 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8535 if (UNTAG_Bool(REGB0
)) {
8537 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8538 if (UNTAG_Bool(REGB1
)) {
8539 REGB1
= TAG_Bool(false);
8542 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
8546 if (UNTAG_Bool(REGB0
)) {
8547 /* ./syntax//typing.nit:1432 */
8548 if (!once_value_4
) {
8549 if (!once_value_5
) {
8550 fra
.me
.REG
[3] = BOX_NativeString("init");
8552 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
8553 once_value_5
= fra
.me
.REG
[3];
8554 register_static_object(&once_value_5
);
8555 } else fra
.me
.REG
[3] = once_value_5
;
8556 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8557 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8558 once_value_4
= fra
.me
.REG
[3];
8559 register_static_object(&once_value_4
);
8560 } else fra
.me
.REG
[3] = once_value_4
;
8561 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8563 /* ./syntax//typing.nit:1434 */
8564 fra
.me
.REG
[4] = CALL_parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8565 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8566 if (UNTAG_Bool(REGB0
)) {
8567 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1434);
8569 fra
.me
.REG
[4] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8570 fra
.me
.REG
[3] = fra
.me
.REG
[4];
8572 /* ./syntax//typing.nit:1437 */
8573 REGB0
= TAG_Bool(false);
8574 REGB1
= TAG_Bool(false);
8575 fra
.me
.REG
[4] = CALL_syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8576 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
);
8577 /* ./syntax//typing.nit:1438 */
8578 fra
.me
.REG
[4] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
8579 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8580 if (UNTAG_Bool(REGB1
)) {
8582 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8583 if (UNTAG_Bool(REGB0
)) {
8584 REGB0
= TAG_Bool(false);
8587 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8591 if (UNTAG_Bool(REGB1
)) {
8594 /* ./syntax//typing.nit:1440 */
8595 fra
.me
.REG
[4] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8596 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8597 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8598 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8599 if (UNTAG_Bool(REGB1
)) {
8600 /* ./syntax//typing.nit:1441 */
8602 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
8603 if (!once_value_6
) {
8604 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
8606 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
8607 once_value_6
= fra
.me
.REG
[3];
8608 register_static_object(&once_value_6
);
8609 } else fra
.me
.REG
[3] = once_value_6
;
8610 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8611 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8612 fra
.me
.REG
[3] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8613 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8614 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8615 if (!once_value_7
) {
8616 fra
.me
.REG
[3] = BOX_NativeString(" is not a constructor.");
8617 REGB1
= TAG_Int(22);
8618 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
8619 once_value_7
= fra
.me
.REG
[3];
8620 register_static_object(&once_value_7
);
8621 } else fra
.me
.REG
[3] = once_value_7
;
8622 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8623 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8624 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8625 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
8626 /* ./syntax//typing.nit:1442 */
8629 /* ./syntax//typing.nit:1444 */
8630 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
8631 /* ./syntax//typing.nit:1445 */
8632 REGB1
= TAG_Bool(true);
8633 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
8635 stack_frame_head
= fra
.me
.prev
;
8638 val_t
typing___ASendExpr___name(val_t p0
){
8639 struct {struct stack_frame_t me
;} fra
;
8641 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8642 fra
.me
.file
= LOCATE_typing
;
8644 fra
.me
.meth
= LOCATE_typing___ASendExpr___name
;
8645 fra
.me
.has_broke
= 0;
8646 fra
.me
.REG_size
= 0;
8647 /* ./syntax//typing.nit:1451 */
8648 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 1451);
8649 stack_frame_head
= fra
.me
.prev
;
8652 val_t
typing___ASendExpr___closure_defs(val_t p0
){
8653 struct {struct stack_frame_t me
;} fra
;
8655 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8656 fra
.me
.file
= LOCATE_typing
;
8658 fra
.me
.meth
= LOCATE_typing___ASendExpr___closure_defs
;
8659 fra
.me
.has_broke
= 0;
8660 fra
.me
.REG_size
= 1;
8661 fra
.me
.REG
[0] = NIT_NULL
;
8663 /* ./syntax//typing.nit:1455 */
8664 fra
.me
.REG
[0] = NIT_NULL
;
8667 stack_frame_head
= fra
.me
.prev
;
8668 return fra
.me
.REG
[0];
8670 void typing___ASendExpr___after_typing(val_t p0
, val_t p1
){
8671 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
8673 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8674 fra
.me
.file
= LOCATE_typing
;
8676 fra
.me
.meth
= LOCATE_typing___ASendExpr___after_typing
;
8677 fra
.me
.has_broke
= 0;
8678 fra
.me
.REG_size
= 2;
8679 fra
.me
.REG
[0] = NIT_NULL
;
8680 fra
.me
.REG
[1] = NIT_NULL
;
8683 /* ./syntax//typing.nit:1459 */
8684 CALL_typing___ASendExpr___do_all_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
8685 stack_frame_head
= fra
.me
.prev
;
8688 void typing___ASendExpr___do_all_typing(val_t p0
, val_t p1
){
8689 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
8693 static val_t once_value_2
; /* Once value */
8694 static val_t once_value_3
; /* Once value */
8695 static val_t once_value_4
; /* Once value */
8696 static val_t once_value_5
; /* Once value */
8697 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8698 fra
.me
.file
= LOCATE_typing
;
8700 fra
.me
.meth
= LOCATE_typing___ASendExpr___do_all_typing
;
8701 fra
.me
.has_broke
= 0;
8702 fra
.me
.REG_size
= 6;
8703 fra
.me
.REG
[0] = NIT_NULL
;
8704 fra
.me
.REG
[1] = NIT_NULL
;
8705 fra
.me
.REG
[2] = NIT_NULL
;
8706 fra
.me
.REG
[3] = NIT_NULL
;
8707 fra
.me
.REG
[4] = NIT_NULL
;
8708 fra
.me
.REG
[5] = NIT_NULL
;
8711 /* ./syntax//typing.nit:1464 */
8712 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8713 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8714 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8715 if (UNTAG_Bool(REGB0
)) {
8718 /* ./syntax//typing.nit:1465 */
8719 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8720 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8721 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8722 REGB0
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8723 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8724 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8725 fra
.me
.REG
[3] = CALL_typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8726 fra
.me
.REG
[4] = CALL_syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8727 fra
.me
.REG
[5] = CALL_syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8728 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]);
8729 /* ./syntax//typing.nit:1466 */
8730 fra
.me
.REG
[5] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
8731 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8732 if (UNTAG_Bool(REGB1
)) {
8734 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8735 if (UNTAG_Bool(REGB0
)) {
8736 REGB0
= TAG_Bool(false);
8739 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8743 if (UNTAG_Bool(REGB1
)) {
8746 /* ./syntax//typing.nit:1467 */
8747 fra
.me
.REG
[5] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
8748 REGB1
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
8749 if (UNTAG_Bool(REGB1
)) {
8751 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1467);
8753 /* ./syntax//typing.nit:1469 */
8754 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8755 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8756 if (UNTAG_Bool(REGB1
)) {
8757 /* ./syntax//typing.nit:1470 */
8758 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8759 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8760 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8761 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8762 if (UNTAG_Bool(REGB1
)) {
8763 /* ./syntax//typing.nit:1471 */
8765 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
8766 if (!once_value_2
) {
8767 fra
.me
.REG
[3] = BOX_NativeString("Error: try to invoke constructor ");
8768 REGB1
= TAG_Int(33);
8769 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
8770 once_value_2
= fra
.me
.REG
[3];
8771 register_static_object(&once_value_2
);
8772 } else fra
.me
.REG
[3] = once_value_2
;
8773 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8774 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8775 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8776 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8777 if (!once_value_3
) {
8778 fra
.me
.REG
[3] = BOX_NativeString(" in a method.");
8779 REGB1
= TAG_Int(13);
8780 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
8781 once_value_3
= fra
.me
.REG
[3];
8782 register_static_object(&once_value_3
);
8783 } else fra
.me
.REG
[3] = once_value_3
;
8784 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8785 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8786 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8787 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
8789 /* ./syntax//typing.nit:1472 */
8790 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8791 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8792 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8793 if (UNTAG_Bool(REGB1
)) {
8794 /* ./syntax//typing.nit:1473 */
8796 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
8797 if (!once_value_4
) {
8798 fra
.me
.REG
[3] = BOX_NativeString("Error: constructor ");
8799 REGB1
= TAG_Int(19);
8800 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
8801 once_value_4
= fra
.me
.REG
[3];
8802 register_static_object(&once_value_4
);
8803 } else fra
.me
.REG
[3] = once_value_4
;
8804 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8805 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8806 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8807 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8808 if (!once_value_5
) {
8809 fra
.me
.REG
[3] = BOX_NativeString(" is not invoken on 'self'.");
8810 REGB1
= TAG_Int(26);
8811 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
8812 once_value_5
= fra
.me
.REG
[3];
8813 register_static_object(&once_value_5
);
8814 } else fra
.me
.REG
[3] = once_value_5
;
8815 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8816 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8817 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8818 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
8820 /* ./syntax//typing.nit:1475 */
8821 CALL_typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5]);
8825 /* ./syntax//typing.nit:1479 */
8826 fra
.me
.REG
[5] = CALL_syntax_base___AAbsSendExpr___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8827 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
8828 /* ./syntax//typing.nit:1480 */
8829 REGB1
= TAG_Bool(true);
8830 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
8832 stack_frame_head
= fra
.me
.prev
;
8835 val_t
typing___ASendReassignExpr___read_prop(val_t p0
){
8836 struct {struct stack_frame_t me
;} fra
;
8839 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8840 fra
.me
.file
= LOCATE_typing
;
8842 fra
.me
.meth
= LOCATE_typing___ASendReassignExpr___read_prop
;
8843 fra
.me
.has_broke
= 0;
8844 fra
.me
.REG_size
= 1;
8845 fra
.me
.REG
[0] = NIT_NULL
;
8847 /* ./syntax//typing.nit:1485 */
8848 fra
.me
.REG
[0] = ATTR_typing___ASendReassignExpr____read_prop(fra
.me
.REG
[0]);
8849 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
8850 if (UNTAG_Bool(REGB0
)) {
8852 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1485);
8856 stack_frame_head
= fra
.me
.prev
;
8857 return fra
.me
.REG
[0];
8859 void typing___ASendReassignExpr___do_all_typing(val_t p0
, val_t p1
){
8860 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8865 static val_t once_value_2
; /* Once value */
8866 static val_t once_value_3
; /* Once value */
8867 static val_t once_value_4
; /* Once value */
8868 static val_t once_value_5
; /* Once value */
8869 static val_t once_value_6
; /* Once value */
8870 static val_t once_value_7
; /* Once value */
8871 static val_t once_value_8
; /* Once value */
8872 static val_t once_value_9
; /* Once value */
8873 static val_t once_value_10
; /* Once value */
8874 static val_t once_value_11
; /* Once value */
8875 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8876 fra
.me
.file
= LOCATE_typing
;
8878 fra
.me
.meth
= LOCATE_typing___ASendReassignExpr___do_all_typing
;
8879 fra
.me
.has_broke
= 0;
8880 fra
.me
.REG_size
= 7;
8881 fra
.me
.REG
[0] = NIT_NULL
;
8882 fra
.me
.REG
[1] = NIT_NULL
;
8883 fra
.me
.REG
[2] = NIT_NULL
;
8884 fra
.me
.REG
[3] = NIT_NULL
;
8885 fra
.me
.REG
[4] = NIT_NULL
;
8886 fra
.me
.REG
[5] = NIT_NULL
;
8887 fra
.me
.REG
[6] = NIT_NULL
;
8890 /* ./syntax//typing.nit:1489 */
8891 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8892 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8893 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8894 if (UNTAG_Bool(REGB0
)) {
8897 /* ./syntax//typing.nit:1490 */
8898 fra
.me
.REG
[2] = CALL_syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8899 /* ./syntax//typing.nit:1491 */
8900 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8901 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8902 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8903 REGB0
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8904 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8905 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8906 fra
.me
.REG
[4] = CALL_typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8907 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
);
8908 /* ./syntax//typing.nit:1492 */
8909 fra
.me
.REG
[4] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
8910 /* ./syntax//typing.nit:1493 */
8911 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8912 if (UNTAG_Bool(REGB1
)) {
8914 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8915 if (UNTAG_Bool(REGB0
)) {
8916 REGB0
= TAG_Bool(false);
8919 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8923 if (UNTAG_Bool(REGB1
)) {
8926 /* ./syntax//typing.nit:1494 */
8927 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8928 if (UNTAG_Bool(REGB1
)) {
8929 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1494);
8931 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8932 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8933 if (UNTAG_Bool(REGB1
)) {
8934 /* ./syntax//typing.nit:1495 */
8935 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8936 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8937 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8938 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8939 if (UNTAG_Bool(REGB1
)) {
8940 /* ./syntax//typing.nit:1496 */
8942 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
8943 if (!once_value_2
) {
8944 fra
.me
.REG
[5] = BOX_NativeString("Error: try to invoke constructor ");
8945 REGB1
= TAG_Int(33);
8946 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
8947 once_value_2
= fra
.me
.REG
[5];
8948 register_static_object(&once_value_2
);
8949 } else fra
.me
.REG
[5] = once_value_2
;
8950 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8951 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8952 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8953 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8954 if (!once_value_3
) {
8955 fra
.me
.REG
[5] = BOX_NativeString(" in a method.");
8956 REGB1
= TAG_Int(13);
8957 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
8958 once_value_3
= fra
.me
.REG
[5];
8959 register_static_object(&once_value_3
);
8960 } else fra
.me
.REG
[5] = once_value_3
;
8961 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8962 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8963 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8964 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
8966 /* ./syntax//typing.nit:1497 */
8967 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8968 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8969 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8970 if (UNTAG_Bool(REGB1
)) {
8971 /* ./syntax//typing.nit:1498 */
8973 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
8974 if (!once_value_4
) {
8975 fra
.me
.REG
[5] = BOX_NativeString("Error: constructor ");
8976 REGB1
= TAG_Int(19);
8977 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
8978 once_value_4
= fra
.me
.REG
[5];
8979 register_static_object(&once_value_4
);
8980 } else fra
.me
.REG
[5] = once_value_4
;
8981 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8982 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8983 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8984 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8985 if (!once_value_5
) {
8986 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
8987 REGB1
= TAG_Int(26);
8988 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
8989 once_value_5
= fra
.me
.REG
[5];
8990 register_static_object(&once_value_5
);
8991 } else fra
.me
.REG
[5] = once_value_5
;
8992 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8993 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8994 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8995 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
8999 /* ./syntax//typing.nit:1501 */
9000 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9001 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9002 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9003 if (UNTAG_Bool(REGB1
)) {
9004 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1501);
9006 fra
.me
.REG
[3] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9007 fra
.me
.REG
[3] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9008 REGB1
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
9009 if (UNTAG_Bool(REGB1
)) {
9011 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1501);
9013 /* ./syntax//typing.nit:1502 */
9014 fra
.me
.REG
[5] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9015 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9016 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9017 if (UNTAG_Bool(REGB1
)) {
9018 fra
.me
.REG
[5] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9019 fra
.me
.REG
[3] = fra
.me
.REG
[5];
9021 /* ./syntax//typing.nit:1504 */
9022 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]);
9023 /* ./syntax//typing.nit:1505 */
9024 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9025 if (UNTAG_Bool(REGB1
)) {
9027 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9028 if (UNTAG_Bool(REGB0
)) {
9029 REGB0
= TAG_Bool(false);
9032 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9036 if (UNTAG_Bool(REGB1
)) {
9039 /* ./syntax//typing.nit:1506 */
9040 fra
.me
.REG
[5] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9041 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9042 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]);
9043 /* ./syntax//typing.nit:1508 */
9044 ATTR_typing___ASendReassignExpr____read_prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
9045 /* ./syntax//typing.nit:1509 */
9046 fra
.me
.REG
[5] = CALL_array___Collection___to_a(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9047 fra
.me
.REG
[2] = fra
.me
.REG
[5];
9048 /* ./syntax//typing.nit:1510 */
9049 fra
.me
.REG
[5] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9050 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
9051 /* ./syntax//typing.nit:1512 */
9052 fra
.me
.REG
[5] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9053 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9054 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9055 REGB1
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9056 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9057 REGB0
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9059 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB2
);
9060 if (!once_value_6
) {
9061 fra
.me
.REG
[6] = BOX_NativeString("");
9063 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB2
);
9064 once_value_6
= fra
.me
.REG
[6];
9065 register_static_object(&once_value_6
);
9066 } else fra
.me
.REG
[6] = once_value_6
;
9067 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9068 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
9069 fra
.me
.REG
[6] = CALL_typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9070 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9071 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
9072 if (!once_value_7
) {
9073 fra
.me
.REG
[6] = BOX_NativeString("=");
9075 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB2
);
9076 once_value_7
= fra
.me
.REG
[6];
9077 register_static_object(&once_value_7
);
9078 } else fra
.me
.REG
[6] = once_value_7
;
9079 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9080 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
9081 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9082 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9083 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
);
9084 /* ./syntax//typing.nit:1513 */
9085 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9086 if (UNTAG_Bool(REGB0
)) {
9087 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1513);
9089 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9090 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9091 if (UNTAG_Bool(REGB0
)) {
9092 /* ./syntax//typing.nit:1514 */
9093 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9094 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9095 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9096 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9097 if (UNTAG_Bool(REGB0
)) {
9098 /* ./syntax//typing.nit:1515 */
9100 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
9101 if (!once_value_8
) {
9102 fra
.me
.REG
[3] = BOX_NativeString("Error: try to invoke constructor ");
9103 REGB0
= TAG_Int(33);
9104 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
9105 once_value_8
= fra
.me
.REG
[3];
9106 register_static_object(&once_value_8
);
9107 } else fra
.me
.REG
[3] = once_value_8
;
9108 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9109 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
9110 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9111 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
9112 if (!once_value_9
) {
9113 fra
.me
.REG
[3] = BOX_NativeString(" in a method.");
9114 REGB0
= TAG_Int(13);
9115 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
9116 once_value_9
= fra
.me
.REG
[3];
9117 register_static_object(&once_value_9
);
9118 } else fra
.me
.REG
[3] = once_value_9
;
9119 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9120 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
9121 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9122 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
9124 /* ./syntax//typing.nit:1516 */
9125 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9126 REGB0
= CALL_typing___AExpr___is_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9127 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9128 if (UNTAG_Bool(REGB0
)) {
9129 /* ./syntax//typing.nit:1517 */
9131 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
9132 if (!once_value_10
) {
9133 fra
.me
.REG
[3] = BOX_NativeString("Error: constructor ");
9134 REGB0
= TAG_Int(19);
9135 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
9136 once_value_10
= fra
.me
.REG
[3];
9137 register_static_object(&once_value_10
);
9138 } else fra
.me
.REG
[3] = once_value_10
;
9139 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9140 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
9141 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9142 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
9143 if (!once_value_11
) {
9144 fra
.me
.REG
[4] = BOX_NativeString(" is not invoken on 'self'.");
9145 REGB0
= TAG_Int(26);
9146 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
9147 once_value_11
= fra
.me
.REG
[4];
9148 register_static_object(&once_value_11
);
9149 } else fra
.me
.REG
[4] = once_value_11
;
9150 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9151 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
9152 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9153 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
9157 /* ./syntax//typing.nit:1521 */
9158 REGB0
= TAG_Bool(true);
9159 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
9161 stack_frame_head
= fra
.me
.prev
;
9164 val_t
typing___ABinopExpr___compute_raw_arguments(val_t p0
){
9165 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9168 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9169 fra
.me
.file
= LOCATE_typing
;
9171 fra
.me
.meth
= LOCATE_typing___ABinopExpr___compute_raw_arguments
;
9172 fra
.me
.has_broke
= 0;
9173 fra
.me
.REG_size
= 2;
9174 fra
.me
.REG
[0] = NIT_NULL
;
9175 fra
.me
.REG
[1] = NIT_NULL
;
9177 /* ./syntax//typing.nit:1526 */
9179 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
9180 fra
.me
.REG
[0] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9181 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
9184 stack_frame_head
= fra
.me
.prev
;
9185 return fra
.me
.REG
[1];
9187 val_t
typing___AEqExpr___name(val_t p0
){
9188 struct {struct stack_frame_t me
;} fra
;
9191 static val_t once_value_1
; /* Once value */
9192 static val_t once_value_2
; /* Once value */
9193 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9194 fra
.me
.file
= LOCATE_typing
;
9196 fra
.me
.meth
= LOCATE_typing___AEqExpr___name
;
9197 fra
.me
.has_broke
= 0;
9198 fra
.me
.REG_size
= 1;
9199 fra
.me
.REG
[0] = NIT_NULL
;
9201 /* ./syntax//typing.nit:1529 */
9202 if (!once_value_1
) {
9203 if (!once_value_2
) {
9204 fra
.me
.REG
[0] = BOX_NativeString("==");
9206 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9207 once_value_2
= fra
.me
.REG
[0];
9208 register_static_object(&once_value_2
);
9209 } else fra
.me
.REG
[0] = once_value_2
;
9210 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9211 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9212 once_value_1
= fra
.me
.REG
[0];
9213 register_static_object(&once_value_1
);
9214 } else fra
.me
.REG
[0] = once_value_1
;
9215 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9218 stack_frame_head
= fra
.me
.prev
;
9219 return fra
.me
.REG
[0];
9221 void typing___AEqExpr___after_typing(val_t p0
, val_t p1
){
9222 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
9226 static val_t once_value_2
; /* Once value */
9227 static val_t once_value_3
; /* Once value */
9228 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9229 fra
.me
.file
= LOCATE_typing
;
9231 fra
.me
.meth
= LOCATE_typing___AEqExpr___after_typing
;
9232 fra
.me
.has_broke
= 0;
9233 fra
.me
.REG_size
= 4;
9234 fra
.me
.REG
[0] = NIT_NULL
;
9235 fra
.me
.REG
[1] = NIT_NULL
;
9236 fra
.me
.REG
[2] = NIT_NULL
;
9237 fra
.me
.REG
[3] = NIT_NULL
;
9240 /* ./syntax//typing.nit:1530 */
9241 fra
.me
.REG
[2] = fra
.me
.REG
[0];
9242 fra
.me
.REG
[3] = fra
.me
.REG
[1];
9243 /* ./syntax//typing.nit:1532 */
9244 CALL_SUPER_typing___AEqExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
9245 /* ./syntax//typing.nit:1533 */
9246 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9247 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9248 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9249 if (UNTAG_Bool(REGB0
)) {
9250 REGB0
= TAG_Bool(true);
9252 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9253 REGB1
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9254 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9257 if (UNTAG_Bool(REGB0
)) {
9260 /* ./syntax//typing.nit:1534 */
9261 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9262 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9263 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9264 if (UNTAG_Bool(REGB0
)) {
9265 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9266 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9267 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9268 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9270 REGB1
= TAG_Bool(false);
9273 if (UNTAG_Bool(REGB0
)) {
9274 REGB0
= TAG_Bool(true);
9276 /* ./syntax//typing.nit:1535 */
9277 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9278 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9279 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9280 /* ./syntax//typing.nit:1534 */
9283 if (UNTAG_Bool(REGB0
)) {
9284 /* ./syntax//typing.nit:1535 */
9285 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9286 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9287 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9288 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9290 /* ./syntax//typing.nit:1534 */
9291 REGB1
= TAG_Bool(false);
9294 if (UNTAG_Bool(REGB0
)) {
9295 /* ./syntax//typing.nit:1536 */
9296 if (!once_value_2
) {
9297 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
9298 REGB0
= TAG_Int(59);
9299 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
9300 once_value_2
= fra
.me
.REG
[1];
9301 register_static_object(&once_value_2
);
9302 } else fra
.me
.REG
[1] = once_value_2
;
9303 fra
.me
.REG
[1] = fra
.me
.REG
[1];
9304 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
9306 /* ./syntax//typing.nit:1539 */
9307 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9308 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9309 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9310 if (UNTAG_Bool(REGB0
)) {
9311 /* ./syntax//typing.nit:1540 */
9312 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9313 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9314 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9315 if (UNTAG_Bool(REGB0
)) {
9316 /* ./syntax//typing.nit:1541 */
9317 if (!once_value_3
) {
9318 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
9319 REGB0
= TAG_Int(43);
9320 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
9321 once_value_3
= fra
.me
.REG
[1];
9322 register_static_object(&once_value_3
);
9323 } else fra
.me
.REG
[1] = once_value_3
;
9324 fra
.me
.REG
[1] = fra
.me
.REG
[1];
9325 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
9327 /* ./syntax//typing.nit:1543 */
9328 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9329 CALL_typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
9332 /* ./syntax//typing.nit:1545 */
9333 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9334 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9335 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9336 if (UNTAG_Bool(REGB0
)) {
9337 /* ./syntax//typing.nit:1546 */
9338 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9339 CALL_typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
9343 stack_frame_head
= fra
.me
.prev
;
9346 void typing___AEqExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
9347 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
9351 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9352 fra
.me
.file
= LOCATE_typing
;
9354 fra
.me
.meth
= LOCATE_typing___AEqExpr___try_to_isa
;
9355 fra
.me
.has_broke
= 0;
9356 fra
.me
.REG_size
= 5;
9357 fra
.me
.REG
[0] = NIT_NULL
;
9358 fra
.me
.REG
[1] = NIT_NULL
;
9359 fra
.me
.REG
[2] = NIT_NULL
;
9360 fra
.me
.REG
[3] = NIT_NULL
;
9361 fra
.me
.REG
[4] = NIT_NULL
;
9365 /* ./syntax//typing.nit:1552 */
9366 fra
.me
.REG
[3] = CALL_typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9367 /* ./syntax//typing.nit:1553 */
9368 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9369 if (UNTAG_Bool(REGB0
)) {
9371 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9372 if (UNTAG_Bool(REGB1
)) {
9373 REGB1
= TAG_Bool(false);
9376 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9380 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9381 if (UNTAG_Bool(REGB0
)) {
9382 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9383 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_MMNullableType
, ID_MMNullableType
)) /*cast MMNullableType*/;
9385 REGB1
= TAG_Bool(false);
9388 if (UNTAG_Bool(REGB0
)) {
9389 /* ./syntax//typing.nit:1554 */
9390 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9391 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9392 fra
.me
.REG
[2] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9393 fra
.me
.REG
[2] = CALL_flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
9394 ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9395 /* ./syntax//typing.nit:1555 */
9396 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9397 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9398 fra
.me
.REG
[1] = CALL_flow___FlowContext___sub_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[1]);
9399 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
9401 stack_frame_head
= fra
.me
.prev
;
9404 val_t
typing___ANeExpr___name(val_t p0
){
9405 struct {struct stack_frame_t me
;} fra
;
9408 static val_t once_value_1
; /* Once value */
9409 static val_t once_value_2
; /* Once value */
9410 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9411 fra
.me
.file
= LOCATE_typing
;
9413 fra
.me
.meth
= LOCATE_typing___ANeExpr___name
;
9414 fra
.me
.has_broke
= 0;
9415 fra
.me
.REG_size
= 1;
9416 fra
.me
.REG
[0] = NIT_NULL
;
9418 /* ./syntax//typing.nit:1560 */
9419 if (!once_value_1
) {
9420 if (!once_value_2
) {
9421 fra
.me
.REG
[0] = BOX_NativeString("!=");
9423 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9424 once_value_2
= fra
.me
.REG
[0];
9425 register_static_object(&once_value_2
);
9426 } else fra
.me
.REG
[0] = once_value_2
;
9427 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9428 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9429 once_value_1
= fra
.me
.REG
[0];
9430 register_static_object(&once_value_1
);
9431 } else fra
.me
.REG
[0] = once_value_1
;
9432 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9435 stack_frame_head
= fra
.me
.prev
;
9436 return fra
.me
.REG
[0];
9438 void typing___ANeExpr___after_typing(val_t p0
, val_t p1
){
9439 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
9443 static val_t once_value_2
; /* Once value */
9444 static val_t once_value_3
; /* Once value */
9445 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9446 fra
.me
.file
= LOCATE_typing
;
9448 fra
.me
.meth
= LOCATE_typing___ANeExpr___after_typing
;
9449 fra
.me
.has_broke
= 0;
9450 fra
.me
.REG_size
= 4;
9451 fra
.me
.REG
[0] = NIT_NULL
;
9452 fra
.me
.REG
[1] = NIT_NULL
;
9453 fra
.me
.REG
[2] = NIT_NULL
;
9454 fra
.me
.REG
[3] = NIT_NULL
;
9457 /* ./syntax//typing.nit:1561 */
9458 fra
.me
.REG
[2] = fra
.me
.REG
[0];
9459 fra
.me
.REG
[3] = fra
.me
.REG
[1];
9460 /* ./syntax//typing.nit:1563 */
9461 CALL_SUPER_typing___ANeExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
9462 /* ./syntax//typing.nit:1564 */
9463 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9464 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9465 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9466 if (UNTAG_Bool(REGB0
)) {
9467 REGB0
= TAG_Bool(true);
9469 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9470 REGB1
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9471 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9474 if (UNTAG_Bool(REGB0
)) {
9477 /* ./syntax//typing.nit:1565 */
9478 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9479 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9480 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9481 if (UNTAG_Bool(REGB0
)) {
9482 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9483 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9484 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9485 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9487 REGB1
= TAG_Bool(false);
9490 if (UNTAG_Bool(REGB0
)) {
9491 REGB0
= TAG_Bool(true);
9493 /* ./syntax//typing.nit:1566 */
9494 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9495 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9496 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9497 /* ./syntax//typing.nit:1565 */
9500 if (UNTAG_Bool(REGB0
)) {
9501 /* ./syntax//typing.nit:1566 */
9502 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9503 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9504 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9505 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9507 /* ./syntax//typing.nit:1565 */
9508 REGB1
= TAG_Bool(false);
9511 if (UNTAG_Bool(REGB0
)) {
9512 /* ./syntax//typing.nit:1567 */
9513 if (!once_value_2
) {
9514 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
9515 REGB0
= TAG_Int(59);
9516 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
9517 once_value_2
= fra
.me
.REG
[1];
9518 register_static_object(&once_value_2
);
9519 } else fra
.me
.REG
[1] = once_value_2
;
9520 fra
.me
.REG
[1] = fra
.me
.REG
[1];
9521 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
9523 /* ./syntax//typing.nit:1570 */
9524 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9525 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9526 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9527 if (UNTAG_Bool(REGB0
)) {
9528 /* ./syntax//typing.nit:1571 */
9529 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9530 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9531 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9532 if (UNTAG_Bool(REGB0
)) {
9533 /* ./syntax//typing.nit:1572 */
9534 if (!once_value_3
) {
9535 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
9536 REGB0
= TAG_Int(43);
9537 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
9538 once_value_3
= fra
.me
.REG
[1];
9539 register_static_object(&once_value_3
);
9540 } else fra
.me
.REG
[1] = once_value_3
;
9541 fra
.me
.REG
[1] = fra
.me
.REG
[1];
9542 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
9544 /* ./syntax//typing.nit:1574 */
9545 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9546 CALL_typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
9549 /* ./syntax//typing.nit:1576 */
9550 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9551 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9552 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9553 if (UNTAG_Bool(REGB0
)) {
9554 /* ./syntax//typing.nit:1577 */
9555 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9556 CALL_typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
9560 stack_frame_head
= fra
.me
.prev
;
9563 void typing___ANeExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
9564 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
9568 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9569 fra
.me
.file
= LOCATE_typing
;
9571 fra
.me
.meth
= LOCATE_typing___ANeExpr___try_to_isa
;
9572 fra
.me
.has_broke
= 0;
9573 fra
.me
.REG_size
= 5;
9574 fra
.me
.REG
[0] = NIT_NULL
;
9575 fra
.me
.REG
[1] = NIT_NULL
;
9576 fra
.me
.REG
[2] = NIT_NULL
;
9577 fra
.me
.REG
[3] = NIT_NULL
;
9578 fra
.me
.REG
[4] = NIT_NULL
;
9582 /* ./syntax//typing.nit:1583 */
9583 fra
.me
.REG
[3] = CALL_typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9584 /* ./syntax//typing.nit:1584 */
9585 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9586 if (UNTAG_Bool(REGB0
)) {
9588 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9589 if (UNTAG_Bool(REGB1
)) {
9590 REGB1
= TAG_Bool(false);
9593 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9597 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9598 if (UNTAG_Bool(REGB0
)) {
9599 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9600 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_MMNullableType
, ID_MMNullableType
)) /*cast MMNullableType*/;
9602 REGB1
= TAG_Bool(false);
9605 if (UNTAG_Bool(REGB0
)) {
9606 /* ./syntax//typing.nit:1585 */
9607 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9608 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9609 fra
.me
.REG
[2] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9610 fra
.me
.REG
[2] = CALL_flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
9611 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9612 /* ./syntax//typing.nit:1586 */
9613 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9614 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9615 fra
.me
.REG
[1] = CALL_flow___FlowContext___sub_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[1]);
9616 ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
9618 stack_frame_head
= fra
.me
.prev
;
9621 val_t
typing___ALtExpr___name(val_t p0
){
9622 struct {struct stack_frame_t me
;} fra
;
9625 static val_t once_value_1
; /* Once value */
9626 static val_t once_value_2
; /* Once value */
9627 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9628 fra
.me
.file
= LOCATE_typing
;
9630 fra
.me
.meth
= LOCATE_typing___ALtExpr___name
;
9631 fra
.me
.has_broke
= 0;
9632 fra
.me
.REG_size
= 1;
9633 fra
.me
.REG
[0] = NIT_NULL
;
9635 /* ./syntax//typing.nit:1591 */
9636 if (!once_value_1
) {
9637 if (!once_value_2
) {
9638 fra
.me
.REG
[0] = BOX_NativeString("<");
9640 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9641 once_value_2
= fra
.me
.REG
[0];
9642 register_static_object(&once_value_2
);
9643 } else fra
.me
.REG
[0] = once_value_2
;
9644 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9645 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9646 once_value_1
= fra
.me
.REG
[0];
9647 register_static_object(&once_value_1
);
9648 } else fra
.me
.REG
[0] = once_value_1
;
9649 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9652 stack_frame_head
= fra
.me
.prev
;
9653 return fra
.me
.REG
[0];
9655 val_t
typing___ALeExpr___name(val_t p0
){
9656 struct {struct stack_frame_t me
;} fra
;
9659 static val_t once_value_1
; /* Once value */
9660 static val_t once_value_2
; /* Once value */
9661 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9662 fra
.me
.file
= LOCATE_typing
;
9664 fra
.me
.meth
= LOCATE_typing___ALeExpr___name
;
9665 fra
.me
.has_broke
= 0;
9666 fra
.me
.REG_size
= 1;
9667 fra
.me
.REG
[0] = NIT_NULL
;
9669 /* ./syntax//typing.nit:1594 */
9670 if (!once_value_1
) {
9671 if (!once_value_2
) {
9672 fra
.me
.REG
[0] = BOX_NativeString("<=");
9674 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9675 once_value_2
= fra
.me
.REG
[0];
9676 register_static_object(&once_value_2
);
9677 } else fra
.me
.REG
[0] = once_value_2
;
9678 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9679 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9680 once_value_1
= fra
.me
.REG
[0];
9681 register_static_object(&once_value_1
);
9682 } else fra
.me
.REG
[0] = once_value_1
;
9683 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9686 stack_frame_head
= fra
.me
.prev
;
9687 return fra
.me
.REG
[0];
9689 val_t
typing___ALlExpr___name(val_t p0
){
9690 struct {struct stack_frame_t me
;} fra
;
9693 static val_t once_value_1
; /* Once value */
9694 static val_t once_value_2
; /* Once value */
9695 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9696 fra
.me
.file
= LOCATE_typing
;
9698 fra
.me
.meth
= LOCATE_typing___ALlExpr___name
;
9699 fra
.me
.has_broke
= 0;
9700 fra
.me
.REG_size
= 1;
9701 fra
.me
.REG
[0] = NIT_NULL
;
9703 /* ./syntax//typing.nit:1597 */
9704 if (!once_value_1
) {
9705 if (!once_value_2
) {
9706 fra
.me
.REG
[0] = BOX_NativeString("<<");
9708 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9709 once_value_2
= fra
.me
.REG
[0];
9710 register_static_object(&once_value_2
);
9711 } else fra
.me
.REG
[0] = once_value_2
;
9712 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9713 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9714 once_value_1
= fra
.me
.REG
[0];
9715 register_static_object(&once_value_1
);
9716 } else fra
.me
.REG
[0] = once_value_1
;
9717 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9720 stack_frame_head
= fra
.me
.prev
;
9721 return fra
.me
.REG
[0];
9723 val_t
typing___AGtExpr___name(val_t p0
){
9724 struct {struct stack_frame_t me
;} fra
;
9727 static val_t once_value_1
; /* Once value */
9728 static val_t once_value_2
; /* Once value */
9729 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9730 fra
.me
.file
= LOCATE_typing
;
9732 fra
.me
.meth
= LOCATE_typing___AGtExpr___name
;
9733 fra
.me
.has_broke
= 0;
9734 fra
.me
.REG_size
= 1;
9735 fra
.me
.REG
[0] = NIT_NULL
;
9737 /* ./syntax//typing.nit:1600 */
9738 if (!once_value_1
) {
9739 if (!once_value_2
) {
9740 fra
.me
.REG
[0] = BOX_NativeString(">");
9742 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9743 once_value_2
= fra
.me
.REG
[0];
9744 register_static_object(&once_value_2
);
9745 } else fra
.me
.REG
[0] = once_value_2
;
9746 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9747 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9748 once_value_1
= fra
.me
.REG
[0];
9749 register_static_object(&once_value_1
);
9750 } else fra
.me
.REG
[0] = once_value_1
;
9751 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9754 stack_frame_head
= fra
.me
.prev
;
9755 return fra
.me
.REG
[0];
9757 val_t
typing___AGeExpr___name(val_t p0
){
9758 struct {struct stack_frame_t me
;} fra
;
9761 static val_t once_value_1
; /* Once value */
9762 static val_t once_value_2
; /* Once value */
9763 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9764 fra
.me
.file
= LOCATE_typing
;
9766 fra
.me
.meth
= LOCATE_typing___AGeExpr___name
;
9767 fra
.me
.has_broke
= 0;
9768 fra
.me
.REG_size
= 1;
9769 fra
.me
.REG
[0] = NIT_NULL
;
9771 /* ./syntax//typing.nit:1603 */
9772 if (!once_value_1
) {
9773 if (!once_value_2
) {
9774 fra
.me
.REG
[0] = BOX_NativeString(">=");
9776 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9777 once_value_2
= fra
.me
.REG
[0];
9778 register_static_object(&once_value_2
);
9779 } else fra
.me
.REG
[0] = once_value_2
;
9780 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9781 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9782 once_value_1
= fra
.me
.REG
[0];
9783 register_static_object(&once_value_1
);
9784 } else fra
.me
.REG
[0] = once_value_1
;
9785 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9788 stack_frame_head
= fra
.me
.prev
;
9789 return fra
.me
.REG
[0];
9791 val_t
typing___AGgExpr___name(val_t p0
){
9792 struct {struct stack_frame_t me
;} fra
;
9795 static val_t once_value_1
; /* Once value */
9796 static val_t once_value_2
; /* Once value */
9797 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9798 fra
.me
.file
= LOCATE_typing
;
9800 fra
.me
.meth
= LOCATE_typing___AGgExpr___name
;
9801 fra
.me
.has_broke
= 0;
9802 fra
.me
.REG_size
= 1;
9803 fra
.me
.REG
[0] = NIT_NULL
;
9805 /* ./syntax//typing.nit:1606 */
9806 if (!once_value_1
) {
9807 if (!once_value_2
) {
9808 fra
.me
.REG
[0] = BOX_NativeString(">>");
9810 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9811 once_value_2
= fra
.me
.REG
[0];
9812 register_static_object(&once_value_2
);
9813 } else fra
.me
.REG
[0] = once_value_2
;
9814 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9815 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9816 once_value_1
= fra
.me
.REG
[0];
9817 register_static_object(&once_value_1
);
9818 } else fra
.me
.REG
[0] = once_value_1
;
9819 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9822 stack_frame_head
= fra
.me
.prev
;
9823 return fra
.me
.REG
[0];
9825 val_t
typing___APlusExpr___name(val_t p0
){
9826 struct {struct stack_frame_t me
;} fra
;
9829 static val_t once_value_1
; /* Once value */
9830 static val_t once_value_2
; /* Once value */
9831 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9832 fra
.me
.file
= LOCATE_typing
;
9834 fra
.me
.meth
= LOCATE_typing___APlusExpr___name
;
9835 fra
.me
.has_broke
= 0;
9836 fra
.me
.REG_size
= 1;
9837 fra
.me
.REG
[0] = NIT_NULL
;
9839 /* ./syntax//typing.nit:1609 */
9840 if (!once_value_1
) {
9841 if (!once_value_2
) {
9842 fra
.me
.REG
[0] = BOX_NativeString("+");
9844 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9845 once_value_2
= fra
.me
.REG
[0];
9846 register_static_object(&once_value_2
);
9847 } else fra
.me
.REG
[0] = once_value_2
;
9848 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9849 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9850 once_value_1
= fra
.me
.REG
[0];
9851 register_static_object(&once_value_1
);
9852 } else fra
.me
.REG
[0] = once_value_1
;
9853 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9856 stack_frame_head
= fra
.me
.prev
;
9857 return fra
.me
.REG
[0];
9859 val_t
typing___AMinusExpr___name(val_t p0
){
9860 struct {struct stack_frame_t me
;} fra
;
9863 static val_t once_value_1
; /* Once value */
9864 static val_t once_value_2
; /* Once value */
9865 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9866 fra
.me
.file
= LOCATE_typing
;
9868 fra
.me
.meth
= LOCATE_typing___AMinusExpr___name
;
9869 fra
.me
.has_broke
= 0;
9870 fra
.me
.REG_size
= 1;
9871 fra
.me
.REG
[0] = NIT_NULL
;
9873 /* ./syntax//typing.nit:1612 */
9874 if (!once_value_1
) {
9875 if (!once_value_2
) {
9876 fra
.me
.REG
[0] = BOX_NativeString("-");
9878 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9879 once_value_2
= fra
.me
.REG
[0];
9880 register_static_object(&once_value_2
);
9881 } else fra
.me
.REG
[0] = once_value_2
;
9882 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9883 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9884 once_value_1
= fra
.me
.REG
[0];
9885 register_static_object(&once_value_1
);
9886 } else fra
.me
.REG
[0] = once_value_1
;
9887 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9890 stack_frame_head
= fra
.me
.prev
;
9891 return fra
.me
.REG
[0];
9893 val_t
typing___AStarshipExpr___name(val_t p0
){
9894 struct {struct stack_frame_t me
;} fra
;
9897 static val_t once_value_1
; /* Once value */
9898 static val_t once_value_2
; /* Once value */
9899 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9900 fra
.me
.file
= LOCATE_typing
;
9902 fra
.me
.meth
= LOCATE_typing___AStarshipExpr___name
;
9903 fra
.me
.has_broke
= 0;
9904 fra
.me
.REG_size
= 1;
9905 fra
.me
.REG
[0] = NIT_NULL
;
9907 /* ./syntax//typing.nit:1615 */
9908 if (!once_value_1
) {
9909 if (!once_value_2
) {
9910 fra
.me
.REG
[0] = BOX_NativeString("<=>");
9912 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9913 once_value_2
= fra
.me
.REG
[0];
9914 register_static_object(&once_value_2
);
9915 } else fra
.me
.REG
[0] = once_value_2
;
9916 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9917 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9918 once_value_1
= fra
.me
.REG
[0];
9919 register_static_object(&once_value_1
);
9920 } else fra
.me
.REG
[0] = once_value_1
;
9921 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9924 stack_frame_head
= fra
.me
.prev
;
9925 return fra
.me
.REG
[0];
9927 val_t
typing___AStarExpr___name(val_t p0
){
9928 struct {struct stack_frame_t me
;} fra
;
9931 static val_t once_value_1
; /* Once value */
9932 static val_t once_value_2
; /* Once value */
9933 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9934 fra
.me
.file
= LOCATE_typing
;
9936 fra
.me
.meth
= LOCATE_typing___AStarExpr___name
;
9937 fra
.me
.has_broke
= 0;
9938 fra
.me
.REG_size
= 1;
9939 fra
.me
.REG
[0] = NIT_NULL
;
9941 /* ./syntax//typing.nit:1618 */
9942 if (!once_value_1
) {
9943 if (!once_value_2
) {
9944 fra
.me
.REG
[0] = BOX_NativeString("*");
9946 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9947 once_value_2
= fra
.me
.REG
[0];
9948 register_static_object(&once_value_2
);
9949 } else fra
.me
.REG
[0] = once_value_2
;
9950 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9951 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9952 once_value_1
= fra
.me
.REG
[0];
9953 register_static_object(&once_value_1
);
9954 } else fra
.me
.REG
[0] = once_value_1
;
9955 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9958 stack_frame_head
= fra
.me
.prev
;
9959 return fra
.me
.REG
[0];
9961 val_t
typing___ASlashExpr___name(val_t p0
){
9962 struct {struct stack_frame_t me
;} fra
;
9965 static val_t once_value_1
; /* Once value */
9966 static val_t once_value_2
; /* Once value */
9967 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9968 fra
.me
.file
= LOCATE_typing
;
9970 fra
.me
.meth
= LOCATE_typing___ASlashExpr___name
;
9971 fra
.me
.has_broke
= 0;
9972 fra
.me
.REG_size
= 1;
9973 fra
.me
.REG
[0] = NIT_NULL
;
9975 /* ./syntax//typing.nit:1621 */
9976 if (!once_value_1
) {
9977 if (!once_value_2
) {
9978 fra
.me
.REG
[0] = BOX_NativeString("/");
9980 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9981 once_value_2
= fra
.me
.REG
[0];
9982 register_static_object(&once_value_2
);
9983 } else fra
.me
.REG
[0] = once_value_2
;
9984 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9985 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9986 once_value_1
= fra
.me
.REG
[0];
9987 register_static_object(&once_value_1
);
9988 } else fra
.me
.REG
[0] = once_value_1
;
9989 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9992 stack_frame_head
= fra
.me
.prev
;
9993 return fra
.me
.REG
[0];
9995 val_t
typing___APercentExpr___name(val_t p0
){
9996 struct {struct stack_frame_t me
;} fra
;
9999 static val_t once_value_1
; /* Once value */
10000 static val_t once_value_2
; /* Once value */
10001 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10002 fra
.me
.file
= LOCATE_typing
;
10003 fra
.me
.line
= 1624;
10004 fra
.me
.meth
= LOCATE_typing___APercentExpr___name
;
10005 fra
.me
.has_broke
= 0;
10006 fra
.me
.REG_size
= 1;
10007 fra
.me
.REG
[0] = NIT_NULL
;
10008 fra
.me
.REG
[0] = p0
;
10009 /* ./syntax//typing.nit:1624 */
10010 if (!once_value_1
) {
10011 if (!once_value_2
) {
10012 fra
.me
.REG
[0] = BOX_NativeString("%");
10013 REGB0
= TAG_Int(1);
10014 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10015 once_value_2
= fra
.me
.REG
[0];
10016 register_static_object(&once_value_2
);
10017 } else fra
.me
.REG
[0] = once_value_2
;
10018 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10019 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10020 once_value_1
= fra
.me
.REG
[0];
10021 register_static_object(&once_value_1
);
10022 } else fra
.me
.REG
[0] = once_value_1
;
10023 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10026 stack_frame_head
= fra
.me
.prev
;
10027 return fra
.me
.REG
[0];
10029 val_t
typing___AUminusExpr___name(val_t p0
){
10030 struct {struct stack_frame_t me
;} fra
;
10033 static val_t once_value_1
; /* Once value */
10034 static val_t once_value_2
; /* Once value */
10035 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10036 fra
.me
.file
= LOCATE_typing
;
10037 fra
.me
.line
= 1628;
10038 fra
.me
.meth
= LOCATE_typing___AUminusExpr___name
;
10039 fra
.me
.has_broke
= 0;
10040 fra
.me
.REG_size
= 1;
10041 fra
.me
.REG
[0] = NIT_NULL
;
10042 fra
.me
.REG
[0] = p0
;
10043 /* ./syntax//typing.nit:1628 */
10044 if (!once_value_1
) {
10045 if (!once_value_2
) {
10046 fra
.me
.REG
[0] = BOX_NativeString("unary -");
10047 REGB0
= TAG_Int(7);
10048 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10049 once_value_2
= fra
.me
.REG
[0];
10050 register_static_object(&once_value_2
);
10051 } else fra
.me
.REG
[0] = once_value_2
;
10052 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10053 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10054 once_value_1
= fra
.me
.REG
[0];
10055 register_static_object(&once_value_1
);
10056 } else fra
.me
.REG
[0] = once_value_1
;
10057 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10060 stack_frame_head
= fra
.me
.prev
;
10061 return fra
.me
.REG
[0];
10063 val_t
typing___AUminusExpr___compute_raw_arguments(val_t p0
){
10064 struct {struct stack_frame_t me
;} fra
;
10066 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10067 fra
.me
.file
= LOCATE_typing
;
10068 fra
.me
.line
= 1629;
10069 fra
.me
.meth
= LOCATE_typing___AUminusExpr___compute_raw_arguments
;
10070 fra
.me
.has_broke
= 0;
10071 fra
.me
.REG_size
= 1;
10072 fra
.me
.REG
[0] = NIT_NULL
;
10073 fra
.me
.REG
[0] = p0
;
10074 /* ./syntax//typing.nit:1629 */
10075 fra
.me
.REG
[0] = NIT_NULL
;
10078 stack_frame_head
= fra
.me
.prev
;
10079 return fra
.me
.REG
[0];
10081 void typing___ACallFormExpr___after_typing(val_t p0
, val_t p1
){
10082 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
10086 static val_t once_value_1
; /* Once value */
10087 static val_t once_value_2
; /* Once value */
10088 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10089 fra
.me
.file
= LOCATE_typing
;
10090 fra
.me
.line
= 1633;
10091 fra
.me
.meth
= LOCATE_typing___ACallFormExpr___after_typing
;
10092 fra
.me
.has_broke
= 0;
10093 fra
.me
.REG_size
= 9;
10094 fra
.me
.REG
[0] = NIT_NULL
;
10095 fra
.me
.REG
[1] = NIT_NULL
;
10096 fra
.me
.REG
[2] = NIT_NULL
;
10097 fra
.me
.REG
[3] = NIT_NULL
;
10098 fra
.me
.REG
[4] = NIT_NULL
;
10099 fra
.me
.REG
[5] = NIT_NULL
;
10100 fra
.me
.REG
[6] = NIT_NULL
;
10101 fra
.me
.REG
[7] = NIT_NULL
;
10102 fra
.me
.REG
[8] = NIT_NULL
;
10103 fra
.me
.REG
[0] = p0
;
10104 fra
.me
.REG
[1] = p1
;
10105 /* ./syntax//typing.nit:1633 */
10106 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10107 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10108 /* ./syntax//typing.nit:1635 */
10109 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10110 REGB0
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10111 if (UNTAG_Bool(REGB0
)) {
10112 /* ./syntax//typing.nit:1636 */
10113 fra
.me
.REG
[4] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10114 fra
.me
.REG
[4] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10115 /* ./syntax//typing.nit:1637 */
10116 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10117 fra
.me
.REG
[5] = CALL_scope___ScopeContext_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10118 /* ./syntax//typing.nit:1638 */
10119 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10120 if (UNTAG_Bool(REGB0
)) {
10122 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10123 if (UNTAG_Bool(REGB1
)) {
10124 REGB1
= TAG_Bool(false);
10127 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
10131 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10132 if (UNTAG_Bool(REGB0
)) {
10133 /* ./syntax//typing.nit:1640 */
10134 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_ClosureVariable
, ID_ClosureVariable
)) /*cast ClosureVariable*/;
10135 if (UNTAG_Bool(REGB0
)) {
10136 /* ./syntax//typing.nit:1641 */
10137 fra
.me
.REG
[6] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10138 fra
.me
.REG
[7] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10139 fra
.me
.REG
[8] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10140 fra
.me
.REG
[8] = NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
10141 /* ./syntax//typing.nit:1642 */
10142 ATTR_typing___AClosureCallExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
10144 /* ./syntax//typing.nit:1644 */
10145 fra
.me
.REG
[7] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10146 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10147 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10148 if (UNTAG_Bool(REGB0
)) {
10149 /* ./syntax//typing.nit:1645 */
10150 REGB0
= TAG_Int(3);
10151 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
10152 if (!once_value_1
) {
10153 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
10154 REGB0
= TAG_Int(7);
10155 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
10156 once_value_1
= fra
.me
.REG
[6];
10157 register_static_object(&once_value_1
);
10158 } else fra
.me
.REG
[6] = once_value_1
;
10159 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10160 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
10161 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10162 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
10163 if (!once_value_2
) {
10164 fra
.me
.REG
[4] = BOX_NativeString(" is variable, not a function.");
10165 REGB0
= TAG_Int(29);
10166 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
10167 once_value_2
= fra
.me
.REG
[4];
10168 register_static_object(&once_value_2
);
10169 } else fra
.me
.REG
[4] = once_value_2
;
10170 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10171 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
10172 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10173 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
10174 /* ./syntax//typing.nit:1646 */
10177 /* ./syntax//typing.nit:1648 */
10178 fra
.me
.REG
[7] = CALL_typing___ACallFormExpr___variable_create(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
10179 fra
.me
.REG
[8] = fra
.me
.REG
[7];
10180 /* ./syntax//typing.nit:1649 */
10181 ATTR_typing___AVarFormExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
10183 /* ./syntax//typing.nit:1651 */
10184 CALL_parser_prod___ANode___replace_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
10185 /* ./syntax//typing.nit:1652 */
10186 CALL_typing___ANode___after_typing(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
10187 /* ./syntax//typing.nit:1653 */
10191 /* ./syntax//typing.nit:1657 */
10192 CALL_SUPER_typing___ACallFormExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10194 stack_frame_head
= fra
.me
.prev
;
10197 val_t
typing___ACallFormExpr___closure_defs(val_t p0
){
10198 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10201 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10202 fra
.me
.file
= LOCATE_typing
;
10203 fra
.me
.line
= 1660;
10204 fra
.me
.meth
= LOCATE_typing___ACallFormExpr___closure_defs
;
10205 fra
.me
.has_broke
= 0;
10206 fra
.me
.REG_size
= 2;
10207 fra
.me
.REG
[0] = NIT_NULL
;
10208 fra
.me
.REG
[1] = NIT_NULL
;
10209 fra
.me
.REG
[0] = p0
;
10210 /* ./syntax//typing.nit:1662 */
10211 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10212 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10213 if (UNTAG_Bool(REGB0
)) {
10214 /* ./syntax//typing.nit:1663 */
10215 fra
.me
.REG
[1] = NIT_NULL
;
10218 /* ./syntax//typing.nit:1665 */
10219 fra
.me
.REG
[0] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10220 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10221 fra
.me
.REG
[1] = fra
.me
.REG
[0];
10225 stack_frame_head
= fra
.me
.prev
;
10226 return fra
.me
.REG
[1];
10228 val_t
typing___ACallFormExpr___variable_create(val_t p0
, val_t p1
){
10229 struct {struct stack_frame_t me
;} fra
;
10231 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10232 fra
.me
.file
= LOCATE_typing
;
10233 fra
.me
.line
= 1669;
10234 fra
.me
.meth
= LOCATE_typing___ACallFormExpr___variable_create
;
10235 fra
.me
.has_broke
= 0;
10236 fra
.me
.REG_size
= 0;
10237 /* ./syntax//typing.nit:1669 */
10238 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 1669);
10239 stack_frame_head
= fra
.me
.prev
;
10242 val_t
typing___ACallExpr___variable_create(val_t p0
, val_t p1
){
10243 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10245 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10246 fra
.me
.file
= LOCATE_typing
;
10247 fra
.me
.line
= 1674;
10248 fra
.me
.meth
= LOCATE_typing___ACallExpr___variable_create
;
10249 fra
.me
.has_broke
= 0;
10250 fra
.me
.REG_size
= 2;
10251 fra
.me
.REG
[0] = NIT_NULL
;
10252 fra
.me
.REG
[1] = NIT_NULL
;
10253 fra
.me
.REG
[0] = p0
;
10254 fra
.me
.REG
[1] = p1
;
10255 /* ./syntax//typing.nit:1676 */
10256 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10257 fra
.me
.REG
[0] = NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr(fra
.me
.REG
[0]);
10260 stack_frame_head
= fra
.me
.prev
;
10261 return fra
.me
.REG
[0];
10263 val_t
typing___ACallExpr___name(val_t p0
){
10264 struct {struct stack_frame_t me
;} fra
;
10266 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10267 fra
.me
.file
= LOCATE_typing
;
10268 fra
.me
.line
= 1679;
10269 fra
.me
.meth
= LOCATE_typing___ACallExpr___name
;
10270 fra
.me
.has_broke
= 0;
10271 fra
.me
.REG_size
= 1;
10272 fra
.me
.REG
[0] = NIT_NULL
;
10273 fra
.me
.REG
[0] = p0
;
10274 /* ./syntax//typing.nit:1679 */
10275 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10276 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10279 stack_frame_head
= fra
.me
.prev
;
10280 return fra
.me
.REG
[0];
10282 val_t
typing___ACallExpr___compute_raw_arguments(val_t p0
){
10283 struct {struct stack_frame_t me
;} fra
;
10285 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10286 fra
.me
.file
= LOCATE_typing
;
10287 fra
.me
.line
= 1680;
10288 fra
.me
.meth
= LOCATE_typing___ACallExpr___compute_raw_arguments
;
10289 fra
.me
.has_broke
= 0;
10290 fra
.me
.REG_size
= 1;
10291 fra
.me
.REG
[0] = NIT_NULL
;
10292 fra
.me
.REG
[0] = p0
;
10293 /* ./syntax//typing.nit:1680 */
10294 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10295 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10298 stack_frame_head
= fra
.me
.prev
;
10299 return fra
.me
.REG
[0];
10301 val_t
typing___ACallAssignExpr___variable_create(val_t p0
, val_t p1
){
10302 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
10304 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10305 fra
.me
.file
= LOCATE_typing
;
10306 fra
.me
.line
= 1684;
10307 fra
.me
.meth
= LOCATE_typing___ACallAssignExpr___variable_create
;
10308 fra
.me
.has_broke
= 0;
10309 fra
.me
.REG_size
= 3;
10310 fra
.me
.REG
[0] = NIT_NULL
;
10311 fra
.me
.REG
[1] = NIT_NULL
;
10312 fra
.me
.REG
[2] = NIT_NULL
;
10313 fra
.me
.REG
[0] = p0
;
10314 fra
.me
.REG
[1] = p1
;
10315 /* ./syntax//typing.nit:1686 */
10316 fra
.me
.REG
[1] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10317 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_assign(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10318 fra
.me
.REG
[0] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10319 fra
.me
.REG
[0] = NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10322 stack_frame_head
= fra
.me
.prev
;
10323 return fra
.me
.REG
[0];
10325 val_t
typing___ACallAssignExpr___name(val_t p0
){
10326 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10329 static val_t once_value_1
; /* Once value */
10330 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10331 fra
.me
.file
= LOCATE_typing
;
10332 fra
.me
.line
= 1689;
10333 fra
.me
.meth
= LOCATE_typing___ACallAssignExpr___name
;
10334 fra
.me
.has_broke
= 0;
10335 fra
.me
.REG_size
= 2;
10336 fra
.me
.REG
[0] = NIT_NULL
;
10337 fra
.me
.REG
[1] = NIT_NULL
;
10338 fra
.me
.REG
[0] = p0
;
10339 /* ./syntax//typing.nit:1689 */
10340 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10341 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10342 if (!once_value_1
) {
10343 fra
.me
.REG
[1] = BOX_NativeString("=");
10344 REGB0
= TAG_Int(1);
10345 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
10346 once_value_1
= fra
.me
.REG
[1];
10347 register_static_object(&once_value_1
);
10348 } else fra
.me
.REG
[1] = once_value_1
;
10349 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10350 fra
.me
.REG
[1] = CALL_string___String_____plus(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10351 fra
.me
.REG
[1] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10354 stack_frame_head
= fra
.me
.prev
;
10355 return fra
.me
.REG
[1];
10357 val_t
typing___ACallAssignExpr___compute_raw_arguments(val_t p0
){
10358 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10360 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10361 fra
.me
.file
= LOCATE_typing
;
10362 fra
.me
.line
= 1690;
10363 fra
.me
.meth
= LOCATE_typing___ACallAssignExpr___compute_raw_arguments
;
10364 fra
.me
.has_broke
= 0;
10365 fra
.me
.REG_size
= 2;
10366 fra
.me
.REG
[0] = NIT_NULL
;
10367 fra
.me
.REG
[1] = NIT_NULL
;
10368 fra
.me
.REG
[0] = p0
;
10369 /* ./syntax//typing.nit:1691 */
10370 fra
.me
.REG
[1] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10371 fra
.me
.REG
[1] = CALL_array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10372 /* ./syntax//typing.nit:1692 */
10373 fra
.me
.REG
[0] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10374 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
10375 /* ./syntax//typing.nit:1693 */
10378 stack_frame_head
= fra
.me
.prev
;
10379 return fra
.me
.REG
[1];
10381 val_t
typing___ACallReassignExpr___variable_create(val_t p0
, val_t p1
){
10382 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
10384 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10385 fra
.me
.file
= LOCATE_typing
;
10386 fra
.me
.line
= 1698;
10387 fra
.me
.meth
= LOCATE_typing___ACallReassignExpr___variable_create
;
10388 fra
.me
.has_broke
= 0;
10389 fra
.me
.REG_size
= 3;
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
[0] = p0
;
10394 fra
.me
.REG
[1] = p1
;
10395 /* ./syntax//typing.nit:1700 */
10396 fra
.me
.REG
[1] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10397 fra
.me
.REG
[2] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10398 fra
.me
.REG
[0] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10399 fra
.me
.REG
[0] = NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10402 stack_frame_head
= fra
.me
.prev
;
10403 return fra
.me
.REG
[0];
10405 val_t
typing___ACallReassignExpr___name(val_t p0
){
10406 struct {struct stack_frame_t me
;} fra
;
10408 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10409 fra
.me
.file
= LOCATE_typing
;
10410 fra
.me
.line
= 1703;
10411 fra
.me
.meth
= LOCATE_typing___ACallReassignExpr___name
;
10412 fra
.me
.has_broke
= 0;
10413 fra
.me
.REG_size
= 1;
10414 fra
.me
.REG
[0] = NIT_NULL
;
10415 fra
.me
.REG
[0] = p0
;
10416 /* ./syntax//typing.nit:1703 */
10417 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10418 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10421 stack_frame_head
= fra
.me
.prev
;
10422 return fra
.me
.REG
[0];
10424 val_t
typing___ACallReassignExpr___compute_raw_arguments(val_t p0
){
10425 struct {struct stack_frame_t me
;} fra
;
10427 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10428 fra
.me
.file
= LOCATE_typing
;
10429 fra
.me
.line
= 1704;
10430 fra
.me
.meth
= LOCATE_typing___ACallReassignExpr___compute_raw_arguments
;
10431 fra
.me
.has_broke
= 0;
10432 fra
.me
.REG_size
= 1;
10433 fra
.me
.REG
[0] = NIT_NULL
;
10434 fra
.me
.REG
[0] = p0
;
10435 /* ./syntax//typing.nit:1704 */
10436 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10437 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10440 stack_frame_head
= fra
.me
.prev
;
10441 return fra
.me
.REG
[0];
10443 val_t
typing___ABraExpr___name(val_t p0
){
10444 struct {struct stack_frame_t me
;} fra
;
10447 static val_t once_value_1
; /* Once value */
10448 static val_t once_value_2
; /* Once value */
10449 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10450 fra
.me
.file
= LOCATE_typing
;
10451 fra
.me
.line
= 1708;
10452 fra
.me
.meth
= LOCATE_typing___ABraExpr___name
;
10453 fra
.me
.has_broke
= 0;
10454 fra
.me
.REG_size
= 1;
10455 fra
.me
.REG
[0] = NIT_NULL
;
10456 fra
.me
.REG
[0] = p0
;
10457 /* ./syntax//typing.nit:1708 */
10458 if (!once_value_1
) {
10459 if (!once_value_2
) {
10460 fra
.me
.REG
[0] = BOX_NativeString("[]");
10461 REGB0
= TAG_Int(2);
10462 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10463 once_value_2
= fra
.me
.REG
[0];
10464 register_static_object(&once_value_2
);
10465 } else fra
.me
.REG
[0] = once_value_2
;
10466 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10467 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10468 once_value_1
= fra
.me
.REG
[0];
10469 register_static_object(&once_value_1
);
10470 } else fra
.me
.REG
[0] = once_value_1
;
10471 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10474 stack_frame_head
= fra
.me
.prev
;
10475 return fra
.me
.REG
[0];
10477 val_t
typing___ABraExpr___compute_raw_arguments(val_t p0
){
10478 struct {struct stack_frame_t me
;} fra
;
10480 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10481 fra
.me
.file
= LOCATE_typing
;
10482 fra
.me
.line
= 1709;
10483 fra
.me
.meth
= LOCATE_typing___ABraExpr___compute_raw_arguments
;
10484 fra
.me
.has_broke
= 0;
10485 fra
.me
.REG_size
= 1;
10486 fra
.me
.REG
[0] = NIT_NULL
;
10487 fra
.me
.REG
[0] = p0
;
10488 /* ./syntax//typing.nit:1709 */
10489 fra
.me
.REG
[0] = CALL_parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10490 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10493 stack_frame_head
= fra
.me
.prev
;
10494 return fra
.me
.REG
[0];
10496 val_t
typing___ABraExpr___closure_defs(val_t p0
){
10497 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10500 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10501 fra
.me
.file
= LOCATE_typing
;
10502 fra
.me
.line
= 1710;
10503 fra
.me
.meth
= LOCATE_typing___ABraExpr___closure_defs
;
10504 fra
.me
.has_broke
= 0;
10505 fra
.me
.REG_size
= 2;
10506 fra
.me
.REG
[0] = NIT_NULL
;
10507 fra
.me
.REG
[1] = NIT_NULL
;
10508 fra
.me
.REG
[0] = p0
;
10509 /* ./syntax//typing.nit:1712 */
10510 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10511 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10512 if (UNTAG_Bool(REGB0
)) {
10513 /* ./syntax//typing.nit:1713 */
10514 fra
.me
.REG
[1] = NIT_NULL
;
10517 /* ./syntax//typing.nit:1715 */
10518 fra
.me
.REG
[0] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10519 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10520 fra
.me
.REG
[1] = fra
.me
.REG
[0];
10524 stack_frame_head
= fra
.me
.prev
;
10525 return fra
.me
.REG
[1];
10527 val_t
typing___ABraAssignExpr___name(val_t p0
){
10528 struct {struct stack_frame_t me
;} fra
;
10531 static val_t once_value_1
; /* Once value */
10532 static val_t once_value_2
; /* Once value */
10533 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10534 fra
.me
.file
= LOCATE_typing
;
10535 fra
.me
.line
= 1721;
10536 fra
.me
.meth
= LOCATE_typing___ABraAssignExpr___name
;
10537 fra
.me
.has_broke
= 0;
10538 fra
.me
.REG_size
= 1;
10539 fra
.me
.REG
[0] = NIT_NULL
;
10540 fra
.me
.REG
[0] = p0
;
10541 /* ./syntax//typing.nit:1721 */
10542 if (!once_value_1
) {
10543 if (!once_value_2
) {
10544 fra
.me
.REG
[0] = BOX_NativeString("[]=");
10545 REGB0
= TAG_Int(3);
10546 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10547 once_value_2
= fra
.me
.REG
[0];
10548 register_static_object(&once_value_2
);
10549 } else fra
.me
.REG
[0] = once_value_2
;
10550 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10551 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10552 once_value_1
= fra
.me
.REG
[0];
10553 register_static_object(&once_value_1
);
10554 } else fra
.me
.REG
[0] = once_value_1
;
10555 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10558 stack_frame_head
= fra
.me
.prev
;
10559 return fra
.me
.REG
[0];
10561 val_t
typing___ABraAssignExpr___compute_raw_arguments(val_t p0
){
10562 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10564 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10565 fra
.me
.file
= LOCATE_typing
;
10566 fra
.me
.line
= 1722;
10567 fra
.me
.meth
= LOCATE_typing___ABraAssignExpr___compute_raw_arguments
;
10568 fra
.me
.has_broke
= 0;
10569 fra
.me
.REG_size
= 2;
10570 fra
.me
.REG
[0] = NIT_NULL
;
10571 fra
.me
.REG
[1] = NIT_NULL
;
10572 fra
.me
.REG
[0] = p0
;
10573 /* ./syntax//typing.nit:1723 */
10574 fra
.me
.REG
[1] = CALL_parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10575 fra
.me
.REG
[1] = CALL_array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10576 /* ./syntax//typing.nit:1724 */
10577 fra
.me
.REG
[0] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10578 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
10579 /* ./syntax//typing.nit:1725 */
10582 stack_frame_head
= fra
.me
.prev
;
10583 return fra
.me
.REG
[1];
10585 val_t
typing___ABraReassignExpr___name(val_t p0
){
10586 struct {struct stack_frame_t me
;} fra
;
10589 static val_t once_value_1
; /* Once value */
10590 static val_t once_value_2
; /* Once value */
10591 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10592 fra
.me
.file
= LOCATE_typing
;
10593 fra
.me
.line
= 1730;
10594 fra
.me
.meth
= LOCATE_typing___ABraReassignExpr___name
;
10595 fra
.me
.has_broke
= 0;
10596 fra
.me
.REG_size
= 1;
10597 fra
.me
.REG
[0] = NIT_NULL
;
10598 fra
.me
.REG
[0] = p0
;
10599 /* ./syntax//typing.nit:1730 */
10600 if (!once_value_1
) {
10601 if (!once_value_2
) {
10602 fra
.me
.REG
[0] = BOX_NativeString("[]");
10603 REGB0
= TAG_Int(2);
10604 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10605 once_value_2
= fra
.me
.REG
[0];
10606 register_static_object(&once_value_2
);
10607 } else fra
.me
.REG
[0] = once_value_2
;
10608 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10609 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10610 once_value_1
= fra
.me
.REG
[0];
10611 register_static_object(&once_value_1
);
10612 } else fra
.me
.REG
[0] = once_value_1
;
10613 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10616 stack_frame_head
= fra
.me
.prev
;
10617 return fra
.me
.REG
[0];
10619 val_t
typing___ABraReassignExpr___compute_raw_arguments(val_t p0
){
10620 struct {struct stack_frame_t me
;} fra
;
10622 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10623 fra
.me
.file
= LOCATE_typing
;
10624 fra
.me
.line
= 1731;
10625 fra
.me
.meth
= LOCATE_typing___ABraReassignExpr___compute_raw_arguments
;
10626 fra
.me
.has_broke
= 0;
10627 fra
.me
.REG_size
= 1;
10628 fra
.me
.REG
[0] = NIT_NULL
;
10629 fra
.me
.REG
[0] = p0
;
10630 /* ./syntax//typing.nit:1731 */
10631 fra
.me
.REG
[0] = CALL_parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10632 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10635 stack_frame_head
= fra
.me
.prev
;
10636 return fra
.me
.REG
[0];
10638 val_t
typing___AInitExpr___name(val_t p0
){
10639 struct {struct stack_frame_t me
;} fra
;
10642 static val_t once_value_1
; /* Once value */
10643 static val_t once_value_2
; /* Once value */
10644 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10645 fra
.me
.file
= LOCATE_typing
;
10646 fra
.me
.line
= 1735;
10647 fra
.me
.meth
= LOCATE_typing___AInitExpr___name
;
10648 fra
.me
.has_broke
= 0;
10649 fra
.me
.REG_size
= 1;
10650 fra
.me
.REG
[0] = NIT_NULL
;
10651 fra
.me
.REG
[0] = p0
;
10652 /* ./syntax//typing.nit:1735 */
10653 if (!once_value_1
) {
10654 if (!once_value_2
) {
10655 fra
.me
.REG
[0] = BOX_NativeString("init");
10656 REGB0
= TAG_Int(4);
10657 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10658 once_value_2
= fra
.me
.REG
[0];
10659 register_static_object(&once_value_2
);
10660 } else fra
.me
.REG
[0] = once_value_2
;
10661 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10662 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10663 once_value_1
= fra
.me
.REG
[0];
10664 register_static_object(&once_value_1
);
10665 } else fra
.me
.REG
[0] = once_value_1
;
10666 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10669 stack_frame_head
= fra
.me
.prev
;
10670 return fra
.me
.REG
[0];
10672 val_t
typing___AInitExpr___compute_raw_arguments(val_t p0
){
10673 struct {struct stack_frame_t me
;} fra
;
10675 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10676 fra
.me
.file
= LOCATE_typing
;
10677 fra
.me
.line
= 1736;
10678 fra
.me
.meth
= LOCATE_typing___AInitExpr___compute_raw_arguments
;
10679 fra
.me
.has_broke
= 0;
10680 fra
.me
.REG_size
= 1;
10681 fra
.me
.REG
[0] = NIT_NULL
;
10682 fra
.me
.REG
[0] = p0
;
10683 /* ./syntax//typing.nit:1736 */
10684 fra
.me
.REG
[0] = CALL_parser_nodes___AInitExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10685 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10688 stack_frame_head
= fra
.me
.prev
;
10689 return fra
.me
.REG
[0];
10691 val_t
typing___AClosureCallExpr___variable(val_t p0
){
10692 struct {struct stack_frame_t me
;} fra
;
10695 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10696 fra
.me
.file
= LOCATE_typing
;
10697 fra
.me
.line
= 1741;
10698 fra
.me
.meth
= LOCATE_typing___AClosureCallExpr___variable
;
10699 fra
.me
.has_broke
= 0;
10700 fra
.me
.REG_size
= 1;
10701 fra
.me
.REG
[0] = NIT_NULL
;
10702 fra
.me
.REG
[0] = p0
;
10703 /* ./syntax//typing.nit:1741 */
10704 fra
.me
.REG
[0] = ATTR_typing___AClosureCallExpr____variable(fra
.me
.REG
[0]);
10705 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
10706 if (UNTAG_Bool(REGB0
)) {
10708 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1741);
10712 stack_frame_head
= fra
.me
.prev
;
10713 return fra
.me
.REG
[0];
10715 val_t
typing___AClosureCallExpr___compute_raw_arguments(val_t p0
){
10716 struct {struct stack_frame_t me
;} fra
;
10718 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10719 fra
.me
.file
= LOCATE_typing
;
10720 fra
.me
.line
= 1742;
10721 fra
.me
.meth
= LOCATE_typing___AClosureCallExpr___compute_raw_arguments
;
10722 fra
.me
.has_broke
= 0;
10723 fra
.me
.REG_size
= 1;
10724 fra
.me
.REG
[0] = NIT_NULL
;
10725 fra
.me
.REG
[0] = p0
;
10726 /* ./syntax//typing.nit:1742 */
10727 fra
.me
.REG
[0] = CALL_parser_nodes___AClosureCallExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10728 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10731 stack_frame_head
= fra
.me
.prev
;
10732 return fra
.me
.REG
[0];
10734 void typing___AClosureCallExpr___after_typing(val_t p0
, val_t p1
){
10735 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10739 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10740 fra
.me
.file
= LOCATE_typing
;
10741 fra
.me
.line
= 1744;
10742 fra
.me
.meth
= LOCATE_typing___AClosureCallExpr___after_typing
;
10743 fra
.me
.has_broke
= 0;
10744 fra
.me
.REG_size
= 5;
10745 fra
.me
.REG
[0] = NIT_NULL
;
10746 fra
.me
.REG
[1] = NIT_NULL
;
10747 fra
.me
.REG
[2] = NIT_NULL
;
10748 fra
.me
.REG
[3] = NIT_NULL
;
10749 fra
.me
.REG
[4] = NIT_NULL
;
10750 fra
.me
.REG
[0] = p0
;
10751 fra
.me
.REG
[1] = p1
;
10752 /* ./syntax//typing.nit:1746 */
10753 fra
.me
.REG
[2] = CALL_syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10754 /* ./syntax//typing.nit:1747 */
10755 fra
.me
.REG
[3] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10756 REGB0
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10757 if (UNTAG_Bool(REGB0
)) {
10758 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
10760 /* ./syntax//typing.nit:1748 */
10761 fra
.me
.REG
[2] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10762 fra
.me
.REG
[2] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10763 /* ./syntax//typing.nit:1749 */
10764 fra
.me
.REG
[3] = CALL_parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10765 fra
.me
.REG
[3] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10766 fra
.me
.REG
[4] = CALL_typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10767 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]);
10768 /* ./syntax//typing.nit:1750 */
10769 fra
.me
.REG
[4] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10770 REGB1
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10771 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10772 if (UNTAG_Bool(REGB1
)) {
10773 /* ./syntax//typing.nit:1751 */
10774 fra
.me
.REG
[4] = CALL_parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10775 fra
.me
.REG
[4] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10776 fra
.me
.REG
[3] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10777 fra
.me
.REG
[3] = CALL_array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10778 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]);
10780 /* ./syntax//typing.nit:1753 */
10781 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10782 if (UNTAG_Bool(REGB0
)) {
10785 /* ./syntax//typing.nit:1754 */
10786 ATTR_typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10787 /* ./syntax//typing.nit:1755 */
10788 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10789 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10790 /* ./syntax//typing.nit:1756 */
10791 REGB0
= TAG_Bool(true);
10792 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
10794 stack_frame_head
= fra
.me
.prev
;
10797 val_t
typing___AClosureId___to_symbol(val_t p0
){
10798 struct {struct stack_frame_t me
;} fra
;
10800 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10801 fra
.me
.file
= LOCATE_typing
;
10802 fra
.me
.line
= 1761;
10803 fra
.me
.meth
= LOCATE_typing___AClosureId___to_symbol
;
10804 fra
.me
.has_broke
= 0;
10805 fra
.me
.REG_size
= 0;
10806 /* ./syntax//typing.nit:1761 */
10807 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 1761);
10808 stack_frame_head
= fra
.me
.prev
;
10811 val_t
typing___ASimpleClosureId___to_symbol(val_t p0
){
10812 struct {struct stack_frame_t me
;} fra
;
10814 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10815 fra
.me
.file
= LOCATE_typing
;
10816 fra
.me
.line
= 1764;
10817 fra
.me
.meth
= LOCATE_typing___ASimpleClosureId___to_symbol
;
10818 fra
.me
.has_broke
= 0;
10819 fra
.me
.REG_size
= 1;
10820 fra
.me
.REG
[0] = NIT_NULL
;
10821 fra
.me
.REG
[0] = p0
;
10822 /* ./syntax//typing.nit:1764 */
10823 fra
.me
.REG
[0] = CALL_parser_nodes___ASimpleClosureId___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10824 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10827 stack_frame_head
= fra
.me
.prev
;
10828 return fra
.me
.REG
[0];
10830 val_t
typing___ABreakClosureId___to_symbol(val_t p0
){
10831 struct {struct stack_frame_t me
;} fra
;
10833 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10834 fra
.me
.file
= LOCATE_typing
;
10835 fra
.me
.line
= 1767;
10836 fra
.me
.meth
= LOCATE_typing___ABreakClosureId___to_symbol
;
10837 fra
.me
.has_broke
= 0;
10838 fra
.me
.REG_size
= 1;
10839 fra
.me
.REG
[0] = NIT_NULL
;
10840 fra
.me
.REG
[0] = p0
;
10841 /* ./syntax//typing.nit:1767 */
10842 fra
.me
.REG
[0] = CALL_parser_nodes___ABreakClosureId___n_kwbreak(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10843 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10846 stack_frame_head
= fra
.me
.prev
;
10847 return fra
.me
.REG
[0];
10849 val_t
typing___AClosureDef___closure(val_t p0
){
10850 struct {struct stack_frame_t me
;} fra
;
10853 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10854 fra
.me
.file
= LOCATE_typing
;
10855 fra
.me
.line
= 1772;
10856 fra
.me
.meth
= LOCATE_typing___AClosureDef___closure
;
10857 fra
.me
.has_broke
= 0;
10858 fra
.me
.REG_size
= 1;
10859 fra
.me
.REG
[0] = NIT_NULL
;
10860 fra
.me
.REG
[0] = p0
;
10861 /* ./syntax//typing.nit:1772 */
10862 fra
.me
.REG
[0] = ATTR_typing___AClosureDef____closure(fra
.me
.REG
[0]);
10863 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
10864 if (UNTAG_Bool(REGB0
)) {
10866 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1772);
10870 stack_frame_head
= fra
.me
.prev
;
10871 return fra
.me
.REG
[0];
10873 val_t
typing___AClosureDef___escapable(val_t p0
){
10874 struct {struct stack_frame_t me
;} fra
;
10876 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10877 fra
.me
.file
= LOCATE_typing
;
10878 fra
.me
.line
= 1774;
10879 fra
.me
.meth
= LOCATE_typing___AClosureDef___escapable
;
10880 fra
.me
.has_broke
= 0;
10881 fra
.me
.REG_size
= 1;
10882 fra
.me
.REG
[0] = NIT_NULL
;
10883 fra
.me
.REG
[0] = p0
;
10884 /* ./syntax//typing.nit:1774 */
10885 fra
.me
.REG
[0] = ATTR_typing___AClosureDef____escapable(fra
.me
.REG
[0]);
10886 stack_frame_head
= fra
.me
.prev
;
10887 return fra
.me
.REG
[0];
10889 void typing___AClosureDef___accept_typing(val_t p0
, val_t p1
){
10890 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
10893 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10894 fra
.me
.file
= LOCATE_typing
;
10895 fra
.me
.line
= 1778;
10896 fra
.me
.meth
= LOCATE_typing___AClosureDef___accept_typing
;
10897 fra
.me
.has_broke
= 0;
10898 fra
.me
.REG_size
= 3;
10899 fra
.me
.REG
[0] = NIT_NULL
;
10900 fra
.me
.REG
[1] = NIT_NULL
;
10901 fra
.me
.REG
[2] = NIT_NULL
;
10902 fra
.me
.REG
[0] = p0
;
10903 fra
.me
.REG
[1] = p1
;
10904 /* ./syntax//typing.nit:1778 */
10905 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10906 /* ./syntax//typing.nit:1781 */
10907 REGB0
= TAG_Bool(ATTR_typing___AClosureDef____accept_typing2(fra
.me
.REG
[2])!=NIT_NULL
);
10908 if (UNTAG_Bool(REGB0
)) {
10910 nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_typing
, 1781);
10912 REGB0
= ATTR_typing___AClosureDef____accept_typing2(fra
.me
.REG
[2]);
10913 if (UNTAG_Bool(REGB0
)) {
10914 CALL_SUPER_typing___AClosureDef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10916 stack_frame_head
= fra
.me
.prev
;
10919 void typing___AClosureDef___accept_typing2(val_t p0
, val_t p1
, val_t p2
){
10920 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
10926 static val_t once_value_1
; /* Once value */
10927 static val_t once_value_2
; /* Once value */
10928 static val_t once_value_3
; /* Once value */
10929 static val_t once_value_6
; /* Once value */
10930 static val_t once_value_7
; /* Once value */
10931 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10932 fra
.me
.file
= LOCATE_typing
;
10933 fra
.me
.line
= 1784;
10934 fra
.me
.meth
= LOCATE_typing___AClosureDef___accept_typing2
;
10935 fra
.me
.has_broke
= 0;
10936 fra
.me
.REG_size
= 8;
10937 fra
.me
.REG
[0] = NIT_NULL
;
10938 fra
.me
.REG
[1] = NIT_NULL
;
10939 fra
.me
.REG
[2] = NIT_NULL
;
10940 fra
.me
.REG
[3] = NIT_NULL
;
10941 fra
.me
.REG
[4] = NIT_NULL
;
10942 fra
.me
.REG
[5] = NIT_NULL
;
10943 fra
.me
.REG
[6] = NIT_NULL
;
10944 fra
.me
.REG
[7] = NIT_NULL
;
10945 fra
.me
.REG
[0] = p0
;
10946 fra
.me
.REG
[1] = p1
;
10947 fra
.me
.REG
[2] = p2
;
10948 /* ./syntax//typing.nit:1786 */
10949 ATTR_typing___AClosureDef____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10950 /* ./syntax//typing.nit:1788 */
10951 fra
.me
.REG
[3] = CALL_scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10952 fra
.me
.REG
[3] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10953 /* ./syntax//typing.nit:1789 */
10954 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10955 fra
.me
.REG
[4] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10956 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10957 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
10958 if (UNTAG_Bool(REGB2
)) {
10960 /* ./../lib/standard//kernel.nit:207 */
10961 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
10962 /* ./syntax//typing.nit:1789 */
10965 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
10966 if (UNTAG_Bool(REGB2
)) {
10967 /* ./syntax//typing.nit:1790 */
10968 REGB2
= TAG_Int(5);
10969 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB2
);
10970 if (!once_value_1
) {
10971 fra
.me
.REG
[5] = BOX_NativeString("Error: ");
10972 REGB2
= TAG_Int(7);
10973 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
10974 once_value_1
= fra
.me
.REG
[5];
10975 register_static_object(&once_value_1
);
10976 } else fra
.me
.REG
[5] = once_value_1
;
10977 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10978 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10979 REGB2
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10980 fra
.me
.REG
[5] = CALL_string___Object___to_s(REGB2
)(REGB2
);
10981 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10982 if (!once_value_2
) {
10983 fra
.me
.REG
[5] = BOX_NativeString(" automatic variable names expected, ");
10984 REGB2
= TAG_Int(36);
10985 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
10986 once_value_2
= fra
.me
.REG
[5];
10987 register_static_object(&once_value_2
);
10988 } else fra
.me
.REG
[5] = once_value_2
;
10989 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10990 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10991 fra
.me
.REG
[5] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10992 REGB2
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10993 fra
.me
.REG
[5] = CALL_string___Object___to_s(REGB2
)(REGB2
);
10994 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10995 if (!once_value_3
) {
10996 fra
.me
.REG
[5] = BOX_NativeString(" found.");
10997 REGB2
= TAG_Int(7);
10998 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
10999 once_value_3
= fra
.me
.REG
[5];
11000 register_static_object(&once_value_3
);
11001 } else fra
.me
.REG
[5] = once_value_3
;
11002 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11003 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11004 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11005 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
11006 /* ./syntax//typing.nit:1791 */
11009 /* ./syntax//typing.nit:1794 */
11010 fra
.me
.REG
[4] = CALL_scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11011 ATTR_typing___AClosureDef____closure(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
11012 /* ./syntax//typing.nit:1796 */
11013 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11014 CALL_scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
11015 /* ./syntax//typing.nit:1797 */
11016 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11017 /* ./syntax//typing.nit:1798 */
11018 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11019 /* ./syntax//typing.nit:1799 */
11020 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11021 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
11022 /* ./syntax//typing.nit:1800 */
11023 fra
.me
.REG
[6] = NEW_Array_array___Array___init();
11024 CALL_syntax_base___AClosureDef___variables__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
11025 /* ./syntax//typing.nit:1801 */
11026 REGB2
= TAG_Int(0);
11027 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11028 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
11029 /* ./../lib/standard//kernel.nit:332 */
11031 /* ./../lib/standard//kernel.nit:212 */
11032 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
11033 /* ./../lib/standard//kernel.nit:332 */
11034 if (UNTAG_Bool(REGB0
)) {
11035 /* ./syntax//typing.nit:1801 */
11037 /* ./syntax//typing.nit:1802 */
11038 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11039 fra
.me
.REG
[6] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
11040 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
11041 if (UNTAG_Bool(REGB3
)) {
11042 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1802);
11044 fra
.me
.REG
[6] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
11045 fra
.me
.REG
[7] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11046 fra
.me
.REG
[7] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
11047 fra
.me
.REG
[7] = NEW_AutoVariable_syntax_base___AutoVariable___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
11048 /* ./syntax//typing.nit:1803 */
11049 fra
.me
.REG
[6] = CALL_syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11050 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
11051 if (UNTAG_Bool(REGB3
)) {
11052 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1803);
11054 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
11055 /* ./syntax//typing.nit:1804 */
11056 fra
.me
.REG
[6] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
11057 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
11058 /* ./syntax//typing.nit:1805 */
11059 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11060 CALL_scope___ScopeContext___add_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
11061 /* ./../lib/standard//kernel.nit:334 */
11062 REGB0
= TAG_Int(1);
11063 /* ./../lib/standard//kernel.nit:215 */
11064 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
11065 /* ./../lib/standard//kernel.nit:334 */
11068 /* ./../lib/standard//kernel.nit:332 */
11073 /* ./syntax//typing.nit:1808 */
11074 REGB2
= TAG_Bool(true);
11075 ATTR_typing___AClosureDef____accept_typing2(fra
.me
.REG
[0]) = REGB2
;
11076 /* ./syntax//typing.nit:1809 */
11077 CALL_typing___ANode___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11078 /* ./syntax//typing.nit:1811 */
11079 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11080 REGB2
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11081 REGB1
= TAG_Bool(false);
11082 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
11083 if (UNTAG_Bool(REGB0
)) {
11085 /* ./../lib/standard//kernel.nit:175 */
11086 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
11087 /* ./syntax//typing.nit:1811 */
11090 if (UNTAG_Bool(REGB0
)) {
11091 /* ./syntax//typing.nit:1812 */
11092 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11093 fra
.me
.REG
[3] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11094 fra
.me
.REG
[3] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11095 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11096 if (UNTAG_Bool(REGB0
)) {
11098 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11099 if (UNTAG_Bool(REGB1
)) {
11100 REGB1
= TAG_Bool(false);
11103 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11107 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11108 if (UNTAG_Bool(REGB0
)) {
11109 /* ./syntax//typing.nit:1813 */
11110 if (!once_value_6
) {
11111 fra
.me
.REG
[3] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
11112 REGB0
= TAG_Int(77);
11113 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
11114 once_value_6
= fra
.me
.REG
[3];
11115 register_static_object(&once_value_6
);
11116 } else fra
.me
.REG
[3] = once_value_6
;
11117 fra
.me
.REG
[3] = fra
.me
.REG
[3];
11118 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
11120 /* ./syntax//typing.nit:1814 */
11121 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11122 REGB0
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11123 if (UNTAG_Bool(REGB0
)) {
11124 fra
.me
.REG
[2] = CALL_scope___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11125 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
11126 if (UNTAG_Bool(REGB0
)) {
11128 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
11129 if (UNTAG_Bool(REGB1
)) {
11130 REGB1
= TAG_Bool(false);
11133 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
11137 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11139 REGB1
= TAG_Bool(false);
11142 if (UNTAG_Bool(REGB0
)) {
11143 /* ./syntax//typing.nit:1815 */
11144 if (!once_value_7
) {
11145 fra
.me
.REG
[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
11146 REGB0
= TAG_Int(80);
11147 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
11148 once_value_7
= fra
.me
.REG
[2];
11149 register_static_object(&once_value_7
);
11150 } else fra
.me
.REG
[2] = once_value_7
;
11151 fra
.me
.REG
[2] = fra
.me
.REG
[2];
11152 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
11156 /* ./syntax//typing.nit:1818 */
11157 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
11158 /* ./syntax//typing.nit:1819 */
11159 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
11160 /* ./syntax//typing.nit:1820 */
11161 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11162 CALL_scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11164 stack_frame_head
= fra
.me
.prev
;
11167 void typing___ATypeCheckExpr___check_expr_cast(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
11168 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
11172 static val_t once_value_2
; /* Once value */
11173 static val_t once_value_3
; /* Once value */
11174 static val_t once_value_4
; /* Once value */
11175 static val_t once_value_5
; /* Once value */
11176 static val_t once_value_6
; /* Once value */
11177 static val_t once_value_7
; /* Once value */
11178 static val_t once_value_8
; /* Once value */
11179 static val_t once_value_9
; /* Once value */
11180 static val_t once_value_10
; /* Once value */
11181 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11182 fra
.me
.file
= LOCATE_typing
;
11183 fra
.me
.line
= 1826;
11184 fra
.me
.meth
= LOCATE_typing___ATypeCheckExpr___check_expr_cast
;
11185 fra
.me
.has_broke
= 0;
11186 fra
.me
.REG_size
= 6;
11187 fra
.me
.REG
[0] = NIT_NULL
;
11188 fra
.me
.REG
[1] = NIT_NULL
;
11189 fra
.me
.REG
[2] = NIT_NULL
;
11190 fra
.me
.REG
[3] = NIT_NULL
;
11191 fra
.me
.REG
[4] = NIT_NULL
;
11192 fra
.me
.REG
[5] = NIT_NULL
;
11193 fra
.me
.REG
[0] = p0
;
11194 fra
.me
.REG
[1] = p1
;
11195 fra
.me
.REG
[2] = p2
;
11196 fra
.me
.REG
[3] = p3
;
11197 /* ./syntax//typing.nit:1828 */
11198 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
11199 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11200 if (UNTAG_Bool(REGB0
)) {
11203 /* ./syntax//typing.nit:1829 */
11204 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11205 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11206 if (UNTAG_Bool(REGB0
)) {
11209 /* ./syntax//typing.nit:1830 */
11210 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11211 /* ./syntax//typing.nit:1831 */
11212 fra
.me
.REG
[3] = CALL_syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11213 /* ./syntax//typing.nit:1832 */
11214 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
11215 if (UNTAG_Bool(REGB0
)) {
11217 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
11220 if (UNTAG_Bool(REGB0
)) {
11221 /* ./syntax//typing.nit:1833 */
11222 REGB0
= TAG_Int(3);
11223 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
11224 if (!once_value_2
) {
11225 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
11226 REGB0
= TAG_Int(33);
11227 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11228 once_value_2
= fra
.me
.REG
[5];
11229 register_static_object(&once_value_2
);
11230 } else fra
.me
.REG
[5] = once_value_2
;
11231 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11232 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11233 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11234 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11235 if (!once_value_3
) {
11236 fra
.me
.REG
[5] = BOX_NativeString(".");
11237 REGB0
= TAG_Int(1);
11238 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11239 once_value_3
= fra
.me
.REG
[5];
11240 register_static_object(&once_value_3
);
11241 } else fra
.me
.REG
[5] = once_value_3
;
11242 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11243 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11244 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11245 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
11247 /* ./syntax//typing.nit:1834 */
11248 REGB0
= CALL_static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
11249 if (UNTAG_Bool(REGB0
)) {
11250 /* ./syntax//typing.nit:1835 */
11251 REGB0
= TAG_Int(5);
11252 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
11253 if (!once_value_4
) {
11254 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
11255 REGB0
= TAG_Int(33);
11256 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11257 once_value_4
= fra
.me
.REG
[5];
11258 register_static_object(&once_value_4
);
11259 } else fra
.me
.REG
[5] = once_value_4
;
11260 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11261 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11262 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11263 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11264 if (!once_value_5
) {
11265 fra
.me
.REG
[5] = BOX_NativeString(" since it is a ");
11266 REGB0
= TAG_Int(15);
11267 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11268 once_value_5
= fra
.me
.REG
[5];
11269 register_static_object(&once_value_5
);
11270 } else fra
.me
.REG
[5] = once_value_5
;
11271 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11272 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11273 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11274 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11275 if (!once_value_6
) {
11276 fra
.me
.REG
[5] = BOX_NativeString(".");
11277 REGB0
= TAG_Int(1);
11278 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11279 once_value_6
= fra
.me
.REG
[5];
11280 register_static_object(&once_value_6
);
11281 } else fra
.me
.REG
[5] = once_value_6
;
11282 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11283 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11284 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11285 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
11287 /* ./syntax//typing.nit:1836 */
11288 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
11289 if (UNTAG_Bool(REGB0
)) {
11290 /* ./syntax//typing.nit:1838 */
11291 REGB0
= TAG_Int(3);
11292 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
11293 if (!once_value_7
) {
11294 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is null therefore cannot be a ");
11295 REGB0
= TAG_Int(50);
11296 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11297 once_value_7
= fra
.me
.REG
[5];
11298 register_static_object(&once_value_7
);
11299 } else fra
.me
.REG
[5] = once_value_7
;
11300 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11301 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11302 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11303 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11304 if (!once_value_8
) {
11305 fra
.me
.REG
[5] = BOX_NativeString(".");
11306 REGB0
= TAG_Int(1);
11307 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11308 once_value_8
= fra
.me
.REG
[5];
11309 register_static_object(&once_value_8
);
11310 } else fra
.me
.REG
[5] = once_value_8
;
11311 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11312 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11313 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11314 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
11316 /* ./syntax//typing.nit:1839 */
11317 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11318 if (UNTAG_Bool(REGB0
)) {
11319 fra
.me
.REG
[2] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11320 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
11321 if (UNTAG_Bool(REGB0
)) {
11323 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
11327 REGB1
= TAG_Bool(false);
11330 if (UNTAG_Bool(REGB0
)) {
11331 /* ./syntax//typing.nit:1840 */
11332 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_MMTypeFormal
, ID_MMTypeFormal
)) /*cast MMTypeFormal*/;
11333 if (UNTAG_Bool(REGB0
)) {
11334 fra
.me
.REG
[3] = CALL_type_formal___MMTypeFormal___bound(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11335 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11337 REGB1
= TAG_Bool(false);
11340 if (UNTAG_Bool(REGB0
)) {
11342 /* ./syntax//typing.nit:1846 */
11343 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_AIsaExpr
, ID_AIsaExpr
)) /*cast AIsaExpr*/;
11344 if (UNTAG_Bool(REGB0
)) {
11345 /* ./syntax//typing.nit:1847 */
11346 if (!once_value_9
) {
11347 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '!= null'.");
11348 REGB0
= TAG_Int(26);
11349 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
11350 once_value_9
= fra
.me
.REG
[3];
11351 register_static_object(&once_value_9
);
11352 } else fra
.me
.REG
[3] = once_value_9
;
11353 fra
.me
.REG
[3] = fra
.me
.REG
[3];
11354 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
11356 /* ./syntax//typing.nit:1849 */
11357 if (!once_value_10
) {
11358 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
11359 REGB0
= TAG_Int(32);
11360 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
11361 once_value_10
= fra
.me
.REG
[3];
11362 register_static_object(&once_value_10
);
11363 } else fra
.me
.REG
[3] = once_value_10
;
11364 fra
.me
.REG
[3] = fra
.me
.REG
[3];
11365 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
11373 stack_frame_head
= fra
.me
.prev
;
11376 void typing___AIsaExpr___after_typing(val_t p0
, val_t p1
){
11377 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11381 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11382 fra
.me
.file
= LOCATE_typing
;
11383 fra
.me
.line
= 1857;
11384 fra
.me
.meth
= LOCATE_typing___AIsaExpr___after_typing
;
11385 fra
.me
.has_broke
= 0;
11386 fra
.me
.REG_size
= 5;
11387 fra
.me
.REG
[0] = NIT_NULL
;
11388 fra
.me
.REG
[1] = NIT_NULL
;
11389 fra
.me
.REG
[2] = NIT_NULL
;
11390 fra
.me
.REG
[3] = NIT_NULL
;
11391 fra
.me
.REG
[4] = NIT_NULL
;
11392 fra
.me
.REG
[0] = p0
;
11393 fra
.me
.REG
[1] = p1
;
11394 /* ./syntax//typing.nit:1859 */
11395 fra
.me
.REG
[2] = CALL_parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11396 fra
.me
.REG
[3] = CALL_parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11397 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]);
11398 /* ./syntax//typing.nit:1860 */
11399 fra
.me
.REG
[3] = CALL_parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11400 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11401 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11402 if (UNTAG_Bool(REGB0
)) {
11405 /* ./syntax//typing.nit:1861 */
11406 fra
.me
.REG
[3] = CALL_parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11407 fra
.me
.REG
[3] = CALL_typing___AExpr___its_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11408 /* ./syntax//typing.nit:1862 */
11409 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11410 if (UNTAG_Bool(REGB0
)) {
11412 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11413 if (UNTAG_Bool(REGB1
)) {
11414 REGB1
= TAG_Bool(false);
11417 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11421 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11422 if (UNTAG_Bool(REGB0
)) {
11423 /* ./syntax//typing.nit:1863 */
11424 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11425 fra
.me
.REG
[4] = CALL_parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11426 fra
.me
.REG
[4] = CALL_syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11427 fra
.me
.REG
[4] = CALL_flow___FlowContext___sub_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[4]);
11428 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
11430 /* ./syntax//typing.nit:1865 */
11431 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11432 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
11433 /* ./syntax//typing.nit:1866 */
11434 REGB0
= TAG_Bool(true);
11435 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
11437 stack_frame_head
= fra
.me
.prev
;
11440 void typing___AAsCastExpr___after_typing(val_t p0
, val_t p1
){
11441 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
11445 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11446 fra
.me
.file
= LOCATE_typing
;
11447 fra
.me
.line
= 1872;
11448 fra
.me
.meth
= LOCATE_typing___AAsCastExpr___after_typing
;
11449 fra
.me
.has_broke
= 0;
11450 fra
.me
.REG_size
= 4;
11451 fra
.me
.REG
[0] = NIT_NULL
;
11452 fra
.me
.REG
[1] = NIT_NULL
;
11453 fra
.me
.REG
[2] = NIT_NULL
;
11454 fra
.me
.REG
[3] = NIT_NULL
;
11455 fra
.me
.REG
[0] = p0
;
11456 fra
.me
.REG
[1] = p1
;
11457 /* ./syntax//typing.nit:1874 */
11458 fra
.me
.REG
[2] = CALL_parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11459 fra
.me
.REG
[3] = CALL_parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11460 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]);
11461 /* ./syntax//typing.nit:1875 */
11462 fra
.me
.REG
[3] = CALL_parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11463 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11464 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11465 if (UNTAG_Bool(REGB0
)) {
11468 /* ./syntax//typing.nit:1876 */
11469 fra
.me
.REG
[3] = CALL_parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11470 fra
.me
.REG
[3] = CALL_syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11471 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
11472 /* ./syntax//typing.nit:1877 */
11473 fra
.me
.REG
[3] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
11474 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11475 if (UNTAG_Bool(REGB0
)) {
11477 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11478 if (UNTAG_Bool(REGB1
)) {
11479 REGB1
= TAG_Bool(false);
11482 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11486 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11487 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
11489 stack_frame_head
= fra
.me
.prev
;
11492 void typing___AAsNotnullExpr___after_typing(val_t p0
, val_t p1
){
11493 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11496 static val_t once_value_2
; /* Once value */
11497 static val_t once_value_3
; /* Once value */
11498 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11499 fra
.me
.file
= LOCATE_typing
;
11500 fra
.me
.line
= 1882;
11501 fra
.me
.meth
= LOCATE_typing___AAsNotnullExpr___after_typing
;
11502 fra
.me
.has_broke
= 0;
11503 fra
.me
.REG_size
= 5;
11504 fra
.me
.REG
[0] = NIT_NULL
;
11505 fra
.me
.REG
[1] = NIT_NULL
;
11506 fra
.me
.REG
[2] = NIT_NULL
;
11507 fra
.me
.REG
[3] = NIT_NULL
;
11508 fra
.me
.REG
[4] = NIT_NULL
;
11509 fra
.me
.REG
[0] = p0
;
11510 fra
.me
.REG
[1] = p1
;
11511 /* ./syntax//typing.nit:1884 */
11512 fra
.me
.REG
[2] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11513 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
11514 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11515 if (UNTAG_Bool(REGB0
)) {
11518 /* ./syntax//typing.nit:1885 */
11519 fra
.me
.REG
[2] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11520 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11521 /* ./syntax//typing.nit:1886 */
11522 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
11523 if (UNTAG_Bool(REGB0
)) {
11524 /* ./syntax//typing.nit:1887 */
11525 fra
.me
.REG
[3] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11526 if (!once_value_2
) {
11527 fra
.me
.REG
[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
11528 REGB0
= TAG_Int(43);
11529 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
11530 once_value_2
= fra
.me
.REG
[4];
11531 register_static_object(&once_value_2
);
11532 } else fra
.me
.REG
[4] = once_value_2
;
11533 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11534 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
11535 /* ./syntax//typing.nit:1888 */
11538 /* ./syntax//typing.nit:1889 */
11539 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11540 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11541 if (UNTAG_Bool(REGB0
)) {
11542 /* ./syntax//typing.nit:1890 */
11543 fra
.me
.REG
[2] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11544 if (!once_value_3
) {
11545 fra
.me
.REG
[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
11546 REGB0
= TAG_Int(45);
11547 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
11548 once_value_3
= fra
.me
.REG
[4];
11549 register_static_object(&once_value_3
);
11550 } else fra
.me
.REG
[4] = once_value_3
;
11551 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11552 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
11555 /* ./syntax//typing.nit:1892 */
11556 fra
.me
.REG
[4] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11557 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11558 fra
.me
.REG
[4] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11559 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
11560 /* ./syntax//typing.nit:1893 */
11561 REGB0
= TAG_Bool(true);
11562 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
11564 stack_frame_head
= fra
.me
.prev
;
11567 void typing___AProxyExpr___after_typing(val_t p0
, val_t p1
){
11568 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11571 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11572 fra
.me
.file
= LOCATE_typing
;
11573 fra
.me
.line
= 1898;
11574 fra
.me
.meth
= LOCATE_typing___AProxyExpr___after_typing
;
11575 fra
.me
.has_broke
= 0;
11576 fra
.me
.REG_size
= 2;
11577 fra
.me
.REG
[0] = NIT_NULL
;
11578 fra
.me
.REG
[1] = NIT_NULL
;
11579 fra
.me
.REG
[0] = p0
;
11580 fra
.me
.REG
[1] = p1
;
11581 /* ./syntax//typing.nit:1900 */
11582 fra
.me
.REG
[1] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11583 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11584 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11585 if (UNTAG_Bool(REGB0
)) {
11588 /* ./syntax//typing.nit:1901 */
11589 REGB0
= TAG_Bool(true);
11590 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
11591 /* ./syntax//typing.nit:1902 */
11592 fra
.me
.REG
[1] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11593 REGB0
= CALL_syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11594 if (UNTAG_Bool(REGB0
)) {
11597 /* ./syntax//typing.nit:1903 */
11598 fra
.me
.REG
[1] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11599 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11600 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
11602 stack_frame_head
= fra
.me
.prev
;
11605 void typing___AOnceExpr___accept_typing(val_t p0
, val_t p1
){
11606 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11610 static val_t once_value_1
; /* Once value */
11611 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11612 fra
.me
.file
= LOCATE_typing
;
11613 fra
.me
.line
= 1908;
11614 fra
.me
.meth
= LOCATE_typing___AOnceExpr___accept_typing
;
11615 fra
.me
.has_broke
= 0;
11616 fra
.me
.REG_size
= 5;
11617 fra
.me
.REG
[0] = NIT_NULL
;
11618 fra
.me
.REG
[1] = NIT_NULL
;
11619 fra
.me
.REG
[2] = NIT_NULL
;
11620 fra
.me
.REG
[3] = NIT_NULL
;
11621 fra
.me
.REG
[4] = NIT_NULL
;
11622 fra
.me
.REG
[0] = p0
;
11623 fra
.me
.REG
[1] = p1
;
11624 /* ./syntax//typing.nit:1908 */
11625 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11626 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11627 /* ./syntax//typing.nit:1910 */
11628 REGB0
= CALL_typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11629 REGB1
= TAG_Int(0);
11630 /* ./../lib/standard//kernel.nit:214 */
11631 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
11632 /* ./syntax//typing.nit:1910 */
11633 if (UNTAG_Bool(REGB1
)) {
11634 /* ./syntax//typing.nit:1911 */
11635 if (!once_value_1
) {
11636 fra
.me
.REG
[4] = BOX_NativeString("Useless once in a once expression.");
11637 REGB1
= TAG_Int(34);
11638 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
11639 once_value_1
= fra
.me
.REG
[4];
11640 register_static_object(&once_value_1
);
11641 } else fra
.me
.REG
[4] = once_value_1
;
11642 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11643 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
11645 /* ./syntax//typing.nit:1913 */
11646 REGB1
= CALL_typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11647 REGB0
= TAG_Int(1);
11648 /* ./../lib/standard//kernel.nit:215 */
11649 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
11650 /* ./syntax//typing.nit:1913 */
11651 CALL_typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
11652 /* ./syntax//typing.nit:1915 */
11653 CALL_SUPER_typing___AOnceExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11654 /* ./syntax//typing.nit:1917 */
11655 REGB0
= CALL_typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11656 REGB1
= TAG_Int(1);
11657 /* ./../lib/standard//kernel.nit:217 */
11658 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
11659 /* ./syntax//typing.nit:1917 */
11660 CALL_typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
11661 stack_frame_head
= fra
.me
.prev
;