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 constructor 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 constructor 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_extern(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1669 if (UNTAG_Bool(REGB3
)) {
1670 REGB3
= TAG_Bool(true);
1672 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1673 REGB4
= CALL_abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1676 if (UNTAG_Bool(REGB3
)) {
1677 /* ./syntax//typing.nit:256 */
1679 /* ./../lib/standard//kernel.nit:215 */
1680 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1681 /* ./syntax//typing.nit:256 */
1684 /* ./syntax//typing.nit:257 */
1685 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1686 if (UNTAG_Bool(REGB3
)) {
1688 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1689 if (UNTAG_Bool(REGB4
)) {
1690 REGB4
= TAG_Bool(false);
1693 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1697 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1698 if (UNTAG_Bool(REGB3
)) {
1699 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1700 REGB3
= CALL_partial_order___PartialOrderElement_____leq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1701 if (UNTAG_Bool(REGB3
)) {
1702 REGB3
= TAG_Bool(true);
1704 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1705 if (UNTAG_Bool(REGB4
)) {
1706 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 257);
1708 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1709 REGB4
= CALL_abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1713 REGB4
= TAG_Bool(false);
1716 if (UNTAG_Bool(REGB3
)) {
1717 /* ./syntax//typing.nit:258 */
1718 REGB3
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[5],fra
.me
.REG
[1]));
1719 if (UNTAG_Bool(REGB3
)) {
1721 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
1724 if (UNTAG_Bool(REGB3
)) {
1726 /* ./../lib/standard//kernel.nit:215 */
1727 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1728 /* ./syntax//typing.nit:258 */
1731 /* ./syntax//typing.nit:259 */
1732 fra
.me
.REG
[4] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1733 REGB3
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
1734 if (UNTAG_Bool(REGB3
)) {
1736 nit_abort("Cast failed", NULL
, LOCATE_typing
, 259);
1738 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
1739 /* ./syntax//typing.nit:260 */
1741 /* ./../lib/standard//kernel.nit:215 */
1742 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1743 /* ./syntax//typing.nit:260 */
1745 /* ./../lib/standard//kernel.nit:212 */
1746 REGB3
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1747 /* ./syntax//typing.nit:261 */
1748 if (UNTAG_Bool(REGB3
)) {
1749 /* ./syntax//typing.nit:262 */
1750 fra
.me
.REG
[4] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1751 /* ./../lib/standard//collection//array.nit:243 */
1753 /* ./../lib/standard//collection//array.nit:245 */
1755 /* ./../lib/standard//kernel.nit:213 */
1756 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1757 /* ./../lib/standard//collection//array.nit:245 */
1758 if (UNTAG_Bool(REGB4
)) {
1759 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1760 if (UNTAG_Bool(REGB4
)) {
1762 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
1764 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1765 /* ./../lib/standard//kernel.nit:212 */
1766 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1768 /* ./../lib/standard//collection//array.nit:245 */
1769 REGB5
= TAG_Bool(false);
1772 if (UNTAG_Bool(REGB4
)) {
1774 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
1776 /* ./../lib/standard//collection//array.nit:246 */
1777 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[4]);
1778 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1779 if (UNTAG_Bool(REGB4
)) {
1780 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
1782 /* ./../lib/standard//collection//array.nit:654 */
1783 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB3
)];
1784 /* ./../lib/standard//collection//array.nit:246 */
1787 /* ./syntax//typing.nit:262 */
1788 fra
.me
.REG
[0] = fra
.me
.REG
[4];
1789 /* ./syntax//typing.nit:263 */
1790 REGB3
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1791 if (UNTAG_Bool(REGB3
)) {
1792 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 263);
1794 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1795 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1796 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1797 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1798 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
1799 fra
.me
.REG
[1] = fra
.me
.REG
[6];
1801 /* ./syntax//typing.nit:265 */
1802 fra
.me
.REG
[0] = NIT_NULL
;
1803 /* ./syntax//typing.nit:266 */
1804 fra
.me
.REG
[1] = NIT_NULL
;
1807 /* ./syntax//typing.nit:269 */
1808 fra
.me
.REG
[6] = CALL_syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1809 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]);
1810 /* ./syntax//typing.nit:270 */
1811 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1812 if (UNTAG_Bool(REGB3
)) {
1814 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1815 if (UNTAG_Bool(REGB4
)) {
1816 REGB4
= TAG_Bool(false);
1819 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
1823 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1824 if (UNTAG_Bool(REGB3
)) {
1825 /* ./syntax//typing.nit:271 */
1826 fra
.me
.REG
[5] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1827 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
1829 /* ./syntax//typing.nit:273 */
1831 /* ./../lib/standard//kernel.nit:215 */
1832 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1833 /* ./syntax//typing.nit:273 */
1838 /* ./syntax//typing.nit:253 */
1844 stack_frame_head
= fra
.me
.prev
;
1847 void typing___AExternInitPropdef___accept_typing(val_t p0
, val_t p1
){
1848 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1851 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1852 fra
.me
.file
= LOCATE_typing
;
1854 fra
.me
.meth
= LOCATE_typing___AExternInitPropdef___accept_typing
;
1855 fra
.me
.has_broke
= 0;
1856 fra
.me
.REG_size
= 3;
1857 fra
.me
.REG
[0] = NIT_NULL
;
1858 fra
.me
.REG
[1] = NIT_NULL
;
1859 fra
.me
.REG
[2] = NIT_NULL
;
1862 /* ./syntax//typing.nit:281 */
1863 fra
.me
.REG
[2] = fra
.me
.REG
[1];
1864 /* ./syntax//typing.nit:283 */
1865 REGB0
= TAG_Bool(false);
1866 CALL_typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1867 /* ./syntax//typing.nit:284 */
1868 CALL_SUPER_typing___AExternInitPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1869 stack_frame_head
= fra
.me
.prev
;
1872 void typing___AExternInitPropdef___after_typing(val_t p0
, val_t p1
){
1873 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1875 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1876 fra
.me
.file
= LOCATE_typing
;
1878 fra
.me
.meth
= LOCATE_typing___AExternInitPropdef___after_typing
;
1879 fra
.me
.has_broke
= 0;
1880 fra
.me
.REG_size
= 2;
1881 fra
.me
.REG
[0] = NIT_NULL
;
1882 fra
.me
.REG
[1] = NIT_NULL
;
1885 /* ./syntax//typing.nit:288 */
1886 CALL_SUPER_typing___AExternInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1887 stack_frame_head
= fra
.me
.prev
;
1890 void typing___AParam___after_typing(val_t p0
, val_t p1
){
1891 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1893 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1894 fra
.me
.file
= LOCATE_typing
;
1896 fra
.me
.meth
= LOCATE_typing___AParam___after_typing
;
1897 fra
.me
.has_broke
= 0;
1898 fra
.me
.REG_size
= 2;
1899 fra
.me
.REG
[0] = NIT_NULL
;
1900 fra
.me
.REG
[1] = NIT_NULL
;
1903 /* ./syntax//typing.nit:295 */
1904 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1905 fra
.me
.REG
[0] = CALL_syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1906 CALL_scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1907 stack_frame_head
= fra
.me
.prev
;
1910 val_t
typing___AClosureDecl___escapable(val_t p0
){
1911 struct {struct stack_frame_t me
;} fra
;
1913 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1914 fra
.me
.file
= LOCATE_typing
;
1916 fra
.me
.meth
= LOCATE_typing___AClosureDecl___escapable
;
1917 fra
.me
.has_broke
= 0;
1918 fra
.me
.REG_size
= 1;
1919 fra
.me
.REG
[0] = NIT_NULL
;
1921 /* ./syntax//typing.nit:300 */
1922 fra
.me
.REG
[0] = ATTR_typing___AClosureDecl____escapable(fra
.me
.REG
[0]);
1923 stack_frame_head
= fra
.me
.prev
;
1924 return fra
.me
.REG
[0];
1926 void typing___AClosureDecl___accept_typing(val_t p0
, val_t p1
){
1927 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
1932 static val_t once_value_1
; /* Once value */
1933 static val_t once_value_2
; /* Once value */
1934 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1935 fra
.me
.file
= LOCATE_typing
;
1937 fra
.me
.meth
= LOCATE_typing___AClosureDecl___accept_typing
;
1938 fra
.me
.has_broke
= 0;
1939 fra
.me
.REG_size
= 10;
1940 fra
.me
.REG
[0] = NIT_NULL
;
1941 fra
.me
.REG
[1] = NIT_NULL
;
1942 fra
.me
.REG
[2] = NIT_NULL
;
1943 fra
.me
.REG
[3] = NIT_NULL
;
1944 fra
.me
.REG
[4] = NIT_NULL
;
1945 fra
.me
.REG
[5] = NIT_NULL
;
1946 fra
.me
.REG
[6] = NIT_NULL
;
1947 fra
.me
.REG
[7] = NIT_NULL
;
1948 fra
.me
.REG
[8] = NIT_NULL
;
1949 fra
.me
.REG
[9] = NIT_NULL
;
1952 /* ./syntax//typing.nit:303 */
1953 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1954 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1955 /* ./syntax//typing.nit:306 */
1956 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1957 fra
.me
.REG
[5] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1958 CALL_scope___ScopeContext___add_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1959 /* ./syntax//typing.nit:308 */
1960 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1961 /* ./syntax//typing.nit:309 */
1962 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1963 /* ./syntax//typing.nit:310 */
1964 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1965 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1966 /* ./syntax//typing.nit:312 */
1967 fra
.me
.REG
[6] = NIT_NULL
;
1968 /* ./syntax//typing.nit:313 */
1969 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1970 fra
.me
.REG
[7] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1971 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1972 if (UNTAG_Bool(REGB0
)) {
1973 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 313);
1975 fra
.me
.REG
[7] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1976 /* ./syntax//typing.nit:314 */
1977 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1978 if (UNTAG_Bool(REGB0
)) {
1980 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1981 if (UNTAG_Bool(REGB1
)) {
1982 REGB1
= TAG_Bool(false);
1985 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
1989 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1990 if (UNTAG_Bool(REGB0
)) {
1991 fra
.me
.REG
[8] = NEW_Array_array___Array___init();
1992 fra
.me
.REG
[6] = fra
.me
.REG
[8];
1994 /* ./syntax//typing.nit:315 */
1995 fra
.me
.REG
[8] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1996 fra
.me
.REG
[8] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1997 fra
.me
.REG
[8] = NEW_EscapableClosure_scope___EscapableClosure___init(fra
.me
.REG
[2], fra
.me
.REG
[8], fra
.me
.REG
[6]);
1998 /* ./syntax//typing.nit:316 */
1999 ATTR_typing___AClosureDecl____escapable(fra
.me
.REG
[2]) = fra
.me
.REG
[8];
2000 /* ./syntax//typing.nit:317 */
2001 fra
.me
.REG
[9] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2002 CALL_scope___ScopeContext___push_escapable(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8], NIT_NULL
);
2003 /* ./syntax//typing.nit:319 */
2004 REGB0
= TAG_Bool(true);
2005 CALL_typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2006 /* ./syntax//typing.nit:321 */
2007 CALL_SUPER_typing___AClosureDecl___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2008 /* ./syntax//typing.nit:323 */
2009 REGB0
= TAG_Bool(false);
2010 CALL_typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2011 /* ./syntax//typing.nit:325 */
2012 fra
.me
.REG
[1] = CALL_parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2013 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2014 if (UNTAG_Bool(REGB0
)) {
2016 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2017 if (UNTAG_Bool(REGB1
)) {
2018 REGB1
= TAG_Bool(false);
2021 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2025 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2026 if (UNTAG_Bool(REGB0
)) {
2027 /* ./syntax//typing.nit:326 */
2028 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2029 REGB0
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2030 REGB1
= TAG_Bool(false);
2031 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
2032 if (UNTAG_Bool(REGB2
)) {
2034 /* ./../lib/standard//kernel.nit:175 */
2035 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
2036 /* ./syntax//typing.nit:326 */
2039 if (UNTAG_Bool(REGB2
)) {
2040 /* ./syntax//typing.nit:327 */
2041 fra
.me
.REG
[1] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2042 fra
.me
.REG
[1] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2043 fra
.me
.REG
[1] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2044 fra
.me
.REG
[1] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2045 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2046 if (UNTAG_Bool(REGB2
)) {
2048 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2049 if (UNTAG_Bool(REGB1
)) {
2050 REGB1
= TAG_Bool(false);
2053 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2057 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2058 if (UNTAG_Bool(REGB2
)) {
2059 /* ./syntax//typing.nit:328 */
2060 if (!once_value_1
) {
2061 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
2062 REGB2
= TAG_Int(77);
2063 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB2
);
2064 once_value_1
= fra
.me
.REG
[1];
2065 register_static_object(&once_value_1
);
2066 } else fra
.me
.REG
[1] = once_value_1
;
2067 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2068 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
2070 /* ./syntax//typing.nit:329 */
2071 fra
.me
.REG
[1] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2072 fra
.me
.REG
[1] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2073 REGB2
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2074 if (UNTAG_Bool(REGB2
)) {
2075 fra
.me
.REG
[8] = CALL_scope___EscapableBlock___break_list(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2076 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2077 if (UNTAG_Bool(REGB2
)) {
2079 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2080 if (UNTAG_Bool(REGB1
)) {
2081 REGB1
= TAG_Bool(false);
2084 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
2088 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2090 REGB1
= TAG_Bool(false);
2093 if (UNTAG_Bool(REGB2
)) {
2094 /* ./syntax//typing.nit:330 */
2095 if (!once_value_2
) {
2096 fra
.me
.REG
[8] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
2097 REGB2
= TAG_Int(80);
2098 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB2
);
2099 once_value_2
= fra
.me
.REG
[8];
2100 register_static_object(&once_value_2
);
2101 } else fra
.me
.REG
[8] = once_value_2
;
2102 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2103 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[8]);
2108 /* ./syntax//typing.nit:334 */
2109 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2110 if (UNTAG_Bool(REGB2
)) {
2112 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2113 if (UNTAG_Bool(REGB1
)) {
2114 REGB1
= TAG_Bool(false);
2117 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2121 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2122 if (UNTAG_Bool(REGB2
)) {
2123 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2124 if (UNTAG_Bool(REGB2
)) {
2125 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 334);
2127 /* ./../lib/standard//collection//array.nit:234 */
2129 /* ./../lib/standard//collection//array.nit:235 */
2130 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2131 if (UNTAG_Bool(REGB1
)) {
2133 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
2135 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2136 /* ./../lib/standard//collection//array.nit:236 */
2137 fra
.me
.REG
[8] = ATTR_array___Array____items(fra
.me
.REG
[6]);
2138 /* ./../lib/standard//collection//array.nit:237 */
2140 /* ./../lib/standard//collection//array.nit:23 */
2141 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2142 if (UNTAG_Bool(REGB1
)) {
2144 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
2146 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2147 /* ./../lib/standard//kernel.nit:212 */
2148 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
2149 /* ./../lib/standard//collection//array.nit:237 */
2150 if (UNTAG_Bool(REGB1
)) {
2151 /* ./../lib/standard//collection//array.nit:238 */
2152 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2153 if (UNTAG_Bool(REGB1
)) {
2154 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
2156 /* ./../lib/standard//collection//array.nit:654 */
2157 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB2
)];
2158 /* ./syntax//typing.nit:335 */
2159 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
2160 /* ./../lib/standard//collection//array.nit:239 */
2162 /* ./../lib/standard//kernel.nit:215 */
2163 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
2164 /* ./../lib/standard//collection//array.nit:239 */
2167 /* ./../lib/standard//collection//array.nit:237 */
2173 /* ./syntax//typing.nit:338 */
2174 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2175 /* ./syntax//typing.nit:339 */
2176 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2177 /* ./syntax//typing.nit:340 */
2178 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2179 CALL_scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2180 stack_frame_head
= fra
.me
.prev
;
2183 val_t
typing___AType___stype(val_t p0
){
2184 struct {struct stack_frame_t me
;} fra
;
2187 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2188 fra
.me
.file
= LOCATE_typing
;
2190 fra
.me
.meth
= LOCATE_typing___AType___stype
;
2191 fra
.me
.has_broke
= 0;
2192 fra
.me
.REG_size
= 1;
2193 fra
.me
.REG
[0] = NIT_NULL
;
2195 /* ./syntax//typing.nit:345 */
2196 fra
.me
.REG
[0] = ATTR_typing___AType____stype(fra
.me
.REG
[0]);
2197 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2198 if (UNTAG_Bool(REGB0
)) {
2200 nit_abort("Cast failed", NULL
, LOCATE_typing
, 345);
2204 stack_frame_head
= fra
.me
.prev
;
2205 return fra
.me
.REG
[0];
2207 val_t
typing___AType___is_typed(val_t p0
){
2208 struct {struct stack_frame_t me
;} fra
;
2212 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2213 fra
.me
.file
= LOCATE_typing
;
2215 fra
.me
.meth
= LOCATE_typing___AType___is_typed
;
2216 fra
.me
.has_broke
= 0;
2217 fra
.me
.REG_size
= 1;
2218 fra
.me
.REG
[0] = NIT_NULL
;
2220 /* ./syntax//typing.nit:346 */
2221 fra
.me
.REG
[0] = ATTR_typing___AType____stype(fra
.me
.REG
[0]);
2222 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2223 if (UNTAG_Bool(REGB0
)) {
2225 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2226 if (UNTAG_Bool(REGB1
)) {
2227 REGB1
= TAG_Bool(false);
2230 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2234 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2237 stack_frame_head
= fra
.me
.prev
;
2240 void typing___AType___after_typing(val_t p0
, val_t p1
){
2241 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2243 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2244 fra
.me
.file
= LOCATE_typing
;
2246 fra
.me
.meth
= LOCATE_typing___AType___after_typing
;
2247 fra
.me
.has_broke
= 0;
2248 fra
.me
.REG_size
= 2;
2249 fra
.me
.REG
[0] = NIT_NULL
;
2250 fra
.me
.REG
[1] = NIT_NULL
;
2253 /* ./syntax//typing.nit:351 */
2254 fra
.me
.REG
[1] = CALL_syntax_base___AType___get_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2255 ATTR_typing___AType____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2256 stack_frame_head
= fra
.me
.prev
;
2259 val_t
typing___AExpr___is_typed(val_t p0
){
2260 struct {struct stack_frame_t me
;} fra
;
2263 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2264 fra
.me
.file
= LOCATE_typing
;
2266 fra
.me
.meth
= LOCATE_typing___AExpr___is_typed
;
2267 fra
.me
.has_broke
= 0;
2268 fra
.me
.REG_size
= 1;
2269 fra
.me
.REG
[0] = NIT_NULL
;
2271 /* ./syntax//typing.nit:356 */
2272 REGB0
= TAG_Bool(ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0])!=NIT_NULL
);
2273 if (UNTAG_Bool(REGB0
)) {
2275 nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_typing
, 356);
2277 REGB0
= ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]);
2278 stack_frame_head
= fra
.me
.prev
;
2281 val_t
typing___AExpr___is_statement(val_t p0
){
2282 struct {struct stack_frame_t me
;} fra
;
2286 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2287 fra
.me
.file
= LOCATE_typing
;
2289 fra
.me
.meth
= LOCATE_typing___AExpr___is_statement
;
2290 fra
.me
.has_broke
= 0;
2291 fra
.me
.REG_size
= 1;
2292 fra
.me
.REG
[0] = NIT_NULL
;
2294 /* ./syntax//typing.nit:357 */
2295 fra
.me
.REG
[0] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
2296 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2297 if (UNTAG_Bool(REGB0
)) {
2299 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2300 if (UNTAG_Bool(REGB1
)) {
2301 REGB1
= TAG_Bool(false);
2304 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2310 stack_frame_head
= fra
.me
.prev
;
2313 val_t
typing___AExpr___stype(val_t p0
){
2314 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2317 static val_t once_value_1
; /* Once value */
2318 static val_t once_value_2
; /* Once value */
2319 static val_t once_value_3
; /* Once value */
2320 static val_t once_value_4
; /* Once value */
2321 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2322 fra
.me
.file
= LOCATE_typing
;
2324 fra
.me
.meth
= LOCATE_typing___AExpr___stype
;
2325 fra
.me
.has_broke
= 0;
2326 fra
.me
.REG_size
= 3;
2327 fra
.me
.REG
[0] = NIT_NULL
;
2328 fra
.me
.REG
[1] = NIT_NULL
;
2329 fra
.me
.REG
[2] = NIT_NULL
;
2331 /* ./syntax//typing.nit:360 */
2332 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2333 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2334 if (UNTAG_Bool(REGB0
)) {
2335 /* ./syntax//typing.nit:361 */
2337 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
2338 if (!once_value_1
) {
2339 fra
.me
.REG
[2] = BOX_NativeString("");
2341 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2342 once_value_1
= fra
.me
.REG
[2];
2343 register_static_object(&once_value_1
);
2344 } else fra
.me
.REG
[2] = once_value_1
;
2345 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2346 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2347 fra
.me
.REG
[2] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2348 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2349 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2350 if (!once_value_2
) {
2351 fra
.me
.REG
[2] = BOX_NativeString(": not is_typed");
2352 REGB0
= TAG_Int(14);
2353 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2354 once_value_2
= fra
.me
.REG
[2];
2355 register_static_object(&once_value_2
);
2356 } else fra
.me
.REG
[2] = once_value_2
;
2357 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2358 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2359 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2360 CALL_file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2361 /* ./syntax//typing.nit:362 */
2362 nit_abort("Aborted", NULL
, LOCATE_typing
, 362);
2364 /* ./syntax//typing.nit:364 */
2365 REGB0
= CALL_syntax_base___AExpr___is_statement(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2366 if (UNTAG_Bool(REGB0
)) {
2367 /* ./syntax//typing.nit:365 */
2369 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
2370 if (!once_value_3
) {
2371 fra
.me
.REG
[2] = BOX_NativeString("");
2373 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2374 once_value_3
= fra
.me
.REG
[2];
2375 register_static_object(&once_value_3
);
2376 } else fra
.me
.REG
[2] = once_value_3
;
2377 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2378 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2379 fra
.me
.REG
[2] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2380 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2381 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2382 if (!once_value_4
) {
2383 fra
.me
.REG
[2] = BOX_NativeString(": is_statement");
2384 REGB0
= TAG_Int(14);
2385 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
2386 once_value_4
= fra
.me
.REG
[2];
2387 register_static_object(&once_value_4
);
2388 } else fra
.me
.REG
[2] = once_value_4
;
2389 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2390 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2391 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2392 CALL_file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2393 /* ./syntax//typing.nit:366 */
2394 nit_abort("Aborted", NULL
, LOCATE_typing
, 366);
2396 /* ./syntax//typing.nit:368 */
2397 fra
.me
.REG
[0] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
2398 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2399 if (UNTAG_Bool(REGB0
)) {
2401 nit_abort("Cast failed", NULL
, LOCATE_typing
, 368);
2405 stack_frame_head
= fra
.me
.prev
;
2406 return fra
.me
.REG
[0];
2408 void typing___AExpr___after_typing(val_t p0
, val_t p1
){
2409 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2412 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2413 fra
.me
.file
= LOCATE_typing
;
2415 fra
.me
.meth
= LOCATE_typing___AExpr___after_typing
;
2416 fra
.me
.has_broke
= 0;
2417 fra
.me
.REG_size
= 2;
2418 fra
.me
.REG
[0] = NIT_NULL
;
2419 fra
.me
.REG
[1] = NIT_NULL
;
2422 /* ./syntax//typing.nit:375 */
2423 REGB0
= TAG_Bool(true);
2424 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2425 stack_frame_head
= fra
.me
.prev
;
2428 val_t
typing___AExpr___is_implicit_self(val_t p0
){
2429 struct {struct stack_frame_t me
;} fra
;
2432 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2433 fra
.me
.file
= LOCATE_typing
;
2435 fra
.me
.meth
= LOCATE_typing___AExpr___is_implicit_self
;
2436 fra
.me
.has_broke
= 0;
2437 fra
.me
.REG_size
= 1;
2438 fra
.me
.REG
[0] = NIT_NULL
;
2440 /* ./syntax//typing.nit:379 */
2441 REGB0
= TAG_Bool(false);
2444 stack_frame_head
= fra
.me
.prev
;
2447 val_t
typing___AExpr___is_self(val_t p0
){
2448 struct {struct stack_frame_t me
;} fra
;
2451 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2452 fra
.me
.file
= LOCATE_typing
;
2454 fra
.me
.meth
= LOCATE_typing___AExpr___is_self
;
2455 fra
.me
.has_broke
= 0;
2456 fra
.me
.REG_size
= 1;
2457 fra
.me
.REG
[0] = NIT_NULL
;
2459 /* ./syntax//typing.nit:382 */
2460 REGB0
= TAG_Bool(false);
2463 stack_frame_head
= fra
.me
.prev
;
2466 val_t
typing___AExpr___its_variable(val_t p0
){
2467 struct {struct stack_frame_t me
;} fra
;
2469 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2470 fra
.me
.file
= LOCATE_typing
;
2472 fra
.me
.meth
= LOCATE_typing___AExpr___its_variable
;
2473 fra
.me
.has_broke
= 0;
2474 fra
.me
.REG_size
= 1;
2475 fra
.me
.REG
[0] = NIT_NULL
;
2477 /* ./syntax//typing.nit:385 */
2478 fra
.me
.REG
[0] = NIT_NULL
;
2481 stack_frame_head
= fra
.me
.prev
;
2482 return fra
.me
.REG
[0];
2484 val_t
typing___AExpr___if_true_flow_ctx(val_t p0
){
2485 struct {struct stack_frame_t me
;} fra
;
2487 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2488 fra
.me
.file
= LOCATE_typing
;
2490 fra
.me
.meth
= LOCATE_typing___AExpr___if_true_flow_ctx
;
2491 fra
.me
.has_broke
= 0;
2492 fra
.me
.REG_size
= 1;
2493 fra
.me
.REG
[0] = NIT_NULL
;
2495 /* ./syntax//typing.nit:387 */
2496 fra
.me
.REG
[0] = ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]);
2497 stack_frame_head
= fra
.me
.prev
;
2498 return fra
.me
.REG
[0];
2500 val_t
typing___AExpr___if_false_flow_ctx(val_t p0
){
2501 struct {struct stack_frame_t me
;} fra
;
2503 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2504 fra
.me
.file
= LOCATE_typing
;
2506 fra
.me
.meth
= LOCATE_typing___AExpr___if_false_flow_ctx
;
2507 fra
.me
.has_broke
= 0;
2508 fra
.me
.REG_size
= 1;
2509 fra
.me
.REG
[0] = NIT_NULL
;
2511 /* ./syntax//typing.nit:390 */
2512 fra
.me
.REG
[0] = ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]);
2513 stack_frame_head
= fra
.me
.prev
;
2514 return fra
.me
.REG
[0];
2516 val_t
typing___AVardeclExpr___variable(val_t p0
){
2517 struct {struct stack_frame_t me
;} fra
;
2520 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2521 fra
.me
.file
= LOCATE_typing
;
2523 fra
.me
.meth
= LOCATE_typing___AVardeclExpr___variable
;
2524 fra
.me
.has_broke
= 0;
2525 fra
.me
.REG_size
= 1;
2526 fra
.me
.REG
[0] = NIT_NULL
;
2528 /* ./syntax//typing.nit:396 */
2529 fra
.me
.REG
[0] = ATTR_typing___AVardeclExpr____variable(fra
.me
.REG
[0]);
2530 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2531 if (UNTAG_Bool(REGB0
)) {
2533 nit_abort("Cast failed", NULL
, LOCATE_typing
, 396);
2537 stack_frame_head
= fra
.me
.prev
;
2538 return fra
.me
.REG
[0];
2540 void typing___AVardeclExpr___after_typing(val_t p0
, val_t p1
){
2541 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2545 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2546 fra
.me
.file
= LOCATE_typing
;
2548 fra
.me
.meth
= LOCATE_typing___AVardeclExpr___after_typing
;
2549 fra
.me
.has_broke
= 0;
2550 fra
.me
.REG_size
= 5;
2551 fra
.me
.REG
[0] = NIT_NULL
;
2552 fra
.me
.REG
[1] = NIT_NULL
;
2553 fra
.me
.REG
[2] = NIT_NULL
;
2554 fra
.me
.REG
[3] = NIT_NULL
;
2555 fra
.me
.REG
[4] = NIT_NULL
;
2558 /* ./syntax//typing.nit:400 */
2559 fra
.me
.REG
[2] = CALL_parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2560 fra
.me
.REG
[2] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2561 fra
.me
.REG
[3] = CALL_parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2562 fra
.me
.REG
[3] = NEW_VarVariable_syntax_base___VarVariable___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2563 /* ./syntax//typing.nit:401 */
2564 ATTR_typing___AVardeclExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
2565 /* ./syntax//typing.nit:402 */
2566 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2567 CALL_scope___ScopeContext___add_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2568 /* ./syntax//typing.nit:403 */
2569 fra
.me
.REG
[2] = CALL_parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2570 /* ./syntax//typing.nit:404 */
2571 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2572 if (UNTAG_Bool(REGB0
)) {
2574 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2575 if (UNTAG_Bool(REGB1
)) {
2576 REGB1
= TAG_Bool(false);
2579 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2583 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2584 if (UNTAG_Bool(REGB0
)) {
2585 CALL_typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2587 /* ./syntax//typing.nit:406 */
2588 fra
.me
.REG
[4] = CALL_parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2589 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2590 if (UNTAG_Bool(REGB0
)) {
2592 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2593 if (UNTAG_Bool(REGB1
)) {
2594 REGB1
= TAG_Bool(false);
2597 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2601 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2602 if (UNTAG_Bool(REGB0
)) {
2603 /* ./syntax//typing.nit:407 */
2604 fra
.me
.REG
[4] = CALL_parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2605 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2606 if (UNTAG_Bool(REGB0
)) {
2607 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 407);
2609 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2610 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2611 if (UNTAG_Bool(REGB0
)) {
2614 /* ./syntax//typing.nit:408 */
2615 fra
.me
.REG
[4] = CALL_parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2616 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2617 if (UNTAG_Bool(REGB0
)) {
2618 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 408);
2620 fra
.me
.REG
[4] = CALL_syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2621 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2622 /* ./syntax//typing.nit:409 */
2623 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2624 if (UNTAG_Bool(REGB0
)) {
2626 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2627 if (UNTAG_Bool(REGB1
)) {
2628 REGB1
= TAG_Bool(false);
2631 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2635 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2636 if (UNTAG_Bool(REGB0
)) {
2637 /* ./syntax//typing.nit:410 */
2638 fra
.me
.REG
[4] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2639 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
2642 /* ./syntax//typing.nit:412 */
2643 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2644 if (UNTAG_Bool(REGB0
)) {
2646 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2647 if (UNTAG_Bool(REGB1
)) {
2648 REGB1
= TAG_Bool(false);
2651 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2655 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2656 if (UNTAG_Bool(REGB0
)) {
2657 /* ./syntax//typing.nit:413 */
2658 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2659 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2660 if (UNTAG_Bool(REGB0
)) {
2663 /* ./syntax//typing.nit:414 */
2664 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2665 if (UNTAG_Bool(REGB0
)) {
2666 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 414);
2668 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2669 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2671 /* ./syntax//typing.nit:416 */
2672 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2673 fra
.me
.REG
[1] = CALL_static_type___MMType___as_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2674 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2677 /* ./syntax//typing.nit:418 */
2678 REGB0
= TAG_Bool(true);
2679 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2681 stack_frame_head
= fra
.me
.prev
;
2684 void typing___ABlockExpr___accept_typing(val_t p0
, val_t p1
){
2685 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2688 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2689 fra
.me
.file
= LOCATE_typing
;
2691 fra
.me
.meth
= LOCATE_typing___ABlockExpr___accept_typing
;
2692 fra
.me
.has_broke
= 0;
2693 fra
.me
.REG_size
= 3;
2694 fra
.me
.REG
[0] = NIT_NULL
;
2695 fra
.me
.REG
[1] = NIT_NULL
;
2696 fra
.me
.REG
[2] = NIT_NULL
;
2699 /* ./syntax//typing.nit:425 */
2700 fra
.me
.REG
[2] = CALL_parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2701 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_typing___ABlockExpr___accept_typing_1
));
2702 /* ./syntax//typing.nit:434 */
2703 REGB0
= TAG_Bool(true);
2704 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2705 stack_frame_head
= fra
.me
.prev
;
2708 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
){
2709 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2713 static val_t once_value_2
; /* Once value */
2714 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2715 fra
.me
.file
= LOCATE_typing
;
2717 fra
.me
.meth
= LOCATE_typing___ABlockExpr___accept_typing
;
2718 fra
.me
.has_broke
= 0;
2719 fra
.me
.REG_size
= 2;
2720 fra
.me
.REG
[0] = NIT_NULL
;
2721 fra
.me
.REG
[1] = NIT_NULL
;
2722 fra
.me
.closure_ctx
= closctx_param
;
2723 fra
.me
.closure_funs
= CREG
;
2725 CREG
[0] = clos_fun0
;
2726 /* ./syntax//typing.nit:426 */
2727 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2728 REGB0
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2729 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2730 if (UNTAG_Bool(REGB0
)) {
2731 /* ./syntax//typing.nit:427 */
2732 CALL_parser_prod___Visitor___enter_visit(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2734 /* ./syntax//typing.nit:428 */
2735 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2736 REGB0
= CALL_flow___FlowContext___already_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2737 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2738 if (UNTAG_Bool(REGB0
)) {
2739 /* ./syntax//typing.nit:429 */
2740 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2741 REGB0
= TAG_Bool(true);
2742 CALL_flow___FlowContext___already_unreash__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
2743 /* ./syntax//typing.nit:430 */
2744 if (!once_value_2
) {
2745 fra
.me
.REG
[1] = BOX_NativeString("Error: unreachable statement.");
2746 REGB0
= TAG_Int(29);
2747 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
2748 once_value_2
= fra
.me
.REG
[1];
2749 register_static_object(&once_value_2
);
2750 } else fra
.me
.REG
[1] = once_value_2
;
2751 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2752 CALL_syntax_base___AbsSyntaxVisitor___error(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[1]);
2755 stack_frame_head
= fra
.me
.prev
;
2758 void typing___AReturnExpr___after_typing(val_t p0
, val_t p1
){
2759 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2763 static val_t once_value_1
; /* Once value */
2764 static val_t once_value_3
; /* Once value */
2765 static val_t once_value_4
; /* Once value */
2766 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2767 fra
.me
.file
= LOCATE_typing
;
2769 fra
.me
.meth
= LOCATE_typing___AReturnExpr___after_typing
;
2770 fra
.me
.has_broke
= 0;
2771 fra
.me
.REG_size
= 5;
2772 fra
.me
.REG
[0] = NIT_NULL
;
2773 fra
.me
.REG
[1] = NIT_NULL
;
2774 fra
.me
.REG
[2] = NIT_NULL
;
2775 fra
.me
.REG
[3] = NIT_NULL
;
2776 fra
.me
.REG
[4] = NIT_NULL
;
2779 /* ./syntax//typing.nit:441 */
2780 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2781 /* ./syntax//typing.nit:442 */
2782 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2783 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2784 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2785 if (UNTAG_Bool(REGB0
)) {
2786 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 442);
2788 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2789 /* ./syntax//typing.nit:444 */
2790 REGB0
= CALL_typing___TypingVisitor___is_default_closure_definition(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2791 if (UNTAG_Bool(REGB0
)) {
2792 /* ./syntax//typing.nit:445 */
2793 if (!once_value_1
) {
2794 fra
.me
.REG
[3] = BOX_NativeString("Error: 'return' invalid in default closure definitions. Use 'continue' or 'break'.");
2795 REGB0
= TAG_Int(82);
2796 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
2797 once_value_1
= fra
.me
.REG
[3];
2798 register_static_object(&once_value_1
);
2799 } else fra
.me
.REG
[3] = once_value_1
;
2800 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2801 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2802 /* ./syntax//typing.nit:446 */
2805 /* ./syntax//typing.nit:449 */
2806 fra
.me
.REG
[3] = CALL_parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2807 /* ./syntax//typing.nit:450 */
2808 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2809 if (UNTAG_Bool(REGB0
)) {
2811 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2812 if (UNTAG_Bool(REGB1
)) {
2813 REGB1
= TAG_Bool(false);
2816 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2820 if (UNTAG_Bool(REGB0
)) {
2821 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2822 if (UNTAG_Bool(REGB0
)) {
2824 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2825 if (UNTAG_Bool(REGB1
)) {
2826 REGB1
= TAG_Bool(false);
2829 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2833 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2835 REGB1
= TAG_Bool(false);
2838 if (UNTAG_Bool(REGB0
)) {
2839 /* ./syntax//typing.nit:451 */
2840 if (!once_value_3
) {
2841 fra
.me
.REG
[4] = BOX_NativeString("Error: Return without value in a function.");
2842 REGB0
= TAG_Int(42);
2843 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2844 once_value_3
= fra
.me
.REG
[4];
2845 register_static_object(&once_value_3
);
2846 } else fra
.me
.REG
[4] = once_value_3
;
2847 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2848 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
2850 /* ./syntax//typing.nit:452 */
2851 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2852 if (UNTAG_Bool(REGB0
)) {
2854 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2855 if (UNTAG_Bool(REGB1
)) {
2856 REGB1
= TAG_Bool(false);
2859 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2863 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2864 if (UNTAG_Bool(REGB0
)) {
2865 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2866 if (UNTAG_Bool(REGB0
)) {
2868 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2869 if (UNTAG_Bool(REGB1
)) {
2870 REGB1
= TAG_Bool(false);
2873 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2878 REGB1
= TAG_Bool(false);
2881 if (UNTAG_Bool(REGB0
)) {
2882 /* ./syntax//typing.nit:453 */
2883 if (!once_value_4
) {
2884 fra
.me
.REG
[4] = BOX_NativeString("Error: Return with value in a procedure.");
2885 REGB0
= TAG_Int(40);
2886 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
2887 once_value_4
= fra
.me
.REG
[4];
2888 register_static_object(&once_value_4
);
2889 } else fra
.me
.REG
[4] = once_value_4
;
2890 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2891 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
2893 /* ./syntax//typing.nit:454 */
2894 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2895 if (UNTAG_Bool(REGB0
)) {
2897 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2898 if (UNTAG_Bool(REGB1
)) {
2899 REGB1
= TAG_Bool(false);
2902 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2906 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2907 if (UNTAG_Bool(REGB0
)) {
2908 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2909 if (UNTAG_Bool(REGB0
)) {
2911 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2912 if (UNTAG_Bool(REGB1
)) {
2913 REGB1
= TAG_Bool(false);
2916 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2920 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2922 REGB1
= TAG_Bool(false);
2925 if (UNTAG_Bool(REGB0
)) {
2926 /* ./syntax//typing.nit:455 */
2927 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2931 /* ./syntax//typing.nit:457 */
2932 REGB0
= TAG_Bool(true);
2933 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2935 stack_frame_head
= fra
.me
.prev
;
2938 void typing___AContinueExpr___after_typing(val_t p0
, val_t p1
){
2939 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2943 static val_t once_value_2
; /* Once value */
2944 static val_t once_value_3
; /* Once value */
2945 static val_t once_value_4
; /* Once value */
2946 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2947 fra
.me
.file
= LOCATE_typing
;
2949 fra
.me
.meth
= LOCATE_typing___AContinueExpr___after_typing
;
2950 fra
.me
.has_broke
= 0;
2951 fra
.me
.REG_size
= 4;
2952 fra
.me
.REG
[0] = NIT_NULL
;
2953 fra
.me
.REG
[1] = NIT_NULL
;
2954 fra
.me
.REG
[2] = NIT_NULL
;
2955 fra
.me
.REG
[3] = NIT_NULL
;
2958 /* ./syntax//typing.nit:464 */
2959 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2960 /* ./syntax//typing.nit:465 */
2961 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2962 fra
.me
.REG
[2] = CALL_scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
2963 /* ./syntax//typing.nit:466 */
2964 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2965 if (UNTAG_Bool(REGB0
)) {
2967 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2968 if (UNTAG_Bool(REGB1
)) {
2969 REGB1
= TAG_Bool(false);
2972 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2976 if (UNTAG_Bool(REGB0
)) {
2979 /* ./syntax//typing.nit:468 */
2980 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2981 if (UNTAG_Bool(REGB0
)) {
2982 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 468);
2984 REGB0
= CALL_scope___EscapableBlock___is_break_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2985 if (UNTAG_Bool(REGB0
)) {
2986 /* ./syntax//typing.nit:469 */
2987 if (!once_value_2
) {
2988 fra
.me
.REG
[3] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
2989 REGB0
= TAG_Int(39);
2990 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
2991 once_value_2
= fra
.me
.REG
[3];
2992 register_static_object(&once_value_2
);
2993 } else fra
.me
.REG
[3] = once_value_2
;
2994 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2995 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2996 /* ./syntax//typing.nit:470 */
2999 /* ./syntax//typing.nit:473 */
3000 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3001 if (UNTAG_Bool(REGB0
)) {
3002 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 473);
3004 fra
.me
.REG
[2] = CALL_scope___EscapableBlock___continue_stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3005 /* ./syntax//typing.nit:474 */
3006 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3007 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3008 if (UNTAG_Bool(REGB0
)) {
3010 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3011 if (UNTAG_Bool(REGB1
)) {
3012 REGB1
= TAG_Bool(false);
3015 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3019 if (UNTAG_Bool(REGB0
)) {
3020 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3021 if (UNTAG_Bool(REGB0
)) {
3023 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3024 if (UNTAG_Bool(REGB1
)) {
3025 REGB1
= TAG_Bool(false);
3028 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3032 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3034 REGB1
= TAG_Bool(false);
3037 if (UNTAG_Bool(REGB0
)) {
3038 /* ./syntax//typing.nit:475 */
3039 if (!once_value_3
) {
3040 fra
.me
.REG
[3] = BOX_NativeString("Error: continue with a value required in this block.");
3041 REGB0
= TAG_Int(52);
3042 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3043 once_value_3
= fra
.me
.REG
[3];
3044 register_static_object(&once_value_3
);
3045 } else fra
.me
.REG
[3] = once_value_3
;
3046 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3047 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3049 /* ./syntax//typing.nit:476 */
3050 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3051 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3052 if (UNTAG_Bool(REGB0
)) {
3054 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3055 if (UNTAG_Bool(REGB1
)) {
3056 REGB1
= TAG_Bool(false);
3059 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3063 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3064 if (UNTAG_Bool(REGB0
)) {
3065 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3066 if (UNTAG_Bool(REGB0
)) {
3068 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3069 if (UNTAG_Bool(REGB1
)) {
3070 REGB1
= TAG_Bool(false);
3073 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3078 REGB1
= TAG_Bool(false);
3081 if (UNTAG_Bool(REGB0
)) {
3082 /* ./syntax//typing.nit:477 */
3083 if (!once_value_4
) {
3084 fra
.me
.REG
[3] = BOX_NativeString("Error: continue without value required in this block.");
3085 REGB0
= TAG_Int(53);
3086 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3087 once_value_4
= fra
.me
.REG
[3];
3088 register_static_object(&once_value_4
);
3089 } else fra
.me
.REG
[3] = once_value_4
;
3090 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3091 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3093 /* ./syntax//typing.nit:478 */
3094 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3095 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3096 if (UNTAG_Bool(REGB0
)) {
3098 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3099 if (UNTAG_Bool(REGB1
)) {
3100 REGB1
= TAG_Bool(false);
3103 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3107 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3108 if (UNTAG_Bool(REGB0
)) {
3109 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3110 if (UNTAG_Bool(REGB0
)) {
3112 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3113 if (UNTAG_Bool(REGB1
)) {
3114 REGB1
= TAG_Bool(false);
3117 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3121 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3123 REGB1
= TAG_Bool(false);
3126 if (UNTAG_Bool(REGB0
)) {
3127 /* ./syntax//typing.nit:479 */
3128 fra
.me
.REG
[3] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3129 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
3130 if (UNTAG_Bool(REGB0
)) {
3132 nit_abort("Cast failed", NULL
, LOCATE_typing
, 479);
3134 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3138 /* ./syntax//typing.nit:481 */
3139 REGB0
= TAG_Bool(true);
3140 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3142 stack_frame_head
= fra
.me
.prev
;
3145 void typing___ABreakExpr___after_typing(val_t p0
, val_t p1
){
3146 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3150 static val_t once_value_2
; /* Once value */
3151 static val_t once_value_3
; /* Once value */
3152 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3153 fra
.me
.file
= LOCATE_typing
;
3155 fra
.me
.meth
= LOCATE_typing___ABreakExpr___after_typing
;
3156 fra
.me
.has_broke
= 0;
3157 fra
.me
.REG_size
= 5;
3158 fra
.me
.REG
[0] = NIT_NULL
;
3159 fra
.me
.REG
[1] = NIT_NULL
;
3160 fra
.me
.REG
[2] = NIT_NULL
;
3161 fra
.me
.REG
[3] = NIT_NULL
;
3162 fra
.me
.REG
[4] = NIT_NULL
;
3165 /* ./syntax//typing.nit:488 */
3166 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3167 /* ./syntax//typing.nit:489 */
3168 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3169 /* ./syntax//typing.nit:490 */
3170 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3171 fra
.me
.REG
[3] = CALL_scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
3172 /* ./syntax//typing.nit:491 */
3173 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3174 if (UNTAG_Bool(REGB0
)) {
3176 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3177 if (UNTAG_Bool(REGB1
)) {
3178 REGB1
= TAG_Bool(false);
3181 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3185 if (UNTAG_Bool(REGB0
)) {
3188 /* ./syntax//typing.nit:493 */
3189 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3190 if (UNTAG_Bool(REGB0
)) {
3191 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 493);
3193 fra
.me
.REG
[4] = CALL_scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3194 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3195 /* ./syntax//typing.nit:495 */
3196 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3197 if (UNTAG_Bool(REGB0
)) {
3198 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 495);
3200 fra
.me
.REG
[3] = CALL_scope___EscapableBlock___break_list(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3201 /* ./syntax//typing.nit:496 */
3202 fra
.me
.REG
[2] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3203 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3204 if (UNTAG_Bool(REGB0
)) {
3206 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3207 if (UNTAG_Bool(REGB1
)) {
3208 REGB1
= TAG_Bool(false);
3211 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3215 if (UNTAG_Bool(REGB0
)) {
3216 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3217 if (UNTAG_Bool(REGB0
)) {
3219 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3220 if (UNTAG_Bool(REGB1
)) {
3221 REGB1
= TAG_Bool(false);
3224 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3228 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3230 REGB1
= TAG_Bool(false);
3233 if (UNTAG_Bool(REGB0
)) {
3234 /* ./syntax//typing.nit:497 */
3235 if (!once_value_2
) {
3236 fra
.me
.REG
[2] = BOX_NativeString("Error: break with a value required in this block.");
3237 REGB0
= TAG_Int(49);
3238 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
3239 once_value_2
= fra
.me
.REG
[2];
3240 register_static_object(&once_value_2
);
3241 } else fra
.me
.REG
[2] = once_value_2
;
3242 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3243 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3245 /* ./syntax//typing.nit:498 */
3246 fra
.me
.REG
[2] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3247 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3248 if (UNTAG_Bool(REGB0
)) {
3250 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3251 if (UNTAG_Bool(REGB1
)) {
3252 REGB1
= TAG_Bool(false);
3255 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3259 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3260 if (UNTAG_Bool(REGB0
)) {
3261 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3262 if (UNTAG_Bool(REGB0
)) {
3264 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3265 if (UNTAG_Bool(REGB1
)) {
3266 REGB1
= TAG_Bool(false);
3269 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3274 REGB1
= TAG_Bool(false);
3277 if (UNTAG_Bool(REGB0
)) {
3278 /* ./syntax//typing.nit:499 */
3279 if (!once_value_3
) {
3280 fra
.me
.REG
[2] = BOX_NativeString("Error: break without value required in this block.");
3281 REGB0
= TAG_Int(50);
3282 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
3283 once_value_3
= fra
.me
.REG
[2];
3284 register_static_object(&once_value_3
);
3285 } else fra
.me
.REG
[2] = once_value_3
;
3286 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3287 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3289 /* ./syntax//typing.nit:500 */
3290 fra
.me
.REG
[2] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3291 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3292 if (UNTAG_Bool(REGB0
)) {
3294 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3295 if (UNTAG_Bool(REGB1
)) {
3296 REGB1
= TAG_Bool(false);
3299 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3303 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3304 if (UNTAG_Bool(REGB0
)) {
3305 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3306 if (UNTAG_Bool(REGB0
)) {
3308 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3309 if (UNTAG_Bool(REGB1
)) {
3310 REGB1
= TAG_Bool(false);
3313 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3317 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3319 REGB1
= TAG_Bool(false);
3322 if (UNTAG_Bool(REGB0
)) {
3323 /* ./syntax//typing.nit:502 */
3324 fra
.me
.REG
[2] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3325 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_AExpr
, ID_AExpr
)) /*cast AExpr*/;
3326 if (UNTAG_Bool(REGB0
)) {
3328 nit_abort("Cast failed", NULL
, LOCATE_typing
, 502);
3330 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3331 if (UNTAG_Bool(REGB0
)) {
3332 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 502);
3334 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3338 /* ./syntax//typing.nit:504 */
3339 REGB0
= TAG_Bool(true);
3340 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3342 stack_frame_head
= fra
.me
.prev
;
3345 void typing___AAbortExpr___after_typing(val_t p0
, val_t p1
){
3346 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3349 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3350 fra
.me
.file
= LOCATE_typing
;
3352 fra
.me
.meth
= LOCATE_typing___AAbortExpr___after_typing
;
3353 fra
.me
.has_broke
= 0;
3354 fra
.me
.REG_size
= 2;
3355 fra
.me
.REG
[0] = NIT_NULL
;
3356 fra
.me
.REG
[1] = NIT_NULL
;
3359 /* ./syntax//typing.nit:511 */
3360 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3361 /* ./syntax//typing.nit:512 */
3362 REGB0
= TAG_Bool(true);
3363 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3364 stack_frame_head
= fra
.me
.prev
;
3367 val_t
typing___AAbsControl___escapable(val_t p0
){
3368 struct {struct stack_frame_t me
;} fra
;
3370 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3371 fra
.me
.file
= LOCATE_typing
;
3373 fra
.me
.meth
= LOCATE_typing___AAbsControl___escapable
;
3374 fra
.me
.has_broke
= 0;
3375 fra
.me
.REG_size
= 1;
3376 fra
.me
.REG
[0] = NIT_NULL
;
3378 /* ./syntax//typing.nit:519 */
3379 fra
.me
.REG
[0] = ATTR_typing___AAbsControl____escapable(fra
.me
.REG
[0]);
3380 stack_frame_head
= fra
.me
.prev
;
3381 return fra
.me
.REG
[0];
3383 void typing___AAbsControl___process_control(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
3384 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3388 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3389 fra
.me
.file
= LOCATE_typing
;
3391 fra
.me
.meth
= LOCATE_typing___AAbsControl___process_control
;
3392 fra
.me
.has_broke
= 0;
3393 fra
.me
.REG_size
= 7;
3394 fra
.me
.REG
[0] = NIT_NULL
;
3395 fra
.me
.REG
[1] = NIT_NULL
;
3396 fra
.me
.REG
[2] = NIT_NULL
;
3397 fra
.me
.REG
[3] = NIT_NULL
;
3398 fra
.me
.REG
[4] = NIT_NULL
;
3399 fra
.me
.REG
[5] = NIT_NULL
;
3400 fra
.me
.REG
[6] = NIT_NULL
;
3406 /* ./syntax//typing.nit:526 */
3407 ATTR_typing___AAbsControl____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3408 /* ./syntax//typing.nit:527 */
3409 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3410 CALL_scope___ScopeContext___push_escapable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3411 /* ./syntax//typing.nit:530 */
3412 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3413 /* ./syntax//typing.nit:531 */
3414 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3415 /* ./syntax//typing.nit:532 */
3416 if (UNTAG_Bool(REGB0
)) {
3417 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3418 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3420 /* ./syntax//typing.nit:535 */
3421 CALL_typing___AAbsControl___process_control_inside(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3422 /* ./syntax//typing.nit:538 */
3423 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3424 REGB1
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3425 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
3426 if (UNTAG_Bool(REGB1
)) {
3427 /* ./syntax//typing.nit:539 */
3428 fra
.me
.REG
[5] = CALL_scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3429 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3430 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3432 /* ./syntax//typing.nit:543 */
3433 fra
.me
.REG
[6] = CALL_scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3434 REGB1
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3435 if (UNTAG_Bool(REGB1
)) {
3436 /* ./syntax//typing.nit:544 */
3437 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3438 /* ./syntax//typing.nit:545 */
3439 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3441 /* ./syntax//typing.nit:547 */
3442 fra
.me
.REG
[2] = CALL_scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3443 fra
.me
.REG
[2] = CALL_flow___FlowContext___merge(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3444 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3446 /* ./syntax//typing.nit:550 */
3447 if (UNTAG_Bool(REGB0
)) {
3448 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3450 /* ./syntax//typing.nit:551 */
3451 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3452 CALL_scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3453 /* ./syntax//typing.nit:552 */
3454 REGB0
= TAG_Bool(true);
3455 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3456 stack_frame_head
= fra
.me
.prev
;
3459 void typing___AAbsControl___process_control_inside(val_t p0
, val_t p1
){
3460 struct {struct stack_frame_t me
;} fra
;
3462 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3463 fra
.me
.file
= LOCATE_typing
;
3465 fra
.me
.meth
= LOCATE_typing___AAbsControl___process_control_inside
;
3466 fra
.me
.has_broke
= 0;
3467 fra
.me
.REG_size
= 0;
3468 /* ./syntax//typing.nit:555 */
3469 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 555);
3470 stack_frame_head
= fra
.me
.prev
;
3473 void typing___ADoExpr___accept_typing(val_t p0
, val_t p1
){
3474 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3477 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3478 fra
.me
.file
= LOCATE_typing
;
3480 fra
.me
.meth
= LOCATE_typing___ADoExpr___accept_typing
;
3481 fra
.me
.has_broke
= 0;
3482 fra
.me
.REG_size
= 4;
3483 fra
.me
.REG
[0] = NIT_NULL
;
3484 fra
.me
.REG
[1] = NIT_NULL
;
3485 fra
.me
.REG
[2] = NIT_NULL
;
3486 fra
.me
.REG
[3] = NIT_NULL
;
3489 /* ./syntax//typing.nit:563 */
3490 fra
.me
.REG
[2] = NEW_BreakOnlyEscapableBlock_scope___BreakOnlyEscapableBlock___init(fra
.me
.REG
[0]);
3491 fra
.me
.REG
[3] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3492 REGB0
= TAG_Bool(false);
3493 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
);
3494 stack_frame_head
= fra
.me
.prev
;
3497 void typing___ADoExpr___process_control_inside(val_t p0
, val_t p1
){
3498 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3500 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3501 fra
.me
.file
= LOCATE_typing
;
3503 fra
.me
.meth
= LOCATE_typing___ADoExpr___process_control_inside
;
3504 fra
.me
.has_broke
= 0;
3505 fra
.me
.REG_size
= 2;
3506 fra
.me
.REG
[0] = NIT_NULL
;
3507 fra
.me
.REG
[1] = NIT_NULL
;
3510 /* ./syntax//typing.nit:568 */
3511 fra
.me
.REG
[0] = CALL_parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3512 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3513 stack_frame_head
= fra
.me
.prev
;
3516 void typing___AIfExpr___accept_typing(val_t p0
, val_t p1
){
3517 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3520 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3521 fra
.me
.file
= LOCATE_typing
;
3523 fra
.me
.meth
= LOCATE_typing___AIfExpr___accept_typing
;
3524 fra
.me
.has_broke
= 0;
3525 fra
.me
.REG_size
= 5;
3526 fra
.me
.REG
[0] = NIT_NULL
;
3527 fra
.me
.REG
[1] = NIT_NULL
;
3528 fra
.me
.REG
[2] = NIT_NULL
;
3529 fra
.me
.REG
[3] = NIT_NULL
;
3530 fra
.me
.REG
[4] = NIT_NULL
;
3533 /* ./syntax//typing.nit:575 */
3534 fra
.me
.REG
[2] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3535 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3536 /* ./syntax//typing.nit:576 */
3537 fra
.me
.REG
[2] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3538 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3539 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3540 /* ./syntax//typing.nit:579 */
3541 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3542 /* ./syntax//typing.nit:580 */
3543 fra
.me
.REG
[2] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3544 CALL_typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3545 /* ./syntax//typing.nit:583 */
3546 fra
.me
.REG
[2] = CALL_parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3547 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3548 /* ./syntax//typing.nit:586 */
3549 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3550 /* ./syntax//typing.nit:589 */
3551 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3552 /* ./syntax//typing.nit:590 */
3553 fra
.me
.REG
[3] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3554 CALL_typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3555 /* ./syntax//typing.nit:593 */
3556 fra
.me
.REG
[3] = CALL_parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3557 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3558 /* ./syntax//typing.nit:596 */
3559 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3560 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3561 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]);
3562 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3563 /* ./syntax//typing.nit:597 */
3564 REGB0
= TAG_Bool(true);
3565 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3566 stack_frame_head
= fra
.me
.prev
;
3569 void typing___AWhileExpr___accept_typing(val_t p0
, val_t p1
){
3570 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3573 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3574 fra
.me
.file
= LOCATE_typing
;
3576 fra
.me
.meth
= LOCATE_typing___AWhileExpr___accept_typing
;
3577 fra
.me
.has_broke
= 0;
3578 fra
.me
.REG_size
= 4;
3579 fra
.me
.REG
[0] = NIT_NULL
;
3580 fra
.me
.REG
[1] = NIT_NULL
;
3581 fra
.me
.REG
[2] = NIT_NULL
;
3582 fra
.me
.REG
[3] = NIT_NULL
;
3585 /* ./syntax//typing.nit:605 */
3586 fra
.me
.REG
[2] = NEW_EscapableBlock_scope___EscapableBlock___init(fra
.me
.REG
[0]);
3587 fra
.me
.REG
[3] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3588 REGB0
= TAG_Bool(true);
3589 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
);
3590 stack_frame_head
= fra
.me
.prev
;
3593 void typing___AWhileExpr___process_control_inside(val_t p0
, val_t p1
){
3594 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3597 static val_t once_value_1
; /* Once value */
3598 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3599 fra
.me
.file
= LOCATE_typing
;
3601 fra
.me
.meth
= LOCATE_typing___AWhileExpr___process_control_inside
;
3602 fra
.me
.has_broke
= 0;
3603 fra
.me
.REG_size
= 5;
3604 fra
.me
.REG
[0] = NIT_NULL
;
3605 fra
.me
.REG
[1] = NIT_NULL
;
3606 fra
.me
.REG
[2] = NIT_NULL
;
3607 fra
.me
.REG
[3] = NIT_NULL
;
3608 fra
.me
.REG
[4] = NIT_NULL
;
3611 /* ./syntax//typing.nit:610 */
3612 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3613 /* ./syntax//typing.nit:613 */
3614 fra
.me
.REG
[3] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3615 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3616 /* ./syntax//typing.nit:614 */
3617 fra
.me
.REG
[3] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3618 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3619 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
3620 /* ./syntax//typing.nit:616 */
3621 fra
.me
.REG
[4] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3622 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_ATrueExpr
, ID_ATrueExpr
)) /*cast ATrueExpr*/;
3623 if (UNTAG_Bool(REGB0
)) {
3624 /* ./syntax//typing.nit:617 */
3625 if (!once_value_1
) {
3626 fra
.me
.REG
[4] = BOX_NativeString("Warning: use 'loop' instead of 'while true do'.");
3627 REGB0
= TAG_Int(47);
3628 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
3629 once_value_1
= fra
.me
.REG
[4];
3630 register_static_object(&once_value_1
);
3631 } else fra
.me
.REG
[4] = once_value_1
;
3632 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3633 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3635 /* ./syntax//typing.nit:621 */
3636 fra
.me
.REG
[4] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3637 CALL_typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3638 /* ./syntax//typing.nit:624 */
3639 fra
.me
.REG
[4] = CALL_parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3640 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3641 /* ./syntax//typing.nit:627 */
3642 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3643 /* ./syntax//typing.nit:628 */
3644 fra
.me
.REG
[2] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3645 CALL_typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3646 /* ./syntax//typing.nit:629 */
3647 fra
.me
.REG
[0] = CALL_typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3648 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3649 if (UNTAG_Bool(REGB0
)) {
3650 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 629);
3652 fra
.me
.REG
[0] = CALL_scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3653 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3654 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3655 stack_frame_head
= fra
.me
.prev
;
3658 void typing___ALoopExpr___accept_typing(val_t p0
, val_t p1
){
3659 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3662 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3663 fra
.me
.file
= LOCATE_typing
;
3665 fra
.me
.meth
= LOCATE_typing___ALoopExpr___accept_typing
;
3666 fra
.me
.has_broke
= 0;
3667 fra
.me
.REG_size
= 4;
3668 fra
.me
.REG
[0] = NIT_NULL
;
3669 fra
.me
.REG
[1] = NIT_NULL
;
3670 fra
.me
.REG
[2] = NIT_NULL
;
3671 fra
.me
.REG
[3] = NIT_NULL
;
3674 /* ./syntax//typing.nit:637 */
3675 fra
.me
.REG
[2] = NEW_EscapableBlock_scope___EscapableBlock___init(fra
.me
.REG
[0]);
3676 fra
.me
.REG
[3] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3677 REGB0
= TAG_Bool(true);
3678 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
);
3679 stack_frame_head
= fra
.me
.prev
;
3682 void typing___ALoopExpr___process_control_inside(val_t p0
, val_t p1
){
3683 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3685 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3686 fra
.me
.file
= LOCATE_typing
;
3688 fra
.me
.meth
= LOCATE_typing___ALoopExpr___process_control_inside
;
3689 fra
.me
.has_broke
= 0;
3690 fra
.me
.REG_size
= 3;
3691 fra
.me
.REG
[0] = NIT_NULL
;
3692 fra
.me
.REG
[1] = NIT_NULL
;
3693 fra
.me
.REG
[2] = NIT_NULL
;
3696 /* ./syntax//typing.nit:643 */
3697 fra
.me
.REG
[2] = CALL_parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3698 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3699 /* ./syntax//typing.nit:646 */
3700 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3701 stack_frame_head
= fra
.me
.prev
;
3704 val_t
typing___AForExpr___variable(val_t p0
){
3705 struct {struct stack_frame_t me
;} fra
;
3708 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3709 fra
.me
.file
= LOCATE_typing
;
3711 fra
.me
.meth
= LOCATE_typing___AForExpr___variable
;
3712 fra
.me
.has_broke
= 0;
3713 fra
.me
.REG_size
= 1;
3714 fra
.me
.REG
[0] = NIT_NULL
;
3716 /* ./syntax//typing.nit:653 */
3717 fra
.me
.REG
[0] = ATTR_typing___AForExpr____variable(fra
.me
.REG
[0]);
3718 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
3719 if (UNTAG_Bool(REGB0
)) {
3721 nit_abort("Cast failed", NULL
, LOCATE_typing
, 653);
3725 stack_frame_head
= fra
.me
.prev
;
3726 return fra
.me
.REG
[0];
3728 void typing___AForExpr___accept_typing(val_t p0
, val_t p1
){
3729 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3732 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3733 fra
.me
.file
= LOCATE_typing
;
3735 fra
.me
.meth
= LOCATE_typing___AForExpr___accept_typing
;
3736 fra
.me
.has_broke
= 0;
3737 fra
.me
.REG_size
= 4;
3738 fra
.me
.REG
[0] = NIT_NULL
;
3739 fra
.me
.REG
[1] = NIT_NULL
;
3740 fra
.me
.REG
[2] = NIT_NULL
;
3741 fra
.me
.REG
[3] = NIT_NULL
;
3744 /* ./syntax//typing.nit:657 */
3745 fra
.me
.REG
[2] = NEW_EscapableBlock_scope___EscapableBlock___init(fra
.me
.REG
[0]);
3746 fra
.me
.REG
[3] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3747 REGB0
= TAG_Bool(true);
3748 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
);
3749 stack_frame_head
= fra
.me
.prev
;
3752 void typing___AForExpr___process_control_inside(val_t p0
, val_t p1
){
3753 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3756 static val_t once_value_2
; /* Once value */
3757 static val_t once_value_3
; /* Once value */
3758 static val_t once_value_4
; /* Once value */
3759 static val_t once_value_5
; /* Once value */
3760 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3761 fra
.me
.file
= LOCATE_typing
;
3763 fra
.me
.meth
= LOCATE_typing___AForExpr___process_control_inside
;
3764 fra
.me
.has_broke
= 0;
3765 fra
.me
.REG_size
= 6;
3766 fra
.me
.REG
[0] = NIT_NULL
;
3767 fra
.me
.REG
[1] = NIT_NULL
;
3768 fra
.me
.REG
[2] = NIT_NULL
;
3769 fra
.me
.REG
[3] = NIT_NULL
;
3770 fra
.me
.REG
[4] = NIT_NULL
;
3771 fra
.me
.REG
[5] = NIT_NULL
;
3774 /* ./syntax//typing.nit:662 */
3775 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3776 CALL_scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3777 /* ./syntax//typing.nit:663 */
3778 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3779 /* ./syntax//typing.nit:666 */
3780 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3781 fra
.me
.REG
[3] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3782 fra
.me
.REG
[4] = CALL_parser_nodes___AForExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3783 fra
.me
.REG
[4] = NEW_AutoVariable_syntax_base___AutoVariable___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3784 /* ./syntax//typing.nit:667 */
3785 ATTR_typing___AForExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
3786 /* ./syntax//typing.nit:668 */
3787 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3788 CALL_scope___ScopeContext___add_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3789 /* ./syntax//typing.nit:671 */
3790 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3791 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3792 /* ./syntax//typing.nit:673 */
3793 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3794 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_collection(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3795 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
3796 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3797 if (UNTAG_Bool(REGB0
)) {
3800 /* ./syntax//typing.nit:674 */
3801 fra
.me
.REG
[5] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3802 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3803 /* ./syntax//typing.nit:677 */
3804 if (!once_value_2
) {
3805 if (!once_value_3
) {
3806 fra
.me
.REG
[3] = BOX_NativeString("iterator");
3808 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3809 once_value_3
= fra
.me
.REG
[3];
3810 register_static_object(&once_value_3
);
3811 } else fra
.me
.REG
[3] = once_value_3
;
3812 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3813 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3814 once_value_2
= fra
.me
.REG
[3];
3815 register_static_object(&once_value_2
);
3816 } else fra
.me
.REG
[3] = once_value_2
;
3817 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3818 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]);
3819 /* ./syntax//typing.nit:678 */
3820 fra
.me
.REG
[5] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3821 fra
.me
.REG
[5] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3822 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
3823 if (UNTAG_Bool(REGB0
)) {
3825 nit_abort("Cast failed", NULL
, LOCATE_typing
, 678);
3827 /* ./syntax//typing.nit:679 */
3828 if (!once_value_4
) {
3829 if (!once_value_5
) {
3830 fra
.me
.REG
[3] = BOX_NativeString("item");
3832 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
3833 once_value_5
= fra
.me
.REG
[3];
3834 register_static_object(&once_value_5
);
3835 } else fra
.me
.REG
[3] = once_value_5
;
3836 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3837 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3838 once_value_4
= fra
.me
.REG
[3];
3839 register_static_object(&once_value_4
);
3840 } else fra
.me
.REG
[3] = once_value_4
;
3841 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3842 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]);
3843 /* ./syntax//typing.nit:680 */
3844 fra
.me
.REG
[5] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3845 fra
.me
.REG
[5] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3846 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
3847 if (UNTAG_Bool(REGB0
)) {
3849 nit_abort("Cast failed", NULL
, LOCATE_typing
, 680);
3851 /* ./syntax//typing.nit:681 */
3852 fra
.me
.REG
[3] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3853 REGB0
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3854 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3855 if (UNTAG_Bool(REGB0
)) {
3856 fra
.me
.REG
[3] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3857 fra
.me
.REG
[5] = fra
.me
.REG
[3];
3859 /* ./syntax//typing.nit:682 */
3860 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3861 /* ./syntax//typing.nit:685 */
3862 fra
.me
.REG
[0] = CALL_parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3863 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3864 /* ./syntax//typing.nit:688 */
3865 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3866 /* ./syntax//typing.nit:689 */
3867 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3868 CALL_scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3870 stack_frame_head
= fra
.me
.prev
;
3873 void typing___AAssertExpr___accept_typing(val_t p0
, val_t p1
){
3874 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3878 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3879 fra
.me
.file
= LOCATE_typing
;
3881 fra
.me
.meth
= LOCATE_typing___AAssertExpr___accept_typing
;
3882 fra
.me
.has_broke
= 0;
3883 fra
.me
.REG_size
= 4;
3884 fra
.me
.REG
[0] = NIT_NULL
;
3885 fra
.me
.REG
[1] = NIT_NULL
;
3886 fra
.me
.REG
[2] = NIT_NULL
;
3887 fra
.me
.REG
[3] = NIT_NULL
;
3890 /* ./syntax//typing.nit:697 */
3891 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3892 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3893 /* ./syntax//typing.nit:698 */
3894 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3895 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3896 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3897 /* ./syntax//typing.nit:701 */
3898 fra
.me
.REG
[3] = CALL_parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3899 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3900 if (UNTAG_Bool(REGB0
)) {
3902 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3903 if (UNTAG_Bool(REGB1
)) {
3904 REGB1
= TAG_Bool(false);
3907 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3911 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3912 if (UNTAG_Bool(REGB0
)) {
3913 /* ./syntax//typing.nit:702 */
3914 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3915 /* ./syntax//typing.nit:703 */
3916 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3917 CALL_typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3918 /* ./syntax//typing.nit:704 */
3919 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3920 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3921 /* ./syntax//typing.nit:705 */
3922 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3924 /* ./syntax//typing.nit:709 */
3925 fra
.me
.REG
[3] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3926 CALL_typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3927 /* ./syntax//typing.nit:710 */
3928 REGB0
= TAG_Bool(true);
3929 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3930 stack_frame_head
= fra
.me
.prev
;
3933 val_t
typing___AVarFormExpr___variable(val_t p0
){
3934 struct {struct stack_frame_t me
;} fra
;
3937 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3938 fra
.me
.file
= LOCATE_typing
;
3940 fra
.me
.meth
= LOCATE_typing___AVarFormExpr___variable
;
3941 fra
.me
.has_broke
= 0;
3942 fra
.me
.REG_size
= 1;
3943 fra
.me
.REG
[0] = NIT_NULL
;
3945 /* ./syntax//typing.nit:716 */
3946 fra
.me
.REG
[0] = ATTR_typing___AVarFormExpr____variable(fra
.me
.REG
[0]);
3947 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
3948 if (UNTAG_Bool(REGB0
)) {
3950 nit_abort("Cast failed", NULL
, LOCATE_typing
, 716);
3954 stack_frame_head
= fra
.me
.prev
;
3955 return fra
.me
.REG
[0];
3957 val_t
typing___AVarExpr___its_variable(val_t p0
){
3958 struct {struct stack_frame_t me
;} fra
;
3960 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3961 fra
.me
.file
= LOCATE_typing
;
3963 fra
.me
.meth
= LOCATE_typing___AVarExpr___its_variable
;
3964 fra
.me
.has_broke
= 0;
3965 fra
.me
.REG_size
= 1;
3966 fra
.me
.REG
[0] = NIT_NULL
;
3968 /* ./syntax//typing.nit:720 */
3969 fra
.me
.REG
[0] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3972 stack_frame_head
= fra
.me
.prev
;
3973 return fra
.me
.REG
[0];
3975 void typing___AVarExpr___after_typing(val_t p0
, val_t p1
){
3976 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3980 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3981 fra
.me
.file
= LOCATE_typing
;
3983 fra
.me
.meth
= LOCATE_typing___AVarExpr___after_typing
;
3984 fra
.me
.has_broke
= 0;
3985 fra
.me
.REG_size
= 4;
3986 fra
.me
.REG
[0] = NIT_NULL
;
3987 fra
.me
.REG
[1] = NIT_NULL
;
3988 fra
.me
.REG
[2] = NIT_NULL
;
3989 fra
.me
.REG
[3] = NIT_NULL
;
3992 /* ./syntax//typing.nit:724 */
3993 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3994 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3995 CALL_flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3996 /* ./syntax//typing.nit:725 */
3997 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3998 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3999 fra
.me
.REG
[3] = CALL_flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4000 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4001 /* ./syntax//typing.nit:726 */
4002 fra
.me
.REG
[3] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
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 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4017 stack_frame_head
= fra
.me
.prev
;
4020 void typing___AVarAssignExpr___after_typing(val_t p0
, val_t p1
){
4021 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4025 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4026 fra
.me
.file
= LOCATE_typing
;
4028 fra
.me
.meth
= LOCATE_typing___AVarAssignExpr___after_typing
;
4029 fra
.me
.has_broke
= 0;
4030 fra
.me
.REG_size
= 5;
4031 fra
.me
.REG
[0] = NIT_NULL
;
4032 fra
.me
.REG
[1] = NIT_NULL
;
4033 fra
.me
.REG
[2] = NIT_NULL
;
4034 fra
.me
.REG
[3] = NIT_NULL
;
4035 fra
.me
.REG
[4] = NIT_NULL
;
4038 /* ./syntax//typing.nit:733 */
4039 fra
.me
.REG
[2] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4040 CALL_typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4041 /* ./syntax//typing.nit:736 */
4042 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4043 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4044 fra
.me
.REG
[3] = CALL_flow___FlowContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4045 /* ./syntax//typing.nit:737 */
4046 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4047 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4048 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4049 if (UNTAG_Bool(REGB0
)) {
4052 /* ./syntax//typing.nit:738 */
4053 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4054 if (UNTAG_Bool(REGB0
)) {
4056 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4057 if (UNTAG_Bool(REGB1
)) {
4058 REGB1
= TAG_Bool(false);
4061 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4065 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4066 if (UNTAG_Bool(REGB0
)) {
4067 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4068 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4069 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4071 REGB1
= TAG_Bool(false);
4074 if (UNTAG_Bool(REGB0
)) {
4077 /* ./syntax//typing.nit:741 */
4078 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4079 fra
.me
.REG
[2] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4080 fra
.me
.REG
[4] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4081 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4082 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]);
4083 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4084 /* ./syntax//typing.nit:743 */
4085 REGB0
= TAG_Bool(true);
4086 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4088 stack_frame_head
= fra
.me
.prev
;
4091 val_t
typing___AReassignFormExpr___do_rvalue_typing(val_t p0
, val_t p1
, val_t p2
){
4092 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4096 static val_t once_value_2
; /* Once value */
4097 static val_t once_value_3
; /* Once value */
4098 static val_t once_value_4
; /* Once value */
4099 static val_t once_value_5
; /* Once value */
4100 static val_t once_value_6
; /* Once value */
4101 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4102 fra
.me
.file
= LOCATE_typing
;
4104 fra
.me
.meth
= LOCATE_typing___AReassignFormExpr___do_rvalue_typing
;
4105 fra
.me
.has_broke
= 0;
4106 fra
.me
.REG_size
= 8;
4107 fra
.me
.REG
[0] = NIT_NULL
;
4108 fra
.me
.REG
[1] = NIT_NULL
;
4109 fra
.me
.REG
[2] = NIT_NULL
;
4110 fra
.me
.REG
[3] = NIT_NULL
;
4111 fra
.me
.REG
[4] = NIT_NULL
;
4112 fra
.me
.REG
[5] = NIT_NULL
;
4113 fra
.me
.REG
[6] = NIT_NULL
;
4114 fra
.me
.REG
[7] = NIT_NULL
;
4118 /* ./syntax//typing.nit:753 */
4119 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4120 if (UNTAG_Bool(REGB0
)) {
4122 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4123 if (UNTAG_Bool(REGB1
)) {
4124 REGB1
= TAG_Bool(false);
4127 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4131 if (UNTAG_Bool(REGB0
)) {
4132 /* ./syntax//typing.nit:754 */
4133 fra
.me
.REG
[3] = NIT_NULL
;
4136 /* ./syntax//typing.nit:756 */
4137 fra
.me
.REG
[4] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4138 fra
.me
.REG
[4] = CALL_typing___AAssignOp___method_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4139 /* ./syntax//typing.nit:757 */
4140 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
4141 if (UNTAG_Bool(REGB0
)) {
4142 /* ./syntax//typing.nit:758 */
4144 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
4145 if (!once_value_2
) {
4146 fra
.me
.REG
[6] = BOX_NativeString("Error: Method '");
4147 REGB0
= TAG_Int(15);
4148 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
4149 once_value_2
= fra
.me
.REG
[6];
4150 register_static_object(&once_value_2
);
4151 } else fra
.me
.REG
[6] = once_value_2
;
4152 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4153 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4154 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4155 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4156 if (!once_value_3
) {
4157 fra
.me
.REG
[6] = BOX_NativeString("' call on 'null'.");
4158 REGB0
= TAG_Int(17);
4159 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
4160 once_value_3
= fra
.me
.REG
[6];
4161 register_static_object(&once_value_3
);
4162 } else fra
.me
.REG
[6] = once_value_3
;
4163 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4164 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4165 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4166 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4167 /* ./syntax//typing.nit:759 */
4168 fra
.me
.REG
[3] = NIT_NULL
;
4171 /* ./syntax//typing.nit:761 */
4172 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4173 if (UNTAG_Bool(REGB0
)) {
4174 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 761);
4176 fra
.me
.REG
[5] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4177 /* ./syntax//typing.nit:762 */
4178 REGB0
= CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4179 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4180 if (UNTAG_Bool(REGB0
)) {
4181 /* ./syntax//typing.nit:763 */
4183 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
4184 if (!once_value_4
) {
4185 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
4186 REGB0
= TAG_Int(15);
4187 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4188 once_value_4
= fra
.me
.REG
[7];
4189 register_static_object(&once_value_4
);
4190 } else fra
.me
.REG
[7] = once_value_4
;
4191 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4192 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4193 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4194 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4195 if (!once_value_5
) {
4196 fra
.me
.REG
[7] = BOX_NativeString("' doesn't exists in ");
4197 REGB0
= TAG_Int(20);
4198 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4199 once_value_5
= fra
.me
.REG
[7];
4200 register_static_object(&once_value_5
);
4201 } else fra
.me
.REG
[7] = once_value_5
;
4202 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4203 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4204 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4205 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4206 if (!once_value_6
) {
4207 fra
.me
.REG
[7] = BOX_NativeString(".");
4209 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4210 once_value_6
= fra
.me
.REG
[7];
4211 register_static_object(&once_value_6
);
4212 } else fra
.me
.REG
[7] = once_value_6
;
4213 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4214 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4215 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4216 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
4217 /* ./syntax//typing.nit:764 */
4218 fra
.me
.REG
[3] = NIT_NULL
;
4221 /* ./syntax//typing.nit:766 */
4222 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4223 /* ./syntax//typing.nit:767 */
4224 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4225 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4226 REGB0
= TAG_Bool(false);
4227 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
);
4228 /* ./syntax//typing.nit:768 */
4229 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4230 /* ./syntax//typing.nit:769 */
4231 ATTR_typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4232 /* ./syntax//typing.nit:770 */
4233 fra
.me
.REG
[0] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4235 fra
.me
.REG
[4] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
4236 fra
.me
.REG
[4] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4237 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
4238 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4239 if (UNTAG_Bool(REGB0
)) {
4240 fra
.me
.REG
[3] = NIT_NULL
;
4243 /* ./syntax//typing.nit:771 */
4244 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4245 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4246 if (UNTAG_Bool(REGB0
)) {
4247 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 771);
4249 fra
.me
.REG
[2] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4250 fra
.me
.REG
[3] = fra
.me
.REG
[2];
4253 stack_frame_head
= fra
.me
.prev
;
4254 return fra
.me
.REG
[3];
4256 val_t
typing___AReassignFormExpr___assign_method(val_t p0
){
4257 struct {struct stack_frame_t me
;} fra
;
4260 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4261 fra
.me
.file
= LOCATE_typing
;
4263 fra
.me
.meth
= LOCATE_typing___AReassignFormExpr___assign_method
;
4264 fra
.me
.has_broke
= 0;
4265 fra
.me
.REG_size
= 1;
4266 fra
.me
.REG
[0] = NIT_NULL
;
4268 /* ./syntax//typing.nit:774 */
4269 fra
.me
.REG
[0] = ATTR_typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]);
4270 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
4271 if (UNTAG_Bool(REGB0
)) {
4273 nit_abort("Cast failed", NULL
, LOCATE_typing
, 774);
4277 stack_frame_head
= fra
.me
.prev
;
4278 return fra
.me
.REG
[0];
4280 void typing___AVarReassignExpr___after_typing(val_t p0
, val_t p1
){
4281 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4285 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4286 fra
.me
.file
= LOCATE_typing
;
4288 fra
.me
.meth
= LOCATE_typing___AVarReassignExpr___after_typing
;
4289 fra
.me
.has_broke
= 0;
4290 fra
.me
.REG_size
= 5;
4291 fra
.me
.REG
[0] = NIT_NULL
;
4292 fra
.me
.REG
[1] = NIT_NULL
;
4293 fra
.me
.REG
[2] = NIT_NULL
;
4294 fra
.me
.REG
[3] = NIT_NULL
;
4295 fra
.me
.REG
[4] = NIT_NULL
;
4298 /* ./syntax//typing.nit:781 */
4299 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4300 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4301 CALL_flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4302 /* ./syntax//typing.nit:782 */
4303 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4304 CALL_typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4305 /* ./syntax//typing.nit:783 */
4306 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4307 fra
.me
.REG
[2] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4308 fra
.me
.REG
[2] = CALL_flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4309 /* ./syntax//typing.nit:784 */
4310 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]);
4311 /* ./syntax//typing.nit:785 */
4312 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4313 if (UNTAG_Bool(REGB0
)) {
4315 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4316 if (UNTAG_Bool(REGB1
)) {
4317 REGB1
= TAG_Bool(false);
4320 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4324 if (UNTAG_Bool(REGB0
)) {
4327 /* ./syntax//typing.nit:788 */
4328 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4329 fra
.me
.REG
[4] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4330 fra
.me
.REG
[4] = CALL_flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4331 /* ./syntax//typing.nit:789 */
4332 fra
.me
.REG
[3] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4333 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4334 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4335 if (UNTAG_Bool(REGB0
)) {
4338 /* ./syntax//typing.nit:790 */
4339 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4340 if (UNTAG_Bool(REGB0
)) {
4342 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4343 if (UNTAG_Bool(REGB1
)) {
4344 REGB1
= TAG_Bool(false);
4347 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4351 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4352 if (UNTAG_Bool(REGB0
)) {
4353 fra
.me
.REG
[3] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4354 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]);
4355 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4357 REGB1
= TAG_Bool(false);
4360 if (UNTAG_Bool(REGB0
)) {
4363 /* ./syntax//typing.nit:793 */
4364 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4365 fra
.me
.REG
[3] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4366 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]);
4367 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4368 /* ./syntax//typing.nit:795 */
4369 REGB0
= TAG_Bool(true);
4370 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4372 stack_frame_head
= fra
.me
.prev
;
4375 val_t
typing___AAssignOp___method_name(val_t p0
){
4376 struct {struct stack_frame_t me
;} fra
;
4378 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4379 fra
.me
.file
= LOCATE_typing
;
4381 fra
.me
.meth
= LOCATE_typing___AAssignOp___method_name
;
4382 fra
.me
.has_broke
= 0;
4383 fra
.me
.REG_size
= 0;
4384 /* ./syntax//typing.nit:800 */
4385 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 800);
4386 stack_frame_head
= fra
.me
.prev
;
4389 val_t
typing___APlusAssignOp___method_name(val_t p0
){
4390 struct {struct stack_frame_t me
;} fra
;
4393 static val_t once_value_1
; /* Once value */
4394 static val_t once_value_2
; /* Once value */
4395 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4396 fra
.me
.file
= LOCATE_typing
;
4398 fra
.me
.meth
= LOCATE_typing___APlusAssignOp___method_name
;
4399 fra
.me
.has_broke
= 0;
4400 fra
.me
.REG_size
= 1;
4401 fra
.me
.REG
[0] = NIT_NULL
;
4403 /* ./syntax//typing.nit:803 */
4404 if (!once_value_1
) {
4405 if (!once_value_2
) {
4406 fra
.me
.REG
[0] = BOX_NativeString("+");
4408 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4409 once_value_2
= fra
.me
.REG
[0];
4410 register_static_object(&once_value_2
);
4411 } else fra
.me
.REG
[0] = once_value_2
;
4412 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4413 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4414 once_value_1
= fra
.me
.REG
[0];
4415 register_static_object(&once_value_1
);
4416 } else fra
.me
.REG
[0] = once_value_1
;
4417 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4420 stack_frame_head
= fra
.me
.prev
;
4421 return fra
.me
.REG
[0];
4423 val_t
typing___AMinusAssignOp___method_name(val_t p0
){
4424 struct {struct stack_frame_t me
;} fra
;
4427 static val_t once_value_1
; /* Once value */
4428 static val_t once_value_2
; /* Once value */
4429 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4430 fra
.me
.file
= LOCATE_typing
;
4432 fra
.me
.meth
= LOCATE_typing___AMinusAssignOp___method_name
;
4433 fra
.me
.has_broke
= 0;
4434 fra
.me
.REG_size
= 1;
4435 fra
.me
.REG
[0] = NIT_NULL
;
4437 /* ./syntax//typing.nit:806 */
4438 if (!once_value_1
) {
4439 if (!once_value_2
) {
4440 fra
.me
.REG
[0] = BOX_NativeString("-");
4442 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
4443 once_value_2
= fra
.me
.REG
[0];
4444 register_static_object(&once_value_2
);
4445 } else fra
.me
.REG
[0] = once_value_2
;
4446 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4447 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4448 once_value_1
= fra
.me
.REG
[0];
4449 register_static_object(&once_value_1
);
4450 } else fra
.me
.REG
[0] = once_value_1
;
4451 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4454 stack_frame_head
= fra
.me
.prev
;
4455 return fra
.me
.REG
[0];
4457 val_t
typing___ASelfExpr___variable(val_t p0
){
4458 struct {struct stack_frame_t me
;} fra
;
4461 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4462 fra
.me
.file
= LOCATE_typing
;
4464 fra
.me
.meth
= LOCATE_typing___ASelfExpr___variable
;
4465 fra
.me
.has_broke
= 0;
4466 fra
.me
.REG_size
= 1;
4467 fra
.me
.REG
[0] = NIT_NULL
;
4469 /* ./syntax//typing.nit:811 */
4470 fra
.me
.REG
[0] = ATTR_typing___ASelfExpr____variable(fra
.me
.REG
[0]);
4471 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
4472 if (UNTAG_Bool(REGB0
)) {
4474 nit_abort("Cast failed", NULL
, LOCATE_typing
, 811);
4478 stack_frame_head
= fra
.me
.prev
;
4479 return fra
.me
.REG
[0];
4481 val_t
typing___ASelfExpr___its_variable(val_t p0
){
4482 struct {struct stack_frame_t me
;} fra
;
4484 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4485 fra
.me
.file
= LOCATE_typing
;
4487 fra
.me
.meth
= LOCATE_typing___ASelfExpr___its_variable
;
4488 fra
.me
.has_broke
= 0;
4489 fra
.me
.REG_size
= 1;
4490 fra
.me
.REG
[0] = NIT_NULL
;
4492 /* ./syntax//typing.nit:813 */
4493 fra
.me
.REG
[0] = CALL_syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4496 stack_frame_head
= fra
.me
.prev
;
4497 return fra
.me
.REG
[0];
4499 void typing___ASelfExpr___after_typing(val_t p0
, val_t p1
){
4500 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4503 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4504 fra
.me
.file
= LOCATE_typing
;
4506 fra
.me
.meth
= LOCATE_typing___ASelfExpr___after_typing
;
4507 fra
.me
.has_broke
= 0;
4508 fra
.me
.REG_size
= 3;
4509 fra
.me
.REG
[0] = NIT_NULL
;
4510 fra
.me
.REG
[1] = NIT_NULL
;
4511 fra
.me
.REG
[2] = NIT_NULL
;
4514 /* ./syntax//typing.nit:817 */
4515 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4516 ATTR_typing___ASelfExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4517 /* ./syntax//typing.nit:818 */
4518 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4519 fra
.me
.REG
[2] = CALL_syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4520 fra
.me
.REG
[2] = CALL_flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4521 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4522 /* ./syntax//typing.nit:819 */
4523 REGB0
= TAG_Bool(true);
4524 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4525 stack_frame_head
= fra
.me
.prev
;
4528 val_t
typing___ASelfExpr___is_self(val_t p0
){
4529 struct {struct stack_frame_t me
;} fra
;
4532 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4533 fra
.me
.file
= LOCATE_typing
;
4535 fra
.me
.meth
= LOCATE_typing___ASelfExpr___is_self
;
4536 fra
.me
.has_broke
= 0;
4537 fra
.me
.REG_size
= 1;
4538 fra
.me
.REG
[0] = NIT_NULL
;
4540 /* ./syntax//typing.nit:822 */
4541 REGB0
= TAG_Bool(true);
4544 stack_frame_head
= fra
.me
.prev
;
4547 val_t
typing___AImplicitSelfExpr___is_implicit_self(val_t p0
){
4548 struct {struct stack_frame_t me
;} fra
;
4551 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4552 fra
.me
.file
= LOCATE_typing
;
4554 fra
.me
.meth
= LOCATE_typing___AImplicitSelfExpr___is_implicit_self
;
4555 fra
.me
.has_broke
= 0;
4556 fra
.me
.REG_size
= 1;
4557 fra
.me
.REG
[0] = NIT_NULL
;
4559 /* ./syntax//typing.nit:826 */
4560 REGB0
= TAG_Bool(true);
4563 stack_frame_head
= fra
.me
.prev
;
4566 void typing___AIfexprExpr___accept_typing(val_t p0
, val_t p1
){
4567 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4571 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4572 fra
.me
.file
= LOCATE_typing
;
4574 fra
.me
.meth
= LOCATE_typing___AIfexprExpr___accept_typing
;
4575 fra
.me
.has_broke
= 0;
4576 fra
.me
.REG_size
= 5;
4577 fra
.me
.REG
[0] = NIT_NULL
;
4578 fra
.me
.REG
[1] = NIT_NULL
;
4579 fra
.me
.REG
[2] = NIT_NULL
;
4580 fra
.me
.REG
[3] = NIT_NULL
;
4581 fra
.me
.REG
[4] = NIT_NULL
;
4584 /* ./syntax//typing.nit:832 */
4585 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4586 /* ./syntax//typing.nit:835 */
4587 fra
.me
.REG
[3] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4588 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4589 /* ./syntax//typing.nit:836 */
4590 fra
.me
.REG
[3] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4591 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4592 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
4593 /* ./syntax//typing.nit:839 */
4594 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4595 CALL_typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4596 /* ./syntax//typing.nit:842 */
4597 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4598 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4599 /* ./syntax//typing.nit:845 */
4600 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4601 /* ./syntax//typing.nit:848 */
4602 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4603 /* ./syntax//typing.nit:849 */
4604 fra
.me
.REG
[2] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4605 CALL_typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4606 /* ./syntax//typing.nit:852 */
4607 fra
.me
.REG
[2] = CALL_parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4608 CALL_typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4609 /* ./syntax//typing.nit:855 */
4610 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4611 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4612 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]);
4613 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4614 /* ./syntax//typing.nit:857 */
4616 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
4617 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4618 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4619 fra
.me
.REG
[4] = CALL_parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4620 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4621 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]);
4622 /* ./syntax//typing.nit:858 */
4623 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4624 if (UNTAG_Bool(REGB0
)) {
4626 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4627 if (UNTAG_Bool(REGB1
)) {
4628 REGB1
= TAG_Bool(false);
4631 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4635 if (UNTAG_Bool(REGB0
)) {
4638 /* ./syntax//typing.nit:860 */
4639 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4640 /* ./syntax//typing.nit:861 */
4641 REGB0
= TAG_Bool(true);
4642 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4644 stack_frame_head
= fra
.me
.prev
;
4647 void typing___ABoolExpr___after_typing(val_t p0
, val_t p1
){
4648 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4651 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4652 fra
.me
.file
= LOCATE_typing
;
4654 fra
.me
.meth
= LOCATE_typing___ABoolExpr___after_typing
;
4655 fra
.me
.has_broke
= 0;
4656 fra
.me
.REG_size
= 2;
4657 fra
.me
.REG
[0] = NIT_NULL
;
4658 fra
.me
.REG
[1] = NIT_NULL
;
4661 /* ./syntax//typing.nit:868 */
4662 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4663 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4664 /* ./syntax//typing.nit:869 */
4665 REGB0
= TAG_Bool(true);
4666 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4667 stack_frame_head
= fra
.me
.prev
;
4670 void typing___AOrExpr___accept_typing(val_t p0
, val_t p1
){
4671 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4675 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4676 fra
.me
.file
= LOCATE_typing
;
4678 fra
.me
.meth
= LOCATE_typing___AOrExpr___accept_typing
;
4679 fra
.me
.has_broke
= 0;
4680 fra
.me
.REG_size
= 5;
4681 fra
.me
.REG
[0] = NIT_NULL
;
4682 fra
.me
.REG
[1] = NIT_NULL
;
4683 fra
.me
.REG
[2] = NIT_NULL
;
4684 fra
.me
.REG
[3] = NIT_NULL
;
4685 fra
.me
.REG
[4] = NIT_NULL
;
4688 /* ./syntax//typing.nit:876 */
4689 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4690 /* ./syntax//typing.nit:877 */
4691 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4692 /* ./syntax//typing.nit:878 */
4693 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4694 /* ./syntax//typing.nit:881 */
4695 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4696 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4697 /* ./syntax//typing.nit:884 */
4698 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4699 CALL_typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4700 /* ./syntax//typing.nit:887 */
4701 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4702 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4703 /* ./syntax//typing.nit:888 */
4704 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4705 fra
.me
.REG
[4] = CALL_typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4706 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4707 if (UNTAG_Bool(REGB0
)) {
4709 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4710 if (UNTAG_Bool(REGB1
)) {
4711 REGB1
= TAG_Bool(false);
4714 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4718 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4719 if (UNTAG_Bool(REGB0
)) {
4720 /* ./syntax//typing.nit:889 */
4721 fra
.me
.REG
[4] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4722 fra
.me
.REG
[4] = CALL_typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4723 ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4725 /* ./syntax//typing.nit:891 */
4726 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4727 ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4729 /* ./syntax//typing.nit:894 */
4730 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4731 /* ./syntax//typing.nit:896 */
4732 fra
.me
.REG
[2] = CALL_parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4733 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4734 /* ./syntax//typing.nit:897 */
4735 fra
.me
.REG
[2] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4736 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4737 /* ./syntax//typing.nit:898 */
4738 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4739 /* ./syntax//typing.nit:899 */
4740 REGB0
= TAG_Bool(true);
4741 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4742 stack_frame_head
= fra
.me
.prev
;
4745 void typing___AAndExpr___accept_typing(val_t p0
, val_t p1
){
4746 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4750 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4751 fra
.me
.file
= LOCATE_typing
;
4753 fra
.me
.meth
= LOCATE_typing___AAndExpr___accept_typing
;
4754 fra
.me
.has_broke
= 0;
4755 fra
.me
.REG_size
= 5;
4756 fra
.me
.REG
[0] = NIT_NULL
;
4757 fra
.me
.REG
[1] = NIT_NULL
;
4758 fra
.me
.REG
[2] = NIT_NULL
;
4759 fra
.me
.REG
[3] = NIT_NULL
;
4760 fra
.me
.REG
[4] = NIT_NULL
;
4763 /* ./syntax//typing.nit:906 */
4764 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4765 /* ./syntax//typing.nit:907 */
4766 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4767 /* ./syntax//typing.nit:910 */
4768 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4769 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4770 /* ./syntax//typing.nit:913 */
4771 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4772 CALL_typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4773 /* ./syntax//typing.nit:916 */
4774 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4775 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4776 /* ./syntax//typing.nit:917 */
4777 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4778 fra
.me
.REG
[4] = CALL_typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4779 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4780 if (UNTAG_Bool(REGB0
)) {
4782 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4783 if (UNTAG_Bool(REGB1
)) {
4784 REGB1
= TAG_Bool(false);
4787 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4791 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4792 if (UNTAG_Bool(REGB0
)) {
4793 /* ./syntax//typing.nit:918 */
4794 fra
.me
.REG
[4] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4795 fra
.me
.REG
[4] = CALL_typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4796 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4798 /* ./syntax//typing.nit:920 */
4799 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4800 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4802 /* ./syntax//typing.nit:923 */
4803 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4804 /* ./syntax//typing.nit:925 */
4805 fra
.me
.REG
[2] = CALL_parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4806 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4807 /* ./syntax//typing.nit:926 */
4808 fra
.me
.REG
[2] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4809 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4810 /* ./syntax//typing.nit:927 */
4811 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4812 /* ./syntax//typing.nit:928 */
4813 REGB0
= TAG_Bool(true);
4814 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4815 stack_frame_head
= fra
.me
.prev
;
4818 void typing___ANotExpr___after_typing(val_t p0
, val_t p1
){
4819 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4822 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4823 fra
.me
.file
= LOCATE_typing
;
4825 fra
.me
.meth
= LOCATE_typing___ANotExpr___after_typing
;
4826 fra
.me
.has_broke
= 0;
4827 fra
.me
.REG_size
= 4;
4828 fra
.me
.REG
[0] = NIT_NULL
;
4829 fra
.me
.REG
[1] = NIT_NULL
;
4830 fra
.me
.REG
[2] = NIT_NULL
;
4831 fra
.me
.REG
[3] = NIT_NULL
;
4834 /* ./syntax//typing.nit:935 */
4835 fra
.me
.REG
[2] = CALL_parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4836 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4837 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4838 /* ./syntax//typing.nit:938 */
4839 fra
.me
.REG
[3] = CALL_parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4840 fra
.me
.REG
[3] = ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[3]);
4841 ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4842 /* ./syntax//typing.nit:939 */
4843 fra
.me
.REG
[3] = CALL_parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4844 fra
.me
.REG
[3] = ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[3]);
4845 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4846 /* ./syntax//typing.nit:941 */
4847 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4848 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4849 /* ./syntax//typing.nit:942 */
4850 REGB0
= TAG_Bool(true);
4851 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4852 stack_frame_head
= fra
.me
.prev
;
4855 void typing___AOrElseExpr___after_typing(val_t p0
, val_t p1
){
4856 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4860 static val_t once_value_1
; /* Once value */
4861 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4862 fra
.me
.file
= LOCATE_typing
;
4864 fra
.me
.meth
= LOCATE_typing___AOrElseExpr___after_typing
;
4865 fra
.me
.has_broke
= 0;
4866 fra
.me
.REG_size
= 7;
4867 fra
.me
.REG
[0] = NIT_NULL
;
4868 fra
.me
.REG
[1] = NIT_NULL
;
4869 fra
.me
.REG
[2] = NIT_NULL
;
4870 fra
.me
.REG
[3] = NIT_NULL
;
4871 fra
.me
.REG
[4] = NIT_NULL
;
4872 fra
.me
.REG
[5] = NIT_NULL
;
4873 fra
.me
.REG
[6] = NIT_NULL
;
4876 /* ./syntax//typing.nit:949 */
4877 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4878 /* ./syntax//typing.nit:952 */
4879 fra
.me
.REG
[3] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4880 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4881 /* ./syntax//typing.nit:953 */
4882 fra
.me
.REG
[3] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4883 CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4884 /* ./syntax//typing.nit:956 */
4885 fra
.me
.REG
[3] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4886 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4887 /* ./syntax//typing.nit:957 */
4888 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4889 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4890 if (UNTAG_Bool(REGB0
)) {
4891 /* ./syntax//typing.nit:958 */
4892 fra
.me
.REG
[4] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4893 if (!once_value_1
) {
4894 fra
.me
.REG
[5] = BOX_NativeString("Warning: left operant of a 'or else' is not a nullable type.");
4895 REGB0
= TAG_Int(60);
4896 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
4897 once_value_1
= fra
.me
.REG
[5];
4898 register_static_object(&once_value_1
);
4899 } else fra
.me
.REG
[5] = once_value_1
;
4900 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4901 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4903 /* ./syntax//typing.nit:960 */
4904 fra
.me
.REG
[5] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4905 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4907 /* ./syntax//typing.nit:964 */
4908 fra
.me
.REG
[5] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4909 fra
.me
.REG
[5] = CALL_typing___AExpr___its_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4910 /* ./syntax//typing.nit:965 */
4911 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4912 if (UNTAG_Bool(REGB0
)) {
4914 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4915 if (UNTAG_Bool(REGB1
)) {
4916 REGB1
= TAG_Bool(false);
4919 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
4923 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4924 if (UNTAG_Bool(REGB0
)) {
4925 /* ./syntax//typing.nit:966 */
4926 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4927 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4928 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]);
4930 /* ./syntax//typing.nit:970 */
4931 fra
.me
.REG
[6] = CALL_parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4932 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
4933 /* ./syntax//typing.nit:971 */
4934 fra
.me
.REG
[6] = CALL_parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4935 CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
4936 /* ./syntax//typing.nit:974 */
4937 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4938 /* ./syntax//typing.nit:977 */
4940 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
4941 fra
.me
.REG
[6] = CALL_parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4942 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
4943 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]);
4944 /* ./syntax//typing.nit:978 */
4945 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4946 if (UNTAG_Bool(REGB0
)) {
4948 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4949 if (UNTAG_Bool(REGB1
)) {
4950 REGB1
= TAG_Bool(false);
4953 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4957 if (UNTAG_Bool(REGB0
)) {
4960 /* ./syntax//typing.nit:980 */
4961 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4962 /* ./syntax//typing.nit:981 */
4963 REGB0
= TAG_Bool(true);
4964 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4966 stack_frame_head
= fra
.me
.prev
;
4969 void typing___AIntExpr___after_typing(val_t p0
, val_t p1
){
4970 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4973 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4974 fra
.me
.file
= LOCATE_typing
;
4976 fra
.me
.meth
= LOCATE_typing___AIntExpr___after_typing
;
4977 fra
.me
.has_broke
= 0;
4978 fra
.me
.REG_size
= 2;
4979 fra
.me
.REG
[0] = NIT_NULL
;
4980 fra
.me
.REG
[1] = NIT_NULL
;
4983 /* ./syntax//typing.nit:988 */
4984 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4985 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
4986 /* ./syntax//typing.nit:989 */
4987 REGB0
= TAG_Bool(true);
4988 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4989 stack_frame_head
= fra
.me
.prev
;
4992 void typing___AFloatExpr___after_typing(val_t p0
, val_t p1
){
4993 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4996 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4997 fra
.me
.file
= LOCATE_typing
;
4999 fra
.me
.meth
= LOCATE_typing___AFloatExpr___after_typing
;
5000 fra
.me
.has_broke
= 0;
5001 fra
.me
.REG_size
= 2;
5002 fra
.me
.REG
[0] = NIT_NULL
;
5003 fra
.me
.REG
[1] = NIT_NULL
;
5006 /* ./syntax//typing.nit:996 */
5007 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_float(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5008 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5009 /* ./syntax//typing.nit:997 */
5010 REGB0
= TAG_Bool(true);
5011 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5012 stack_frame_head
= fra
.me
.prev
;
5015 void typing___ACharExpr___after_typing(val_t p0
, val_t p1
){
5016 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5019 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5020 fra
.me
.file
= LOCATE_typing
;
5022 fra
.me
.meth
= LOCATE_typing___ACharExpr___after_typing
;
5023 fra
.me
.has_broke
= 0;
5024 fra
.me
.REG_size
= 2;
5025 fra
.me
.REG
[0] = NIT_NULL
;
5026 fra
.me
.REG
[1] = NIT_NULL
;
5029 /* ./syntax//typing.nit:1004 */
5030 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_char(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5031 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5032 /* ./syntax//typing.nit:1005 */
5033 REGB0
= TAG_Bool(true);
5034 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5035 stack_frame_head
= fra
.me
.prev
;
5038 void typing___AStringFormExpr___after_typing(val_t p0
, val_t p1
){
5039 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5042 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5043 fra
.me
.file
= LOCATE_typing
;
5045 fra
.me
.meth
= LOCATE_typing___AStringFormExpr___after_typing
;
5046 fra
.me
.has_broke
= 0;
5047 fra
.me
.REG_size
= 2;
5048 fra
.me
.REG
[0] = NIT_NULL
;
5049 fra
.me
.REG
[1] = NIT_NULL
;
5052 /* ./syntax//typing.nit:1012 */
5053 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5054 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5055 /* ./syntax//typing.nit:1013 */
5056 REGB0
= TAG_Bool(true);
5057 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5058 stack_frame_head
= fra
.me
.prev
;
5061 val_t
typing___ASuperstringExpr___atype(val_t p0
){
5062 struct {struct stack_frame_t me
;} fra
;
5065 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5066 fra
.me
.file
= LOCATE_typing
;
5068 fra
.me
.meth
= LOCATE_typing___ASuperstringExpr___atype
;
5069 fra
.me
.has_broke
= 0;
5070 fra
.me
.REG_size
= 1;
5071 fra
.me
.REG
[0] = NIT_NULL
;
5073 /* ./syntax//typing.nit:1018 */
5074 fra
.me
.REG
[0] = ATTR_typing___ASuperstringExpr____atype(fra
.me
.REG
[0]);
5075 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
5076 if (UNTAG_Bool(REGB0
)) {
5078 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1018);
5082 stack_frame_head
= fra
.me
.prev
;
5083 return fra
.me
.REG
[0];
5085 void typing___ASuperstringExpr___after_typing(val_t p0
, val_t p1
){
5086 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5089 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5090 fra
.me
.file
= LOCATE_typing
;
5092 fra
.me
.meth
= LOCATE_typing___ASuperstringExpr___after_typing
;
5093 fra
.me
.has_broke
= 0;
5094 fra
.me
.REG_size
= 5;
5095 fra
.me
.REG
[0] = NIT_NULL
;
5096 fra
.me
.REG
[1] = NIT_NULL
;
5097 fra
.me
.REG
[2] = NIT_NULL
;
5098 fra
.me
.REG
[3] = NIT_NULL
;
5099 fra
.me
.REG
[4] = NIT_NULL
;
5102 /* ./syntax//typing.nit:1022 */
5103 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5104 /* ./syntax//typing.nit:1023 */
5105 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5106 /* ./syntax//typing.nit:1024 */
5107 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5108 /* ./syntax//typing.nit:1025 */
5109 fra
.me
.REG
[4] = CALL_parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5110 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_typing___ASuperstringExpr___after_typing_1
));
5111 /* ./syntax//typing.nit:1026 */
5112 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5113 /* ./syntax//typing.nit:1027 */
5114 ATTR_typing___ASuperstringExpr____atype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5115 /* ./syntax//typing.nit:1028 */
5116 REGB0
= TAG_Bool(true);
5117 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5118 stack_frame_head
= fra
.me
.prev
;
5121 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
){
5122 struct {struct stack_frame_t me
;} fra
;
5125 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5126 fra
.me
.file
= LOCATE_typing
;
5128 fra
.me
.meth
= LOCATE_typing___ASuperstringExpr___after_typing
;
5129 fra
.me
.has_broke
= 0;
5130 fra
.me
.REG_size
= 1;
5131 fra
.me
.REG
[0] = NIT_NULL
;
5132 fra
.me
.closure_ctx
= closctx_param
;
5133 fra
.me
.closure_funs
= CREG
;
5135 CREG
[0] = clos_fun0
;
5136 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], closctx
->REG
[2]);
5137 stack_frame_head
= fra
.me
.prev
;
5140 void typing___ANullExpr___after_typing(val_t p0
, val_t p1
){
5141 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5144 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5145 fra
.me
.file
= LOCATE_typing
;
5147 fra
.me
.meth
= LOCATE_typing___ANullExpr___after_typing
;
5148 fra
.me
.has_broke
= 0;
5149 fra
.me
.REG_size
= 2;
5150 fra
.me
.REG
[0] = NIT_NULL
;
5151 fra
.me
.REG
[1] = NIT_NULL
;
5154 /* ./syntax//typing.nit:1035 */
5155 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5156 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5157 /* ./syntax//typing.nit:1036 */
5158 REGB0
= TAG_Bool(true);
5159 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5160 stack_frame_head
= fra
.me
.prev
;
5163 void typing___AArrayExpr___after_typing(val_t p0
, val_t p1
){
5164 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5168 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5169 fra
.me
.file
= LOCATE_typing
;
5171 fra
.me
.meth
= LOCATE_typing___AArrayExpr___after_typing
;
5172 fra
.me
.has_broke
= 0;
5173 fra
.me
.REG_size
= 3;
5174 fra
.me
.REG
[0] = NIT_NULL
;
5175 fra
.me
.REG
[1] = NIT_NULL
;
5176 fra
.me
.REG
[2] = NIT_NULL
;
5179 /* ./syntax//typing.nit:1043 */
5180 fra
.me
.REG
[2] = CALL_parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5181 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]);
5182 /* ./syntax//typing.nit:1044 */
5183 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5184 if (UNTAG_Bool(REGB0
)) {
5186 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5187 if (UNTAG_Bool(REGB1
)) {
5188 REGB1
= TAG_Bool(false);
5191 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5195 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5196 if (UNTAG_Bool(REGB0
)) {
5197 CALL_typing___AArrayExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
5199 stack_frame_head
= fra
.me
.prev
;
5202 void typing___AArrayExpr___do_typing(val_t p0
, val_t p1
, val_t p2
){
5203 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5206 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5207 fra
.me
.file
= LOCATE_typing
;
5209 fra
.me
.meth
= LOCATE_typing___AArrayExpr___do_typing
;
5210 fra
.me
.has_broke
= 0;
5211 fra
.me
.REG_size
= 3;
5212 fra
.me
.REG
[0] = NIT_NULL
;
5213 fra
.me
.REG
[1] = NIT_NULL
;
5214 fra
.me
.REG
[2] = NIT_NULL
;
5218 /* ./syntax//typing.nit:1049 */
5219 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5220 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5221 /* ./syntax//typing.nit:1050 */
5222 REGB0
= TAG_Bool(true);
5223 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5224 stack_frame_head
= fra
.me
.prev
;
5227 void typing___ARangeExpr___after_typing(val_t p0
, val_t p1
){
5228 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5232 static val_t once_value_2
; /* Once value */
5233 static val_t once_value_3
; /* Once value */
5234 static val_t once_value_4
; /* Once value */
5235 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5236 fra
.me
.file
= LOCATE_typing
;
5238 fra
.me
.meth
= LOCATE_typing___ARangeExpr___after_typing
;
5239 fra
.me
.has_broke
= 0;
5240 fra
.me
.REG_size
= 6;
5241 fra
.me
.REG
[0] = NIT_NULL
;
5242 fra
.me
.REG
[1] = NIT_NULL
;
5243 fra
.me
.REG
[2] = NIT_NULL
;
5244 fra
.me
.REG
[3] = NIT_NULL
;
5245 fra
.me
.REG
[4] = NIT_NULL
;
5246 fra
.me
.REG
[5] = NIT_NULL
;
5249 /* ./syntax//typing.nit:1057 */
5250 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5251 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5252 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5253 if (UNTAG_Bool(REGB0
)) {
5254 REGB0
= TAG_Bool(true);
5256 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5257 REGB1
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5258 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5261 if (UNTAG_Bool(REGB0
)) {
5264 /* ./syntax//typing.nit:1058 */
5265 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5266 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5267 /* ./syntax//typing.nit:1059 */
5268 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5269 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5270 /* ./syntax//typing.nit:1060 */
5271 REGB0
= CALL_static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5272 if (UNTAG_Bool(REGB0
)) {
5273 /* ./syntax//typing.nit:1061 */
5274 fra
.me
.REG
[2] = fra
.me
.REG
[3];
5276 /* ./syntax//typing.nit:1062 */
5277 REGB0
= CALL_static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5278 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5279 if (UNTAG_Bool(REGB0
)) {
5280 /* ./syntax//typing.nit:1063 */
5282 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
5283 if (!once_value_2
) {
5284 fra
.me
.REG
[5] = BOX_NativeString("Type error: ");
5285 REGB0
= TAG_Int(12);
5286 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5287 once_value_2
= fra
.me
.REG
[5];
5288 register_static_object(&once_value_2
);
5289 } else fra
.me
.REG
[5] = once_value_2
;
5290 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5291 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5292 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5293 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5294 if (!once_value_3
) {
5295 fra
.me
.REG
[5] = BOX_NativeString(" incompatible with ");
5296 REGB0
= TAG_Int(19);
5297 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5298 once_value_3
= fra
.me
.REG
[5];
5299 register_static_object(&once_value_3
);
5300 } else fra
.me
.REG
[5] = once_value_3
;
5301 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5302 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5303 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5304 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5305 if (!once_value_4
) {
5306 fra
.me
.REG
[3] = BOX_NativeString(".");
5308 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5309 once_value_4
= fra
.me
.REG
[3];
5310 register_static_object(&once_value_4
);
5311 } else fra
.me
.REG
[3] = once_value_4
;
5312 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5313 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5314 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5315 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
5316 /* ./syntax//typing.nit:1064 */
5320 /* ./syntax//typing.nit:1066 */
5321 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_discrete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5322 /* ./syntax//typing.nit:1067 */
5323 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5324 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5325 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5326 if (UNTAG_Bool(REGB0
)) {
5327 REGB0
= TAG_Bool(true);
5329 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5330 REGB1
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5331 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5334 if (UNTAG_Bool(REGB0
)) {
5337 /* ./syntax//typing.nit:1068 */
5338 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5339 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5340 /* ./syntax//typing.nit:1069 */
5341 REGB0
= TAG_Bool(true);
5342 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5344 stack_frame_head
= fra
.me
.prev
;
5347 val_t
typing___ASuperExpr___init_in_superclass(val_t p0
){
5348 struct {struct stack_frame_t me
;} fra
;
5350 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5351 fra
.me
.file
= LOCATE_typing
;
5353 fra
.me
.meth
= LOCATE_typing___ASuperExpr___init_in_superclass
;
5354 fra
.me
.has_broke
= 0;
5355 fra
.me
.REG_size
= 1;
5356 fra
.me
.REG
[0] = NIT_NULL
;
5358 /* ./syntax//typing.nit:1074 */
5359 fra
.me
.REG
[0] = ATTR_typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]);
5360 stack_frame_head
= fra
.me
.prev
;
5361 return fra
.me
.REG
[0];
5363 val_t
typing___ASuperExpr___compute_raw_arguments(val_t p0
){
5364 struct {struct stack_frame_t me
;} fra
;
5366 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5367 fra
.me
.file
= LOCATE_typing
;
5369 fra
.me
.meth
= LOCATE_typing___ASuperExpr___compute_raw_arguments
;
5370 fra
.me
.has_broke
= 0;
5371 fra
.me
.REG_size
= 1;
5372 fra
.me
.REG
[0] = NIT_NULL
;
5374 /* ./syntax//typing.nit:1075 */
5375 fra
.me
.REG
[0] = CALL_parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5376 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5379 stack_frame_head
= fra
.me
.prev
;
5380 return fra
.me
.REG
[0];
5382 void typing___ASuperExpr___after_typing(val_t p0
, val_t p1
){
5383 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
5388 static val_t once_value_1
; /* Once value */
5389 static val_t once_value_2
; /* Once value */
5390 static val_t once_value_3
; /* Once value */
5391 static val_t once_value_5
; /* Once value */
5392 static val_t once_value_6
; /* Once value */
5393 static val_t once_value_8
; /* Once value */
5394 static val_t once_value_9
; /* Once value */
5395 static val_t once_value_10
; /* Once value */
5396 static val_t once_value_11
; /* Once value */
5397 static val_t once_value_12
; /* Once value */
5398 static val_t once_value_13
; /* Once value */
5399 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5400 fra
.me
.file
= LOCATE_typing
;
5402 fra
.me
.meth
= LOCATE_typing___ASuperExpr___after_typing
;
5403 fra
.me
.has_broke
= 0;
5404 fra
.me
.REG_size
= 9;
5405 fra
.me
.REG
[0] = NIT_NULL
;
5406 fra
.me
.REG
[1] = NIT_NULL
;
5407 fra
.me
.REG
[2] = NIT_NULL
;
5408 fra
.me
.REG
[3] = NIT_NULL
;
5409 fra
.me
.REG
[4] = NIT_NULL
;
5410 fra
.me
.REG
[5] = NIT_NULL
;
5411 fra
.me
.REG
[6] = NIT_NULL
;
5412 fra
.me
.REG
[7] = NIT_NULL
;
5413 fra
.me
.REG
[8] = NIT_NULL
;
5416 /* ./syntax//typing.nit:1078 */
5417 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5418 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5419 fra
.me
.REG
[2] = CALL_partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5420 /* ./syntax//typing.nit:1079 */
5421 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5422 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5423 if (UNTAG_Bool(REGB0
)) {
5424 /* ./syntax//typing.nit:1080 */
5425 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5426 REGB0
= TAG_Bool(true);
5427 CALL_abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
5429 /* ./syntax//typing.nit:1081 */
5430 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5431 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5432 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5433 if (UNTAG_Bool(REGB0
)) {
5434 /* ./syntax//typing.nit:1082 */
5435 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5436 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5437 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5438 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5439 /* ./../lib/standard//collection//array.nit:231 */
5440 fra
.me
.REG
[3] = fra
.me
.REG
[4];
5441 /* ./../lib/standard//collection//array.nit:234 */
5443 /* ./../lib/standard//collection//array.nit:235 */
5444 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5445 if (UNTAG_Bool(REGB1
)) {
5447 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
5449 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5450 /* ./../lib/standard//collection//array.nit:236 */
5451 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[3]);
5452 /* ./../lib/standard//collection//array.nit:237 */
5454 /* ./../lib/standard//collection//array.nit:23 */
5455 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5456 if (UNTAG_Bool(REGB1
)) {
5458 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5460 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5461 /* ./../lib/standard//kernel.nit:212 */
5462 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5463 /* ./../lib/standard//collection//array.nit:237 */
5464 if (UNTAG_Bool(REGB1
)) {
5465 /* ./../lib/standard//collection//array.nit:238 */
5466 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5467 if (UNTAG_Bool(REGB1
)) {
5468 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
5470 /* ./../lib/standard//collection//array.nit:654 */
5471 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
5472 /* ./syntax//typing.nit:1084 */
5473 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5474 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5475 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5476 if (UNTAG_Bool(REGB1
)) {
5477 /* ./syntax//typing.nit:1085 */
5479 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB1
);
5480 if (!once_value_1
) {
5481 fra
.me
.REG
[8] = BOX_NativeString("Error: ");
5483 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
5484 once_value_1
= fra
.me
.REG
[8];
5485 register_static_object(&once_value_1
);
5486 } else fra
.me
.REG
[8] = once_value_1
;
5487 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5488 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5489 fra
.me
.REG
[8] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5490 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
5491 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5492 if (!once_value_2
) {
5493 fra
.me
.REG
[8] = BOX_NativeString("::");
5495 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
5496 once_value_2
= fra
.me
.REG
[8];
5497 register_static_object(&once_value_2
);
5498 } else fra
.me
.REG
[8] = once_value_2
;
5499 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5500 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5501 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5502 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5503 if (!once_value_3
) {
5504 fra
.me
.REG
[8] = BOX_NativeString(" is not a constructor.");
5505 REGB1
= TAG_Int(22);
5506 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
5507 once_value_3
= fra
.me
.REG
[8];
5508 register_static_object(&once_value_3
);
5509 } else fra
.me
.REG
[8] = once_value_3
;
5510 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5511 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5512 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5513 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
5515 /* ./syntax//typing.nit:1087 */
5516 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5517 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5518 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
5519 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5521 /* ./../lib/standard//collection//array.nit:239 */
5523 /* ./../lib/standard//kernel.nit:215 */
5524 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5525 /* ./../lib/standard//collection//array.nit:239 */
5528 /* ./../lib/standard//collection//array.nit:237 */
5533 /* ./syntax//typing.nit:1090 */
5534 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5535 if (UNTAG_Bool(REGB0
)) {
5536 /* ./syntax//typing.nit:1091 */
5538 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
5539 if (!once_value_5
) {
5540 fra
.me
.REG
[3] = BOX_NativeString("Error: No contructor named ");
5541 REGB0
= TAG_Int(27);
5542 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5543 once_value_5
= fra
.me
.REG
[3];
5544 register_static_object(&once_value_5
);
5545 } else fra
.me
.REG
[3] = once_value_5
;
5546 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5547 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5548 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5549 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5550 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5551 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5552 if (!once_value_6
) {
5553 fra
.me
.REG
[3] = BOX_NativeString(" in superclasses.");
5554 REGB0
= TAG_Int(17);
5555 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
5556 once_value_6
= fra
.me
.REG
[3];
5557 register_static_object(&once_value_6
);
5558 } else fra
.me
.REG
[3] = once_value_6
;
5559 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5560 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5561 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5562 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
5563 /* ./syntax//typing.nit:1092 */
5566 /* ./../lib/standard//collection//array.nit:23 */
5567 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5568 if (UNTAG_Bool(REGB0
)) {
5570 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5572 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5573 /* ./syntax//typing.nit:1093 */
5575 /* ./../lib/standard//kernel.nit:214 */
5576 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
5577 /* ./syntax//typing.nit:1093 */
5578 if (UNTAG_Bool(REGB1
)) {
5579 /* ./syntax//typing.nit:1094 */
5581 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB1
);
5582 if (!once_value_8
) {
5583 fra
.me
.REG
[3] = BOX_NativeString("Error: Conflicting contructors named ");
5584 REGB1
= TAG_Int(37);
5585 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5586 once_value_8
= fra
.me
.REG
[3];
5587 register_static_object(&once_value_8
);
5588 } else fra
.me
.REG
[3] = once_value_8
;
5589 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5590 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5591 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5592 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5593 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5594 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5595 if (!once_value_9
) {
5596 fra
.me
.REG
[3] = BOX_NativeString(" in superclasses: ");
5597 REGB1
= TAG_Int(18);
5598 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5599 once_value_9
= fra
.me
.REG
[3];
5600 register_static_object(&once_value_9
);
5601 } else fra
.me
.REG
[3] = once_value_9
;
5602 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5603 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5604 if (!once_value_10
) {
5605 fra
.me
.REG
[3] = BOX_NativeString(", ");
5607 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5608 once_value_10
= fra
.me
.REG
[3];
5609 register_static_object(&once_value_10
);
5610 } else fra
.me
.REG
[3] = once_value_10
;
5611 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5612 fra
.me
.REG
[3] = CALL_string___Collection___join(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5613 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5614 if (!once_value_11
) {
5615 fra
.me
.REG
[3] = BOX_NativeString(".");
5617 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
5618 once_value_11
= fra
.me
.REG
[3];
5619 register_static_object(&once_value_11
);
5620 } else fra
.me
.REG
[3] = once_value_11
;
5621 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5622 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5623 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5624 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
5625 /* ./syntax//typing.nit:1095 */
5629 /* ./syntax//typing.nit:1097 */
5630 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5631 /* ./syntax//typing.nit:1098 */
5632 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
5633 if (UNTAG_Bool(REGB1
)) {
5635 nit_abort("Assert failed", NULL
, LOCATE_typing
, 1098);
5637 /* ./syntax//typing.nit:1099 */
5638 ATTR_typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5639 /* ./syntax//typing.nit:1100 */
5640 CALL_typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
5641 /* ./syntax//typing.nit:1101 */
5642 fra
.me
.REG
[5] = CALL_parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5643 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5645 /* ./../lib/standard//kernel.nit:214 */
5646 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB0
));
5647 /* ./syntax//typing.nit:1101 */
5648 if (UNTAG_Bool(REGB0
)) {
5649 /* ./syntax//typing.nit:1102 */
5650 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5651 fra
.me
.REG
[5] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5652 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
5653 if (UNTAG_Bool(REGB0
)) {
5655 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1102);
5657 REGB0
= TAG_Bool(true);
5658 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
);
5659 /* ./syntax//typing.nit:1103 */
5660 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5661 fra
.me
.REG
[3] = CALL_typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5662 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]);
5665 /* ./syntax//typing.nit:1106 */
5667 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
5668 if (!once_value_12
) {
5669 fra
.me
.REG
[4] = BOX_NativeString("Error: No super method to call for ");
5670 REGB0
= TAG_Int(35);
5671 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5672 once_value_12
= fra
.me
.REG
[4];
5673 register_static_object(&once_value_12
);
5674 } else fra
.me
.REG
[4] = once_value_12
;
5675 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5676 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5677 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5678 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5679 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5680 if (!once_value_13
) {
5681 fra
.me
.REG
[4] = BOX_NativeString(".");
5683 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5684 once_value_13
= fra
.me
.REG
[4];
5685 register_static_object(&once_value_13
);
5686 } else fra
.me
.REG
[4] = once_value_13
;
5687 fra
.me
.REG
[4] = fra
.me
.REG
[4];
5688 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5689 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5690 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
5691 /* ./syntax//typing.nit:1107 */
5695 /* ./syntax//typing.nit:1110 */
5696 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5697 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5698 fra
.me
.REG
[4] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5699 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
5700 if (UNTAG_Bool(REGB0
)) {
5702 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1110);
5704 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5705 if (UNTAG_Bool(REGB0
)) {
5706 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1110);
5708 fra
.me
.REG
[4] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5709 fra
.me
.REG
[4] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5710 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5711 if (UNTAG_Bool(REGB0
)) {
5713 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5714 if (UNTAG_Bool(REGB1
)) {
5715 REGB1
= TAG_Bool(false);
5718 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5722 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5723 if (UNTAG_Bool(REGB0
)) {
5724 /* ./syntax//typing.nit:1111 */
5725 fra
.me
.REG
[4] = NEW_Array_array___Array___init();
5726 /* ./syntax//typing.nit:1112 */
5727 fra
.me
.REG
[3] = NIT_NULL
;
5728 /* ./../lib/standard//collection//array.nit:234 */
5730 /* ./../lib/standard//collection//array.nit:235 */
5731 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5732 if (UNTAG_Bool(REGB1
)) {
5734 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
5736 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5737 /* ./../lib/standard//collection//array.nit:236 */
5738 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[2]);
5739 /* ./../lib/standard//collection//array.nit:237 */
5741 /* ./../lib/standard//collection//array.nit:23 */
5742 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5743 if (UNTAG_Bool(REGB1
)) {
5745 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5747 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5748 /* ./../lib/standard//kernel.nit:212 */
5749 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5750 /* ./../lib/standard//collection//array.nit:237 */
5751 if (UNTAG_Bool(REGB1
)) {
5752 /* ./../lib/standard//collection//array.nit:238 */
5753 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5754 if (UNTAG_Bool(REGB1
)) {
5755 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
5757 /* ./../lib/standard//collection//array.nit:654 */
5758 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
5759 /* ./syntax//typing.nit:1114 */
5760 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
5761 if (UNTAG_Bool(REGB1
)) {
5763 nit_abort("Assert failed", NULL
, LOCATE_typing
, 1114);
5765 /* ./syntax//typing.nit:1115 */
5766 fra
.me
.REG
[7] = CALL_typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5767 fra
.me
.REG
[7] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5768 REGB1
= TAG_Bool((fra
.me
.REG
[7]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[7], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
5769 if (UNTAG_Bool(REGB1
)) {
5771 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1115);
5773 fra
.me
.REG
[7] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5774 fra
.me
.REG
[7] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5775 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5776 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5777 if (UNTAG_Bool(REGB1
)) {
5778 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1115);
5780 fra
.me
.REG
[6] = CALL_static_type___MMType___for_module(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
5781 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5782 fra
.me
.REG
[7] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5783 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5784 if (UNTAG_Bool(REGB1
)) {
5785 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1115);
5787 fra
.me
.REG
[7] = CALL_static_type___MMSignature___recv(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5788 fra
.me
.REG
[7] = CALL_static_type___MMType___adapt_to(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5789 /* ./syntax//typing.nit:1116 */
5790 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
5791 /* ./syntax//typing.nit:1117 */
5792 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5793 if (UNTAG_Bool(REGB1
)) {
5795 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5796 if (UNTAG_Bool(REGB2
)) {
5797 REGB2
= TAG_Bool(false);
5800 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5804 if (UNTAG_Bool(REGB1
)) {
5805 REGB1
= TAG_Bool(true);
5807 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5808 if (UNTAG_Bool(REGB2
)) {
5809 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1117);
5811 REGB2
= CALL_static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
5814 if (UNTAG_Bool(REGB1
)) {
5815 /* ./syntax//typing.nit:1118 */
5816 fra
.me
.REG
[3] = fra
.me
.REG
[7];
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 /* ./../lib/standard//collection//array.nit:234 */
5832 /* ./../lib/standard//collection//array.nit:235 */
5833 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5834 if (UNTAG_Bool(REGB1
)) {
5836 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
5838 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5839 /* ./../lib/standard//collection//array.nit:236 */
5840 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[4]);
5841 /* ./../lib/standard//collection//array.nit:237 */
5843 /* ./../lib/standard//collection//array.nit:23 */
5844 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5845 if (UNTAG_Bool(REGB1
)) {
5847 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
5849 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5850 /* ./../lib/standard//kernel.nit:212 */
5851 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5852 /* ./../lib/standard//collection//array.nit:237 */
5853 if (UNTAG_Bool(REGB1
)) {
5854 /* ./../lib/standard//collection//array.nit:238 */
5855 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5856 if (UNTAG_Bool(REGB1
)) {
5857 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
5859 /* ./../lib/standard//collection//array.nit:654 */
5860 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
5861 /* ./syntax//typing.nit:1122 */
5862 REGB1
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
5863 if (UNTAG_Bool(REGB1
)) {
5865 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1122);
5867 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]);
5868 /* ./../lib/standard//collection//array.nit:239 */
5870 /* ./../lib/standard//kernel.nit:215 */
5871 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5872 /* ./../lib/standard//collection//array.nit:239 */
5875 /* ./../lib/standard//collection//array.nit:237 */
5880 /* ./syntax//typing.nit:1124 */
5881 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5883 /* ./syntax//typing.nit:1126 */
5884 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5885 /* ./syntax//typing.nit:1127 */
5886 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
5887 if (UNTAG_Bool(REGB0
)) {
5889 nit_abort("Assert failed", NULL
, LOCATE_typing
, 1127);
5891 /* ./syntax//typing.nit:1128 */
5892 ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5893 /* ./syntax//typing.nit:1129 */
5894 REGB0
= TAG_Bool(true);
5895 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5897 stack_frame_head
= fra
.me
.prev
;
5900 val_t
typing___AExternCall___target_class_name(val_t p0
){
5901 struct {struct stack_frame_t me
;} fra
;
5903 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5904 fra
.me
.file
= LOCATE_typing
;
5906 fra
.me
.meth
= LOCATE_typing___AExternCall___target_class_name
;
5907 fra
.me
.has_broke
= 0;
5908 fra
.me
.REG_size
= 1;
5909 fra
.me
.REG
[0] = NIT_NULL
;
5911 /* ./syntax//typing.nit:1134 */
5912 fra
.me
.REG
[0] = NIT_NULL
;
5915 stack_frame_head
= fra
.me
.prev
;
5916 return fra
.me
.REG
[0];
5918 val_t
typing___AExternCall___target_method_name(val_t p0
){
5919 struct {struct stack_frame_t me
;} fra
;
5921 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5922 fra
.me
.file
= LOCATE_typing
;
5924 fra
.me
.meth
= LOCATE_typing___AExternCall___target_method_name
;
5925 fra
.me
.has_broke
= 0;
5926 fra
.me
.REG_size
= 0;
5927 /* ./syntax//typing.nit:1135 */
5928 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 1135);
5929 stack_frame_head
= fra
.me
.prev
;
5932 void typing___AExternCall___after_typing(val_t p0
, val_t p1
){
5933 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5937 static val_t once_value_1
; /* Once value */
5938 static val_t once_value_2
; /* Once value */
5939 static val_t once_value_4
; /* Once value */
5940 static val_t once_value_5
; /* Once value */
5941 static val_t once_value_6
; /* Once value */
5942 static val_t once_value_7
; /* Once value */
5943 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5944 fra
.me
.file
= LOCATE_typing
;
5946 fra
.me
.meth
= LOCATE_typing___AExternCall___after_typing
;
5947 fra
.me
.has_broke
= 0;
5948 fra
.me
.REG_size
= 7;
5949 fra
.me
.REG
[0] = NIT_NULL
;
5950 fra
.me
.REG
[1] = NIT_NULL
;
5951 fra
.me
.REG
[2] = NIT_NULL
;
5952 fra
.me
.REG
[3] = NIT_NULL
;
5953 fra
.me
.REG
[4] = NIT_NULL
;
5954 fra
.me
.REG
[5] = NIT_NULL
;
5955 fra
.me
.REG
[6] = NIT_NULL
;
5958 /* ./syntax//typing.nit:1139 */
5959 fra
.me
.REG
[2] = CALL_typing___AExternCall___target_class_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5960 /* ./syntax//typing.nit:1140 */
5961 fra
.me
.REG
[3] = CALL_typing___AExternCall___target_method_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5962 /* ./syntax//typing.nit:1147 */
5963 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5964 if (UNTAG_Bool(REGB0
)) {
5966 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5967 if (UNTAG_Bool(REGB1
)) {
5968 REGB1
= TAG_Bool(false);
5971 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5975 if (UNTAG_Bool(REGB0
)) {
5976 /* ./syntax//typing.nit:1148 */
5977 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5978 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5980 /* ./syntax//typing.nit:1150 */
5981 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5982 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5983 REGB0
= CALL_abstractmetamodel___MMModule___has_global_class_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
5984 if (UNTAG_Bool(REGB0
)) {
5985 /* ./syntax//typing.nit:1151 */
5986 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5987 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5988 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMModule___global_class_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
5989 /* ./syntax//typing.nit:1152 */
5990 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5991 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5992 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMModule_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
5993 fra
.me
.REG
[4] = fra
.me
.REG
[5];
5995 /* ./syntax//typing.nit:1154 */
5997 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
5998 if (!once_value_1
) {
5999 fra
.me
.REG
[6] = BOX_NativeString("Error: class ");
6000 REGB0
= TAG_Int(13);
6001 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
6002 once_value_1
= fra
.me
.REG
[6];
6003 register_static_object(&once_value_1
);
6004 } else fra
.me
.REG
[6] = once_value_1
;
6005 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6006 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6007 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6008 if (UNTAG_Bool(REGB0
)) {
6009 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1154);
6011 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6012 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
6013 if (!once_value_2
) {
6014 fra
.me
.REG
[2] = BOX_NativeString(", not found.");
6015 REGB0
= TAG_Int(12);
6016 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
6017 once_value_2
= fra
.me
.REG
[2];
6018 register_static_object(&once_value_2
);
6019 } else fra
.me
.REG
[2] = once_value_2
;
6020 fra
.me
.REG
[2] = fra
.me
.REG
[2];
6021 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
6022 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6023 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
6024 /* ./syntax//typing.nit:1155 */
6028 /* ./syntax//typing.nit:1159 */
6029 REGB0
= CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6030 if (UNTAG_Bool(REGB0
)) {
6031 /* ./syntax//typing.nit:1160 */
6032 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6033 /* ./syntax//typing.nit:1162 */
6034 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6035 /* ./syntax//typing.nit:1164 */
6036 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
6037 if (UNTAG_Bool(REGB0
)) {
6039 /* ./syntax//typing.nit:1167 */
6041 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
6042 if (!once_value_4
) {
6043 fra
.me
.REG
[6] = BOX_NativeString("Error: property ");
6044 REGB0
= TAG_Int(16);
6045 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
6046 once_value_4
= fra
.me
.REG
[6];
6047 register_static_object(&once_value_4
);
6048 } else fra
.me
.REG
[6] = once_value_4
;
6049 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6050 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
6051 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6052 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
6053 if (!once_value_5
) {
6054 fra
.me
.REG
[6] = BOX_NativeString(" is not a method.");
6055 REGB0
= TAG_Int(17);
6056 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
6057 once_value_5
= fra
.me
.REG
[6];
6058 register_static_object(&once_value_5
);
6059 } else fra
.me
.REG
[6] = once_value_5
;
6060 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6061 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
6062 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6063 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6064 /* ./syntax//typing.nit:1168 */
6068 /* ./syntax//typing.nit:1171 */
6070 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
6071 if (!once_value_6
) {
6072 fra
.me
.REG
[6] = BOX_NativeString("Error: property ");
6073 REGB0
= TAG_Int(16);
6074 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
6075 once_value_6
= fra
.me
.REG
[6];
6076 register_static_object(&once_value_6
);
6077 } else fra
.me
.REG
[6] = once_value_6
;
6078 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6079 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
6080 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6081 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6082 if (!once_value_7
) {
6083 fra
.me
.REG
[3] = BOX_NativeString(" not found in target class.");
6084 REGB0
= TAG_Int(27);
6085 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
6086 once_value_7
= fra
.me
.REG
[3];
6087 register_static_object(&once_value_7
);
6088 } else fra
.me
.REG
[3] = once_value_7
;
6089 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6090 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6091 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6092 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6093 /* ./syntax//typing.nit:1172 */
6096 /* ./syntax//typing.nit:1175 */
6097 fra
.me
.REG
[5] = NEW_MMExplicitImport_abstractmetamodel___MMExplicitImport___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6098 /* ./syntax//typing.nit:1176 */
6099 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6100 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
6101 if (UNTAG_Bool(REGB0
)) {
6103 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1176);
6105 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6106 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6108 stack_frame_head
= fra
.me
.prev
;
6111 val_t
typing___ALocalPropExternCall___target_class_name(val_t p0
){
6112 struct {struct stack_frame_t me
;} fra
;
6114 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6115 fra
.me
.file
= LOCATE_typing
;
6117 fra
.me
.meth
= LOCATE_typing___ALocalPropExternCall___target_class_name
;
6118 fra
.me
.has_broke
= 0;
6119 fra
.me
.REG_size
= 1;
6120 fra
.me
.REG
[0] = NIT_NULL
;
6122 /* ./syntax//typing.nit:1181 */
6123 fra
.me
.REG
[0] = NIT_NULL
;
6126 stack_frame_head
= fra
.me
.prev
;
6127 return fra
.me
.REG
[0];
6129 val_t
typing___ALocalPropExternCall___target_method_name(val_t p0
){
6130 struct {struct stack_frame_t me
;} fra
;
6133 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6134 fra
.me
.file
= LOCATE_typing
;
6136 fra
.me
.meth
= LOCATE_typing___ALocalPropExternCall___target_method_name
;
6137 fra
.me
.has_broke
= 0;
6138 fra
.me
.REG_size
= 1;
6139 fra
.me
.REG
[0] = NIT_NULL
;
6141 /* ./syntax//typing.nit:1182 */
6142 fra
.me
.REG
[0] = CALL_parser_nodes___ALocalPropExternCall___n_methid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6143 fra
.me
.REG
[0] = CALL_syntax_base___AMethid___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6144 REGB0
= TAG_Bool((fra
.me
.REG
[0]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[0], COLOR_Symbol
, ID_Symbol
)) /*cast Symbol*/;
6145 if (UNTAG_Bool(REGB0
)) {
6147 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1182);
6151 stack_frame_head
= fra
.me
.prev
;
6152 return fra
.me
.REG
[0];
6154 void typing___ASuperExternCall___after_typing(val_t p0
, val_t p1
){
6155 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6158 static val_t once_value_1
; /* Once value */
6159 static val_t once_value_2
; /* Once value */
6160 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6161 fra
.me
.file
= LOCATE_typing
;
6163 fra
.me
.meth
= LOCATE_typing___ASuperExternCall___after_typing
;
6164 fra
.me
.has_broke
= 0;
6165 fra
.me
.REG_size
= 4;
6166 fra
.me
.REG
[0] = NIT_NULL
;
6167 fra
.me
.REG
[1] = NIT_NULL
;
6168 fra
.me
.REG
[2] = NIT_NULL
;
6169 fra
.me
.REG
[3] = NIT_NULL
;
6172 /* ./syntax//typing.nit:1188 */
6173 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6174 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6175 fra
.me
.REG
[2] = CALL_partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6176 /* ./syntax//typing.nit:1189 */
6177 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6178 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6179 if (UNTAG_Bool(REGB0
)) {
6180 /* ./syntax//typing.nit:1190 */
6181 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6182 REGB0
= TAG_Bool(true);
6183 CALL_abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
6185 /* ./syntax//typing.nit:1192 */
6187 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
6188 if (!once_value_1
) {
6189 fra
.me
.REG
[3] = BOX_NativeString("Error: No super method to call for ");
6190 REGB0
= TAG_Int(35);
6191 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
6192 once_value_1
= fra
.me
.REG
[3];
6193 register_static_object(&once_value_1
);
6194 } else fra
.me
.REG
[3] = once_value_1
;
6195 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6196 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6197 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6198 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6199 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6200 if (!once_value_2
) {
6201 fra
.me
.REG
[3] = BOX_NativeString(".");
6203 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
6204 once_value_2
= fra
.me
.REG
[3];
6205 register_static_object(&once_value_2
);
6206 } else fra
.me
.REG
[3] = once_value_2
;
6207 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6208 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6209 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6210 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6211 /* ./syntax//typing.nit:1193 */
6215 stack_frame_head
= fra
.me
.prev
;
6218 val_t
typing___AFullPropExternCall___target_class_name(val_t p0
){
6219 struct {struct stack_frame_t me
;} fra
;
6221 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6222 fra
.me
.file
= LOCATE_typing
;
6224 fra
.me
.meth
= LOCATE_typing___AFullPropExternCall___target_class_name
;
6225 fra
.me
.has_broke
= 0;
6226 fra
.me
.REG_size
= 1;
6227 fra
.me
.REG
[0] = NIT_NULL
;
6229 /* ./syntax//typing.nit:1199 */
6230 fra
.me
.REG
[0] = CALL_parser_nodes___AFullPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6231 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6234 stack_frame_head
= fra
.me
.prev
;
6235 return fra
.me
.REG
[0];
6237 val_t
typing___AFullPropExternCall___target_method_name(val_t p0
){
6238 struct {struct stack_frame_t me
;} fra
;
6241 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6242 fra
.me
.file
= LOCATE_typing
;
6244 fra
.me
.meth
= LOCATE_typing___AFullPropExternCall___target_method_name
;
6245 fra
.me
.has_broke
= 0;
6246 fra
.me
.REG_size
= 1;
6247 fra
.me
.REG
[0] = NIT_NULL
;
6249 /* ./syntax//typing.nit:1200 */
6250 fra
.me
.REG
[0] = CALL_parser_nodes___AFullPropExternCall___n_methid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6251 fra
.me
.REG
[0] = CALL_syntax_base___AMethid___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6252 REGB0
= TAG_Bool((fra
.me
.REG
[0]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[0], COLOR_Symbol
, ID_Symbol
)) /*cast Symbol*/;
6253 if (UNTAG_Bool(REGB0
)) {
6255 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1200);
6259 stack_frame_head
= fra
.me
.prev
;
6260 return fra
.me
.REG
[0];
6262 val_t
typing___AInitPropExternCall___target_class_name(val_t p0
){
6263 struct {struct stack_frame_t me
;} fra
;
6265 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6266 fra
.me
.file
= LOCATE_typing
;
6268 fra
.me
.meth
= LOCATE_typing___AInitPropExternCall___target_class_name
;
6269 fra
.me
.has_broke
= 0;
6270 fra
.me
.REG_size
= 1;
6271 fra
.me
.REG
[0] = NIT_NULL
;
6273 /* ./syntax//typing.nit:1204 */
6274 fra
.me
.REG
[0] = CALL_parser_nodes___AInitPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6275 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6278 stack_frame_head
= fra
.me
.prev
;
6279 return fra
.me
.REG
[0];
6281 val_t
typing___AInitPropExternCall___target_method_name(val_t p0
){
6282 struct {struct stack_frame_t me
;} fra
;
6285 static val_t once_value_1
; /* Once value */
6286 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6287 fra
.me
.file
= LOCATE_typing
;
6289 fra
.me
.meth
= LOCATE_typing___AInitPropExternCall___target_method_name
;
6290 fra
.me
.has_broke
= 0;
6291 fra
.me
.REG_size
= 1;
6292 fra
.me
.REG
[0] = NIT_NULL
;
6294 /* ./syntax//typing.nit:1205 */
6295 if (!once_value_1
) {
6296 fra
.me
.REG
[0] = BOX_NativeString("init");
6298 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
6299 once_value_1
= fra
.me
.REG
[0];
6300 register_static_object(&once_value_1
);
6301 } else fra
.me
.REG
[0] = once_value_1
;
6302 fra
.me
.REG
[0] = fra
.me
.REG
[0];
6303 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6306 stack_frame_head
= fra
.me
.prev
;
6307 return fra
.me
.REG
[0];
6309 val_t
typing___ACastExternCall___from_type(val_t p0
){
6310 struct {struct stack_frame_t me
;} fra
;
6312 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6313 fra
.me
.file
= LOCATE_typing
;
6315 fra
.me
.meth
= LOCATE_typing___ACastExternCall___from_type
;
6316 fra
.me
.has_broke
= 0;
6317 fra
.me
.REG_size
= 0;
6318 /* ./syntax//typing.nit:1209 */
6319 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 1209);
6320 stack_frame_head
= fra
.me
.prev
;
6323 val_t
typing___ACastExternCall___to_type(val_t p0
){
6324 struct {struct stack_frame_t me
;} fra
;
6326 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6327 fra
.me
.file
= LOCATE_typing
;
6329 fra
.me
.meth
= LOCATE_typing___ACastExternCall___to_type
;
6330 fra
.me
.has_broke
= 0;
6331 fra
.me
.REG_size
= 0;
6332 /* ./syntax//typing.nit:1210 */
6333 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 1210);
6334 stack_frame_head
= fra
.me
.prev
;
6337 void typing___ACastExternCall___after_typing(val_t p0
, val_t p1
){
6338 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6342 static val_t once_value_1
; /* Once value */
6343 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6344 fra
.me
.file
= LOCATE_typing
;
6346 fra
.me
.meth
= LOCATE_typing___ACastExternCall___after_typing
;
6347 fra
.me
.has_broke
= 0;
6348 fra
.me
.REG_size
= 4;
6349 fra
.me
.REG
[0] = NIT_NULL
;
6350 fra
.me
.REG
[1] = NIT_NULL
;
6351 fra
.me
.REG
[2] = NIT_NULL
;
6352 fra
.me
.REG
[3] = NIT_NULL
;
6355 /* ./syntax//typing.nit:1214 */
6356 fra
.me
.REG
[2] = CALL_typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6357 fra
.me
.REG
[3] = CALL_typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6358 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
6359 if (UNTAG_Bool(REGB0
)) {
6361 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6364 if (UNTAG_Bool(REGB0
)) {
6365 /* ./syntax//typing.nit:1216 */
6366 if (!once_value_1
) {
6367 fra
.me
.REG
[3] = BOX_NativeString("Attepting to cast from and to the same type.");
6368 REGB0
= TAG_Int(44);
6369 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
6370 once_value_1
= fra
.me
.REG
[3];
6371 register_static_object(&once_value_1
);
6372 } else fra
.me
.REG
[3] = once_value_1
;
6373 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6374 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
6376 /* ./syntax//typing.nit:1219 */
6377 fra
.me
.REG
[3] = CALL_typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6378 fra
.me
.REG
[0] = CALL_typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6379 fra
.me
.REG
[0] = NEW_MMImportedCast_static_type___MMImportedCast___init(fra
.me
.REG
[3], fra
.me
.REG
[0]);
6380 /* ./syntax//typing.nit:1220 */
6381 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6382 /* ./syntax//typing.nit:1221 */
6383 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
6384 if (UNTAG_Bool(REGB0
)) {
6386 nit_abort("Assert failed", NULL
, LOCATE_typing
, 1221);
6388 /* ./syntax//typing.nit:1222 */
6389 fra
.me
.REG
[1] = CALL_static_type___MMMethod___explicit_casts(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6390 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6391 stack_frame_head
= fra
.me
.prev
;
6394 val_t
typing___ACastAsExternCall___from_type(val_t p0
){
6395 struct {struct stack_frame_t me
;} fra
;
6397 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6398 fra
.me
.file
= LOCATE_typing
;
6400 fra
.me
.meth
= LOCATE_typing___ACastAsExternCall___from_type
;
6401 fra
.me
.has_broke
= 0;
6402 fra
.me
.REG_size
= 1;
6403 fra
.me
.REG
[0] = NIT_NULL
;
6405 /* ./syntax//typing.nit:1227 */
6406 fra
.me
.REG
[0] = CALL_parser_nodes___ACastAsExternCall___n_from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6407 fra
.me
.REG
[0] = CALL_syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6410 stack_frame_head
= fra
.me
.prev
;
6411 return fra
.me
.REG
[0];
6413 val_t
typing___ACastAsExternCall___to_type(val_t p0
){
6414 struct {struct stack_frame_t me
;} fra
;
6416 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6417 fra
.me
.file
= LOCATE_typing
;
6419 fra
.me
.meth
= LOCATE_typing___ACastAsExternCall___to_type
;
6420 fra
.me
.has_broke
= 0;
6421 fra
.me
.REG_size
= 1;
6422 fra
.me
.REG
[0] = NIT_NULL
;
6424 /* ./syntax//typing.nit:1228 */
6425 fra
.me
.REG
[0] = CALL_parser_nodes___ACastAsExternCall___n_to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6426 fra
.me
.REG
[0] = CALL_syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6429 stack_frame_head
= fra
.me
.prev
;
6430 return fra
.me
.REG
[0];
6432 val_t
typing___AAsNullableExternCall___from_type(val_t p0
){
6433 struct {struct stack_frame_t me
;} fra
;
6435 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6436 fra
.me
.file
= LOCATE_typing
;
6438 fra
.me
.meth
= LOCATE_typing___AAsNullableExternCall___from_type
;
6439 fra
.me
.has_broke
= 0;
6440 fra
.me
.REG_size
= 1;
6441 fra
.me
.REG
[0] = NIT_NULL
;
6443 /* ./syntax//typing.nit:1232 */
6444 fra
.me
.REG
[0] = CALL_parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6445 fra
.me
.REG
[0] = CALL_syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6448 stack_frame_head
= fra
.me
.prev
;
6449 return fra
.me
.REG
[0];
6451 val_t
typing___AAsNullableExternCall___to_type(val_t p0
){
6452 struct {struct stack_frame_t me
;} fra
;
6454 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6455 fra
.me
.file
= LOCATE_typing
;
6457 fra
.me
.meth
= LOCATE_typing___AAsNullableExternCall___to_type
;
6458 fra
.me
.has_broke
= 0;
6459 fra
.me
.REG_size
= 1;
6460 fra
.me
.REG
[0] = NIT_NULL
;
6462 /* ./syntax//typing.nit:1233 */
6463 fra
.me
.REG
[0] = CALL_parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6464 fra
.me
.REG
[0] = CALL_syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6465 fra
.me
.REG
[0] = CALL_static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6468 stack_frame_head
= fra
.me
.prev
;
6469 return fra
.me
.REG
[0];
6471 val_t
typing___AAsNotNullableExternCall___from_type(val_t p0
){
6472 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6475 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6476 fra
.me
.file
= LOCATE_typing
;
6478 fra
.me
.meth
= LOCATE_typing___AAsNotNullableExternCall___from_type
;
6479 fra
.me
.has_broke
= 0;
6480 fra
.me
.REG_size
= 2;
6481 fra
.me
.REG
[0] = NIT_NULL
;
6482 fra
.me
.REG
[1] = NIT_NULL
;
6484 /* ./syntax//typing.nit:1239 */
6485 fra
.me
.REG
[0] = CALL_parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6486 fra
.me
.REG
[0] = CALL_syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6487 /* ./syntax//typing.nit:1240 */
6488 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6489 if (UNTAG_Bool(REGB0
)) {
6490 /* ./syntax//typing.nit:1242 */
6491 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6494 /* ./syntax//typing.nit:1244 */
6495 fra
.me
.REG
[0] = CALL_static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6496 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6500 stack_frame_head
= fra
.me
.prev
;
6501 return fra
.me
.REG
[1];
6503 val_t
typing___AAsNotNullableExternCall___to_type(val_t p0
){
6504 struct {struct stack_frame_t me
;} fra
;
6506 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6507 fra
.me
.file
= LOCATE_typing
;
6509 fra
.me
.meth
= LOCATE_typing___AAsNotNullableExternCall___to_type
;
6510 fra
.me
.has_broke
= 0;
6511 fra
.me
.REG_size
= 1;
6512 fra
.me
.REG
[0] = NIT_NULL
;
6514 /* ./syntax//typing.nit:1247 */
6515 fra
.me
.REG
[0] = CALL_parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6516 fra
.me
.REG
[0] = CALL_syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6517 fra
.me
.REG
[0] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6520 stack_frame_head
= fra
.me
.prev
;
6521 return fra
.me
.REG
[0];
6523 val_t
typing___AAttrFormExpr___prop(val_t p0
){
6524 struct {struct stack_frame_t me
;} fra
;
6527 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6528 fra
.me
.file
= LOCATE_typing
;
6530 fra
.me
.meth
= LOCATE_typing___AAttrFormExpr___prop
;
6531 fra
.me
.has_broke
= 0;
6532 fra
.me
.REG_size
= 1;
6533 fra
.me
.REG
[0] = NIT_NULL
;
6535 /* ./syntax//typing.nit:1251 */
6536 fra
.me
.REG
[0] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6537 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
6538 if (UNTAG_Bool(REGB0
)) {
6540 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1251);
6544 stack_frame_head
= fra
.me
.prev
;
6545 return fra
.me
.REG
[0];
6547 val_t
typing___AAttrFormExpr___attr_type(val_t p0
){
6548 struct {struct stack_frame_t me
;} fra
;
6551 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6552 fra
.me
.file
= LOCATE_typing
;
6554 fra
.me
.meth
= LOCATE_typing___AAttrFormExpr___attr_type
;
6555 fra
.me
.has_broke
= 0;
6556 fra
.me
.REG_size
= 1;
6557 fra
.me
.REG
[0] = NIT_NULL
;
6559 /* ./syntax//typing.nit:1254 */
6560 fra
.me
.REG
[0] = ATTR_typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]);
6561 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
6562 if (UNTAG_Bool(REGB0
)) {
6564 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1254);
6568 stack_frame_head
= fra
.me
.prev
;
6569 return fra
.me
.REG
[0];
6571 void typing___AAttrFormExpr___do_typing(val_t p0
, val_t p1
){
6572 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6576 static val_t once_value_2
; /* Once value */
6577 static val_t once_value_3
; /* Once value */
6578 static val_t once_value_4
; /* Once value */
6579 static val_t once_value_5
; /* Once value */
6580 static val_t once_value_6
; /* Once value */
6581 static val_t once_value_7
; /* Once value */
6582 static val_t once_value_8
; /* Once value */
6583 static val_t once_value_9
; /* Once value */
6584 static val_t once_value_10
; /* Once value */
6585 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6586 fra
.me
.file
= LOCATE_typing
;
6588 fra
.me
.meth
= LOCATE_typing___AAttrFormExpr___do_typing
;
6589 fra
.me
.has_broke
= 0;
6590 fra
.me
.REG_size
= 7;
6591 fra
.me
.REG
[0] = NIT_NULL
;
6592 fra
.me
.REG
[1] = NIT_NULL
;
6593 fra
.me
.REG
[2] = NIT_NULL
;
6594 fra
.me
.REG
[3] = NIT_NULL
;
6595 fra
.me
.REG
[4] = NIT_NULL
;
6596 fra
.me
.REG
[5] = NIT_NULL
;
6597 fra
.me
.REG
[6] = NIT_NULL
;
6600 /* ./syntax//typing.nit:1260 */
6601 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6602 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6603 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6604 if (UNTAG_Bool(REGB0
)) {
6607 /* ./syntax//typing.nit:1261 */
6608 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6609 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6610 /* ./syntax//typing.nit:1262 */
6611 fra
.me
.REG
[3] = CALL_parser_nodes___AAttrFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6612 fra
.me
.REG
[3] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6613 /* ./syntax//typing.nit:1263 */
6614 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
6615 if (UNTAG_Bool(REGB0
)) {
6616 /* ./syntax//typing.nit:1264 */
6618 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
6619 if (!once_value_2
) {
6620 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute '");
6621 REGB0
= TAG_Int(18);
6622 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
6623 once_value_2
= fra
.me
.REG
[5];
6624 register_static_object(&once_value_2
);
6625 } else fra
.me
.REG
[5] = once_value_2
;
6626 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6627 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6628 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6629 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6630 if (!once_value_3
) {
6631 fra
.me
.REG
[5] = BOX_NativeString("' access on 'null'.");
6632 REGB0
= TAG_Int(19);
6633 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
6634 once_value_3
= fra
.me
.REG
[5];
6635 register_static_object(&once_value_3
);
6636 } else fra
.me
.REG
[5] = once_value_3
;
6637 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6638 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6639 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6640 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
6641 /* ./syntax//typing.nit:1265 */
6644 /* ./syntax//typing.nit:1267 */
6645 fra
.me
.REG
[4] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6646 /* ./syntax//typing.nit:1268 */
6647 REGB0
= CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6648 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6649 if (UNTAG_Bool(REGB0
)) {
6650 /* ./syntax//typing.nit:1269 */
6652 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
6653 if (!once_value_4
) {
6654 fra
.me
.REG
[6] = BOX_NativeString("Error: Attribute ");
6655 REGB0
= TAG_Int(17);
6656 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
6657 once_value_4
= fra
.me
.REG
[6];
6658 register_static_object(&once_value_4
);
6659 } else fra
.me
.REG
[6] = once_value_4
;
6660 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6661 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6662 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6663 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6664 if (!once_value_5
) {
6665 fra
.me
.REG
[6] = BOX_NativeString(" doesn't exists in ");
6666 REGB0
= TAG_Int(19);
6667 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
6668 once_value_5
= fra
.me
.REG
[6];
6669 register_static_object(&once_value_5
);
6670 } else fra
.me
.REG
[6] = once_value_5
;
6671 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6672 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6673 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6674 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6675 if (!once_value_6
) {
6676 fra
.me
.REG
[6] = BOX_NativeString(".");
6678 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
6679 once_value_6
= fra
.me
.REG
[6];
6680 register_static_object(&once_value_6
);
6681 } else fra
.me
.REG
[6] = once_value_6
;
6682 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6683 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6684 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6685 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
6686 /* ./syntax//typing.nit:1270 */
6689 /* ./syntax//typing.nit:1272 */
6690 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___select_attribute(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6691 /* ./syntax//typing.nit:1273 */
6692 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6693 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6694 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6695 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6696 REGB0
= CALL_abstractmetamodel___MMModule___visibility_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6698 /* ./../lib/standard//kernel.nit:212 */
6699 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6700 /* ./syntax//typing.nit:1273 */
6701 if (UNTAG_Bool(REGB1
)) {
6702 /* ./syntax//typing.nit:1274 */
6704 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB1
);
6705 if (!once_value_7
) {
6706 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute ");
6707 REGB1
= TAG_Int(17);
6708 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
6709 once_value_7
= fra
.me
.REG
[5];
6710 register_static_object(&once_value_7
);
6711 } else fra
.me
.REG
[5] = once_value_7
;
6712 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6713 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
6714 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6715 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6716 if (!once_value_8
) {
6717 fra
.me
.REG
[3] = BOX_NativeString(" from ");
6719 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
6720 once_value_8
= fra
.me
.REG
[3];
6721 register_static_object(&once_value_8
);
6722 } else fra
.me
.REG
[3] = once_value_8
;
6723 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6724 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6725 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6726 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6727 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6728 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6729 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6730 if (!once_value_9
) {
6731 fra
.me
.REG
[3] = BOX_NativeString(" is invisible in ");
6732 REGB1
= TAG_Int(17);
6733 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
6734 once_value_9
= fra
.me
.REG
[3];
6735 register_static_object(&once_value_9
);
6736 } else fra
.me
.REG
[3] = once_value_9
;
6737 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6738 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6739 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6740 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6741 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6742 if (!once_value_10
) {
6743 fra
.me
.REG
[3] = BOX_NativeString("");
6745 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
6746 once_value_10
= fra
.me
.REG
[3];
6747 register_static_object(&once_value_10
);
6748 } else fra
.me
.REG
[3] = once_value_10
;
6749 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6750 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6751 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6752 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
6754 /* ./syntax//typing.nit:1276 */
6755 ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
6756 /* ./syntax//typing.nit:1277 */
6757 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6758 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6759 /* ./syntax//typing.nit:1278 */
6760 fra
.me
.REG
[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6761 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6762 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6763 if (UNTAG_Bool(REGB1
)) {
6764 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6765 if (UNTAG_Bool(REGB1
)) {
6766 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1278);
6768 fra
.me
.REG
[4] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6769 fra
.me
.REG
[2] = fra
.me
.REG
[4];
6771 /* ./syntax//typing.nit:1279 */
6772 ATTR_typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
6774 stack_frame_head
= fra
.me
.prev
;
6777 void typing___AAttrExpr___after_typing(val_t p0
, val_t p1
){
6778 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6782 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6783 fra
.me
.file
= LOCATE_typing
;
6785 fra
.me
.meth
= LOCATE_typing___AAttrExpr___after_typing
;
6786 fra
.me
.has_broke
= 0;
6787 fra
.me
.REG_size
= 2;
6788 fra
.me
.REG
[0] = NIT_NULL
;
6789 fra
.me
.REG
[1] = NIT_NULL
;
6792 /* ./syntax//typing.nit:1286 */
6793 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6794 /* ./syntax//typing.nit:1287 */
6795 fra
.me
.REG
[1] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6796 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6797 if (UNTAG_Bool(REGB0
)) {
6799 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6800 if (UNTAG_Bool(REGB1
)) {
6801 REGB1
= TAG_Bool(false);
6804 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
6808 if (UNTAG_Bool(REGB0
)) {
6811 /* ./syntax//typing.nit:1288 */
6812 fra
.me
.REG
[1] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6813 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6814 /* ./syntax//typing.nit:1289 */
6815 REGB0
= TAG_Bool(true);
6816 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6818 stack_frame_head
= fra
.me
.prev
;
6821 void typing___AAttrAssignExpr___after_typing(val_t p0
, val_t p1
){
6822 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6826 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6827 fra
.me
.file
= LOCATE_typing
;
6829 fra
.me
.meth
= LOCATE_typing___AAttrAssignExpr___after_typing
;
6830 fra
.me
.has_broke
= 0;
6831 fra
.me
.REG_size
= 4;
6832 fra
.me
.REG
[0] = NIT_NULL
;
6833 fra
.me
.REG
[1] = NIT_NULL
;
6834 fra
.me
.REG
[2] = NIT_NULL
;
6835 fra
.me
.REG
[3] = NIT_NULL
;
6838 /* ./syntax//typing.nit:1296 */
6839 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6840 /* ./syntax//typing.nit:1297 */
6841 fra
.me
.REG
[2] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6842 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6843 if (UNTAG_Bool(REGB0
)) {
6845 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6846 if (UNTAG_Bool(REGB1
)) {
6847 REGB1
= TAG_Bool(false);
6850 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6854 if (UNTAG_Bool(REGB0
)) {
6857 /* ./syntax//typing.nit:1298 */
6858 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6859 fra
.me
.REG
[3] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6860 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6861 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6862 if (UNTAG_Bool(REGB0
)) {
6865 /* ./syntax//typing.nit:1299 */
6866 REGB0
= TAG_Bool(true);
6867 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6869 stack_frame_head
= fra
.me
.prev
;
6872 void typing___AAttrReassignExpr___after_typing(val_t p0
, val_t p1
){
6873 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6877 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6878 fra
.me
.file
= LOCATE_typing
;
6880 fra
.me
.meth
= LOCATE_typing___AAttrReassignExpr___after_typing
;
6881 fra
.me
.has_broke
= 0;
6882 fra
.me
.REG_size
= 4;
6883 fra
.me
.REG
[0] = NIT_NULL
;
6884 fra
.me
.REG
[1] = NIT_NULL
;
6885 fra
.me
.REG
[2] = NIT_NULL
;
6886 fra
.me
.REG
[3] = NIT_NULL
;
6889 /* ./syntax//typing.nit:1306 */
6890 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6891 /* ./syntax//typing.nit:1307 */
6892 fra
.me
.REG
[2] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6893 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6894 if (UNTAG_Bool(REGB0
)) {
6896 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6897 if (UNTAG_Bool(REGB1
)) {
6898 REGB1
= TAG_Bool(false);
6901 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6905 if (UNTAG_Bool(REGB0
)) {
6908 /* ./syntax//typing.nit:1308 */
6909 fra
.me
.REG
[2] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6910 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]);
6911 /* ./syntax//typing.nit:1309 */
6912 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6913 if (UNTAG_Bool(REGB0
)) {
6915 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6916 if (UNTAG_Bool(REGB1
)) {
6917 REGB1
= TAG_Bool(false);
6920 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6924 if (UNTAG_Bool(REGB0
)) {
6927 /* ./syntax//typing.nit:1310 */
6928 fra
.me
.REG
[3] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6929 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6930 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]);
6931 /* ./syntax//typing.nit:1311 */
6932 REGB0
= TAG_Bool(true);
6933 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6935 stack_frame_head
= fra
.me
.prev
;
6938 void typing___AIssetAttrExpr___after_typing(val_t p0
, val_t p1
){
6939 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6943 static val_t once_value_2
; /* Once value */
6944 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6945 fra
.me
.file
= LOCATE_typing
;
6947 fra
.me
.meth
= LOCATE_typing___AIssetAttrExpr___after_typing
;
6948 fra
.me
.has_broke
= 0;
6949 fra
.me
.REG_size
= 3;
6950 fra
.me
.REG
[0] = NIT_NULL
;
6951 fra
.me
.REG
[1] = NIT_NULL
;
6952 fra
.me
.REG
[2] = NIT_NULL
;
6955 /* ./syntax//typing.nit:1318 */
6956 CALL_typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6957 /* ./syntax//typing.nit:1319 */
6958 fra
.me
.REG
[2] = ATTR_typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6959 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6960 if (UNTAG_Bool(REGB0
)) {
6962 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6963 if (UNTAG_Bool(REGB1
)) {
6964 REGB1
= TAG_Bool(false);
6967 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6971 if (UNTAG_Bool(REGB0
)) {
6974 /* ./syntax//typing.nit:1320 */
6975 fra
.me
.REG
[2] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6976 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6977 if (UNTAG_Bool(REGB0
)) {
6978 /* ./syntax//typing.nit:1321 */
6979 if (!once_value_2
) {
6980 fra
.me
.REG
[2] = BOX_NativeString("Error: isset on a nullable attribute.");
6981 REGB0
= TAG_Int(37);
6982 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
6983 once_value_2
= fra
.me
.REG
[2];
6984 register_static_object(&once_value_2
);
6985 } else fra
.me
.REG
[2] = once_value_2
;
6986 fra
.me
.REG
[2] = fra
.me
.REG
[2];
6987 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6989 /* ./syntax//typing.nit:1323 */
6990 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6991 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6992 /* ./syntax//typing.nit:1324 */
6993 REGB0
= TAG_Bool(true);
6994 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6996 stack_frame_head
= fra
.me
.prev
;
6999 val_t
typing___AAbsAbsSendExpr___prop_signature(val_t p0
){
7000 struct {struct stack_frame_t me
;} fra
;
7003 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7004 fra
.me
.file
= LOCATE_typing
;
7006 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___prop_signature
;
7007 fra
.me
.has_broke
= 0;
7008 fra
.me
.REG_size
= 1;
7009 fra
.me
.REG
[0] = NIT_NULL
;
7011 /* ./syntax//typing.nit:1330 */
7012 fra
.me
.REG
[0] = ATTR_typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]);
7013 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
7014 if (UNTAG_Bool(REGB0
)) {
7016 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1330);
7020 stack_frame_head
= fra
.me
.prev
;
7021 return fra
.me
.REG
[0];
7023 val_t
typing___AAbsAbsSendExpr___raw_arguments(val_t p0
){
7024 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7028 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7029 fra
.me
.file
= LOCATE_typing
;
7031 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___raw_arguments
;
7032 fra
.me
.has_broke
= 0;
7033 fra
.me
.REG_size
= 4;
7034 fra
.me
.REG
[0] = NIT_NULL
;
7035 fra
.me
.REG
[1] = NIT_NULL
;
7036 fra
.me
.REG
[2] = NIT_NULL
;
7037 fra
.me
.REG
[3] = NIT_NULL
;
7039 /* ./syntax//typing.nit:1336 */
7040 fra
.me
.REG
[1] = ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]);
7041 /* ./syntax//typing.nit:1337 */
7042 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7043 if (UNTAG_Bool(REGB0
)) {
7045 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7046 if (UNTAG_Bool(REGB1
)) {
7047 REGB1
= TAG_Bool(false);
7050 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7054 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7055 if (UNTAG_Bool(REGB0
)) {
7056 /* ./syntax//typing.nit:1338 */
7057 fra
.me
.REG
[2] = fra
.me
.REG
[1];
7060 /* ./syntax//typing.nit:1340 */
7061 fra
.me
.REG
[3] = CALL_typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7062 fra
.me
.REG
[1] = fra
.me
.REG
[3];
7063 /* ./syntax//typing.nit:1341 */
7064 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7065 if (UNTAG_Bool(REGB0
)) {
7067 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7068 if (UNTAG_Bool(REGB1
)) {
7069 REGB1
= TAG_Bool(false);
7072 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7076 if (UNTAG_Bool(REGB0
)) {
7077 fra
.me
.REG
[3] = NEW_Array_array___Array___init();
7078 fra
.me
.REG
[1] = fra
.me
.REG
[3];
7080 /* ./syntax//typing.nit:1342 */
7081 ATTR_typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7082 /* ./syntax//typing.nit:1343 */
7083 fra
.me
.REG
[2] = fra
.me
.REG
[1];
7087 stack_frame_head
= fra
.me
.prev
;
7088 return fra
.me
.REG
[2];
7090 val_t
typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0
){
7091 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7094 static val_t once_value_1
; /* Once value */
7095 static val_t once_value_2
; /* Once value */
7096 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7097 fra
.me
.file
= LOCATE_typing
;
7099 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___compute_raw_arguments
;
7100 fra
.me
.has_broke
= 0;
7101 fra
.me
.REG_size
= 3;
7102 fra
.me
.REG
[0] = NIT_NULL
;
7103 fra
.me
.REG
[1] = NIT_NULL
;
7104 fra
.me
.REG
[2] = NIT_NULL
;
7106 /* ./syntax//typing.nit:1351 */
7108 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
7109 if (!once_value_1
) {
7110 fra
.me
.REG
[2] = BOX_NativeString("");
7112 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
7113 once_value_1
= fra
.me
.REG
[2];
7114 register_static_object(&once_value_1
);
7115 } else fra
.me
.REG
[2] = once_value_1
;
7116 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7117 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7118 fra
.me
.REG
[2] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7119 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7120 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7121 if (!once_value_2
) {
7122 fra
.me
.REG
[2] = BOX_NativeString(" no compute_raw_arguments");
7123 REGB0
= TAG_Int(25);
7124 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
7125 once_value_2
= fra
.me
.REG
[2];
7126 register_static_object(&once_value_2
);
7127 } else fra
.me
.REG
[2] = once_value_2
;
7128 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7129 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7130 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7131 CALL_file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7132 /* ./syntax//typing.nit:1352 */
7133 fra
.me
.REG
[1] = NIT_NULL
;
7136 stack_frame_head
= fra
.me
.prev
;
7137 return fra
.me
.REG
[1];
7139 val_t
typing___AAbsAbsSendExpr___process_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
7140 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7154 static val_t once_value_1
; /* Once value */
7155 static val_t once_value_2
; /* Once value */
7156 static val_t once_value_3
; /* Once value */
7157 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7158 fra
.me
.file
= LOCATE_typing
;
7160 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___process_signature
;
7161 fra
.me
.has_broke
= 0;
7162 fra
.me
.REG_size
= 7;
7163 fra
.me
.REG
[0] = NIT_NULL
;
7164 fra
.me
.REG
[1] = NIT_NULL
;
7165 fra
.me
.REG
[2] = NIT_NULL
;
7166 fra
.me
.REG
[3] = NIT_NULL
;
7167 fra
.me
.REG
[4] = NIT_NULL
;
7168 fra
.me
.REG
[5] = NIT_NULL
;
7169 fra
.me
.REG
[6] = NIT_NULL
;
7175 /* ./syntax//typing.nit:1358 */
7176 REGB0
= CALL_vararg___MMSignature___vararg_rank(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7177 /* ./syntax//typing.nit:1359 */
7178 REGB1
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7179 /* ./syntax//typing.nit:1361 */
7180 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7181 if (UNTAG_Bool(REGB2
)) {
7183 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7184 if (UNTAG_Bool(REGB3
)) {
7185 REGB3
= TAG_Bool(false);
7188 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7192 if (UNTAG_Bool(REGB2
)) {
7195 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7196 if (UNTAG_Bool(REGB3
)) {
7197 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1361);
7199 /* ./../lib/standard//collection//array.nit:23 */
7200 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7201 if (UNTAG_Bool(REGB3
)) {
7203 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7205 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7206 /* ./syntax//typing.nit:1361 */
7209 /* ./../lib/standard//kernel.nit:214 */
7210 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7211 /* ./syntax//typing.nit:1362 */
7212 if (UNTAG_Bool(REGB3
)) {
7213 REGB3
= TAG_Bool(true);
7215 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
7216 if (UNTAG_Bool(REGB4
)) {
7218 /* ./../lib/standard//kernel.nit:207 */
7219 REGB5
= TAG_Bool((REGB1
)==(REGB2
));
7220 /* ./syntax//typing.nit:1362 */
7223 REGB4
= TAG_Bool(!UNTAG_Bool(REGB4
));
7224 if (UNTAG_Bool(REGB4
)) {
7226 /* ./../lib/standard//kernel.nit:216 */
7227 REGB4
= TAG_Int(-UNTAG_Int(REGB4
));
7228 /* ./syntax//typing.nit:1362 */
7229 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB4
));
7230 if (UNTAG_Bool(REGB5
)) {
7232 /* ./../lib/standard//kernel.nit:207 */
7233 REGB4
= TAG_Bool((REGB0
)==(REGB4
));
7234 /* ./syntax//typing.nit:1362 */
7238 REGB4
= TAG_Bool(false);
7243 if (UNTAG_Bool(REGB3
)) {
7244 /* ./syntax//typing.nit:1363 */
7246 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB3
);
7247 if (!once_value_1
) {
7248 fra
.me
.REG
[6] = BOX_NativeString("Error: arity mismatch; prototype is '");
7249 REGB3
= TAG_Int(37);
7250 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB3
);
7251 once_value_1
= fra
.me
.REG
[6];
7252 register_static_object(&once_value_1
);
7253 } else fra
.me
.REG
[6] = once_value_1
;
7254 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7255 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7256 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7257 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7258 if (!once_value_2
) {
7259 fra
.me
.REG
[3] = BOX_NativeString("");
7261 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB3
);
7262 once_value_2
= fra
.me
.REG
[3];
7263 register_static_object(&once_value_2
);
7264 } else fra
.me
.REG
[3] = once_value_2
;
7265 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7266 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7267 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7268 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7269 if (!once_value_3
) {
7270 fra
.me
.REG
[3] = BOX_NativeString("'.");
7272 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB3
);
7273 once_value_3
= fra
.me
.REG
[3];
7274 register_static_object(&once_value_3
);
7275 } else fra
.me
.REG
[3] = once_value_3
;
7276 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7277 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7278 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7279 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7280 /* ./syntax//typing.nit:1364 */
7281 REGB3
= TAG_Bool(false);
7284 /* ./syntax//typing.nit:1366 */
7286 /* ./syntax//typing.nit:1367 */
7288 /* ./../lib/standard//kernel.nit:327 */
7290 /* ./../lib/standard//kernel.nit:332 */
7292 /* ./../lib/standard//kernel.nit:212 */
7293 REGB7
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
7294 /* ./../lib/standard//kernel.nit:332 */
7295 if (UNTAG_Bool(REGB7
)) {
7296 /* ./syntax//typing.nit:1367 */
7298 /* ./syntax//typing.nit:1369 */
7299 fra
.me
.REG
[5] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB7
);
7300 /* ./syntax//typing.nit:1370 */
7301 REGB8
= TAG_Bool(IS_EQUAL_OO(REGB7
,REGB0
));
7302 if (UNTAG_Bool(REGB8
)) {
7304 /* ./../lib/standard//kernel.nit:207 */
7305 REGB7
= TAG_Bool((REGB7
)==(REGB0
));
7306 /* ./syntax//typing.nit:1370 */
7309 if (UNTAG_Bool(REGB8
)) {
7310 /* ./syntax//typing.nit:1371 */
7312 /* ./../lib/standard//kernel.nit:217 */
7313 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
7314 /* ./../lib/standard//kernel.nit:321 */
7316 /* ./../lib/standard//kernel.nit:211 */
7317 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<=UNTAG_Int(REGB7
));
7318 /* ./../lib/standard//kernel.nit:321 */
7319 if (UNTAG_Bool(REGB9
)) {
7320 /* ./syntax//typing.nit:1372 */
7321 REGB9
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7322 if (UNTAG_Bool(REGB9
)) {
7323 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1372);
7325 /* ./../lib/standard//collection//array.nit:243 */
7326 fra
.me
.REG
[0] = fra
.me
.REG
[4];
7328 /* ./../lib/standard//collection//array.nit:245 */
7329 REGB10
= TAG_Int(0);
7330 /* ./../lib/standard//kernel.nit:213 */
7331 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)>=UNTAG_Int(REGB10
));
7332 /* ./../lib/standard//collection//array.nit:245 */
7333 if (UNTAG_Bool(REGB10
)) {
7334 REGB10
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
7335 if (UNTAG_Bool(REGB10
)) {
7337 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
7339 REGB10
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
7340 /* ./../lib/standard//kernel.nit:212 */
7341 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)<UNTAG_Int(REGB10
));
7343 /* ./../lib/standard//collection//array.nit:245 */
7344 REGB11
= TAG_Bool(false);
7347 if (UNTAG_Bool(REGB10
)) {
7349 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
7351 /* ./../lib/standard//collection//array.nit:246 */
7352 fra
.me
.REG
[0] = ATTR_array___Array____items(fra
.me
.REG
[0]);
7353 REGB10
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
7354 if (UNTAG_Bool(REGB10
)) {
7355 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
7357 /* ./../lib/standard//collection//array.nit:654 */
7358 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB9
)];
7359 /* ./../lib/standard//collection//array.nit:246 */
7362 /* ./syntax//typing.nit:1373 */
7363 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7364 /* ./syntax//typing.nit:1374 */
7366 /* ./../lib/standard//kernel.nit:215 */
7367 REGB9
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB9
));
7368 /* ./syntax//typing.nit:1374 */
7370 /* ./../lib/standard//kernel.nit:323 */
7372 /* ./../lib/standard//kernel.nit:215 */
7373 REGB9
= TAG_Int(UNTAG_Int(REGB8
)+UNTAG_Int(REGB9
));
7374 /* ./../lib/standard//kernel.nit:323 */
7377 /* ./../lib/standard//kernel.nit:321 */
7383 /* ./syntax//typing.nit:1377 */
7384 REGB8
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7385 if (UNTAG_Bool(REGB8
)) {
7386 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1377);
7388 /* ./../lib/standard//collection//array.nit:243 */
7389 fra
.me
.REG
[3] = fra
.me
.REG
[4];
7391 /* ./../lib/standard//collection//array.nit:245 */
7393 /* ./../lib/standard//kernel.nit:213 */
7394 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB7
));
7395 /* ./../lib/standard//collection//array.nit:245 */
7396 if (UNTAG_Bool(REGB7
)) {
7397 REGB7
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
7398 if (UNTAG_Bool(REGB7
)) {
7400 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
7402 REGB7
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
7403 /* ./../lib/standard//kernel.nit:212 */
7404 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB7
));
7406 /* ./../lib/standard//collection//array.nit:245 */
7407 REGB9
= TAG_Bool(false);
7410 if (UNTAG_Bool(REGB7
)) {
7412 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
7414 /* ./../lib/standard//collection//array.nit:246 */
7415 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
7416 REGB7
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7417 if (UNTAG_Bool(REGB7
)) {
7418 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
7420 /* ./../lib/standard//collection//array.nit:654 */
7421 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB8
)];
7422 /* ./../lib/standard//collection//array.nit:246 */
7425 /* ./syntax//typing.nit:1377 */
7426 fra
.me
.REG
[0] = fra
.me
.REG
[3];
7427 /* ./syntax//typing.nit:1378 */
7428 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7429 /* ./syntax//typing.nit:1379 */
7431 /* ./../lib/standard//kernel.nit:215 */
7432 REGB8
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB8
));
7433 /* ./syntax//typing.nit:1379 */
7436 /* ./../lib/standard//kernel.nit:334 */
7438 /* ./../lib/standard//kernel.nit:215 */
7439 REGB8
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB8
));
7440 /* ./../lib/standard//kernel.nit:334 */
7443 /* ./../lib/standard//kernel.nit:332 */
7448 /* ./syntax//typing.nit:1382 */
7449 REGB4
= TAG_Bool(true);
7453 stack_frame_head
= fra
.me
.prev
;
7456 val_t
typing___AAbsAbsSendExpr___process_closures(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
7457 struct {struct stack_frame_t me
; val_t MORE_REG
[16];} fra
;
7465 static val_t once_value_2
; /* Once value */
7466 static val_t once_value_3
; /* Once value */
7467 static val_t once_value_4
; /* Once value */
7468 static val_t once_value_5
; /* Once value */
7469 static val_t once_value_6
; /* Once value */
7470 static val_t once_value_7
; /* Once value */
7471 static val_t once_value_8
; /* Once value */
7472 static val_t once_value_11
; /* Once value */
7473 static val_t once_value_12
; /* Once value */
7474 static val_t once_value_13
; /* Once value */
7475 static val_t once_value_14
; /* Once value */
7476 static val_t once_value_15
; /* Once value */
7477 static val_t once_value_16
; /* Once value */
7478 static val_t once_value_18
; /* Once value */
7479 static val_t once_value_19
; /* Once value */
7480 static val_t once_value_20
; /* Once value */
7481 static val_t once_value_21
; /* Once value */
7482 static val_t once_value_22
; /* Once value */
7483 static val_t once_value_24
; /* Once value */
7484 static val_t once_value_25
; /* Once value */
7485 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7486 fra
.me
.file
= LOCATE_typing
;
7488 fra
.me
.meth
= LOCATE_typing___AAbsAbsSendExpr___process_closures
;
7489 fra
.me
.has_broke
= 0;
7490 fra
.me
.REG_size
= 17;
7491 fra
.me
.REG
[0] = NIT_NULL
;
7492 fra
.me
.REG
[1] = NIT_NULL
;
7493 fra
.me
.REG
[2] = NIT_NULL
;
7494 fra
.me
.REG
[3] = NIT_NULL
;
7495 fra
.me
.REG
[4] = NIT_NULL
;
7496 fra
.me
.REG
[5] = NIT_NULL
;
7497 fra
.me
.REG
[6] = NIT_NULL
;
7498 fra
.me
.REG
[7] = NIT_NULL
;
7499 fra
.me
.REG
[8] = NIT_NULL
;
7500 fra
.me
.REG
[9] = NIT_NULL
;
7501 fra
.me
.REG
[10] = NIT_NULL
;
7502 fra
.me
.REG
[11] = NIT_NULL
;
7503 fra
.me
.REG
[12] = NIT_NULL
;
7504 fra
.me
.REG
[13] = NIT_NULL
;
7505 fra
.me
.REG
[14] = NIT_NULL
;
7506 fra
.me
.REG
[15] = NIT_NULL
;
7507 fra
.me
.REG
[16] = NIT_NULL
;
7513 /* ./syntax//typing.nit:1388 */
7514 fra
.me
.REG
[5] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7515 /* ./syntax//typing.nit:1389 */
7516 fra
.me
.REG
[6] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7517 /* ./syntax//typing.nit:1390 */
7519 /* ./../lib/standard//collection//array.nit:231 */
7520 fra
.me
.REG
[7] = fra
.me
.REG
[6];
7521 /* ./../lib/standard//collection//array.nit:234 */
7523 /* ./../lib/standard//collection//array.nit:235 */
7524 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
7525 if (UNTAG_Bool(REGB2
)) {
7527 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
7529 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
7530 /* ./../lib/standard//collection//array.nit:236 */
7531 fra
.me
.REG
[8] = ATTR_array___Array____items(fra
.me
.REG
[7]);
7532 /* ./../lib/standard//collection//array.nit:237 */
7534 /* ./../lib/standard//collection//array.nit:23 */
7535 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
7536 if (UNTAG_Bool(REGB2
)) {
7538 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7540 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
7541 /* ./../lib/standard//kernel.nit:212 */
7542 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
7543 /* ./../lib/standard//collection//array.nit:237 */
7544 if (UNTAG_Bool(REGB2
)) {
7545 /* ./../lib/standard//collection//array.nit:238 */
7546 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
7547 if (UNTAG_Bool(REGB2
)) {
7548 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
7550 /* ./../lib/standard//collection//array.nit:654 */
7551 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
7552 /* ./syntax//typing.nit:1392 */
7553 REGB2
= CALL_static_type___MMClosure___is_optional(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
7554 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7555 if (UNTAG_Bool(REGB2
)) {
7557 /* ./../lib/standard//kernel.nit:215 */
7558 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
7559 /* ./syntax//typing.nit:1392 */
7562 /* ./../lib/standard//collection//array.nit:239 */
7564 /* ./../lib/standard//kernel.nit:215 */
7565 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
7566 /* ./../lib/standard//collection//array.nit:239 */
7569 /* ./../lib/standard//collection//array.nit:237 */
7574 /* ./syntax//typing.nit:1394 */
7576 /* ./syntax//typing.nit:1395 */
7577 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7578 if (UNTAG_Bool(REGB2
)) {
7580 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7581 if (UNTAG_Bool(REGB3
)) {
7582 REGB3
= TAG_Bool(false);
7585 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7589 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7590 if (UNTAG_Bool(REGB2
)) {
7591 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7592 if (UNTAG_Bool(REGB2
)) {
7593 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1395);
7595 /* ./../lib/standard//collection//array.nit:23 */
7596 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7597 if (UNTAG_Bool(REGB2
)) {
7599 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7601 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7602 /* ./syntax//typing.nit:1395 */
7605 /* ./../lib/standard//collection//array.nit:23 */
7606 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7607 if (UNTAG_Bool(REGB2
)) {
7609 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7611 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7612 /* ./syntax//typing.nit:1396 */
7614 /* ./../lib/standard//kernel.nit:214 */
7615 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
7616 /* ./syntax//typing.nit:1396 */
7617 if (UNTAG_Bool(REGB3
)) {
7618 /* ./syntax//typing.nit:1397 */
7620 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
7621 if (UNTAG_Bool(REGB2
)) {
7623 /* ./../lib/standard//kernel.nit:207 */
7624 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
7625 /* ./syntax//typing.nit:1397 */
7628 if (UNTAG_Bool(REGB2
)) {
7630 /* ./../lib/standard//kernel.nit:214 */
7631 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB2
));
7633 /* ./syntax//typing.nit:1397 */
7634 REGB3
= TAG_Bool(false);
7637 if (UNTAG_Bool(REGB2
)) {
7638 /* ./syntax//typing.nit:1398 */
7640 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB2
);
7641 if (!once_value_2
) {
7642 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
7644 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7645 once_value_2
= fra
.me
.REG
[7];
7646 register_static_object(&once_value_2
);
7647 } else fra
.me
.REG
[7] = once_value_2
;
7648 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7649 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7650 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7651 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7652 if (!once_value_3
) {
7653 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
7654 REGB2
= TAG_Int(10);
7655 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7656 once_value_3
= fra
.me
.REG
[7];
7657 register_static_object(&once_value_3
);
7658 } else fra
.me
.REG
[7] = once_value_3
;
7659 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7660 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7661 /* ./../lib/standard//collection//array.nit:23 */
7662 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7663 if (UNTAG_Bool(REGB2
)) {
7665 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7667 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7668 /* ./syntax//typing.nit:1398 */
7669 fra
.me
.REG
[7] = CALL_string___Object___to_s(REGB2
)(REGB2
);
7670 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7671 if (!once_value_4
) {
7672 fra
.me
.REG
[7] = BOX_NativeString(" blocks.");
7674 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7675 once_value_4
= fra
.me
.REG
[7];
7676 register_static_object(&once_value_4
);
7677 } else fra
.me
.REG
[7] = once_value_4
;
7678 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7679 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7680 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
7681 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
7683 /* ./../lib/standard//collection//array.nit:23 */
7684 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7685 if (UNTAG_Bool(REGB2
)) {
7687 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7689 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7690 /* ./../lib/standard//kernel.nit:214 */
7691 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7692 /* ./syntax//typing.nit:1399 */
7693 if (UNTAG_Bool(REGB2
)) {
7694 REGB2
= TAG_Bool(true);
7696 /* ./../lib/standard//kernel.nit:212 */
7697 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
7698 /* ./syntax//typing.nit:1399 */
7701 if (UNTAG_Bool(REGB2
)) {
7702 /* ./syntax//typing.nit:1400 */
7704 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB2
);
7705 if (!once_value_5
) {
7706 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
7708 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7709 once_value_5
= fra
.me
.REG
[7];
7710 register_static_object(&once_value_5
);
7711 } else fra
.me
.REG
[7] = once_value_5
;
7712 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7713 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7714 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7715 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7716 if (!once_value_6
) {
7717 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
7718 REGB2
= TAG_Int(10);
7719 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7720 once_value_6
= fra
.me
.REG
[7];
7721 register_static_object(&once_value_6
);
7722 } else fra
.me
.REG
[7] = once_value_6
;
7723 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7724 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7725 /* ./../lib/standard//collection//array.nit:23 */
7726 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7727 if (UNTAG_Bool(REGB2
)) {
7729 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7731 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7732 /* ./syntax//typing.nit:1400 */
7733 fra
.me
.REG
[7] = CALL_string___Object___to_s(REGB2
)(REGB2
);
7734 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7735 if (!once_value_7
) {
7736 fra
.me
.REG
[7] = BOX_NativeString(" blocks, ");
7738 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7739 once_value_7
= fra
.me
.REG
[7];
7740 register_static_object(&once_value_7
);
7741 } else fra
.me
.REG
[7] = once_value_7
;
7742 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7743 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7744 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7745 if (UNTAG_Bool(REGB2
)) {
7746 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1400);
7748 /* ./../lib/standard//collection//array.nit:23 */
7749 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7750 if (UNTAG_Bool(REGB2
)) {
7752 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7754 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7755 /* ./syntax//typing.nit:1400 */
7756 fra
.me
.REG
[7] = CALL_string___Object___to_s(REGB2
)(REGB2
);
7757 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7758 if (!once_value_8
) {
7759 fra
.me
.REG
[7] = BOX_NativeString(" found.");
7761 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB2
);
7762 once_value_8
= fra
.me
.REG
[7];
7763 register_static_object(&once_value_8
);
7764 } else fra
.me
.REG
[7] = once_value_8
;
7765 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7766 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7767 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
7768 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
7770 /* ./syntax//typing.nit:1403 */
7771 fra
.me
.REG
[8] = NIT_NULL
;
7772 /* ./syntax//typing.nit:1404 */
7773 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7774 if (UNTAG_Bool(REGB2
)) {
7776 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7777 if (UNTAG_Bool(REGB0
)) {
7778 REGB0
= TAG_Bool(false);
7781 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
7785 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7786 if (UNTAG_Bool(REGB2
)) {
7787 fra
.me
.REG
[7] = NEW_Array_array___Array___init();
7788 fra
.me
.REG
[8] = fra
.me
.REG
[7];
7790 /* ./syntax//typing.nit:1407 */
7792 /* ./../lib/standard//kernel.nit:214 */
7793 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7794 /* ./syntax//typing.nit:1407 */
7795 if (UNTAG_Bool(REGB2
)) {
7797 /* ./../lib/standard//kernel.nit:217 */
7798 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
7799 /* ./syntax//typing.nit:1407 */
7800 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7801 if (UNTAG_Bool(REGB0
)) {
7802 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1407);
7804 /* ./../lib/standard//collection//array.nit:243 */
7805 fra
.me
.REG
[7] = fra
.me
.REG
[4];
7806 /* ./../lib/standard//collection//array.nit:245 */
7808 /* ./../lib/standard//kernel.nit:213 */
7809 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
7810 /* ./../lib/standard//collection//array.nit:245 */
7811 if (UNTAG_Bool(REGB0
)) {
7812 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
7813 if (UNTAG_Bool(REGB0
)) {
7815 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
7817 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
7818 /* ./../lib/standard//kernel.nit:212 */
7819 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
7821 /* ./../lib/standard//collection//array.nit:245 */
7822 REGB3
= TAG_Bool(false);
7825 if (UNTAG_Bool(REGB0
)) {
7827 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
7829 /* ./../lib/standard//collection//array.nit:246 */
7830 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[7]);
7831 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
7832 if (UNTAG_Bool(REGB0
)) {
7833 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
7835 /* ./../lib/standard//collection//array.nit:654 */
7836 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB2
)];
7837 /* ./../lib/standard//collection//array.nit:246 */
7840 /* ./syntax//typing.nit:1407 */
7841 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
7842 if (UNTAG_Bool(REGB2
)) {
7843 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1407);
7845 fra
.me
.REG
[7] = CALL_parser_nodes___ALabelable___n_label(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
7847 fra
.me
.REG
[7] = NIT_NULL
;
7849 /* ./syntax//typing.nit:1410 */
7851 /* ./../lib/standard//kernel.nit:327 */
7853 /* ./../lib/standard//kernel.nit:332 */
7855 /* ./../lib/standard//kernel.nit:212 */
7856 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
7857 /* ./../lib/standard//kernel.nit:332 */
7858 if (UNTAG_Bool(REGB3
)) {
7859 /* ./syntax//typing.nit:1410 */
7861 /* ./syntax//typing.nit:1411 */
7862 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7863 if (UNTAG_Bool(REGB4
)) {
7864 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1411);
7866 /* ./../lib/standard//collection//array.nit:243 */
7867 fra
.me
.REG
[9] = fra
.me
.REG
[4];
7868 /* ./../lib/standard//collection//array.nit:245 */
7870 /* ./../lib/standard//kernel.nit:213 */
7871 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
7872 /* ./../lib/standard//collection//array.nit:245 */
7873 if (UNTAG_Bool(REGB4
)) {
7874 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
7875 if (UNTAG_Bool(REGB4
)) {
7877 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
7879 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[9]);
7880 /* ./../lib/standard//kernel.nit:212 */
7881 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
7883 /* ./../lib/standard//collection//array.nit:245 */
7884 REGB5
= TAG_Bool(false);
7887 if (UNTAG_Bool(REGB4
)) {
7889 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
7891 /* ./../lib/standard//collection//array.nit:246 */
7892 fra
.me
.REG
[9] = ATTR_array___Array____items(fra
.me
.REG
[9]);
7893 REGB4
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
7894 if (UNTAG_Bool(REGB4
)) {
7895 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
7897 /* ./../lib/standard//collection//array.nit:654 */
7898 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB3
)];
7899 /* ./../lib/standard//collection//array.nit:246 */
7902 /* ./syntax//typing.nit:1412 */
7903 fra
.me
.REG
[10] = CALL_parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
7904 fra
.me
.REG
[10] = CALL_typing___AClosureId___to_symbol(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
7905 /* ./syntax//typing.nit:1413 */
7906 fra
.me
.REG
[11] = CALL_static_type___MMSignature___closure_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[10]);
7907 /* ./syntax//typing.nit:1414 */
7908 REGB3
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
7909 if (UNTAG_Bool(REGB3
)) {
7911 REGB4
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
7912 if (UNTAG_Bool(REGB4
)) {
7913 REGB4
= TAG_Bool(false);
7916 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[11])(fra
.me
.REG
[11], NIT_NULL
);
7920 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
7921 if (UNTAG_Bool(REGB3
)) {
7922 /* ./syntax//typing.nit:1415 */
7923 fra
.me
.REG
[11] = NEW_EscapableClosure_scope___EscapableClosure___init(fra
.me
.REG
[9], fra
.me
.REG
[11], fra
.me
.REG
[8]);
7924 /* ./syntax//typing.nit:1416 */
7925 fra
.me
.REG
[12] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7926 CALL_scope___ScopeContext___push_escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[11], fra
.me
.REG
[7]);
7927 /* ./syntax//typing.nit:1417 */
7928 CALL_typing___AClosureDef___accept_typing2(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[1], fra
.me
.REG
[11]);
7929 /* ./syntax//typing.nit:1418 */
7930 fra
.me
.REG
[11] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7931 CALL_scope___ScopeContext___pop(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
7933 /* ./../lib/standard//collection//array.nit:23 */
7934 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7935 if (UNTAG_Bool(REGB3
)) {
7937 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
7939 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7940 /* ./syntax//typing.nit:1419 */
7942 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB3
,REGB4
));
7943 if (UNTAG_Bool(REGB5
)) {
7945 /* ./../lib/standard//kernel.nit:207 */
7946 REGB4
= TAG_Bool((REGB3
)==(REGB4
));
7947 /* ./syntax//typing.nit:1419 */
7950 if (UNTAG_Bool(REGB5
)) {
7951 /* ./syntax//typing.nit:1420 */
7952 fra
.me
.REG
[11] = CALL_parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
7954 fra
.me
.REG
[12] = NEW_Array_array___Array___with_capacity(REGB5
);
7955 if (!once_value_11
) {
7956 fra
.me
.REG
[13] = BOX_NativeString("Error: no closure named '!");
7957 REGB5
= TAG_Int(26);
7958 fra
.me
.REG
[13] = NEW_String_string___String___with_native(fra
.me
.REG
[13], REGB5
);
7959 once_value_11
= fra
.me
.REG
[13];
7960 register_static_object(&once_value_11
);
7961 } else fra
.me
.REG
[13] = once_value_11
;
7962 fra
.me
.REG
[13] = fra
.me
.REG
[13];
7963 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7964 fra
.me
.REG
[13] = CALL_string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
7965 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7966 if (!once_value_12
) {
7967 fra
.me
.REG
[13] = BOX_NativeString("' in ");
7969 fra
.me
.REG
[13] = NEW_String_string___String___with_native(fra
.me
.REG
[13], REGB5
);
7970 once_value_12
= fra
.me
.REG
[13];
7971 register_static_object(&once_value_12
);
7972 } else fra
.me
.REG
[13] = once_value_12
;
7973 fra
.me
.REG
[13] = fra
.me
.REG
[13];
7974 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7975 fra
.me
.REG
[13] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7976 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7977 if (!once_value_13
) {
7978 fra
.me
.REG
[13] = BOX_NativeString("; only closure is !");
7979 REGB5
= TAG_Int(19);
7980 fra
.me
.REG
[13] = NEW_String_string___String___with_native(fra
.me
.REG
[13], REGB5
);
7981 once_value_13
= fra
.me
.REG
[13];
7982 register_static_object(&once_value_13
);
7983 } else fra
.me
.REG
[13] = once_value_13
;
7984 fra
.me
.REG
[13] = fra
.me
.REG
[13];
7985 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7986 fra
.me
.REG
[13] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7987 REGB5
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
7988 if (UNTAG_Bool(REGB5
)) {
7989 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1420);
7991 fra
.me
.REG
[13] = CALL_static_type___MMClosure___name(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
7992 fra
.me
.REG
[13] = CALL_string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
7993 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7994 if (!once_value_14
) {
7995 fra
.me
.REG
[13] = BOX_NativeString(".");
7997 fra
.me
.REG
[13] = NEW_String_string___String___with_native(fra
.me
.REG
[13], REGB5
);
7998 once_value_14
= fra
.me
.REG
[13];
7999 register_static_object(&once_value_14
);
8000 } else fra
.me
.REG
[13] = once_value_14
;
8001 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8002 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8003 fra
.me
.REG
[12] = CALL_string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
8004 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[11], fra
.me
.REG
[12]);
8006 /* ./syntax//typing.nit:1422 */
8007 fra
.me
.REG
[12] = NEW_Array_array___Array___init();
8008 /* ./../lib/standard//collection//array.nit:231 */
8009 fra
.me
.REG
[11] = fra
.me
.REG
[6];
8010 /* ./../lib/standard//collection//array.nit:234 */
8012 /* ./../lib/standard//collection//array.nit:235 */
8013 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
8014 if (UNTAG_Bool(REGB4
)) {
8016 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
8018 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[11]);
8019 /* ./../lib/standard//collection//array.nit:236 */
8020 fra
.me
.REG
[13] = ATTR_array___Array____items(fra
.me
.REG
[11]);
8021 /* ./../lib/standard//collection//array.nit:237 */
8023 /* ./../lib/standard//collection//array.nit:23 */
8024 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
8025 if (UNTAG_Bool(REGB4
)) {
8027 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
8029 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[11]);
8030 /* ./../lib/standard//kernel.nit:212 */
8031 REGB4
= TAG_Bool(UNTAG_Int(REGB5
)<UNTAG_Int(REGB4
));
8032 /* ./../lib/standard//collection//array.nit:237 */
8033 if (UNTAG_Bool(REGB4
)) {
8034 /* ./../lib/standard//collection//array.nit:238 */
8035 REGB4
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
8036 if (UNTAG_Bool(REGB4
)) {
8037 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
8039 /* ./../lib/standard//collection//array.nit:654 */
8040 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB5
)];
8041 /* ./syntax//typing.nit:1424 */
8043 fra
.me
.REG
[15] = NEW_Array_array___Array___with_capacity(REGB4
);
8044 if (!once_value_15
) {
8045 fra
.me
.REG
[16] = BOX_NativeString("!");
8047 fra
.me
.REG
[16] = NEW_String_string___String___with_native(fra
.me
.REG
[16], REGB4
);
8048 once_value_15
= fra
.me
.REG
[16];
8049 register_static_object(&once_value_15
);
8050 } else fra
.me
.REG
[16] = once_value_15
;
8051 fra
.me
.REG
[16] = fra
.me
.REG
[16];
8052 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[16]);
8053 fra
.me
.REG
[14] = CALL_static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
8054 fra
.me
.REG
[14] = CALL_string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
8055 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
8056 if (!once_value_16
) {
8057 fra
.me
.REG
[14] = BOX_NativeString("");
8059 fra
.me
.REG
[14] = NEW_String_string___String___with_native(fra
.me
.REG
[14], REGB4
);
8060 once_value_16
= fra
.me
.REG
[14];
8061 register_static_object(&once_value_16
);
8062 } else fra
.me
.REG
[14] = once_value_16
;
8063 fra
.me
.REG
[14] = fra
.me
.REG
[14];
8064 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
8065 fra
.me
.REG
[15] = CALL_string___Object___to_s(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
8066 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[15]);
8067 /* ./../lib/standard//collection//array.nit:239 */
8069 /* ./../lib/standard//kernel.nit:215 */
8070 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
8071 /* ./../lib/standard//collection//array.nit:239 */
8074 /* ./../lib/standard//collection//array.nit:237 */
8079 /* ./syntax//typing.nit:1426 */
8080 fra
.me
.REG
[9] = CALL_parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8082 fra
.me
.REG
[13] = NEW_Array_array___Array___with_capacity(REGB5
);
8083 if (!once_value_18
) {
8084 fra
.me
.REG
[11] = BOX_NativeString("Error: no closure named '!");
8085 REGB5
= TAG_Int(26);
8086 fra
.me
.REG
[11] = NEW_String_string___String___with_native(fra
.me
.REG
[11], REGB5
);
8087 once_value_18
= fra
.me
.REG
[11];
8088 register_static_object(&once_value_18
);
8089 } else fra
.me
.REG
[11] = once_value_18
;
8090 fra
.me
.REG
[11] = fra
.me
.REG
[11];
8091 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[11]);
8092 fra
.me
.REG
[10] = CALL_string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8093 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8094 if (!once_value_19
) {
8095 fra
.me
.REG
[10] = BOX_NativeString("' in ");
8097 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB5
);
8098 once_value_19
= fra
.me
.REG
[10];
8099 register_static_object(&once_value_19
);
8100 } else fra
.me
.REG
[10] = once_value_19
;
8101 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8102 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8103 fra
.me
.REG
[10] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8104 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8105 if (!once_value_20
) {
8106 fra
.me
.REG
[10] = BOX_NativeString("; only closures are ");
8107 REGB5
= TAG_Int(20);
8108 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB5
);
8109 once_value_20
= fra
.me
.REG
[10];
8110 register_static_object(&once_value_20
);
8111 } else fra
.me
.REG
[10] = once_value_20
;
8112 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8113 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8114 if (!once_value_21
) {
8115 fra
.me
.REG
[10] = BOX_NativeString(",");
8117 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB5
);
8118 once_value_21
= fra
.me
.REG
[10];
8119 register_static_object(&once_value_21
);
8120 } else fra
.me
.REG
[10] = once_value_21
;
8121 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8122 fra
.me
.REG
[10] = CALL_string___Collection___join(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[10]);
8123 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8124 if (!once_value_22
) {
8125 fra
.me
.REG
[10] = BOX_NativeString(".");
8127 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB5
);
8128 once_value_22
= fra
.me
.REG
[10];
8129 register_static_object(&once_value_22
);
8130 } else fra
.me
.REG
[10] = once_value_22
;
8131 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8132 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8133 fra
.me
.REG
[13] = CALL_string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8134 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[13]);
8137 /* ./../lib/standard//kernel.nit:334 */
8139 /* ./../lib/standard//kernel.nit:215 */
8140 REGB5
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB5
));
8141 /* ./../lib/standard//kernel.nit:334 */
8144 /* ./../lib/standard//kernel.nit:332 */
8149 /* ./syntax//typing.nit:1431 */
8150 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8151 if (UNTAG_Bool(REGB2
)) {
8153 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8154 if (UNTAG_Bool(REGB0
)) {
8155 REGB0
= TAG_Bool(false);
8158 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
8162 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8163 if (UNTAG_Bool(REGB2
)) {
8164 /* ./syntax//typing.nit:1432 */
8165 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]);
8166 fra
.me
.REG
[5] = fra
.me
.REG
[8];
8171 /* ./syntax//typing.nit:1435 */
8173 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
8174 if (UNTAG_Bool(REGB0
)) {
8176 /* ./../lib/standard//kernel.nit:207 */
8177 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
8178 /* ./syntax//typing.nit:1435 */
8181 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8182 if (UNTAG_Bool(REGB0
)) {
8183 /* ./syntax//typing.nit:1436 */
8185 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB0
);
8186 if (!once_value_24
) {
8187 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
8189 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
8190 once_value_24
= fra
.me
.REG
[6];
8191 register_static_object(&once_value_24
);
8192 } else fra
.me
.REG
[6] = once_value_24
;
8193 fra
.me
.REG
[6] = fra
.me
.REG
[6];
8194 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
8195 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8196 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
8197 if (!once_value_25
) {
8198 fra
.me
.REG
[3] = BOX_NativeString(" does not require blocks.");
8199 REGB0
= TAG_Int(25);
8200 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
8201 once_value_25
= fra
.me
.REG
[3];
8202 register_static_object(&once_value_25
);
8203 } else fra
.me
.REG
[3] = once_value_25
;
8204 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8205 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
8206 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8207 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8210 /* ./syntax//typing.nit:1438 */
8213 stack_frame_head
= fra
.me
.prev
;
8214 return fra
.me
.REG
[5];
8216 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
){
8217 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8222 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8223 fra
.me
.file
= LOCATE_typing
;
8225 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___do_typing
;
8226 fra
.me
.has_broke
= 0;
8227 fra
.me
.REG_size
= 7;
8228 fra
.me
.REG
[0] = NIT_NULL
;
8229 fra
.me
.REG
[1] = NIT_NULL
;
8230 fra
.me
.REG
[2] = NIT_NULL
;
8231 fra
.me
.REG
[3] = NIT_NULL
;
8232 fra
.me
.REG
[4] = NIT_NULL
;
8233 fra
.me
.REG
[5] = NIT_NULL
;
8234 fra
.me
.REG
[6] = NIT_NULL
;
8243 /* ./syntax//typing.nit:1446 */
8244 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]);
8245 /* ./syntax//typing.nit:1447 */
8246 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8247 if (UNTAG_Bool(REGB0
)) {
8249 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8250 if (UNTAG_Bool(REGB2
)) {
8251 REGB2
= TAG_Bool(false);
8254 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
8258 if (UNTAG_Bool(REGB0
)) {
8261 /* ./syntax//typing.nit:1448 */
8262 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
);
8263 /* ./syntax//typing.nit:1449 */
8264 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8265 if (UNTAG_Bool(REGB1
)) {
8266 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1449);
8268 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8269 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]);
8270 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8271 if (UNTAG_Bool(REGB1
)) {
8274 /* ./syntax//typing.nit:1450 */
8275 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8276 if (UNTAG_Bool(REGB1
)) {
8277 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1450);
8279 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8280 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]);
8281 /* ./syntax//typing.nit:1451 */
8282 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8283 if (UNTAG_Bool(REGB1
)) {
8285 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8286 if (UNTAG_Bool(REGB0
)) {
8287 REGB0
= TAG_Bool(false);
8290 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8294 if (UNTAG_Bool(REGB1
)) {
8295 fra
.me
.REG
[4] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8296 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8297 if (UNTAG_Bool(REGB1
)) {
8299 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8300 if (UNTAG_Bool(REGB0
)) {
8301 REGB0
= TAG_Bool(false);
8304 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8308 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8310 REGB0
= TAG_Bool(false);
8313 if (UNTAG_Bool(REGB1
)) {
8316 /* ./syntax//typing.nit:1452 */
8317 ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
8318 /* ./syntax//typing.nit:1453 */
8319 ATTR_typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
8320 /* ./syntax//typing.nit:1454 */
8321 ATTR_typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
8323 stack_frame_head
= fra
.me
.prev
;
8326 val_t
typing___AAbsSendExpr___get_property(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8327 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
8333 static val_t once_value_1
; /* Once value */
8334 static val_t once_value_2
; /* Once value */
8335 static val_t once_value_3
; /* Once value */
8336 static val_t once_value_4
; /* Once value */
8337 static val_t once_value_5
; /* Once value */
8338 static val_t once_value_6
; /* Once value */
8339 static val_t once_value_8
; /* Once value */
8340 static val_t once_value_9
; /* Once value */
8341 static val_t once_value_10
; /* Once value */
8342 static val_t once_value_11
; /* Once value */
8343 static val_t once_value_12
; /* Once value */
8344 static val_t once_value_13
; /* Once value */
8345 static val_t once_value_14
; /* Once value */
8346 static val_t once_value_15
; /* Once value */
8347 static val_t once_value_16
; /* Once value */
8348 static val_t once_value_17
; /* Once value */
8349 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8350 fra
.me
.file
= LOCATE_typing
;
8352 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___get_property
;
8353 fra
.me
.has_broke
= 0;
8354 fra
.me
.REG_size
= 10;
8355 fra
.me
.REG
[0] = NIT_NULL
;
8356 fra
.me
.REG
[1] = NIT_NULL
;
8357 fra
.me
.REG
[2] = NIT_NULL
;
8358 fra
.me
.REG
[3] = NIT_NULL
;
8359 fra
.me
.REG
[4] = NIT_NULL
;
8360 fra
.me
.REG
[5] = NIT_NULL
;
8361 fra
.me
.REG
[6] = NIT_NULL
;
8362 fra
.me
.REG
[7] = NIT_NULL
;
8363 fra
.me
.REG
[8] = NIT_NULL
;
8364 fra
.me
.REG
[9] = NIT_NULL
;
8370 /* ./syntax//typing.nit:1459 */
8371 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
8372 if (UNTAG_Bool(REGB1
)) {
8373 /* ./syntax//typing.nit:1460 */
8374 if (!once_value_1
) {
8375 if (!once_value_2
) {
8376 fra
.me
.REG
[4] = BOX_NativeString("==");
8378 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
8379 once_value_2
= fra
.me
.REG
[4];
8380 register_static_object(&once_value_2
);
8381 } else fra
.me
.REG
[4] = once_value_2
;
8382 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8383 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8384 once_value_1
= fra
.me
.REG
[4];
8385 register_static_object(&once_value_1
);
8386 } else fra
.me
.REG
[4] = once_value_1
;
8387 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8388 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
8389 if (UNTAG_Bool(REGB1
)) {
8391 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8394 if (UNTAG_Bool(REGB1
)) {
8395 REGB1
= TAG_Bool(true);
8397 if (!once_value_3
) {
8398 if (!once_value_4
) {
8399 fra
.me
.REG
[4] = BOX_NativeString("!=");
8401 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB2
);
8402 once_value_4
= fra
.me
.REG
[4];
8403 register_static_object(&once_value_4
);
8404 } else fra
.me
.REG
[4] = once_value_4
;
8405 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8406 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8407 once_value_3
= fra
.me
.REG
[4];
8408 register_static_object(&once_value_3
);
8409 } else fra
.me
.REG
[4] = once_value_3
;
8410 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8411 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
8412 if (UNTAG_Bool(REGB2
)) {
8414 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8419 if (UNTAG_Bool(REGB1
)) {
8420 /* ./syntax//typing.nit:1462 */
8421 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8422 fra
.me
.REG
[4] = CALL_static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8423 fra
.me
.REG
[2] = fra
.me
.REG
[4];
8425 /* ./syntax//typing.nit:1464 */
8427 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
8428 if (!once_value_5
) {
8429 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
8430 REGB1
= TAG_Int(15);
8431 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
8432 once_value_5
= fra
.me
.REG
[5];
8433 register_static_object(&once_value_5
);
8434 } else fra
.me
.REG
[5] = once_value_5
;
8435 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8436 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
8437 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8438 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
8439 if (!once_value_6
) {
8440 fra
.me
.REG
[5] = BOX_NativeString("' call on 'null'.");
8441 REGB1
= TAG_Int(17);
8442 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
8443 once_value_6
= fra
.me
.REG
[5];
8444 register_static_object(&once_value_6
);
8445 } else fra
.me
.REG
[5] = once_value_6
;
8446 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8447 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
8448 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8449 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
8450 /* ./syntax//typing.nit:1465 */
8451 fra
.me
.REG
[4] = NIT_NULL
;
8455 /* ./syntax//typing.nit:1468 */
8456 fra
.me
.REG
[5] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8457 /* ./syntax//typing.nit:1469 */
8458 fra
.me
.REG
[6] = NIT_NULL
;
8459 /* ./syntax//typing.nit:1470 */
8460 REGB1
= CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8461 if (UNTAG_Bool(REGB1
)) {
8462 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8463 fra
.me
.REG
[6] = fra
.me
.REG
[7];
8465 /* ./syntax//typing.nit:1471 */
8466 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8467 if (UNTAG_Bool(REGB1
)) {
8469 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8470 if (UNTAG_Bool(REGB2
)) {
8471 REGB2
= TAG_Bool(false);
8474 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
8478 if (UNTAG_Bool(REGB1
)) {
8479 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8480 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8481 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8483 REGB2
= TAG_Bool(false);
8486 if (UNTAG_Bool(REGB1
)) {
8487 /* ./syntax//typing.nit:1472 */
8488 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8489 /* ./../lib/standard//collection//array.nit:23 */
8490 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8491 if (UNTAG_Bool(REGB1
)) {
8493 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
8495 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8496 /* ./syntax//typing.nit:1473 */
8498 /* ./../lib/standard//kernel.nit:214 */
8499 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8500 /* ./syntax//typing.nit:1473 */
8501 if (UNTAG_Bool(REGB2
)) {
8502 /* ./syntax//typing.nit:1474 */
8504 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB2
);
8505 if (!once_value_8
) {
8506 fra
.me
.REG
[9] = BOX_NativeString("Error: Ambigous method name '");
8507 REGB2
= TAG_Int(29);
8508 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
8509 once_value_8
= fra
.me
.REG
[9];
8510 register_static_object(&once_value_8
);
8511 } else fra
.me
.REG
[9] = once_value_8
;
8512 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8513 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8514 fra
.me
.REG
[9] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8515 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8516 if (!once_value_9
) {
8517 fra
.me
.REG
[9] = BOX_NativeString("' for ");
8519 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
8520 once_value_9
= fra
.me
.REG
[9];
8521 register_static_object(&once_value_9
);
8522 } else fra
.me
.REG
[9] = once_value_9
;
8523 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8524 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8525 if (!once_value_10
) {
8526 fra
.me
.REG
[9] = BOX_NativeString(", ");
8528 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
8529 once_value_10
= fra
.me
.REG
[9];
8530 register_static_object(&once_value_10
);
8531 } else fra
.me
.REG
[9] = once_value_10
;
8532 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8533 fra
.me
.REG
[9] = CALL_string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
8534 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8535 if (!once_value_11
) {
8536 fra
.me
.REG
[9] = BOX_NativeString(". Use explicit designation.");
8537 REGB2
= TAG_Int(27);
8538 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB2
);
8539 once_value_11
= fra
.me
.REG
[9];
8540 register_static_object(&once_value_11
);
8541 } else fra
.me
.REG
[9] = once_value_11
;
8542 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8543 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8544 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8545 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8546 /* ./syntax//typing.nit:1475 */
8547 fra
.me
.REG
[4] = NIT_NULL
;
8550 /* ./../lib/standard//collection//array.nit:23 */
8551 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8552 if (UNTAG_Bool(REGB2
)) {
8554 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
8556 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8557 /* ./syntax//typing.nit:1476 */
8559 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
8560 if (UNTAG_Bool(REGB3
)) {
8562 /* ./../lib/standard//kernel.nit:207 */
8563 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
8564 /* ./syntax//typing.nit:1476 */
8567 if (UNTAG_Bool(REGB3
)) {
8568 /* ./syntax//typing.nit:1477 */
8569 fra
.me
.REG
[7] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8570 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8571 if (UNTAG_Bool(REGB3
)) {
8572 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1477);
8574 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8575 fra
.me
.REG
[7] = CALL_abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
8576 /* ./syntax//typing.nit:1478 */
8577 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
8578 if (UNTAG_Bool(REGB3
)) {
8580 nit_abort("Assert failed", NULL
, LOCATE_typing
, 1478);
8582 /* ./syntax//typing.nit:1479 */
8583 fra
.me
.REG
[6] = fra
.me
.REG
[7];
8587 /* ./syntax//typing.nit:1483 */
8588 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8589 if (UNTAG_Bool(REGB3
)) {
8591 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8592 if (UNTAG_Bool(REGB1
)) {
8593 REGB1
= TAG_Bool(false);
8596 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
8600 if (UNTAG_Bool(REGB3
)) {
8601 /* ./syntax//typing.nit:1484 */
8602 if (UNTAG_Bool(REGB0
)) {
8603 /* ./syntax//typing.nit:1485 */
8605 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
8606 if (!once_value_12
) {
8607 fra
.me
.REG
[5] = BOX_NativeString("Error: Method or variable '");
8608 REGB0
= TAG_Int(27);
8609 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
8610 once_value_12
= fra
.me
.REG
[5];
8611 register_static_object(&once_value_12
);
8612 } else fra
.me
.REG
[5] = once_value_12
;
8613 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8614 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8615 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8616 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8617 if (!once_value_13
) {
8618 fra
.me
.REG
[5] = BOX_NativeString("' unknown in ");
8619 REGB0
= TAG_Int(13);
8620 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
8621 once_value_13
= fra
.me
.REG
[5];
8622 register_static_object(&once_value_13
);
8623 } else fra
.me
.REG
[5] = once_value_13
;
8624 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8625 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8626 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8627 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8628 if (!once_value_14
) {
8629 fra
.me
.REG
[5] = BOX_NativeString(".");
8631 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
8632 once_value_14
= fra
.me
.REG
[5];
8633 register_static_object(&once_value_14
);
8634 } else fra
.me
.REG
[5] = once_value_14
;
8635 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8636 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8637 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8638 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
8640 /* ./syntax//typing.nit:1487 */
8642 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
8643 if (!once_value_15
) {
8644 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
8645 REGB0
= TAG_Int(15);
8646 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
8647 once_value_15
= fra
.me
.REG
[5];
8648 register_static_object(&once_value_15
);
8649 } else fra
.me
.REG
[5] = once_value_15
;
8650 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8651 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8652 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8653 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
8654 if (!once_value_16
) {
8655 fra
.me
.REG
[3] = BOX_NativeString("' doesn't exists in ");
8656 REGB0
= TAG_Int(20);
8657 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
8658 once_value_16
= fra
.me
.REG
[3];
8659 register_static_object(&once_value_16
);
8660 } else fra
.me
.REG
[3] = once_value_16
;
8661 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8662 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
8663 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8664 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
8665 if (!once_value_17
) {
8666 fra
.me
.REG
[2] = BOX_NativeString(".");
8668 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
8669 once_value_17
= fra
.me
.REG
[2];
8670 register_static_object(&once_value_17
);
8671 } else fra
.me
.REG
[2] = once_value_17
;
8672 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8673 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
8674 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8675 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
8677 /* ./syntax//typing.nit:1489 */
8678 fra
.me
.REG
[4] = NIT_NULL
;
8681 /* ./syntax//typing.nit:1491 */
8682 fra
.me
.REG
[4] = fra
.me
.REG
[6];
8685 stack_frame_head
= fra
.me
.prev
;
8686 return fra
.me
.REG
[4];
8688 val_t
typing___AAbsSendExpr___get_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8689 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
8692 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8693 fra
.me
.file
= LOCATE_typing
;
8695 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___get_signature
;
8696 fra
.me
.has_broke
= 0;
8697 fra
.me
.REG_size
= 6;
8698 fra
.me
.REG
[0] = NIT_NULL
;
8699 fra
.me
.REG
[1] = NIT_NULL
;
8700 fra
.me
.REG
[2] = NIT_NULL
;
8701 fra
.me
.REG
[3] = NIT_NULL
;
8702 fra
.me
.REG
[4] = NIT_NULL
;
8703 fra
.me
.REG
[5] = NIT_NULL
;
8709 /* ./syntax//typing.nit:1497 */
8710 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8711 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8712 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
);
8713 /* ./syntax//typing.nit:1498 */
8714 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
8715 /* ./syntax//typing.nit:1499 */
8716 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8717 if (UNTAG_Bool(REGB0
)) {
8718 fra
.me
.REG
[3] = CALL_static_type___MMSignature___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8719 fra
.me
.REG
[2] = fra
.me
.REG
[3];
8721 /* ./syntax//typing.nit:1500 */
8724 stack_frame_head
= fra
.me
.prev
;
8725 return fra
.me
.REG
[2];
8727 val_t
typing___AAbsSendExpr___prop(val_t p0
){
8728 struct {struct stack_frame_t me
;} fra
;
8731 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8732 fra
.me
.file
= LOCATE_typing
;
8734 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___prop
;
8735 fra
.me
.has_broke
= 0;
8736 fra
.me
.REG_size
= 1;
8737 fra
.me
.REG
[0] = NIT_NULL
;
8739 /* ./syntax//typing.nit:1504 */
8740 fra
.me
.REG
[0] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
8741 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
8742 if (UNTAG_Bool(REGB0
)) {
8744 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1504);
8748 stack_frame_head
= fra
.me
.prev
;
8749 return fra
.me
.REG
[0];
8751 val_t
typing___AAbsSendExpr___return_type(val_t p0
){
8752 struct {struct stack_frame_t me
;} fra
;
8754 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8755 fra
.me
.file
= LOCATE_typing
;
8757 fra
.me
.meth
= LOCATE_typing___AAbsSendExpr___return_type
;
8758 fra
.me
.has_broke
= 0;
8759 fra
.me
.REG_size
= 1;
8760 fra
.me
.REG
[0] = NIT_NULL
;
8762 /* ./syntax//typing.nit:1507 */
8763 fra
.me
.REG
[0] = ATTR_typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]);
8764 stack_frame_head
= fra
.me
.prev
;
8765 return fra
.me
.REG
[0];
8767 void typing___ASuperInitCall___register_super_init_call(val_t p0
, val_t p1
, val_t p2
){
8768 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
8773 static val_t once_value_1
; /* Once value */
8774 static val_t once_value_2
; /* Once value */
8775 static val_t once_value_3
; /* Once value */
8776 static val_t once_value_4
; /* Once value */
8777 static val_t once_value_5
; /* Once value */
8778 static val_t once_value_6
; /* Once value */
8779 static val_t once_value_7
; /* Once value */
8780 static val_t once_value_8
; /* Once value */
8781 static val_t once_value_9
; /* Once value */
8782 static val_t once_value_10
; /* Once value */
8783 static val_t once_value_11
; /* Once value */
8784 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8785 fra
.me
.file
= LOCATE_typing
;
8787 fra
.me
.meth
= LOCATE_typing___ASuperInitCall___register_super_init_call
;
8788 fra
.me
.has_broke
= 0;
8789 fra
.me
.REG_size
= 11;
8790 fra
.me
.REG
[0] = NIT_NULL
;
8791 fra
.me
.REG
[1] = NIT_NULL
;
8792 fra
.me
.REG
[2] = NIT_NULL
;
8793 fra
.me
.REG
[3] = NIT_NULL
;
8794 fra
.me
.REG
[4] = NIT_NULL
;
8795 fra
.me
.REG
[5] = NIT_NULL
;
8796 fra
.me
.REG
[6] = NIT_NULL
;
8797 fra
.me
.REG
[7] = NIT_NULL
;
8798 fra
.me
.REG
[8] = NIT_NULL
;
8799 fra
.me
.REG
[9] = NIT_NULL
;
8800 fra
.me
.REG
[10] = NIT_NULL
;
8804 /* ./syntax//typing.nit:1516 */
8805 fra
.me
.REG
[3] = CALL_parser_prod___ANode___parent(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8806 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8807 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[4]));
8808 if (UNTAG_Bool(REGB0
)) {
8810 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8811 if (UNTAG_Bool(REGB1
)) {
8812 REGB1
= TAG_Bool(false);
8815 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8819 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8820 if (UNTAG_Bool(REGB0
)) {
8821 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8822 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[0],fra
.me
.REG
[4]));
8823 if (UNTAG_Bool(REGB0
)) {
8825 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
8828 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8830 REGB1
= TAG_Bool(false);
8833 if (UNTAG_Bool(REGB0
)) {
8834 /* ./syntax//typing.nit:1517 */
8836 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
8837 if (!once_value_1
) {
8838 fra
.me
.REG
[3] = BOX_NativeString("Error: Constructor invocation ");
8839 REGB0
= TAG_Int(30);
8840 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
8841 once_value_1
= fra
.me
.REG
[3];
8842 register_static_object(&once_value_1
);
8843 } else fra
.me
.REG
[3] = once_value_1
;
8844 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8845 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8846 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8847 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8848 if (!once_value_2
) {
8849 fra
.me
.REG
[3] = BOX_NativeString(" must not be in nested block.");
8850 REGB0
= TAG_Int(29);
8851 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
8852 once_value_2
= fra
.me
.REG
[3];
8853 register_static_object(&once_value_2
);
8854 } else fra
.me
.REG
[3] = once_value_2
;
8855 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8856 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8857 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8858 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
8860 /* ./syntax//typing.nit:1519 */
8861 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8862 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8863 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8864 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8865 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8866 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMModule_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
8867 /* ./syntax//typing.nit:1520 */
8868 fra
.me
.REG
[4] = NIT_NULL
;
8869 /* ./syntax//typing.nit:1521 */
8870 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___explicit_super_init_calls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8871 REGB0
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
8872 if (UNTAG_Bool(REGB0
)) {
8874 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1521);
8876 /* ./syntax//typing.nit:1522 */
8877 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8878 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8879 if (UNTAG_Bool(REGB0
)) {
8880 /* ./syntax//typing.nit:1523 */
8881 fra
.me
.REG
[6] = CALL_abstract_collection___SequenceRead___last(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8882 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8883 if (UNTAG_Bool(REGB0
)) {
8884 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1523);
8886 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8887 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8888 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8889 fra
.me
.REG
[4] = fra
.me
.REG
[6];
8891 /* ./syntax//typing.nit:1525 */
8892 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8893 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8894 fra
.me
.REG
[6] = CALL_partial_order___PartialOrderElement___reverse_linear_extension(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8895 /* ./syntax//typing.nit:1526 */
8896 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8897 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[7]));
8898 if (UNTAG_Bool(REGB0
)) {
8900 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
8903 if (UNTAG_Bool(REGB0
)) {
8904 /* ./syntax//typing.nit:1527 */
8905 REGB0
= TAG_Bool(true);
8906 CALL_typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
8908 /* ./syntax//typing.nit:1528 */
8909 REGB0
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
8910 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8911 if (UNTAG_Bool(REGB0
)) {
8912 /* ./syntax//typing.nit:1529 */
8914 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
8915 if (!once_value_3
) {
8916 fra
.me
.REG
[8] = BOX_NativeString("Error: Constructor of class ");
8917 REGB0
= TAG_Int(28);
8918 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8919 once_value_3
= fra
.me
.REG
[8];
8920 register_static_object(&once_value_3
);
8921 } else fra
.me
.REG
[8] = once_value_3
;
8922 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8923 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8924 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8925 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8926 if (!once_value_4
) {
8927 fra
.me
.REG
[8] = BOX_NativeString(" must be one in ");
8928 REGB0
= TAG_Int(16);
8929 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8930 once_value_4
= fra
.me
.REG
[8];
8931 register_static_object(&once_value_4
);
8932 } else fra
.me
.REG
[8] = once_value_4
;
8933 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8934 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8935 if (!once_value_5
) {
8936 fra
.me
.REG
[8] = BOX_NativeString(", ");
8938 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8939 once_value_5
= fra
.me
.REG
[8];
8940 register_static_object(&once_value_5
);
8941 } else fra
.me
.REG
[8] = once_value_5
;
8942 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8943 fra
.me
.REG
[8] = CALL_string___Collection___join(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8]);
8944 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8945 if (!once_value_6
) {
8946 fra
.me
.REG
[8] = BOX_NativeString(".");
8948 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8949 once_value_6
= fra
.me
.REG
[8];
8950 register_static_object(&once_value_6
);
8951 } else fra
.me
.REG
[8] = once_value_6
;
8952 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8953 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8954 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8955 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
8957 /* ./syntax//typing.nit:1530 */
8958 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[4]));
8959 if (UNTAG_Bool(REGB0
)) {
8961 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8964 if (UNTAG_Bool(REGB0
)) {
8965 /* ./syntax//typing.nit:1531 */
8967 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
8968 if (!once_value_7
) {
8969 fra
.me
.REG
[8] = BOX_NativeString("Error: Only one super constructor invocation of class ");
8970 REGB0
= TAG_Int(54);
8971 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8972 once_value_7
= fra
.me
.REG
[8];
8973 register_static_object(&once_value_7
);
8974 } else fra
.me
.REG
[8] = once_value_7
;
8975 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8976 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8977 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8978 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8979 if (!once_value_8
) {
8980 fra
.me
.REG
[8] = BOX_NativeString(" is allowed.");
8981 REGB0
= TAG_Int(12);
8982 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
8983 once_value_8
= fra
.me
.REG
[8];
8984 register_static_object(&once_value_8
);
8985 } else fra
.me
.REG
[8] = once_value_8
;
8986 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8987 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8988 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8989 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
8991 /* ./../lib/standard//collection//array.nit:234 */
8993 /* ./../lib/standard//collection//array.nit:235 */
8994 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8995 if (UNTAG_Bool(REGB1
)) {
8997 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
8999 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
9000 /* ./../lib/standard//collection//array.nit:236 */
9001 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[6]);
9002 /* ./../lib/standard//collection//array.nit:237 */
9004 /* ./../lib/standard//collection//array.nit:23 */
9005 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
9006 if (UNTAG_Bool(REGB1
)) {
9008 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
9010 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
9011 /* ./../lib/standard//kernel.nit:212 */
9012 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
9013 /* ./../lib/standard//collection//array.nit:237 */
9014 if (UNTAG_Bool(REGB1
)) {
9015 /* ./../lib/standard//collection//array.nit:238 */
9016 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9017 if (UNTAG_Bool(REGB1
)) {
9018 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
9020 /* ./../lib/standard//collection//array.nit:654 */
9021 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
9022 /* ./syntax//typing.nit:1534 */
9023 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[8],fra
.me
.REG
[4]));
9024 if (UNTAG_Bool(REGB1
)) {
9026 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[4]);
9029 if (UNTAG_Bool(REGB1
)) {
9030 /* ./syntax//typing.nit:1535 */
9031 fra
.me
.REG
[4] = NIT_NULL
;
9033 /* ./syntax//typing.nit:1536 */
9034 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[8],fra
.me
.REG
[3]));
9035 if (UNTAG_Bool(REGB1
)) {
9037 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9040 if (UNTAG_Bool(REGB1
)) {
9041 /* ./syntax//typing.nit:1537 */
9042 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9043 if (UNTAG_Bool(REGB1
)) {
9045 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9046 if (UNTAG_Bool(REGB2
)) {
9047 REGB2
= TAG_Bool(false);
9050 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9054 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9055 if (UNTAG_Bool(REGB1
)) {
9056 /* ./syntax//typing.nit:1538 */
9058 fra
.me
.REG
[9] = NEW_Array_array___Array___with_capacity(REGB1
);
9059 if (!once_value_9
) {
9060 fra
.me
.REG
[10] = BOX_NativeString("Error: Constructor of ");
9061 REGB1
= TAG_Int(22);
9062 fra
.me
.REG
[10] = NEW_String_string___String___with_native(fra
.me
.REG
[10], REGB1
);
9063 once_value_9
= fra
.me
.REG
[10];
9064 register_static_object(&once_value_9
);
9065 } else fra
.me
.REG
[10] = once_value_9
;
9066 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9067 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
9068 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9069 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9070 if (!once_value_10
) {
9071 fra
.me
.REG
[8] = BOX_NativeString(" must be invoked before constructor of ");
9072 REGB1
= TAG_Int(39);
9073 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
9074 once_value_10
= fra
.me
.REG
[8];
9075 register_static_object(&once_value_10
);
9076 } else fra
.me
.REG
[8] = once_value_10
;
9077 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9078 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9079 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9080 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9081 if (!once_value_11
) {
9082 fra
.me
.REG
[8] = BOX_NativeString("");
9084 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB1
);
9085 once_value_11
= fra
.me
.REG
[8];
9086 register_static_object(&once_value_11
);
9087 } else fra
.me
.REG
[8] = once_value_11
;
9088 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9089 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9090 fra
.me
.REG
[9] = CALL_string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9091 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[9]);
9093 /* ./syntax//typing.nit:1540 */
9094 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
9095 /* ./syntax//typing.nit:1541 */
9099 /* ./../lib/standard//collection//array.nit:239 */
9101 /* ./../lib/standard//kernel.nit:215 */
9102 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
9103 /* ./../lib/standard//collection//array.nit:239 */
9106 /* ./../lib/standard//collection//array.nit:237 */
9115 stack_frame_head
= fra
.me
.prev
;
9118 val_t
typing___ANewExpr___compute_raw_arguments(val_t p0
){
9119 struct {struct stack_frame_t me
;} fra
;
9121 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9122 fra
.me
.file
= LOCATE_typing
;
9124 fra
.me
.meth
= LOCATE_typing___ANewExpr___compute_raw_arguments
;
9125 fra
.me
.has_broke
= 0;
9126 fra
.me
.REG_size
= 1;
9127 fra
.me
.REG
[0] = NIT_NULL
;
9129 /* ./syntax//typing.nit:1550 */
9130 fra
.me
.REG
[0] = CALL_parser_nodes___ANewExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9131 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9134 stack_frame_head
= fra
.me
.prev
;
9135 return fra
.me
.REG
[0];
9137 void typing___ANewExpr___after_typing(val_t p0
, val_t p1
){
9138 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
9142 static val_t once_value_2
; /* Once value */
9143 static val_t once_value_3
; /* Once value */
9144 static val_t once_value_4
; /* Once value */
9145 static val_t once_value_5
; /* Once value */
9146 static val_t once_value_6
; /* Once value */
9147 static val_t once_value_7
; /* Once value */
9148 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9149 fra
.me
.file
= LOCATE_typing
;
9151 fra
.me
.meth
= LOCATE_typing___ANewExpr___after_typing
;
9152 fra
.me
.has_broke
= 0;
9153 fra
.me
.REG_size
= 5;
9154 fra
.me
.REG
[0] = NIT_NULL
;
9155 fra
.me
.REG
[1] = NIT_NULL
;
9156 fra
.me
.REG
[2] = NIT_NULL
;
9157 fra
.me
.REG
[3] = NIT_NULL
;
9158 fra
.me
.REG
[4] = NIT_NULL
;
9161 /* ./syntax//typing.nit:1553 */
9162 fra
.me
.REG
[2] = CALL_parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9163 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9164 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9165 if (UNTAG_Bool(REGB0
)) {
9168 /* ./syntax//typing.nit:1554 */
9169 fra
.me
.REG
[2] = CALL_parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9170 fra
.me
.REG
[2] = CALL_syntax_base___AType___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9171 /* ./syntax//typing.nit:1555 */
9172 fra
.me
.REG
[3] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9173 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9174 REGB0
= CALL_abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9175 if (UNTAG_Bool(REGB0
)) {
9176 /* ./syntax//typing.nit:1556 */
9178 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
9179 if (!once_value_2
) {
9180 fra
.me
.REG
[4] = BOX_NativeString("Error: try to instantiate abstract class ");
9181 REGB0
= TAG_Int(41);
9182 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
9183 once_value_2
= fra
.me
.REG
[4];
9184 register_static_object(&once_value_2
);
9185 } else fra
.me
.REG
[4] = once_value_2
;
9186 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9187 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9188 fra
.me
.REG
[4] = CALL_static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9189 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9190 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9191 if (!once_value_3
) {
9192 fra
.me
.REG
[4] = BOX_NativeString(".");
9194 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
9195 once_value_3
= fra
.me
.REG
[4];
9196 register_static_object(&once_value_3
);
9197 } else fra
.me
.REG
[4] = once_value_3
;
9198 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9199 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9200 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9201 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
9202 /* ./syntax//typing.nit:1557 */
9205 /* ./syntax//typing.nit:1560 */
9206 fra
.me
.REG
[3] = CALL_parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9207 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9208 if (UNTAG_Bool(REGB0
)) {
9210 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9211 if (UNTAG_Bool(REGB1
)) {
9212 REGB1
= TAG_Bool(false);
9215 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9219 if (UNTAG_Bool(REGB0
)) {
9220 /* ./syntax//typing.nit:1561 */
9221 if (!once_value_4
) {
9222 if (!once_value_5
) {
9223 fra
.me
.REG
[3] = BOX_NativeString("init");
9225 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
9226 once_value_5
= fra
.me
.REG
[3];
9227 register_static_object(&once_value_5
);
9228 } else fra
.me
.REG
[3] = once_value_5
;
9229 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9230 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9231 once_value_4
= fra
.me
.REG
[3];
9232 register_static_object(&once_value_4
);
9233 } else fra
.me
.REG
[3] = once_value_4
;
9234 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9236 /* ./syntax//typing.nit:1563 */
9237 fra
.me
.REG
[4] = CALL_parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9238 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9239 if (UNTAG_Bool(REGB0
)) {
9240 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1563);
9242 fra
.me
.REG
[4] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9243 fra
.me
.REG
[3] = fra
.me
.REG
[4];
9245 /* ./syntax//typing.nit:1566 */
9246 REGB0
= TAG_Bool(false);
9247 REGB1
= TAG_Bool(false);
9248 fra
.me
.REG
[4] = CALL_syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9249 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
);
9250 /* ./syntax//typing.nit:1567 */
9251 fra
.me
.REG
[4] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
9252 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9253 if (UNTAG_Bool(REGB1
)) {
9255 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9256 if (UNTAG_Bool(REGB0
)) {
9257 REGB0
= TAG_Bool(false);
9260 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9264 if (UNTAG_Bool(REGB1
)) {
9267 /* ./syntax//typing.nit:1569 */
9268 fra
.me
.REG
[4] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9269 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9270 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9271 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9272 if (UNTAG_Bool(REGB1
)) {
9273 /* ./syntax//typing.nit:1570 */
9275 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
9276 if (!once_value_6
) {
9277 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
9279 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
9280 once_value_6
= fra
.me
.REG
[3];
9281 register_static_object(&once_value_6
);
9282 } else fra
.me
.REG
[3] = once_value_6
;
9283 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9284 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9285 fra
.me
.REG
[3] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9286 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9287 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9288 if (!once_value_7
) {
9289 fra
.me
.REG
[3] = BOX_NativeString(" is not a constructor.");
9290 REGB1
= TAG_Int(22);
9291 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
9292 once_value_7
= fra
.me
.REG
[3];
9293 register_static_object(&once_value_7
);
9294 } else fra
.me
.REG
[3] = once_value_7
;
9295 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9296 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9297 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9298 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9299 /* ./syntax//typing.nit:1571 */
9302 /* ./syntax//typing.nit:1573 */
9303 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9304 /* ./syntax//typing.nit:1574 */
9305 REGB1
= TAG_Bool(true);
9306 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
9308 stack_frame_head
= fra
.me
.prev
;
9311 val_t
typing___ASendExpr___name(val_t p0
){
9312 struct {struct stack_frame_t me
;} fra
;
9314 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9315 fra
.me
.file
= LOCATE_typing
;
9317 fra
.me
.meth
= LOCATE_typing___ASendExpr___name
;
9318 fra
.me
.has_broke
= 0;
9319 fra
.me
.REG_size
= 0;
9320 /* ./syntax//typing.nit:1580 */
9321 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 1580);
9322 stack_frame_head
= fra
.me
.prev
;
9325 val_t
typing___ASendExpr___closure_defs(val_t p0
){
9326 struct {struct stack_frame_t me
;} fra
;
9328 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9329 fra
.me
.file
= LOCATE_typing
;
9331 fra
.me
.meth
= LOCATE_typing___ASendExpr___closure_defs
;
9332 fra
.me
.has_broke
= 0;
9333 fra
.me
.REG_size
= 1;
9334 fra
.me
.REG
[0] = NIT_NULL
;
9336 /* ./syntax//typing.nit:1584 */
9337 fra
.me
.REG
[0] = NIT_NULL
;
9340 stack_frame_head
= fra
.me
.prev
;
9341 return fra
.me
.REG
[0];
9343 void typing___ASendExpr___after_typing(val_t p0
, val_t p1
){
9344 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9346 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9347 fra
.me
.file
= LOCATE_typing
;
9349 fra
.me
.meth
= LOCATE_typing___ASendExpr___after_typing
;
9350 fra
.me
.has_broke
= 0;
9351 fra
.me
.REG_size
= 2;
9352 fra
.me
.REG
[0] = NIT_NULL
;
9353 fra
.me
.REG
[1] = NIT_NULL
;
9356 /* ./syntax//typing.nit:1588 */
9357 CALL_typing___ASendExpr___do_all_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
9358 stack_frame_head
= fra
.me
.prev
;
9361 void typing___ASendExpr___do_all_typing(val_t p0
, val_t p1
){
9362 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
9366 static val_t once_value_2
; /* Once value */
9367 static val_t once_value_3
; /* Once value */
9368 static val_t once_value_4
; /* Once value */
9369 static val_t once_value_5
; /* Once value */
9370 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9371 fra
.me
.file
= LOCATE_typing
;
9373 fra
.me
.meth
= LOCATE_typing___ASendExpr___do_all_typing
;
9374 fra
.me
.has_broke
= 0;
9375 fra
.me
.REG_size
= 6;
9376 fra
.me
.REG
[0] = NIT_NULL
;
9377 fra
.me
.REG
[1] = NIT_NULL
;
9378 fra
.me
.REG
[2] = NIT_NULL
;
9379 fra
.me
.REG
[3] = NIT_NULL
;
9380 fra
.me
.REG
[4] = NIT_NULL
;
9381 fra
.me
.REG
[5] = NIT_NULL
;
9384 /* ./syntax//typing.nit:1593 */
9385 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9386 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
9387 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9388 if (UNTAG_Bool(REGB0
)) {
9391 /* ./syntax//typing.nit:1594 */
9392 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9393 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9394 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9395 REGB0
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9396 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9397 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9398 fra
.me
.REG
[3] = CALL_typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9399 fra
.me
.REG
[4] = CALL_syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9400 fra
.me
.REG
[5] = CALL_syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9401 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]);
9402 /* ./syntax//typing.nit:1595 */
9403 fra
.me
.REG
[5] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
9404 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9405 if (UNTAG_Bool(REGB1
)) {
9407 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9408 if (UNTAG_Bool(REGB0
)) {
9409 REGB0
= TAG_Bool(false);
9412 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9416 if (UNTAG_Bool(REGB1
)) {
9419 /* ./syntax//typing.nit:1596 */
9420 fra
.me
.REG
[5] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
9421 REGB1
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
9422 if (UNTAG_Bool(REGB1
)) {
9424 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1596);
9426 /* ./syntax//typing.nit:1598 */
9427 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9428 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9429 if (UNTAG_Bool(REGB1
)) {
9430 /* ./syntax//typing.nit:1599 */
9431 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9432 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9433 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9434 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9435 if (UNTAG_Bool(REGB1
)) {
9436 /* ./syntax//typing.nit:1600 */
9438 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
9439 if (!once_value_2
) {
9440 fra
.me
.REG
[3] = BOX_NativeString("Error: try to invoke constructor ");
9441 REGB1
= TAG_Int(33);
9442 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
9443 once_value_2
= fra
.me
.REG
[3];
9444 register_static_object(&once_value_2
);
9445 } else fra
.me
.REG
[3] = once_value_2
;
9446 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9447 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9448 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9449 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9450 if (!once_value_3
) {
9451 fra
.me
.REG
[3] = BOX_NativeString(" in a method.");
9452 REGB1
= TAG_Int(13);
9453 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
9454 once_value_3
= fra
.me
.REG
[3];
9455 register_static_object(&once_value_3
);
9456 } else fra
.me
.REG
[3] = once_value_3
;
9457 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9458 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9459 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9460 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9462 /* ./syntax//typing.nit:1601 */
9463 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9464 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9465 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9466 if (UNTAG_Bool(REGB1
)) {
9467 /* ./syntax//typing.nit:1602 */
9469 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB1
);
9470 if (!once_value_4
) {
9471 fra
.me
.REG
[3] = BOX_NativeString("Error: constructor ");
9472 REGB1
= TAG_Int(19);
9473 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
9474 once_value_4
= fra
.me
.REG
[3];
9475 register_static_object(&once_value_4
);
9476 } else fra
.me
.REG
[3] = once_value_4
;
9477 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9478 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9479 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9480 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9481 if (!once_value_5
) {
9482 fra
.me
.REG
[3] = BOX_NativeString(" is not invoken on 'self'.");
9483 REGB1
= TAG_Int(26);
9484 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
9485 once_value_5
= fra
.me
.REG
[3];
9486 register_static_object(&once_value_5
);
9487 } else fra
.me
.REG
[3] = once_value_5
;
9488 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9489 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9490 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9491 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9493 /* ./syntax//typing.nit:1604 */
9494 CALL_typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5]);
9498 /* ./syntax//typing.nit:1608 */
9499 fra
.me
.REG
[5] = CALL_syntax_base___AAbsSendExpr___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9500 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
9501 /* ./syntax//typing.nit:1609 */
9502 REGB1
= TAG_Bool(true);
9503 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
9505 stack_frame_head
= fra
.me
.prev
;
9508 val_t
typing___ASendReassignExpr___read_prop(val_t p0
){
9509 struct {struct stack_frame_t me
;} fra
;
9512 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9513 fra
.me
.file
= LOCATE_typing
;
9515 fra
.me
.meth
= LOCATE_typing___ASendReassignExpr___read_prop
;
9516 fra
.me
.has_broke
= 0;
9517 fra
.me
.REG_size
= 1;
9518 fra
.me
.REG
[0] = NIT_NULL
;
9520 /* ./syntax//typing.nit:1614 */
9521 fra
.me
.REG
[0] = ATTR_typing___ASendReassignExpr____read_prop(fra
.me
.REG
[0]);
9522 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
9523 if (UNTAG_Bool(REGB0
)) {
9525 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1614);
9529 stack_frame_head
= fra
.me
.prev
;
9530 return fra
.me
.REG
[0];
9532 void typing___ASendReassignExpr___do_all_typing(val_t p0
, val_t p1
){
9533 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
9538 static val_t once_value_2
; /* Once value */
9539 static val_t once_value_3
; /* Once value */
9540 static val_t once_value_4
; /* Once value */
9541 static val_t once_value_5
; /* Once value */
9542 static val_t once_value_6
; /* Once value */
9543 static val_t once_value_7
; /* Once value */
9544 static val_t once_value_8
; /* Once value */
9545 static val_t once_value_9
; /* Once value */
9546 static val_t once_value_10
; /* Once value */
9547 static val_t once_value_11
; /* Once value */
9548 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9549 fra
.me
.file
= LOCATE_typing
;
9551 fra
.me
.meth
= LOCATE_typing___ASendReassignExpr___do_all_typing
;
9552 fra
.me
.has_broke
= 0;
9553 fra
.me
.REG_size
= 7;
9554 fra
.me
.REG
[0] = NIT_NULL
;
9555 fra
.me
.REG
[1] = NIT_NULL
;
9556 fra
.me
.REG
[2] = NIT_NULL
;
9557 fra
.me
.REG
[3] = NIT_NULL
;
9558 fra
.me
.REG
[4] = NIT_NULL
;
9559 fra
.me
.REG
[5] = NIT_NULL
;
9560 fra
.me
.REG
[6] = NIT_NULL
;
9563 /* ./syntax//typing.nit:1618 */
9564 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9565 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
9566 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9567 if (UNTAG_Bool(REGB0
)) {
9570 /* ./syntax//typing.nit:1619 */
9571 fra
.me
.REG
[2] = CALL_syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9572 /* ./syntax//typing.nit:1620 */
9573 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9574 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9575 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9576 REGB0
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9577 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9578 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9579 fra
.me
.REG
[4] = CALL_typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9580 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
);
9581 /* ./syntax//typing.nit:1621 */
9582 fra
.me
.REG
[4] = ATTR_typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
9583 /* ./syntax//typing.nit:1622 */
9584 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9585 if (UNTAG_Bool(REGB1
)) {
9587 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9588 if (UNTAG_Bool(REGB0
)) {
9589 REGB0
= TAG_Bool(false);
9592 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9596 if (UNTAG_Bool(REGB1
)) {
9599 /* ./syntax//typing.nit:1623 */
9600 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9601 if (UNTAG_Bool(REGB1
)) {
9602 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1623);
9604 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9605 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9606 if (UNTAG_Bool(REGB1
)) {
9607 /* ./syntax//typing.nit:1624 */
9608 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9609 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9610 REGB1
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9611 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9612 if (UNTAG_Bool(REGB1
)) {
9613 /* ./syntax//typing.nit:1625 */
9615 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
9616 if (!once_value_2
) {
9617 fra
.me
.REG
[5] = BOX_NativeString("Error: try to invoke constructor ");
9618 REGB1
= TAG_Int(33);
9619 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
9620 once_value_2
= fra
.me
.REG
[5];
9621 register_static_object(&once_value_2
);
9622 } else fra
.me
.REG
[5] = once_value_2
;
9623 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9624 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9625 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9626 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9627 if (!once_value_3
) {
9628 fra
.me
.REG
[5] = BOX_NativeString(" in a method.");
9629 REGB1
= TAG_Int(13);
9630 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
9631 once_value_3
= fra
.me
.REG
[5];
9632 register_static_object(&once_value_3
);
9633 } else fra
.me
.REG
[5] = once_value_3
;
9634 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9635 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9636 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9637 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
9639 /* ./syntax//typing.nit:1626 */
9640 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9641 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9642 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9643 if (UNTAG_Bool(REGB1
)) {
9644 /* ./syntax//typing.nit:1627 */
9646 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB1
);
9647 if (!once_value_4
) {
9648 fra
.me
.REG
[5] = BOX_NativeString("Error: constructor ");
9649 REGB1
= TAG_Int(19);
9650 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
9651 once_value_4
= fra
.me
.REG
[5];
9652 register_static_object(&once_value_4
);
9653 } else fra
.me
.REG
[5] = once_value_4
;
9654 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9655 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9656 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9657 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9658 if (!once_value_5
) {
9659 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
9660 REGB1
= TAG_Int(26);
9661 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB1
);
9662 once_value_5
= fra
.me
.REG
[5];
9663 register_static_object(&once_value_5
);
9664 } else fra
.me
.REG
[5] = once_value_5
;
9665 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9666 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9667 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9668 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
9672 /* ./syntax//typing.nit:1630 */
9673 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9674 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9675 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9676 if (UNTAG_Bool(REGB1
)) {
9677 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1630);
9679 fra
.me
.REG
[3] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9680 fra
.me
.REG
[3] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9681 REGB1
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
9682 if (UNTAG_Bool(REGB1
)) {
9684 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1630);
9686 /* ./syntax//typing.nit:1631 */
9687 fra
.me
.REG
[5] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9688 REGB1
= CALL_typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9689 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9690 if (UNTAG_Bool(REGB1
)) {
9691 fra
.me
.REG
[5] = CALL_static_type___MMType___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9692 fra
.me
.REG
[3] = fra
.me
.REG
[5];
9694 /* ./syntax//typing.nit:1633 */
9695 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]);
9696 /* ./syntax//typing.nit:1634 */
9697 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9698 if (UNTAG_Bool(REGB1
)) {
9700 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9701 if (UNTAG_Bool(REGB0
)) {
9702 REGB0
= TAG_Bool(false);
9705 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9709 if (UNTAG_Bool(REGB1
)) {
9712 /* ./syntax//typing.nit:1635 */
9713 fra
.me
.REG
[5] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9714 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9715 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]);
9716 /* ./syntax//typing.nit:1637 */
9717 ATTR_typing___ASendReassignExpr____read_prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
9718 /* ./syntax//typing.nit:1638 */
9719 fra
.me
.REG
[5] = CALL_array___Collection___to_a(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9720 fra
.me
.REG
[2] = fra
.me
.REG
[5];
9721 /* ./syntax//typing.nit:1639 */
9722 fra
.me
.REG
[5] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9723 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
9724 /* ./syntax//typing.nit:1641 */
9725 fra
.me
.REG
[5] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9726 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9727 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9728 REGB1
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9729 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9730 REGB0
= CALL_typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9732 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB2
);
9733 if (!once_value_6
) {
9734 fra
.me
.REG
[6] = BOX_NativeString("");
9736 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB2
);
9737 once_value_6
= fra
.me
.REG
[6];
9738 register_static_object(&once_value_6
);
9739 } else fra
.me
.REG
[6] = once_value_6
;
9740 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9741 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
9742 fra
.me
.REG
[6] = CALL_typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9743 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9744 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
9745 if (!once_value_7
) {
9746 fra
.me
.REG
[6] = BOX_NativeString("=");
9748 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB2
);
9749 once_value_7
= fra
.me
.REG
[6];
9750 register_static_object(&once_value_7
);
9751 } else fra
.me
.REG
[6] = once_value_7
;
9752 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9753 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
9754 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9755 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9756 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
);
9757 /* ./syntax//typing.nit:1642 */
9758 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9759 if (UNTAG_Bool(REGB0
)) {
9760 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1642);
9762 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9763 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9764 if (UNTAG_Bool(REGB0
)) {
9765 /* ./syntax//typing.nit:1643 */
9766 fra
.me
.REG
[2] = CALL_syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9767 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9768 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9769 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9770 if (UNTAG_Bool(REGB0
)) {
9771 /* ./syntax//typing.nit:1644 */
9773 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
9774 if (!once_value_8
) {
9775 fra
.me
.REG
[3] = BOX_NativeString("Error: try to invoke constructor ");
9776 REGB0
= TAG_Int(33);
9777 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
9778 once_value_8
= fra
.me
.REG
[3];
9779 register_static_object(&once_value_8
);
9780 } else fra
.me
.REG
[3] = once_value_8
;
9781 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9782 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
9783 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9784 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
9785 if (!once_value_9
) {
9786 fra
.me
.REG
[3] = BOX_NativeString(" in a method.");
9787 REGB0
= TAG_Int(13);
9788 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
9789 once_value_9
= fra
.me
.REG
[3];
9790 register_static_object(&once_value_9
);
9791 } else fra
.me
.REG
[3] = once_value_9
;
9792 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9793 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
9794 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9795 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
9797 /* ./syntax//typing.nit:1645 */
9798 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9799 REGB0
= CALL_typing___AExpr___is_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9800 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9801 if (UNTAG_Bool(REGB0
)) {
9802 /* ./syntax//typing.nit:1646 */
9804 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
9805 if (!once_value_10
) {
9806 fra
.me
.REG
[3] = BOX_NativeString("Error: constructor ");
9807 REGB0
= TAG_Int(19);
9808 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
9809 once_value_10
= fra
.me
.REG
[3];
9810 register_static_object(&once_value_10
);
9811 } else fra
.me
.REG
[3] = once_value_10
;
9812 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9813 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
9814 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9815 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
9816 if (!once_value_11
) {
9817 fra
.me
.REG
[4] = BOX_NativeString(" is not invoken on 'self'.");
9818 REGB0
= TAG_Int(26);
9819 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
9820 once_value_11
= fra
.me
.REG
[4];
9821 register_static_object(&once_value_11
);
9822 } else fra
.me
.REG
[4] = once_value_11
;
9823 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9824 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
9825 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9826 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
9830 /* ./syntax//typing.nit:1650 */
9831 REGB0
= TAG_Bool(true);
9832 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
9834 stack_frame_head
= fra
.me
.prev
;
9837 val_t
typing___ABinopExpr___compute_raw_arguments(val_t p0
){
9838 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9841 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9842 fra
.me
.file
= LOCATE_typing
;
9844 fra
.me
.meth
= LOCATE_typing___ABinopExpr___compute_raw_arguments
;
9845 fra
.me
.has_broke
= 0;
9846 fra
.me
.REG_size
= 2;
9847 fra
.me
.REG
[0] = NIT_NULL
;
9848 fra
.me
.REG
[1] = NIT_NULL
;
9850 /* ./syntax//typing.nit:1655 */
9852 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
9853 fra
.me
.REG
[0] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9854 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
9857 stack_frame_head
= fra
.me
.prev
;
9858 return fra
.me
.REG
[1];
9860 val_t
typing___AEqExpr___name(val_t p0
){
9861 struct {struct stack_frame_t me
;} fra
;
9864 static val_t once_value_1
; /* Once value */
9865 static val_t once_value_2
; /* Once value */
9866 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9867 fra
.me
.file
= LOCATE_typing
;
9869 fra
.me
.meth
= LOCATE_typing___AEqExpr___name
;
9870 fra
.me
.has_broke
= 0;
9871 fra
.me
.REG_size
= 1;
9872 fra
.me
.REG
[0] = NIT_NULL
;
9874 /* ./syntax//typing.nit:1658 */
9875 if (!once_value_1
) {
9876 if (!once_value_2
) {
9877 fra
.me
.REG
[0] = BOX_NativeString("==");
9879 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
9880 once_value_2
= fra
.me
.REG
[0];
9881 register_static_object(&once_value_2
);
9882 } else fra
.me
.REG
[0] = once_value_2
;
9883 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9884 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9885 once_value_1
= fra
.me
.REG
[0];
9886 register_static_object(&once_value_1
);
9887 } else fra
.me
.REG
[0] = once_value_1
;
9888 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9891 stack_frame_head
= fra
.me
.prev
;
9892 return fra
.me
.REG
[0];
9894 void typing___AEqExpr___after_typing(val_t p0
, val_t p1
){
9895 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
9899 static val_t once_value_2
; /* Once value */
9900 static val_t once_value_3
; /* Once value */
9901 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9902 fra
.me
.file
= LOCATE_typing
;
9904 fra
.me
.meth
= LOCATE_typing___AEqExpr___after_typing
;
9905 fra
.me
.has_broke
= 0;
9906 fra
.me
.REG_size
= 4;
9907 fra
.me
.REG
[0] = NIT_NULL
;
9908 fra
.me
.REG
[1] = NIT_NULL
;
9909 fra
.me
.REG
[2] = NIT_NULL
;
9910 fra
.me
.REG
[3] = NIT_NULL
;
9913 /* ./syntax//typing.nit:1659 */
9914 fra
.me
.REG
[2] = fra
.me
.REG
[0];
9915 fra
.me
.REG
[3] = fra
.me
.REG
[1];
9916 /* ./syntax//typing.nit:1661 */
9917 CALL_SUPER_typing___AEqExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
9918 /* ./syntax//typing.nit:1662 */
9919 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9920 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9921 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9922 if (UNTAG_Bool(REGB0
)) {
9923 REGB0
= TAG_Bool(true);
9925 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9926 REGB1
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9927 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9930 if (UNTAG_Bool(REGB0
)) {
9933 /* ./syntax//typing.nit:1663 */
9934 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9935 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9936 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9937 if (UNTAG_Bool(REGB0
)) {
9938 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9939 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9940 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9941 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9943 REGB1
= TAG_Bool(false);
9946 if (UNTAG_Bool(REGB0
)) {
9947 REGB0
= TAG_Bool(true);
9949 /* ./syntax//typing.nit:1664 */
9950 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9951 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9952 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9953 /* ./syntax//typing.nit:1663 */
9956 if (UNTAG_Bool(REGB0
)) {
9957 /* ./syntax//typing.nit:1664 */
9958 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9959 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9960 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9961 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9963 /* ./syntax//typing.nit:1663 */
9964 REGB1
= TAG_Bool(false);
9967 if (UNTAG_Bool(REGB0
)) {
9968 /* ./syntax//typing.nit:1665 */
9969 if (!once_value_2
) {
9970 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
9971 REGB0
= TAG_Int(59);
9972 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
9973 once_value_2
= fra
.me
.REG
[1];
9974 register_static_object(&once_value_2
);
9975 } else fra
.me
.REG
[1] = once_value_2
;
9976 fra
.me
.REG
[1] = fra
.me
.REG
[1];
9977 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
9979 /* ./syntax//typing.nit:1668 */
9980 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9981 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9982 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9983 if (UNTAG_Bool(REGB0
)) {
9984 /* ./syntax//typing.nit:1669 */
9985 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9986 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9987 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
9988 if (UNTAG_Bool(REGB0
)) {
9989 /* ./syntax//typing.nit:1670 */
9990 if (!once_value_3
) {
9991 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
9992 REGB0
= TAG_Int(43);
9993 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
9994 once_value_3
= fra
.me
.REG
[1];
9995 register_static_object(&once_value_3
);
9996 } else fra
.me
.REG
[1] = once_value_3
;
9997 fra
.me
.REG
[1] = fra
.me
.REG
[1];
9998 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10000 /* ./syntax//typing.nit:1672 */
10001 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10002 CALL_typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10005 /* ./syntax//typing.nit:1674 */
10006 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10007 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10008 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
10009 if (UNTAG_Bool(REGB0
)) {
10010 /* ./syntax//typing.nit:1675 */
10011 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10012 CALL_typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10016 stack_frame_head
= fra
.me
.prev
;
10019 void typing___AEqExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
10020 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10024 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10025 fra
.me
.file
= LOCATE_typing
;
10026 fra
.me
.line
= 1679;
10027 fra
.me
.meth
= LOCATE_typing___AEqExpr___try_to_isa
;
10028 fra
.me
.has_broke
= 0;
10029 fra
.me
.REG_size
= 5;
10030 fra
.me
.REG
[0] = NIT_NULL
;
10031 fra
.me
.REG
[1] = NIT_NULL
;
10032 fra
.me
.REG
[2] = NIT_NULL
;
10033 fra
.me
.REG
[3] = NIT_NULL
;
10034 fra
.me
.REG
[4] = NIT_NULL
;
10035 fra
.me
.REG
[0] = p0
;
10036 fra
.me
.REG
[1] = p1
;
10037 fra
.me
.REG
[2] = p2
;
10038 /* ./syntax//typing.nit:1681 */
10039 fra
.me
.REG
[3] = CALL_typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10040 /* ./syntax//typing.nit:1682 */
10041 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10042 if (UNTAG_Bool(REGB0
)) {
10044 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10045 if (UNTAG_Bool(REGB1
)) {
10046 REGB1
= TAG_Bool(false);
10049 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10053 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10054 if (UNTAG_Bool(REGB0
)) {
10055 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10056 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_MMNullableType
, ID_MMNullableType
)) /*cast MMNullableType*/;
10058 REGB1
= TAG_Bool(false);
10061 if (UNTAG_Bool(REGB0
)) {
10062 /* ./syntax//typing.nit:1683 */
10063 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10064 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10065 fra
.me
.REG
[2] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10066 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]);
10067 ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10068 /* ./syntax//typing.nit:1684 */
10069 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10070 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10071 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]);
10072 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
10074 stack_frame_head
= fra
.me
.prev
;
10077 val_t
typing___ANeExpr___name(val_t p0
){
10078 struct {struct stack_frame_t me
;} fra
;
10081 static val_t once_value_1
; /* Once value */
10082 static val_t once_value_2
; /* Once value */
10083 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10084 fra
.me
.file
= LOCATE_typing
;
10085 fra
.me
.line
= 1689;
10086 fra
.me
.meth
= LOCATE_typing___ANeExpr___name
;
10087 fra
.me
.has_broke
= 0;
10088 fra
.me
.REG_size
= 1;
10089 fra
.me
.REG
[0] = NIT_NULL
;
10090 fra
.me
.REG
[0] = p0
;
10091 /* ./syntax//typing.nit:1689 */
10092 if (!once_value_1
) {
10093 if (!once_value_2
) {
10094 fra
.me
.REG
[0] = BOX_NativeString("!=");
10095 REGB0
= TAG_Int(2);
10096 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10097 once_value_2
= fra
.me
.REG
[0];
10098 register_static_object(&once_value_2
);
10099 } else fra
.me
.REG
[0] = once_value_2
;
10100 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10101 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10102 once_value_1
= fra
.me
.REG
[0];
10103 register_static_object(&once_value_1
);
10104 } else fra
.me
.REG
[0] = once_value_1
;
10105 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10108 stack_frame_head
= fra
.me
.prev
;
10109 return fra
.me
.REG
[0];
10111 void typing___ANeExpr___after_typing(val_t p0
, val_t p1
){
10112 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
10116 static val_t once_value_2
; /* Once value */
10117 static val_t once_value_3
; /* Once value */
10118 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10119 fra
.me
.file
= LOCATE_typing
;
10120 fra
.me
.line
= 1690;
10121 fra
.me
.meth
= LOCATE_typing___ANeExpr___after_typing
;
10122 fra
.me
.has_broke
= 0;
10123 fra
.me
.REG_size
= 4;
10124 fra
.me
.REG
[0] = NIT_NULL
;
10125 fra
.me
.REG
[1] = NIT_NULL
;
10126 fra
.me
.REG
[2] = NIT_NULL
;
10127 fra
.me
.REG
[3] = NIT_NULL
;
10128 fra
.me
.REG
[0] = p0
;
10129 fra
.me
.REG
[1] = p1
;
10130 /* ./syntax//typing.nit:1690 */
10131 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10132 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10133 /* ./syntax//typing.nit:1692 */
10134 CALL_SUPER_typing___ANeExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10135 /* ./syntax//typing.nit:1693 */
10136 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10137 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10138 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10139 if (UNTAG_Bool(REGB0
)) {
10140 REGB0
= TAG_Bool(true);
10142 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10143 REGB1
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10144 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10147 if (UNTAG_Bool(REGB0
)) {
10150 /* ./syntax//typing.nit:1694 */
10151 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10152 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10153 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
10154 if (UNTAG_Bool(REGB0
)) {
10155 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10156 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10157 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10158 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10160 REGB1
= TAG_Bool(false);
10163 if (UNTAG_Bool(REGB0
)) {
10164 REGB0
= TAG_Bool(true);
10166 /* ./syntax//typing.nit:1695 */
10167 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10168 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10169 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
10170 /* ./syntax//typing.nit:1694 */
10173 if (UNTAG_Bool(REGB0
)) {
10174 /* ./syntax//typing.nit:1695 */
10175 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10176 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10177 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10178 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10180 /* ./syntax//typing.nit:1694 */
10181 REGB1
= TAG_Bool(false);
10184 if (UNTAG_Bool(REGB0
)) {
10185 /* ./syntax//typing.nit:1696 */
10186 if (!once_value_2
) {
10187 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
10188 REGB0
= TAG_Int(59);
10189 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
10190 once_value_2
= fra
.me
.REG
[1];
10191 register_static_object(&once_value_2
);
10192 } else fra
.me
.REG
[1] = once_value_2
;
10193 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10194 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10196 /* ./syntax//typing.nit:1699 */
10197 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10198 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10199 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
10200 if (UNTAG_Bool(REGB0
)) {
10201 /* ./syntax//typing.nit:1700 */
10202 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10203 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10204 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
10205 if (UNTAG_Bool(REGB0
)) {
10206 /* ./syntax//typing.nit:1701 */
10207 if (!once_value_3
) {
10208 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
10209 REGB0
= TAG_Int(43);
10210 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
10211 once_value_3
= fra
.me
.REG
[1];
10212 register_static_object(&once_value_3
);
10213 } else fra
.me
.REG
[1] = once_value_3
;
10214 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10215 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10217 /* ./syntax//typing.nit:1703 */
10218 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10219 CALL_typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10222 /* ./syntax//typing.nit:1705 */
10223 fra
.me
.REG
[1] = CALL_parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10224 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10225 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
10226 if (UNTAG_Bool(REGB0
)) {
10227 /* ./syntax//typing.nit:1706 */
10228 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10229 CALL_typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10233 stack_frame_head
= fra
.me
.prev
;
10236 void typing___ANeExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
10237 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10241 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10242 fra
.me
.file
= LOCATE_typing
;
10243 fra
.me
.line
= 1710;
10244 fra
.me
.meth
= LOCATE_typing___ANeExpr___try_to_isa
;
10245 fra
.me
.has_broke
= 0;
10246 fra
.me
.REG_size
= 5;
10247 fra
.me
.REG
[0] = NIT_NULL
;
10248 fra
.me
.REG
[1] = NIT_NULL
;
10249 fra
.me
.REG
[2] = NIT_NULL
;
10250 fra
.me
.REG
[3] = NIT_NULL
;
10251 fra
.me
.REG
[4] = NIT_NULL
;
10252 fra
.me
.REG
[0] = p0
;
10253 fra
.me
.REG
[1] = p1
;
10254 fra
.me
.REG
[2] = p2
;
10255 /* ./syntax//typing.nit:1712 */
10256 fra
.me
.REG
[3] = CALL_typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10257 /* ./syntax//typing.nit:1713 */
10258 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10259 if (UNTAG_Bool(REGB0
)) {
10261 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10262 if (UNTAG_Bool(REGB1
)) {
10263 REGB1
= TAG_Bool(false);
10266 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10270 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10271 if (UNTAG_Bool(REGB0
)) {
10272 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10273 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_MMNullableType
, ID_MMNullableType
)) /*cast MMNullableType*/;
10275 REGB1
= TAG_Bool(false);
10278 if (UNTAG_Bool(REGB0
)) {
10279 /* ./syntax//typing.nit:1714 */
10280 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10281 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10282 fra
.me
.REG
[2] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10283 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]);
10284 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10285 /* ./syntax//typing.nit:1715 */
10286 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10287 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10288 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]);
10289 ATTR_typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
10291 stack_frame_head
= fra
.me
.prev
;
10294 val_t
typing___ALtExpr___name(val_t p0
){
10295 struct {struct stack_frame_t me
;} fra
;
10298 static val_t once_value_1
; /* Once value */
10299 static val_t once_value_2
; /* Once value */
10300 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10301 fra
.me
.file
= LOCATE_typing
;
10302 fra
.me
.line
= 1720;
10303 fra
.me
.meth
= LOCATE_typing___ALtExpr___name
;
10304 fra
.me
.has_broke
= 0;
10305 fra
.me
.REG_size
= 1;
10306 fra
.me
.REG
[0] = NIT_NULL
;
10307 fra
.me
.REG
[0] = p0
;
10308 /* ./syntax//typing.nit:1720 */
10309 if (!once_value_1
) {
10310 if (!once_value_2
) {
10311 fra
.me
.REG
[0] = BOX_NativeString("<");
10312 REGB0
= TAG_Int(1);
10313 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10314 once_value_2
= fra
.me
.REG
[0];
10315 register_static_object(&once_value_2
);
10316 } else fra
.me
.REG
[0] = once_value_2
;
10317 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10318 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10319 once_value_1
= fra
.me
.REG
[0];
10320 register_static_object(&once_value_1
);
10321 } else fra
.me
.REG
[0] = once_value_1
;
10322 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10325 stack_frame_head
= fra
.me
.prev
;
10326 return fra
.me
.REG
[0];
10328 val_t
typing___ALeExpr___name(val_t p0
){
10329 struct {struct stack_frame_t me
;} fra
;
10332 static val_t once_value_1
; /* Once value */
10333 static val_t once_value_2
; /* Once value */
10334 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10335 fra
.me
.file
= LOCATE_typing
;
10336 fra
.me
.line
= 1723;
10337 fra
.me
.meth
= LOCATE_typing___ALeExpr___name
;
10338 fra
.me
.has_broke
= 0;
10339 fra
.me
.REG_size
= 1;
10340 fra
.me
.REG
[0] = NIT_NULL
;
10341 fra
.me
.REG
[0] = p0
;
10342 /* ./syntax//typing.nit:1723 */
10343 if (!once_value_1
) {
10344 if (!once_value_2
) {
10345 fra
.me
.REG
[0] = BOX_NativeString("<=");
10346 REGB0
= TAG_Int(2);
10347 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10348 once_value_2
= fra
.me
.REG
[0];
10349 register_static_object(&once_value_2
);
10350 } else fra
.me
.REG
[0] = once_value_2
;
10351 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10352 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10353 once_value_1
= fra
.me
.REG
[0];
10354 register_static_object(&once_value_1
);
10355 } else fra
.me
.REG
[0] = once_value_1
;
10356 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10359 stack_frame_head
= fra
.me
.prev
;
10360 return fra
.me
.REG
[0];
10362 val_t
typing___ALlExpr___name(val_t p0
){
10363 struct {struct stack_frame_t me
;} fra
;
10366 static val_t once_value_1
; /* Once value */
10367 static val_t once_value_2
; /* Once value */
10368 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10369 fra
.me
.file
= LOCATE_typing
;
10370 fra
.me
.line
= 1726;
10371 fra
.me
.meth
= LOCATE_typing___ALlExpr___name
;
10372 fra
.me
.has_broke
= 0;
10373 fra
.me
.REG_size
= 1;
10374 fra
.me
.REG
[0] = NIT_NULL
;
10375 fra
.me
.REG
[0] = p0
;
10376 /* ./syntax//typing.nit:1726 */
10377 if (!once_value_1
) {
10378 if (!once_value_2
) {
10379 fra
.me
.REG
[0] = BOX_NativeString("<<");
10380 REGB0
= TAG_Int(2);
10381 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10382 once_value_2
= fra
.me
.REG
[0];
10383 register_static_object(&once_value_2
);
10384 } else fra
.me
.REG
[0] = once_value_2
;
10385 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10386 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10387 once_value_1
= fra
.me
.REG
[0];
10388 register_static_object(&once_value_1
);
10389 } else fra
.me
.REG
[0] = once_value_1
;
10390 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10393 stack_frame_head
= fra
.me
.prev
;
10394 return fra
.me
.REG
[0];
10396 val_t
typing___AGtExpr___name(val_t p0
){
10397 struct {struct stack_frame_t me
;} fra
;
10400 static val_t once_value_1
; /* Once value */
10401 static val_t once_value_2
; /* Once value */
10402 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10403 fra
.me
.file
= LOCATE_typing
;
10404 fra
.me
.line
= 1729;
10405 fra
.me
.meth
= LOCATE_typing___AGtExpr___name
;
10406 fra
.me
.has_broke
= 0;
10407 fra
.me
.REG_size
= 1;
10408 fra
.me
.REG
[0] = NIT_NULL
;
10409 fra
.me
.REG
[0] = p0
;
10410 /* ./syntax//typing.nit:1729 */
10411 if (!once_value_1
) {
10412 if (!once_value_2
) {
10413 fra
.me
.REG
[0] = BOX_NativeString(">");
10414 REGB0
= TAG_Int(1);
10415 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10416 once_value_2
= fra
.me
.REG
[0];
10417 register_static_object(&once_value_2
);
10418 } else fra
.me
.REG
[0] = once_value_2
;
10419 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10420 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10421 once_value_1
= fra
.me
.REG
[0];
10422 register_static_object(&once_value_1
);
10423 } else fra
.me
.REG
[0] = once_value_1
;
10424 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10427 stack_frame_head
= fra
.me
.prev
;
10428 return fra
.me
.REG
[0];
10430 val_t
typing___AGeExpr___name(val_t p0
){
10431 struct {struct stack_frame_t me
;} fra
;
10434 static val_t once_value_1
; /* Once value */
10435 static val_t once_value_2
; /* Once value */
10436 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10437 fra
.me
.file
= LOCATE_typing
;
10438 fra
.me
.line
= 1732;
10439 fra
.me
.meth
= LOCATE_typing___AGeExpr___name
;
10440 fra
.me
.has_broke
= 0;
10441 fra
.me
.REG_size
= 1;
10442 fra
.me
.REG
[0] = NIT_NULL
;
10443 fra
.me
.REG
[0] = p0
;
10444 /* ./syntax//typing.nit:1732 */
10445 if (!once_value_1
) {
10446 if (!once_value_2
) {
10447 fra
.me
.REG
[0] = BOX_NativeString(">=");
10448 REGB0
= TAG_Int(2);
10449 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10450 once_value_2
= fra
.me
.REG
[0];
10451 register_static_object(&once_value_2
);
10452 } else fra
.me
.REG
[0] = once_value_2
;
10453 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10454 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10455 once_value_1
= fra
.me
.REG
[0];
10456 register_static_object(&once_value_1
);
10457 } else fra
.me
.REG
[0] = once_value_1
;
10458 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10461 stack_frame_head
= fra
.me
.prev
;
10462 return fra
.me
.REG
[0];
10464 val_t
typing___AGgExpr___name(val_t p0
){
10465 struct {struct stack_frame_t me
;} fra
;
10468 static val_t once_value_1
; /* Once value */
10469 static val_t once_value_2
; /* Once value */
10470 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10471 fra
.me
.file
= LOCATE_typing
;
10472 fra
.me
.line
= 1735;
10473 fra
.me
.meth
= LOCATE_typing___AGgExpr___name
;
10474 fra
.me
.has_broke
= 0;
10475 fra
.me
.REG_size
= 1;
10476 fra
.me
.REG
[0] = NIT_NULL
;
10477 fra
.me
.REG
[0] = p0
;
10478 /* ./syntax//typing.nit:1735 */
10479 if (!once_value_1
) {
10480 if (!once_value_2
) {
10481 fra
.me
.REG
[0] = BOX_NativeString(">>");
10482 REGB0
= TAG_Int(2);
10483 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10484 once_value_2
= fra
.me
.REG
[0];
10485 register_static_object(&once_value_2
);
10486 } else fra
.me
.REG
[0] = once_value_2
;
10487 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10488 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10489 once_value_1
= fra
.me
.REG
[0];
10490 register_static_object(&once_value_1
);
10491 } else fra
.me
.REG
[0] = once_value_1
;
10492 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10495 stack_frame_head
= fra
.me
.prev
;
10496 return fra
.me
.REG
[0];
10498 val_t
typing___APlusExpr___name(val_t p0
){
10499 struct {struct stack_frame_t me
;} fra
;
10502 static val_t once_value_1
; /* Once value */
10503 static val_t once_value_2
; /* Once value */
10504 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10505 fra
.me
.file
= LOCATE_typing
;
10506 fra
.me
.line
= 1738;
10507 fra
.me
.meth
= LOCATE_typing___APlusExpr___name
;
10508 fra
.me
.has_broke
= 0;
10509 fra
.me
.REG_size
= 1;
10510 fra
.me
.REG
[0] = NIT_NULL
;
10511 fra
.me
.REG
[0] = p0
;
10512 /* ./syntax//typing.nit:1738 */
10513 if (!once_value_1
) {
10514 if (!once_value_2
) {
10515 fra
.me
.REG
[0] = BOX_NativeString("+");
10516 REGB0
= TAG_Int(1);
10517 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10518 once_value_2
= fra
.me
.REG
[0];
10519 register_static_object(&once_value_2
);
10520 } else fra
.me
.REG
[0] = once_value_2
;
10521 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10522 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10523 once_value_1
= fra
.me
.REG
[0];
10524 register_static_object(&once_value_1
);
10525 } else fra
.me
.REG
[0] = once_value_1
;
10526 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10529 stack_frame_head
= fra
.me
.prev
;
10530 return fra
.me
.REG
[0];
10532 val_t
typing___AMinusExpr___name(val_t p0
){
10533 struct {struct stack_frame_t me
;} fra
;
10536 static val_t once_value_1
; /* Once value */
10537 static val_t once_value_2
; /* Once value */
10538 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10539 fra
.me
.file
= LOCATE_typing
;
10540 fra
.me
.line
= 1741;
10541 fra
.me
.meth
= LOCATE_typing___AMinusExpr___name
;
10542 fra
.me
.has_broke
= 0;
10543 fra
.me
.REG_size
= 1;
10544 fra
.me
.REG
[0] = NIT_NULL
;
10545 fra
.me
.REG
[0] = p0
;
10546 /* ./syntax//typing.nit:1741 */
10547 if (!once_value_1
) {
10548 if (!once_value_2
) {
10549 fra
.me
.REG
[0] = BOX_NativeString("-");
10550 REGB0
= TAG_Int(1);
10551 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10552 once_value_2
= fra
.me
.REG
[0];
10553 register_static_object(&once_value_2
);
10554 } else fra
.me
.REG
[0] = once_value_2
;
10555 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10556 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10557 once_value_1
= fra
.me
.REG
[0];
10558 register_static_object(&once_value_1
);
10559 } else fra
.me
.REG
[0] = once_value_1
;
10560 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10563 stack_frame_head
= fra
.me
.prev
;
10564 return fra
.me
.REG
[0];
10566 val_t
typing___AStarshipExpr___name(val_t p0
){
10567 struct {struct stack_frame_t me
;} fra
;
10570 static val_t once_value_1
; /* Once value */
10571 static val_t once_value_2
; /* Once value */
10572 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10573 fra
.me
.file
= LOCATE_typing
;
10574 fra
.me
.line
= 1744;
10575 fra
.me
.meth
= LOCATE_typing___AStarshipExpr___name
;
10576 fra
.me
.has_broke
= 0;
10577 fra
.me
.REG_size
= 1;
10578 fra
.me
.REG
[0] = NIT_NULL
;
10579 fra
.me
.REG
[0] = p0
;
10580 /* ./syntax//typing.nit:1744 */
10581 if (!once_value_1
) {
10582 if (!once_value_2
) {
10583 fra
.me
.REG
[0] = BOX_NativeString("<=>");
10584 REGB0
= TAG_Int(3);
10585 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10586 once_value_2
= fra
.me
.REG
[0];
10587 register_static_object(&once_value_2
);
10588 } else fra
.me
.REG
[0] = once_value_2
;
10589 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10590 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10591 once_value_1
= fra
.me
.REG
[0];
10592 register_static_object(&once_value_1
);
10593 } else fra
.me
.REG
[0] = once_value_1
;
10594 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10597 stack_frame_head
= fra
.me
.prev
;
10598 return fra
.me
.REG
[0];
10600 val_t
typing___AStarExpr___name(val_t p0
){
10601 struct {struct stack_frame_t me
;} fra
;
10604 static val_t once_value_1
; /* Once value */
10605 static val_t once_value_2
; /* Once value */
10606 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10607 fra
.me
.file
= LOCATE_typing
;
10608 fra
.me
.line
= 1747;
10609 fra
.me
.meth
= LOCATE_typing___AStarExpr___name
;
10610 fra
.me
.has_broke
= 0;
10611 fra
.me
.REG_size
= 1;
10612 fra
.me
.REG
[0] = NIT_NULL
;
10613 fra
.me
.REG
[0] = p0
;
10614 /* ./syntax//typing.nit:1747 */
10615 if (!once_value_1
) {
10616 if (!once_value_2
) {
10617 fra
.me
.REG
[0] = BOX_NativeString("*");
10618 REGB0
= TAG_Int(1);
10619 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10620 once_value_2
= fra
.me
.REG
[0];
10621 register_static_object(&once_value_2
);
10622 } else fra
.me
.REG
[0] = once_value_2
;
10623 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10624 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10625 once_value_1
= fra
.me
.REG
[0];
10626 register_static_object(&once_value_1
);
10627 } else fra
.me
.REG
[0] = once_value_1
;
10628 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10631 stack_frame_head
= fra
.me
.prev
;
10632 return fra
.me
.REG
[0];
10634 val_t
typing___ASlashExpr___name(val_t p0
){
10635 struct {struct stack_frame_t me
;} fra
;
10638 static val_t once_value_1
; /* Once value */
10639 static val_t once_value_2
; /* Once value */
10640 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10641 fra
.me
.file
= LOCATE_typing
;
10642 fra
.me
.line
= 1750;
10643 fra
.me
.meth
= LOCATE_typing___ASlashExpr___name
;
10644 fra
.me
.has_broke
= 0;
10645 fra
.me
.REG_size
= 1;
10646 fra
.me
.REG
[0] = NIT_NULL
;
10647 fra
.me
.REG
[0] = p0
;
10648 /* ./syntax//typing.nit:1750 */
10649 if (!once_value_1
) {
10650 if (!once_value_2
) {
10651 fra
.me
.REG
[0] = BOX_NativeString("/");
10652 REGB0
= TAG_Int(1);
10653 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10654 once_value_2
= fra
.me
.REG
[0];
10655 register_static_object(&once_value_2
);
10656 } else fra
.me
.REG
[0] = once_value_2
;
10657 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10658 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10659 once_value_1
= fra
.me
.REG
[0];
10660 register_static_object(&once_value_1
);
10661 } else fra
.me
.REG
[0] = once_value_1
;
10662 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10665 stack_frame_head
= fra
.me
.prev
;
10666 return fra
.me
.REG
[0];
10668 val_t
typing___APercentExpr___name(val_t p0
){
10669 struct {struct stack_frame_t me
;} fra
;
10672 static val_t once_value_1
; /* Once value */
10673 static val_t once_value_2
; /* Once value */
10674 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10675 fra
.me
.file
= LOCATE_typing
;
10676 fra
.me
.line
= 1753;
10677 fra
.me
.meth
= LOCATE_typing___APercentExpr___name
;
10678 fra
.me
.has_broke
= 0;
10679 fra
.me
.REG_size
= 1;
10680 fra
.me
.REG
[0] = NIT_NULL
;
10681 fra
.me
.REG
[0] = p0
;
10682 /* ./syntax//typing.nit:1753 */
10683 if (!once_value_1
) {
10684 if (!once_value_2
) {
10685 fra
.me
.REG
[0] = BOX_NativeString("%");
10686 REGB0
= TAG_Int(1);
10687 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10688 once_value_2
= fra
.me
.REG
[0];
10689 register_static_object(&once_value_2
);
10690 } else fra
.me
.REG
[0] = once_value_2
;
10691 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10692 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10693 once_value_1
= fra
.me
.REG
[0];
10694 register_static_object(&once_value_1
);
10695 } else fra
.me
.REG
[0] = once_value_1
;
10696 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10699 stack_frame_head
= fra
.me
.prev
;
10700 return fra
.me
.REG
[0];
10702 val_t
typing___AUminusExpr___name(val_t p0
){
10703 struct {struct stack_frame_t me
;} fra
;
10706 static val_t once_value_1
; /* Once value */
10707 static val_t once_value_2
; /* Once value */
10708 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10709 fra
.me
.file
= LOCATE_typing
;
10710 fra
.me
.line
= 1757;
10711 fra
.me
.meth
= LOCATE_typing___AUminusExpr___name
;
10712 fra
.me
.has_broke
= 0;
10713 fra
.me
.REG_size
= 1;
10714 fra
.me
.REG
[0] = NIT_NULL
;
10715 fra
.me
.REG
[0] = p0
;
10716 /* ./syntax//typing.nit:1757 */
10717 if (!once_value_1
) {
10718 if (!once_value_2
) {
10719 fra
.me
.REG
[0] = BOX_NativeString("unary -");
10720 REGB0
= TAG_Int(7);
10721 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
10722 once_value_2
= fra
.me
.REG
[0];
10723 register_static_object(&once_value_2
);
10724 } else fra
.me
.REG
[0] = once_value_2
;
10725 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10726 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10727 once_value_1
= fra
.me
.REG
[0];
10728 register_static_object(&once_value_1
);
10729 } else fra
.me
.REG
[0] = once_value_1
;
10730 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10733 stack_frame_head
= fra
.me
.prev
;
10734 return fra
.me
.REG
[0];
10736 val_t
typing___AUminusExpr___compute_raw_arguments(val_t p0
){
10737 struct {struct stack_frame_t me
;} fra
;
10739 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10740 fra
.me
.file
= LOCATE_typing
;
10741 fra
.me
.line
= 1758;
10742 fra
.me
.meth
= LOCATE_typing___AUminusExpr___compute_raw_arguments
;
10743 fra
.me
.has_broke
= 0;
10744 fra
.me
.REG_size
= 1;
10745 fra
.me
.REG
[0] = NIT_NULL
;
10746 fra
.me
.REG
[0] = p0
;
10747 /* ./syntax//typing.nit:1758 */
10748 fra
.me
.REG
[0] = NIT_NULL
;
10751 stack_frame_head
= fra
.me
.prev
;
10752 return fra
.me
.REG
[0];
10754 void typing___ACallFormExpr___after_typing(val_t p0
, val_t p1
){
10755 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
10759 static val_t once_value_1
; /* Once value */
10760 static val_t once_value_2
; /* Once value */
10761 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10762 fra
.me
.file
= LOCATE_typing
;
10763 fra
.me
.line
= 1762;
10764 fra
.me
.meth
= LOCATE_typing___ACallFormExpr___after_typing
;
10765 fra
.me
.has_broke
= 0;
10766 fra
.me
.REG_size
= 9;
10767 fra
.me
.REG
[0] = NIT_NULL
;
10768 fra
.me
.REG
[1] = NIT_NULL
;
10769 fra
.me
.REG
[2] = NIT_NULL
;
10770 fra
.me
.REG
[3] = NIT_NULL
;
10771 fra
.me
.REG
[4] = NIT_NULL
;
10772 fra
.me
.REG
[5] = NIT_NULL
;
10773 fra
.me
.REG
[6] = NIT_NULL
;
10774 fra
.me
.REG
[7] = NIT_NULL
;
10775 fra
.me
.REG
[8] = NIT_NULL
;
10776 fra
.me
.REG
[0] = p0
;
10777 fra
.me
.REG
[1] = p1
;
10778 /* ./syntax//typing.nit:1762 */
10779 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10780 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10781 /* ./syntax//typing.nit:1764 */
10782 fra
.me
.REG
[4] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10783 REGB0
= CALL_typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10784 if (UNTAG_Bool(REGB0
)) {
10785 /* ./syntax//typing.nit:1765 */
10786 fra
.me
.REG
[4] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10787 fra
.me
.REG
[4] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10788 /* ./syntax//typing.nit:1766 */
10789 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10790 fra
.me
.REG
[5] = CALL_scope___ScopeContext_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10791 /* ./syntax//typing.nit:1767 */
10792 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10793 if (UNTAG_Bool(REGB0
)) {
10795 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10796 if (UNTAG_Bool(REGB1
)) {
10797 REGB1
= TAG_Bool(false);
10800 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
10804 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10805 if (UNTAG_Bool(REGB0
)) {
10806 /* ./syntax//typing.nit:1769 */
10807 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_ClosureVariable
, ID_ClosureVariable
)) /*cast ClosureVariable*/;
10808 if (UNTAG_Bool(REGB0
)) {
10809 /* ./syntax//typing.nit:1770 */
10810 fra
.me
.REG
[6] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10811 fra
.me
.REG
[7] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10812 fra
.me
.REG
[8] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10813 fra
.me
.REG
[8] = NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
10814 /* ./syntax//typing.nit:1771 */
10815 ATTR_typing___AClosureCallExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
10817 /* ./syntax//typing.nit:1773 */
10818 fra
.me
.REG
[7] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10819 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10820 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10821 if (UNTAG_Bool(REGB0
)) {
10822 /* ./syntax//typing.nit:1774 */
10823 REGB0
= TAG_Int(3);
10824 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
10825 if (!once_value_1
) {
10826 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
10827 REGB0
= TAG_Int(7);
10828 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
10829 once_value_1
= fra
.me
.REG
[6];
10830 register_static_object(&once_value_1
);
10831 } else fra
.me
.REG
[6] = once_value_1
;
10832 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10833 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
10834 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10835 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
10836 if (!once_value_2
) {
10837 fra
.me
.REG
[4] = BOX_NativeString(" is variable, not a function.");
10838 REGB0
= TAG_Int(29);
10839 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
10840 once_value_2
= fra
.me
.REG
[4];
10841 register_static_object(&once_value_2
);
10842 } else fra
.me
.REG
[4] = once_value_2
;
10843 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10844 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
10845 fra
.me
.REG
[7] = CALL_string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10846 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
10847 /* ./syntax//typing.nit:1775 */
10850 /* ./syntax//typing.nit:1777 */
10851 fra
.me
.REG
[7] = CALL_typing___ACallFormExpr___variable_create(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
10852 fra
.me
.REG
[8] = fra
.me
.REG
[7];
10853 /* ./syntax//typing.nit:1778 */
10854 ATTR_typing___AVarFormExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
10856 /* ./syntax//typing.nit:1780 */
10857 CALL_parser_prod___ANode___replace_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
10858 /* ./syntax//typing.nit:1781 */
10859 CALL_typing___ANode___after_typing(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
10860 /* ./syntax//typing.nit:1782 */
10864 /* ./syntax//typing.nit:1786 */
10865 CALL_SUPER_typing___ACallFormExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10867 stack_frame_head
= fra
.me
.prev
;
10870 val_t
typing___ACallFormExpr___closure_defs(val_t p0
){
10871 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10874 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10875 fra
.me
.file
= LOCATE_typing
;
10876 fra
.me
.line
= 1789;
10877 fra
.me
.meth
= LOCATE_typing___ACallFormExpr___closure_defs
;
10878 fra
.me
.has_broke
= 0;
10879 fra
.me
.REG_size
= 2;
10880 fra
.me
.REG
[0] = NIT_NULL
;
10881 fra
.me
.REG
[1] = NIT_NULL
;
10882 fra
.me
.REG
[0] = p0
;
10883 /* ./syntax//typing.nit:1791 */
10884 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10885 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10886 if (UNTAG_Bool(REGB0
)) {
10887 /* ./syntax//typing.nit:1792 */
10888 fra
.me
.REG
[1] = NIT_NULL
;
10891 /* ./syntax//typing.nit:1794 */
10892 fra
.me
.REG
[0] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10893 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10894 fra
.me
.REG
[1] = fra
.me
.REG
[0];
10898 stack_frame_head
= fra
.me
.prev
;
10899 return fra
.me
.REG
[1];
10901 val_t
typing___ACallFormExpr___variable_create(val_t p0
, val_t p1
){
10902 struct {struct stack_frame_t me
;} fra
;
10904 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10905 fra
.me
.file
= LOCATE_typing
;
10906 fra
.me
.line
= 1798;
10907 fra
.me
.meth
= LOCATE_typing___ACallFormExpr___variable_create
;
10908 fra
.me
.has_broke
= 0;
10909 fra
.me
.REG_size
= 0;
10910 /* ./syntax//typing.nit:1798 */
10911 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 1798);
10912 stack_frame_head
= fra
.me
.prev
;
10915 val_t
typing___ACallExpr___variable_create(val_t p0
, val_t p1
){
10916 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10918 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10919 fra
.me
.file
= LOCATE_typing
;
10920 fra
.me
.line
= 1803;
10921 fra
.me
.meth
= LOCATE_typing___ACallExpr___variable_create
;
10922 fra
.me
.has_broke
= 0;
10923 fra
.me
.REG_size
= 2;
10924 fra
.me
.REG
[0] = NIT_NULL
;
10925 fra
.me
.REG
[1] = NIT_NULL
;
10926 fra
.me
.REG
[0] = p0
;
10927 fra
.me
.REG
[1] = p1
;
10928 /* ./syntax//typing.nit:1805 */
10929 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10930 fra
.me
.REG
[0] = NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr(fra
.me
.REG
[0]);
10933 stack_frame_head
= fra
.me
.prev
;
10934 return fra
.me
.REG
[0];
10936 val_t
typing___ACallExpr___name(val_t p0
){
10937 struct {struct stack_frame_t me
;} fra
;
10939 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10940 fra
.me
.file
= LOCATE_typing
;
10941 fra
.me
.line
= 1808;
10942 fra
.me
.meth
= LOCATE_typing___ACallExpr___name
;
10943 fra
.me
.has_broke
= 0;
10944 fra
.me
.REG_size
= 1;
10945 fra
.me
.REG
[0] = NIT_NULL
;
10946 fra
.me
.REG
[0] = p0
;
10947 /* ./syntax//typing.nit:1808 */
10948 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10949 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10952 stack_frame_head
= fra
.me
.prev
;
10953 return fra
.me
.REG
[0];
10955 val_t
typing___ACallExpr___compute_raw_arguments(val_t p0
){
10956 struct {struct stack_frame_t me
;} fra
;
10958 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10959 fra
.me
.file
= LOCATE_typing
;
10960 fra
.me
.line
= 1809;
10961 fra
.me
.meth
= LOCATE_typing___ACallExpr___compute_raw_arguments
;
10962 fra
.me
.has_broke
= 0;
10963 fra
.me
.REG_size
= 1;
10964 fra
.me
.REG
[0] = NIT_NULL
;
10965 fra
.me
.REG
[0] = p0
;
10966 /* ./syntax//typing.nit:1809 */
10967 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10968 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10971 stack_frame_head
= fra
.me
.prev
;
10972 return fra
.me
.REG
[0];
10974 val_t
typing___ACallAssignExpr___variable_create(val_t p0
, val_t p1
){
10975 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
10977 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10978 fra
.me
.file
= LOCATE_typing
;
10979 fra
.me
.line
= 1813;
10980 fra
.me
.meth
= LOCATE_typing___ACallAssignExpr___variable_create
;
10981 fra
.me
.has_broke
= 0;
10982 fra
.me
.REG_size
= 3;
10983 fra
.me
.REG
[0] = NIT_NULL
;
10984 fra
.me
.REG
[1] = NIT_NULL
;
10985 fra
.me
.REG
[2] = NIT_NULL
;
10986 fra
.me
.REG
[0] = p0
;
10987 fra
.me
.REG
[1] = p1
;
10988 /* ./syntax//typing.nit:1815 */
10989 fra
.me
.REG
[1] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10990 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_assign(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10991 fra
.me
.REG
[0] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10992 fra
.me
.REG
[0] = NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10995 stack_frame_head
= fra
.me
.prev
;
10996 return fra
.me
.REG
[0];
10998 val_t
typing___ACallAssignExpr___name(val_t p0
){
10999 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11002 static val_t once_value_1
; /* Once value */
11003 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11004 fra
.me
.file
= LOCATE_typing
;
11005 fra
.me
.line
= 1818;
11006 fra
.me
.meth
= LOCATE_typing___ACallAssignExpr___name
;
11007 fra
.me
.has_broke
= 0;
11008 fra
.me
.REG_size
= 2;
11009 fra
.me
.REG
[0] = NIT_NULL
;
11010 fra
.me
.REG
[1] = NIT_NULL
;
11011 fra
.me
.REG
[0] = p0
;
11012 /* ./syntax//typing.nit:1818 */
11013 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11014 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11015 if (!once_value_1
) {
11016 fra
.me
.REG
[1] = BOX_NativeString("=");
11017 REGB0
= TAG_Int(1);
11018 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
11019 once_value_1
= fra
.me
.REG
[1];
11020 register_static_object(&once_value_1
);
11021 } else fra
.me
.REG
[1] = once_value_1
;
11022 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11023 fra
.me
.REG
[1] = CALL_string___String_____plus(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11024 fra
.me
.REG
[1] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11027 stack_frame_head
= fra
.me
.prev
;
11028 return fra
.me
.REG
[1];
11030 val_t
typing___ACallAssignExpr___compute_raw_arguments(val_t p0
){
11031 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11033 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11034 fra
.me
.file
= LOCATE_typing
;
11035 fra
.me
.line
= 1819;
11036 fra
.me
.meth
= LOCATE_typing___ACallAssignExpr___compute_raw_arguments
;
11037 fra
.me
.has_broke
= 0;
11038 fra
.me
.REG_size
= 2;
11039 fra
.me
.REG
[0] = NIT_NULL
;
11040 fra
.me
.REG
[1] = NIT_NULL
;
11041 fra
.me
.REG
[0] = p0
;
11042 /* ./syntax//typing.nit:1820 */
11043 fra
.me
.REG
[1] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11044 fra
.me
.REG
[1] = CALL_array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11045 /* ./syntax//typing.nit:1821 */
11046 fra
.me
.REG
[0] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11047 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11048 /* ./syntax//typing.nit:1822 */
11051 stack_frame_head
= fra
.me
.prev
;
11052 return fra
.me
.REG
[1];
11054 val_t
typing___ACallReassignExpr___variable_create(val_t p0
, val_t p1
){
11055 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
11057 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11058 fra
.me
.file
= LOCATE_typing
;
11059 fra
.me
.line
= 1827;
11060 fra
.me
.meth
= LOCATE_typing___ACallReassignExpr___variable_create
;
11061 fra
.me
.has_broke
= 0;
11062 fra
.me
.REG_size
= 3;
11063 fra
.me
.REG
[0] = NIT_NULL
;
11064 fra
.me
.REG
[1] = NIT_NULL
;
11065 fra
.me
.REG
[2] = NIT_NULL
;
11066 fra
.me
.REG
[0] = p0
;
11067 fra
.me
.REG
[1] = p1
;
11068 /* ./syntax//typing.nit:1829 */
11069 fra
.me
.REG
[1] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11070 fra
.me
.REG
[2] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11071 fra
.me
.REG
[0] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11072 fra
.me
.REG
[0] = NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
11075 stack_frame_head
= fra
.me
.prev
;
11076 return fra
.me
.REG
[0];
11078 val_t
typing___ACallReassignExpr___name(val_t p0
){
11079 struct {struct stack_frame_t me
;} fra
;
11081 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11082 fra
.me
.file
= LOCATE_typing
;
11083 fra
.me
.line
= 1832;
11084 fra
.me
.meth
= LOCATE_typing___ACallReassignExpr___name
;
11085 fra
.me
.has_broke
= 0;
11086 fra
.me
.REG_size
= 1;
11087 fra
.me
.REG
[0] = NIT_NULL
;
11088 fra
.me
.REG
[0] = p0
;
11089 /* ./syntax//typing.nit:1832 */
11090 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11091 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11094 stack_frame_head
= fra
.me
.prev
;
11095 return fra
.me
.REG
[0];
11097 val_t
typing___ACallReassignExpr___compute_raw_arguments(val_t p0
){
11098 struct {struct stack_frame_t me
;} fra
;
11100 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11101 fra
.me
.file
= LOCATE_typing
;
11102 fra
.me
.line
= 1833;
11103 fra
.me
.meth
= LOCATE_typing___ACallReassignExpr___compute_raw_arguments
;
11104 fra
.me
.has_broke
= 0;
11105 fra
.me
.REG_size
= 1;
11106 fra
.me
.REG
[0] = NIT_NULL
;
11107 fra
.me
.REG
[0] = p0
;
11108 /* ./syntax//typing.nit:1833 */
11109 fra
.me
.REG
[0] = CALL_parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11110 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11113 stack_frame_head
= fra
.me
.prev
;
11114 return fra
.me
.REG
[0];
11116 val_t
typing___ABraExpr___name(val_t p0
){
11117 struct {struct stack_frame_t me
;} fra
;
11120 static val_t once_value_1
; /* Once value */
11121 static val_t once_value_2
; /* Once value */
11122 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11123 fra
.me
.file
= LOCATE_typing
;
11124 fra
.me
.line
= 1837;
11125 fra
.me
.meth
= LOCATE_typing___ABraExpr___name
;
11126 fra
.me
.has_broke
= 0;
11127 fra
.me
.REG_size
= 1;
11128 fra
.me
.REG
[0] = NIT_NULL
;
11129 fra
.me
.REG
[0] = p0
;
11130 /* ./syntax//typing.nit:1837 */
11131 if (!once_value_1
) {
11132 if (!once_value_2
) {
11133 fra
.me
.REG
[0] = BOX_NativeString("[]");
11134 REGB0
= TAG_Int(2);
11135 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
11136 once_value_2
= fra
.me
.REG
[0];
11137 register_static_object(&once_value_2
);
11138 } else fra
.me
.REG
[0] = once_value_2
;
11139 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11140 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11141 once_value_1
= fra
.me
.REG
[0];
11142 register_static_object(&once_value_1
);
11143 } else fra
.me
.REG
[0] = once_value_1
;
11144 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11147 stack_frame_head
= fra
.me
.prev
;
11148 return fra
.me
.REG
[0];
11150 val_t
typing___ABraExpr___compute_raw_arguments(val_t p0
){
11151 struct {struct stack_frame_t me
;} fra
;
11153 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11154 fra
.me
.file
= LOCATE_typing
;
11155 fra
.me
.line
= 1838;
11156 fra
.me
.meth
= LOCATE_typing___ABraExpr___compute_raw_arguments
;
11157 fra
.me
.has_broke
= 0;
11158 fra
.me
.REG_size
= 1;
11159 fra
.me
.REG
[0] = NIT_NULL
;
11160 fra
.me
.REG
[0] = p0
;
11161 /* ./syntax//typing.nit:1838 */
11162 fra
.me
.REG
[0] = CALL_parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11163 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11166 stack_frame_head
= fra
.me
.prev
;
11167 return fra
.me
.REG
[0];
11169 val_t
typing___ABraExpr___closure_defs(val_t p0
){
11170 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11173 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11174 fra
.me
.file
= LOCATE_typing
;
11175 fra
.me
.line
= 1839;
11176 fra
.me
.meth
= LOCATE_typing___ABraExpr___closure_defs
;
11177 fra
.me
.has_broke
= 0;
11178 fra
.me
.REG_size
= 2;
11179 fra
.me
.REG
[0] = NIT_NULL
;
11180 fra
.me
.REG
[1] = NIT_NULL
;
11181 fra
.me
.REG
[0] = p0
;
11182 /* ./syntax//typing.nit:1841 */
11183 fra
.me
.REG
[1] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11184 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11185 if (UNTAG_Bool(REGB0
)) {
11186 /* ./syntax//typing.nit:1842 */
11187 fra
.me
.REG
[1] = NIT_NULL
;
11190 /* ./syntax//typing.nit:1844 */
11191 fra
.me
.REG
[0] = CALL_parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11192 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11193 fra
.me
.REG
[1] = fra
.me
.REG
[0];
11197 stack_frame_head
= fra
.me
.prev
;
11198 return fra
.me
.REG
[1];
11200 val_t
typing___ABraAssignExpr___name(val_t p0
){
11201 struct {struct stack_frame_t me
;} fra
;
11204 static val_t once_value_1
; /* Once value */
11205 static val_t once_value_2
; /* Once value */
11206 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11207 fra
.me
.file
= LOCATE_typing
;
11208 fra
.me
.line
= 1850;
11209 fra
.me
.meth
= LOCATE_typing___ABraAssignExpr___name
;
11210 fra
.me
.has_broke
= 0;
11211 fra
.me
.REG_size
= 1;
11212 fra
.me
.REG
[0] = NIT_NULL
;
11213 fra
.me
.REG
[0] = p0
;
11214 /* ./syntax//typing.nit:1850 */
11215 if (!once_value_1
) {
11216 if (!once_value_2
) {
11217 fra
.me
.REG
[0] = BOX_NativeString("[]=");
11218 REGB0
= TAG_Int(3);
11219 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
11220 once_value_2
= fra
.me
.REG
[0];
11221 register_static_object(&once_value_2
);
11222 } else fra
.me
.REG
[0] = once_value_2
;
11223 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11224 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11225 once_value_1
= fra
.me
.REG
[0];
11226 register_static_object(&once_value_1
);
11227 } else fra
.me
.REG
[0] = once_value_1
;
11228 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11231 stack_frame_head
= fra
.me
.prev
;
11232 return fra
.me
.REG
[0];
11234 val_t
typing___ABraAssignExpr___compute_raw_arguments(val_t p0
){
11235 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11237 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11238 fra
.me
.file
= LOCATE_typing
;
11239 fra
.me
.line
= 1851;
11240 fra
.me
.meth
= LOCATE_typing___ABraAssignExpr___compute_raw_arguments
;
11241 fra
.me
.has_broke
= 0;
11242 fra
.me
.REG_size
= 2;
11243 fra
.me
.REG
[0] = NIT_NULL
;
11244 fra
.me
.REG
[1] = NIT_NULL
;
11245 fra
.me
.REG
[0] = p0
;
11246 /* ./syntax//typing.nit:1852 */
11247 fra
.me
.REG
[1] = CALL_parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11248 fra
.me
.REG
[1] = CALL_array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11249 /* ./syntax//typing.nit:1853 */
11250 fra
.me
.REG
[0] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11251 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11252 /* ./syntax//typing.nit:1854 */
11255 stack_frame_head
= fra
.me
.prev
;
11256 return fra
.me
.REG
[1];
11258 val_t
typing___ABraReassignExpr___name(val_t p0
){
11259 struct {struct stack_frame_t me
;} fra
;
11262 static val_t once_value_1
; /* Once value */
11263 static val_t once_value_2
; /* Once value */
11264 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11265 fra
.me
.file
= LOCATE_typing
;
11266 fra
.me
.line
= 1859;
11267 fra
.me
.meth
= LOCATE_typing___ABraReassignExpr___name
;
11268 fra
.me
.has_broke
= 0;
11269 fra
.me
.REG_size
= 1;
11270 fra
.me
.REG
[0] = NIT_NULL
;
11271 fra
.me
.REG
[0] = p0
;
11272 /* ./syntax//typing.nit:1859 */
11273 if (!once_value_1
) {
11274 if (!once_value_2
) {
11275 fra
.me
.REG
[0] = BOX_NativeString("[]");
11276 REGB0
= TAG_Int(2);
11277 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
11278 once_value_2
= fra
.me
.REG
[0];
11279 register_static_object(&once_value_2
);
11280 } else fra
.me
.REG
[0] = once_value_2
;
11281 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11282 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11283 once_value_1
= fra
.me
.REG
[0];
11284 register_static_object(&once_value_1
);
11285 } else fra
.me
.REG
[0] = once_value_1
;
11286 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11289 stack_frame_head
= fra
.me
.prev
;
11290 return fra
.me
.REG
[0];
11292 val_t
typing___ABraReassignExpr___compute_raw_arguments(val_t p0
){
11293 struct {struct stack_frame_t me
;} fra
;
11295 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11296 fra
.me
.file
= LOCATE_typing
;
11297 fra
.me
.line
= 1860;
11298 fra
.me
.meth
= LOCATE_typing___ABraReassignExpr___compute_raw_arguments
;
11299 fra
.me
.has_broke
= 0;
11300 fra
.me
.REG_size
= 1;
11301 fra
.me
.REG
[0] = NIT_NULL
;
11302 fra
.me
.REG
[0] = p0
;
11303 /* ./syntax//typing.nit:1860 */
11304 fra
.me
.REG
[0] = CALL_parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11305 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11308 stack_frame_head
= fra
.me
.prev
;
11309 return fra
.me
.REG
[0];
11311 val_t
typing___AInitExpr___name(val_t p0
){
11312 struct {struct stack_frame_t me
;} fra
;
11315 static val_t once_value_1
; /* Once value */
11316 static val_t once_value_2
; /* Once value */
11317 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11318 fra
.me
.file
= LOCATE_typing
;
11319 fra
.me
.line
= 1864;
11320 fra
.me
.meth
= LOCATE_typing___AInitExpr___name
;
11321 fra
.me
.has_broke
= 0;
11322 fra
.me
.REG_size
= 1;
11323 fra
.me
.REG
[0] = NIT_NULL
;
11324 fra
.me
.REG
[0] = p0
;
11325 /* ./syntax//typing.nit:1864 */
11326 if (!once_value_1
) {
11327 if (!once_value_2
) {
11328 fra
.me
.REG
[0] = BOX_NativeString("init");
11329 REGB0
= TAG_Int(4);
11330 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
11331 once_value_2
= fra
.me
.REG
[0];
11332 register_static_object(&once_value_2
);
11333 } else fra
.me
.REG
[0] = once_value_2
;
11334 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11335 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11336 once_value_1
= fra
.me
.REG
[0];
11337 register_static_object(&once_value_1
);
11338 } else fra
.me
.REG
[0] = once_value_1
;
11339 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11342 stack_frame_head
= fra
.me
.prev
;
11343 return fra
.me
.REG
[0];
11345 val_t
typing___AInitExpr___compute_raw_arguments(val_t p0
){
11346 struct {struct stack_frame_t me
;} fra
;
11348 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11349 fra
.me
.file
= LOCATE_typing
;
11350 fra
.me
.line
= 1865;
11351 fra
.me
.meth
= LOCATE_typing___AInitExpr___compute_raw_arguments
;
11352 fra
.me
.has_broke
= 0;
11353 fra
.me
.REG_size
= 1;
11354 fra
.me
.REG
[0] = NIT_NULL
;
11355 fra
.me
.REG
[0] = p0
;
11356 /* ./syntax//typing.nit:1865 */
11357 fra
.me
.REG
[0] = CALL_parser_nodes___AInitExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11358 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11361 stack_frame_head
= fra
.me
.prev
;
11362 return fra
.me
.REG
[0];
11364 val_t
typing___AClosureCallExpr___variable(val_t p0
){
11365 struct {struct stack_frame_t me
;} fra
;
11368 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11369 fra
.me
.file
= LOCATE_typing
;
11370 fra
.me
.line
= 1870;
11371 fra
.me
.meth
= LOCATE_typing___AClosureCallExpr___variable
;
11372 fra
.me
.has_broke
= 0;
11373 fra
.me
.REG_size
= 1;
11374 fra
.me
.REG
[0] = NIT_NULL
;
11375 fra
.me
.REG
[0] = p0
;
11376 /* ./syntax//typing.nit:1870 */
11377 fra
.me
.REG
[0] = ATTR_typing___AClosureCallExpr____variable(fra
.me
.REG
[0]);
11378 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
11379 if (UNTAG_Bool(REGB0
)) {
11381 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1870);
11385 stack_frame_head
= fra
.me
.prev
;
11386 return fra
.me
.REG
[0];
11388 val_t
typing___AClosureCallExpr___compute_raw_arguments(val_t p0
){
11389 struct {struct stack_frame_t me
;} fra
;
11391 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11392 fra
.me
.file
= LOCATE_typing
;
11393 fra
.me
.line
= 1871;
11394 fra
.me
.meth
= LOCATE_typing___AClosureCallExpr___compute_raw_arguments
;
11395 fra
.me
.has_broke
= 0;
11396 fra
.me
.REG_size
= 1;
11397 fra
.me
.REG
[0] = NIT_NULL
;
11398 fra
.me
.REG
[0] = p0
;
11399 /* ./syntax//typing.nit:1871 */
11400 fra
.me
.REG
[0] = CALL_parser_nodes___AClosureCallExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11401 fra
.me
.REG
[0] = CALL_array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11404 stack_frame_head
= fra
.me
.prev
;
11405 return fra
.me
.REG
[0];
11407 void typing___AClosureCallExpr___after_typing(val_t p0
, val_t p1
){
11408 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11412 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11413 fra
.me
.file
= LOCATE_typing
;
11414 fra
.me
.line
= 1873;
11415 fra
.me
.meth
= LOCATE_typing___AClosureCallExpr___after_typing
;
11416 fra
.me
.has_broke
= 0;
11417 fra
.me
.REG_size
= 5;
11418 fra
.me
.REG
[0] = NIT_NULL
;
11419 fra
.me
.REG
[1] = NIT_NULL
;
11420 fra
.me
.REG
[2] = NIT_NULL
;
11421 fra
.me
.REG
[3] = NIT_NULL
;
11422 fra
.me
.REG
[4] = NIT_NULL
;
11423 fra
.me
.REG
[0] = p0
;
11424 fra
.me
.REG
[1] = p1
;
11425 /* ./syntax//typing.nit:1875 */
11426 fra
.me
.REG
[2] = CALL_syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11427 /* ./syntax//typing.nit:1876 */
11428 fra
.me
.REG
[3] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11429 REGB0
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11430 if (UNTAG_Bool(REGB0
)) {
11431 CALL_typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11433 /* ./syntax//typing.nit:1877 */
11434 fra
.me
.REG
[2] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11435 fra
.me
.REG
[2] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11436 /* ./syntax//typing.nit:1878 */
11437 fra
.me
.REG
[3] = CALL_parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11438 fra
.me
.REG
[3] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11439 fra
.me
.REG
[4] = CALL_typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11440 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]);
11441 /* ./syntax//typing.nit:1879 */
11442 fra
.me
.REG
[4] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11443 REGB1
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11444 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
11445 if (UNTAG_Bool(REGB1
)) {
11446 /* ./syntax//typing.nit:1880 */
11447 fra
.me
.REG
[4] = CALL_parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11448 fra
.me
.REG
[4] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11449 fra
.me
.REG
[3] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11450 fra
.me
.REG
[3] = CALL_array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11451 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]);
11453 /* ./syntax//typing.nit:1882 */
11454 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11455 if (UNTAG_Bool(REGB0
)) {
11458 /* ./syntax//typing.nit:1883 */
11459 ATTR_typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11460 /* ./syntax//typing.nit:1884 */
11461 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11462 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11463 /* ./syntax//typing.nit:1885 */
11464 REGB0
= TAG_Bool(true);
11465 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
11467 stack_frame_head
= fra
.me
.prev
;
11470 val_t
typing___AClosureId___to_symbol(val_t p0
){
11471 struct {struct stack_frame_t me
;} fra
;
11473 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11474 fra
.me
.file
= LOCATE_typing
;
11475 fra
.me
.line
= 1890;
11476 fra
.me
.meth
= LOCATE_typing___AClosureId___to_symbol
;
11477 fra
.me
.has_broke
= 0;
11478 fra
.me
.REG_size
= 0;
11479 /* ./syntax//typing.nit:1890 */
11480 nit_abort("Deferred method called", NULL
, LOCATE_typing
, 1890);
11481 stack_frame_head
= fra
.me
.prev
;
11484 val_t
typing___ASimpleClosureId___to_symbol(val_t p0
){
11485 struct {struct stack_frame_t me
;} fra
;
11487 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11488 fra
.me
.file
= LOCATE_typing
;
11489 fra
.me
.line
= 1893;
11490 fra
.me
.meth
= LOCATE_typing___ASimpleClosureId___to_symbol
;
11491 fra
.me
.has_broke
= 0;
11492 fra
.me
.REG_size
= 1;
11493 fra
.me
.REG
[0] = NIT_NULL
;
11494 fra
.me
.REG
[0] = p0
;
11495 /* ./syntax//typing.nit:1893 */
11496 fra
.me
.REG
[0] = CALL_parser_nodes___ASimpleClosureId___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11497 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11500 stack_frame_head
= fra
.me
.prev
;
11501 return fra
.me
.REG
[0];
11503 val_t
typing___ABreakClosureId___to_symbol(val_t p0
){
11504 struct {struct stack_frame_t me
;} fra
;
11506 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11507 fra
.me
.file
= LOCATE_typing
;
11508 fra
.me
.line
= 1896;
11509 fra
.me
.meth
= LOCATE_typing___ABreakClosureId___to_symbol
;
11510 fra
.me
.has_broke
= 0;
11511 fra
.me
.REG_size
= 1;
11512 fra
.me
.REG
[0] = NIT_NULL
;
11513 fra
.me
.REG
[0] = p0
;
11514 /* ./syntax//typing.nit:1896 */
11515 fra
.me
.REG
[0] = CALL_parser_nodes___ABreakClosureId___n_kwbreak(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11516 fra
.me
.REG
[0] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11519 stack_frame_head
= fra
.me
.prev
;
11520 return fra
.me
.REG
[0];
11522 val_t
typing___AClosureDef___closure(val_t p0
){
11523 struct {struct stack_frame_t me
;} fra
;
11526 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11527 fra
.me
.file
= LOCATE_typing
;
11528 fra
.me
.line
= 1901;
11529 fra
.me
.meth
= LOCATE_typing___AClosureDef___closure
;
11530 fra
.me
.has_broke
= 0;
11531 fra
.me
.REG_size
= 1;
11532 fra
.me
.REG
[0] = NIT_NULL
;
11533 fra
.me
.REG
[0] = p0
;
11534 /* ./syntax//typing.nit:1901 */
11535 fra
.me
.REG
[0] = ATTR_typing___AClosureDef____closure(fra
.me
.REG
[0]);
11536 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
11537 if (UNTAG_Bool(REGB0
)) {
11539 nit_abort("Cast failed", NULL
, LOCATE_typing
, 1901);
11543 stack_frame_head
= fra
.me
.prev
;
11544 return fra
.me
.REG
[0];
11546 val_t
typing___AClosureDef___escapable(val_t p0
){
11547 struct {struct stack_frame_t me
;} fra
;
11549 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11550 fra
.me
.file
= LOCATE_typing
;
11551 fra
.me
.line
= 1903;
11552 fra
.me
.meth
= LOCATE_typing___AClosureDef___escapable
;
11553 fra
.me
.has_broke
= 0;
11554 fra
.me
.REG_size
= 1;
11555 fra
.me
.REG
[0] = NIT_NULL
;
11556 fra
.me
.REG
[0] = p0
;
11557 /* ./syntax//typing.nit:1903 */
11558 fra
.me
.REG
[0] = ATTR_typing___AClosureDef____escapable(fra
.me
.REG
[0]);
11559 stack_frame_head
= fra
.me
.prev
;
11560 return fra
.me
.REG
[0];
11562 void typing___AClosureDef___accept_typing(val_t p0
, val_t p1
){
11563 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
11566 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11567 fra
.me
.file
= LOCATE_typing
;
11568 fra
.me
.line
= 1907;
11569 fra
.me
.meth
= LOCATE_typing___AClosureDef___accept_typing
;
11570 fra
.me
.has_broke
= 0;
11571 fra
.me
.REG_size
= 3;
11572 fra
.me
.REG
[0] = NIT_NULL
;
11573 fra
.me
.REG
[1] = NIT_NULL
;
11574 fra
.me
.REG
[2] = NIT_NULL
;
11575 fra
.me
.REG
[0] = p0
;
11576 fra
.me
.REG
[1] = p1
;
11577 /* ./syntax//typing.nit:1907 */
11578 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11579 /* ./syntax//typing.nit:1910 */
11580 REGB0
= TAG_Bool(ATTR_typing___AClosureDef____accept_typing2(fra
.me
.REG
[2])!=NIT_NULL
);
11581 if (UNTAG_Bool(REGB0
)) {
11583 nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_typing
, 1910);
11585 REGB0
= ATTR_typing___AClosureDef____accept_typing2(fra
.me
.REG
[2]);
11586 if (UNTAG_Bool(REGB0
)) {
11587 CALL_SUPER_typing___AClosureDef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11589 stack_frame_head
= fra
.me
.prev
;
11592 void typing___AClosureDef___accept_typing2(val_t p0
, val_t p1
, val_t p2
){
11593 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
11599 static val_t once_value_1
; /* Once value */
11600 static val_t once_value_2
; /* Once value */
11601 static val_t once_value_3
; /* Once value */
11602 static val_t once_value_6
; /* Once value */
11603 static val_t once_value_7
; /* Once value */
11604 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11605 fra
.me
.file
= LOCATE_typing
;
11606 fra
.me
.line
= 1913;
11607 fra
.me
.meth
= LOCATE_typing___AClosureDef___accept_typing2
;
11608 fra
.me
.has_broke
= 0;
11609 fra
.me
.REG_size
= 8;
11610 fra
.me
.REG
[0] = NIT_NULL
;
11611 fra
.me
.REG
[1] = NIT_NULL
;
11612 fra
.me
.REG
[2] = NIT_NULL
;
11613 fra
.me
.REG
[3] = NIT_NULL
;
11614 fra
.me
.REG
[4] = NIT_NULL
;
11615 fra
.me
.REG
[5] = NIT_NULL
;
11616 fra
.me
.REG
[6] = NIT_NULL
;
11617 fra
.me
.REG
[7] = NIT_NULL
;
11618 fra
.me
.REG
[0] = p0
;
11619 fra
.me
.REG
[1] = p1
;
11620 fra
.me
.REG
[2] = p2
;
11621 /* ./syntax//typing.nit:1915 */
11622 ATTR_typing___AClosureDef____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11623 /* ./syntax//typing.nit:1917 */
11624 fra
.me
.REG
[3] = CALL_scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11625 fra
.me
.REG
[3] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11626 /* ./syntax//typing.nit:1918 */
11627 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11628 fra
.me
.REG
[4] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11629 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11630 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
11631 if (UNTAG_Bool(REGB2
)) {
11633 /* ./../lib/standard//kernel.nit:207 */
11634 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
11635 /* ./syntax//typing.nit:1918 */
11638 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
11639 if (UNTAG_Bool(REGB2
)) {
11640 /* ./syntax//typing.nit:1919 */
11641 REGB2
= TAG_Int(5);
11642 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB2
);
11643 if (!once_value_1
) {
11644 fra
.me
.REG
[5] = BOX_NativeString("Error: ");
11645 REGB2
= TAG_Int(7);
11646 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
11647 once_value_1
= fra
.me
.REG
[5];
11648 register_static_object(&once_value_1
);
11649 } else fra
.me
.REG
[5] = once_value_1
;
11650 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11651 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11652 REGB2
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11653 fra
.me
.REG
[5] = CALL_string___Object___to_s(REGB2
)(REGB2
);
11654 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11655 if (!once_value_2
) {
11656 fra
.me
.REG
[5] = BOX_NativeString(" automatic variable names expected, ");
11657 REGB2
= TAG_Int(36);
11658 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
11659 once_value_2
= fra
.me
.REG
[5];
11660 register_static_object(&once_value_2
);
11661 } else fra
.me
.REG
[5] = once_value_2
;
11662 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11663 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11664 fra
.me
.REG
[5] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11665 REGB2
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
11666 fra
.me
.REG
[5] = CALL_string___Object___to_s(REGB2
)(REGB2
);
11667 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11668 if (!once_value_3
) {
11669 fra
.me
.REG
[5] = BOX_NativeString(" found.");
11670 REGB2
= TAG_Int(7);
11671 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB2
);
11672 once_value_3
= fra
.me
.REG
[5];
11673 register_static_object(&once_value_3
);
11674 } else fra
.me
.REG
[5] = once_value_3
;
11675 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11676 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11677 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11678 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
11679 /* ./syntax//typing.nit:1920 */
11682 /* ./syntax//typing.nit:1923 */
11683 fra
.me
.REG
[4] = CALL_scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11684 ATTR_typing___AClosureDef____closure(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
11685 /* ./syntax//typing.nit:1925 */
11686 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11687 CALL_scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
11688 /* ./syntax//typing.nit:1926 */
11689 fra
.me
.REG
[4] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11690 /* ./syntax//typing.nit:1927 */
11691 fra
.me
.REG
[5] = CALL_typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11692 /* ./syntax//typing.nit:1928 */
11693 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11694 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
11695 /* ./syntax//typing.nit:1929 */
11696 fra
.me
.REG
[6] = NEW_Array_array___Array___init();
11697 CALL_syntax_base___AClosureDef___variables__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
11698 /* ./syntax//typing.nit:1930 */
11699 REGB2
= TAG_Int(0);
11700 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11701 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
11702 /* ./../lib/standard//kernel.nit:332 */
11704 /* ./../lib/standard//kernel.nit:212 */
11705 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
11706 /* ./../lib/standard//kernel.nit:332 */
11707 if (UNTAG_Bool(REGB0
)) {
11708 /* ./syntax//typing.nit:1930 */
11710 /* ./syntax//typing.nit:1931 */
11711 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11712 fra
.me
.REG
[6] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
11713 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
11714 if (UNTAG_Bool(REGB3
)) {
11715 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1931);
11717 fra
.me
.REG
[6] = CALL_syntax_base___Token___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
11718 fra
.me
.REG
[7] = CALL_parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11719 fra
.me
.REG
[7] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
11720 fra
.me
.REG
[7] = NEW_AutoVariable_syntax_base___AutoVariable___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
11721 /* ./syntax//typing.nit:1932 */
11722 fra
.me
.REG
[6] = CALL_syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11723 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
11724 if (UNTAG_Bool(REGB3
)) {
11725 nit_abort("Reciever is null", NULL
, LOCATE_typing
, 1932);
11727 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
11728 /* ./syntax//typing.nit:1933 */
11729 fra
.me
.REG
[6] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
11730 CALL_syntax_base___Variable___stype__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
11731 /* ./syntax//typing.nit:1934 */
11732 fra
.me
.REG
[6] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11733 CALL_scope___ScopeContext___add_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
11734 /* ./../lib/standard//kernel.nit:334 */
11735 REGB0
= TAG_Int(1);
11736 /* ./../lib/standard//kernel.nit:215 */
11737 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
11738 /* ./../lib/standard//kernel.nit:334 */
11741 /* ./../lib/standard//kernel.nit:332 */
11746 /* ./syntax//typing.nit:1937 */
11747 REGB2
= TAG_Bool(true);
11748 ATTR_typing___AClosureDef____accept_typing2(fra
.me
.REG
[0]) = REGB2
;
11749 /* ./syntax//typing.nit:1938 */
11750 CALL_typing___ANode___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11751 /* ./syntax//typing.nit:1940 */
11752 fra
.me
.REG
[3] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11753 REGB2
= CALL_flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11754 REGB1
= TAG_Bool(false);
11755 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
11756 if (UNTAG_Bool(REGB0
)) {
11758 /* ./../lib/standard//kernel.nit:175 */
11759 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
11760 /* ./syntax//typing.nit:1940 */
11763 if (UNTAG_Bool(REGB0
)) {
11764 /* ./syntax//typing.nit:1941 */
11765 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11766 fra
.me
.REG
[3] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11767 fra
.me
.REG
[3] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11768 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11769 if (UNTAG_Bool(REGB0
)) {
11771 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11772 if (UNTAG_Bool(REGB1
)) {
11773 REGB1
= TAG_Bool(false);
11776 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11780 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11781 if (UNTAG_Bool(REGB0
)) {
11782 /* ./syntax//typing.nit:1942 */
11783 if (!once_value_6
) {
11784 fra
.me
.REG
[3] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
11785 REGB0
= TAG_Int(77);
11786 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
11787 once_value_6
= fra
.me
.REG
[3];
11788 register_static_object(&once_value_6
);
11789 } else fra
.me
.REG
[3] = once_value_6
;
11790 fra
.me
.REG
[3] = fra
.me
.REG
[3];
11791 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
11793 /* ./syntax//typing.nit:1943 */
11794 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11795 REGB0
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11796 if (UNTAG_Bool(REGB0
)) {
11797 fra
.me
.REG
[2] = CALL_scope___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11798 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
11799 if (UNTAG_Bool(REGB0
)) {
11801 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
11802 if (UNTAG_Bool(REGB1
)) {
11803 REGB1
= TAG_Bool(false);
11806 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
11810 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11812 REGB1
= TAG_Bool(false);
11815 if (UNTAG_Bool(REGB0
)) {
11816 /* ./syntax//typing.nit:1944 */
11817 if (!once_value_7
) {
11818 fra
.me
.REG
[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
11819 REGB0
= TAG_Int(80);
11820 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
11821 once_value_7
= fra
.me
.REG
[2];
11822 register_static_object(&once_value_7
);
11823 } else fra
.me
.REG
[2] = once_value_7
;
11824 fra
.me
.REG
[2] = fra
.me
.REG
[2];
11825 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
11829 /* ./syntax//typing.nit:1947 */
11830 CALL_typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
11831 /* ./syntax//typing.nit:1948 */
11832 CALL_typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
11833 /* ./syntax//typing.nit:1949 */
11834 fra
.me
.REG
[1] = CALL_typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11835 CALL_scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11837 stack_frame_head
= fra
.me
.prev
;
11840 void typing___ATypeCheckExpr___check_expr_cast(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
11841 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
11845 static val_t once_value_2
; /* Once value */
11846 static val_t once_value_3
; /* Once value */
11847 static val_t once_value_4
; /* Once value */
11848 static val_t once_value_5
; /* Once value */
11849 static val_t once_value_6
; /* Once value */
11850 static val_t once_value_7
; /* Once value */
11851 static val_t once_value_8
; /* Once value */
11852 static val_t once_value_9
; /* Once value */
11853 static val_t once_value_10
; /* Once value */
11854 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11855 fra
.me
.file
= LOCATE_typing
;
11856 fra
.me
.line
= 1955;
11857 fra
.me
.meth
= LOCATE_typing___ATypeCheckExpr___check_expr_cast
;
11858 fra
.me
.has_broke
= 0;
11859 fra
.me
.REG_size
= 6;
11860 fra
.me
.REG
[0] = NIT_NULL
;
11861 fra
.me
.REG
[1] = NIT_NULL
;
11862 fra
.me
.REG
[2] = NIT_NULL
;
11863 fra
.me
.REG
[3] = NIT_NULL
;
11864 fra
.me
.REG
[4] = NIT_NULL
;
11865 fra
.me
.REG
[5] = NIT_NULL
;
11866 fra
.me
.REG
[0] = p0
;
11867 fra
.me
.REG
[1] = p1
;
11868 fra
.me
.REG
[2] = p2
;
11869 fra
.me
.REG
[3] = p3
;
11870 /* ./syntax//typing.nit:1957 */
11871 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
11872 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11873 if (UNTAG_Bool(REGB0
)) {
11876 /* ./syntax//typing.nit:1958 */
11877 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11878 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11879 if (UNTAG_Bool(REGB0
)) {
11882 /* ./syntax//typing.nit:1959 */
11883 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11884 /* ./syntax//typing.nit:1960 */
11885 fra
.me
.REG
[3] = CALL_syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11886 /* ./syntax//typing.nit:1961 */
11887 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
11888 if (UNTAG_Bool(REGB0
)) {
11890 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
11893 if (UNTAG_Bool(REGB0
)) {
11894 /* ./syntax//typing.nit:1962 */
11895 REGB0
= TAG_Int(3);
11896 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
11897 if (!once_value_2
) {
11898 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
11899 REGB0
= TAG_Int(33);
11900 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11901 once_value_2
= fra
.me
.REG
[5];
11902 register_static_object(&once_value_2
);
11903 } else fra
.me
.REG
[5] = once_value_2
;
11904 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11905 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11906 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11907 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11908 if (!once_value_3
) {
11909 fra
.me
.REG
[5] = BOX_NativeString(".");
11910 REGB0
= TAG_Int(1);
11911 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11912 once_value_3
= fra
.me
.REG
[5];
11913 register_static_object(&once_value_3
);
11914 } else fra
.me
.REG
[5] = once_value_3
;
11915 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11916 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11917 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11918 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
11920 /* ./syntax//typing.nit:1963 */
11921 REGB0
= CALL_static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
11922 if (UNTAG_Bool(REGB0
)) {
11923 /* ./syntax//typing.nit:1964 */
11924 REGB0
= TAG_Int(5);
11925 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
11926 if (!once_value_4
) {
11927 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
11928 REGB0
= TAG_Int(33);
11929 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11930 once_value_4
= fra
.me
.REG
[5];
11931 register_static_object(&once_value_4
);
11932 } else fra
.me
.REG
[5] = once_value_4
;
11933 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11934 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11935 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11936 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11937 if (!once_value_5
) {
11938 fra
.me
.REG
[5] = BOX_NativeString(" since it is a ");
11939 REGB0
= TAG_Int(15);
11940 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11941 once_value_5
= fra
.me
.REG
[5];
11942 register_static_object(&once_value_5
);
11943 } else fra
.me
.REG
[5] = once_value_5
;
11944 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11945 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11946 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11947 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11948 if (!once_value_6
) {
11949 fra
.me
.REG
[5] = BOX_NativeString(".");
11950 REGB0
= TAG_Int(1);
11951 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11952 once_value_6
= fra
.me
.REG
[5];
11953 register_static_object(&once_value_6
);
11954 } else fra
.me
.REG
[5] = once_value_6
;
11955 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11956 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11957 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11958 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
11960 /* ./syntax//typing.nit:1965 */
11961 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
11962 if (UNTAG_Bool(REGB0
)) {
11963 /* ./syntax//typing.nit:1967 */
11964 REGB0
= TAG_Int(3);
11965 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
11966 if (!once_value_7
) {
11967 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is null therefore cannot be a ");
11968 REGB0
= TAG_Int(50);
11969 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11970 once_value_7
= fra
.me
.REG
[5];
11971 register_static_object(&once_value_7
);
11972 } else fra
.me
.REG
[5] = once_value_7
;
11973 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11974 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11975 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11976 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11977 if (!once_value_8
) {
11978 fra
.me
.REG
[5] = BOX_NativeString(".");
11979 REGB0
= TAG_Int(1);
11980 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
11981 once_value_8
= fra
.me
.REG
[5];
11982 register_static_object(&once_value_8
);
11983 } else fra
.me
.REG
[5] = once_value_8
;
11984 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11985 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11986 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11987 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
11989 /* ./syntax//typing.nit:1968 */
11990 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11991 if (UNTAG_Bool(REGB0
)) {
11992 fra
.me
.REG
[2] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11993 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
11994 if (UNTAG_Bool(REGB0
)) {
11996 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
12000 REGB1
= TAG_Bool(false);
12003 if (UNTAG_Bool(REGB0
)) {
12004 /* ./syntax//typing.nit:1969 */
12005 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_MMTypeFormal
, ID_MMTypeFormal
)) /*cast MMTypeFormal*/;
12006 if (UNTAG_Bool(REGB0
)) {
12007 fra
.me
.REG
[3] = CALL_type_formal___MMTypeFormal___bound(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12008 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12010 REGB1
= TAG_Bool(false);
12013 if (UNTAG_Bool(REGB0
)) {
12015 /* ./syntax//typing.nit:1975 */
12016 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_AIsaExpr
, ID_AIsaExpr
)) /*cast AIsaExpr*/;
12017 if (UNTAG_Bool(REGB0
)) {
12018 /* ./syntax//typing.nit:1976 */
12019 if (!once_value_9
) {
12020 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '!= null'.");
12021 REGB0
= TAG_Int(26);
12022 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
12023 once_value_9
= fra
.me
.REG
[3];
12024 register_static_object(&once_value_9
);
12025 } else fra
.me
.REG
[3] = once_value_9
;
12026 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12027 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12029 /* ./syntax//typing.nit:1978 */
12030 if (!once_value_10
) {
12031 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
12032 REGB0
= TAG_Int(32);
12033 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
12034 once_value_10
= fra
.me
.REG
[3];
12035 register_static_object(&once_value_10
);
12036 } else fra
.me
.REG
[3] = once_value_10
;
12037 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12038 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12046 stack_frame_head
= fra
.me
.prev
;
12049 void typing___AIsaExpr___after_typing(val_t p0
, val_t p1
){
12050 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12054 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12055 fra
.me
.file
= LOCATE_typing
;
12056 fra
.me
.line
= 1986;
12057 fra
.me
.meth
= LOCATE_typing___AIsaExpr___after_typing
;
12058 fra
.me
.has_broke
= 0;
12059 fra
.me
.REG_size
= 5;
12060 fra
.me
.REG
[0] = NIT_NULL
;
12061 fra
.me
.REG
[1] = NIT_NULL
;
12062 fra
.me
.REG
[2] = NIT_NULL
;
12063 fra
.me
.REG
[3] = NIT_NULL
;
12064 fra
.me
.REG
[4] = NIT_NULL
;
12065 fra
.me
.REG
[0] = p0
;
12066 fra
.me
.REG
[1] = p1
;
12067 /* ./syntax//typing.nit:1988 */
12068 fra
.me
.REG
[2] = CALL_parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12069 fra
.me
.REG
[3] = CALL_parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12070 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]);
12071 /* ./syntax//typing.nit:1989 */
12072 fra
.me
.REG
[3] = CALL_parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12073 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12074 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12075 if (UNTAG_Bool(REGB0
)) {
12078 /* ./syntax//typing.nit:1990 */
12079 fra
.me
.REG
[3] = CALL_parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12080 fra
.me
.REG
[3] = CALL_typing___AExpr___its_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12081 /* ./syntax//typing.nit:1991 */
12082 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12083 if (UNTAG_Bool(REGB0
)) {
12085 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12086 if (UNTAG_Bool(REGB1
)) {
12087 REGB1
= TAG_Bool(false);
12090 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12094 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12095 if (UNTAG_Bool(REGB0
)) {
12096 /* ./syntax//typing.nit:1992 */
12097 fra
.me
.REG
[2] = CALL_typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12098 fra
.me
.REG
[4] = CALL_parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12099 fra
.me
.REG
[4] = CALL_syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12100 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]);
12101 ATTR_typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12103 /* ./syntax//typing.nit:1994 */
12104 fra
.me
.REG
[1] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12105 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
12106 /* ./syntax//typing.nit:1995 */
12107 REGB0
= TAG_Bool(true);
12108 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12110 stack_frame_head
= fra
.me
.prev
;
12113 void typing___AAsCastExpr___after_typing(val_t p0
, val_t p1
){
12114 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
12118 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12119 fra
.me
.file
= LOCATE_typing
;
12120 fra
.me
.line
= 2001;
12121 fra
.me
.meth
= LOCATE_typing___AAsCastExpr___after_typing
;
12122 fra
.me
.has_broke
= 0;
12123 fra
.me
.REG_size
= 4;
12124 fra
.me
.REG
[0] = NIT_NULL
;
12125 fra
.me
.REG
[1] = NIT_NULL
;
12126 fra
.me
.REG
[2] = NIT_NULL
;
12127 fra
.me
.REG
[3] = NIT_NULL
;
12128 fra
.me
.REG
[0] = p0
;
12129 fra
.me
.REG
[1] = p1
;
12130 /* ./syntax//typing.nit:2003 */
12131 fra
.me
.REG
[2] = CALL_parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12132 fra
.me
.REG
[3] = CALL_parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12133 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]);
12134 /* ./syntax//typing.nit:2004 */
12135 fra
.me
.REG
[3] = CALL_parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12136 REGB0
= CALL_syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12137 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12138 if (UNTAG_Bool(REGB0
)) {
12141 /* ./syntax//typing.nit:2005 */
12142 fra
.me
.REG
[3] = CALL_parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12143 fra
.me
.REG
[3] = CALL_syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12144 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
12145 /* ./syntax//typing.nit:2006 */
12146 fra
.me
.REG
[3] = ATTR_typing___AExpr____stype(fra
.me
.REG
[0]);
12147 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12148 if (UNTAG_Bool(REGB0
)) {
12150 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12151 if (UNTAG_Bool(REGB1
)) {
12152 REGB1
= TAG_Bool(false);
12155 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12159 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12160 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12162 stack_frame_head
= fra
.me
.prev
;
12165 void typing___AAsNotnullExpr___after_typing(val_t p0
, val_t p1
){
12166 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12169 static val_t once_value_2
; /* Once value */
12170 static val_t once_value_3
; /* Once value */
12171 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12172 fra
.me
.file
= LOCATE_typing
;
12173 fra
.me
.line
= 2011;
12174 fra
.me
.meth
= LOCATE_typing___AAsNotnullExpr___after_typing
;
12175 fra
.me
.has_broke
= 0;
12176 fra
.me
.REG_size
= 5;
12177 fra
.me
.REG
[0] = NIT_NULL
;
12178 fra
.me
.REG
[1] = NIT_NULL
;
12179 fra
.me
.REG
[2] = NIT_NULL
;
12180 fra
.me
.REG
[3] = NIT_NULL
;
12181 fra
.me
.REG
[4] = NIT_NULL
;
12182 fra
.me
.REG
[0] = p0
;
12183 fra
.me
.REG
[1] = p1
;
12184 /* ./syntax//typing.nit:2013 */
12185 fra
.me
.REG
[2] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12186 REGB0
= CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
12187 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12188 if (UNTAG_Bool(REGB0
)) {
12191 /* ./syntax//typing.nit:2014 */
12192 fra
.me
.REG
[2] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12193 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12194 /* ./syntax//typing.nit:2015 */
12195 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
12196 if (UNTAG_Bool(REGB0
)) {
12197 /* ./syntax//typing.nit:2016 */
12198 fra
.me
.REG
[3] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12199 if (!once_value_2
) {
12200 fra
.me
.REG
[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
12201 REGB0
= TAG_Int(43);
12202 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
12203 once_value_2
= fra
.me
.REG
[4];
12204 register_static_object(&once_value_2
);
12205 } else fra
.me
.REG
[4] = once_value_2
;
12206 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12207 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
12208 /* ./syntax//typing.nit:2017 */
12211 /* ./syntax//typing.nit:2018 */
12212 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12213 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12214 if (UNTAG_Bool(REGB0
)) {
12215 /* ./syntax//typing.nit:2019 */
12216 fra
.me
.REG
[2] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12217 if (!once_value_3
) {
12218 fra
.me
.REG
[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
12219 REGB0
= TAG_Int(45);
12220 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
12221 once_value_3
= fra
.me
.REG
[4];
12222 register_static_object(&once_value_3
);
12223 } else fra
.me
.REG
[4] = once_value_3
;
12224 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12225 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
12228 /* ./syntax//typing.nit:2021 */
12229 fra
.me
.REG
[4] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12230 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12231 fra
.me
.REG
[4] = CALL_static_type___MMType___as_notnull(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12232 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12233 /* ./syntax//typing.nit:2022 */
12234 REGB0
= TAG_Bool(true);
12235 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12237 stack_frame_head
= fra
.me
.prev
;
12240 void typing___AProxyExpr___after_typing(val_t p0
, val_t p1
){
12241 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12244 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12245 fra
.me
.file
= LOCATE_typing
;
12246 fra
.me
.line
= 2027;
12247 fra
.me
.meth
= LOCATE_typing___AProxyExpr___after_typing
;
12248 fra
.me
.has_broke
= 0;
12249 fra
.me
.REG_size
= 2;
12250 fra
.me
.REG
[0] = NIT_NULL
;
12251 fra
.me
.REG
[1] = NIT_NULL
;
12252 fra
.me
.REG
[0] = p0
;
12253 fra
.me
.REG
[1] = p1
;
12254 /* ./syntax//typing.nit:2029 */
12255 fra
.me
.REG
[1] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12256 REGB0
= CALL_syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12257 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12258 if (UNTAG_Bool(REGB0
)) {
12261 /* ./syntax//typing.nit:2030 */
12262 REGB0
= TAG_Bool(true);
12263 ATTR_typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12264 /* ./syntax//typing.nit:2031 */
12265 fra
.me
.REG
[1] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12266 REGB0
= CALL_syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12267 if (UNTAG_Bool(REGB0
)) {
12270 /* ./syntax//typing.nit:2032 */
12271 fra
.me
.REG
[1] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12272 fra
.me
.REG
[1] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12273 ATTR_typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
12275 stack_frame_head
= fra
.me
.prev
;
12278 void typing___AOnceExpr___accept_typing(val_t p0
, val_t p1
){
12279 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12283 static val_t once_value_1
; /* Once value */
12284 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12285 fra
.me
.file
= LOCATE_typing
;
12286 fra
.me
.line
= 2037;
12287 fra
.me
.meth
= LOCATE_typing___AOnceExpr___accept_typing
;
12288 fra
.me
.has_broke
= 0;
12289 fra
.me
.REG_size
= 5;
12290 fra
.me
.REG
[0] = NIT_NULL
;
12291 fra
.me
.REG
[1] = NIT_NULL
;
12292 fra
.me
.REG
[2] = NIT_NULL
;
12293 fra
.me
.REG
[3] = NIT_NULL
;
12294 fra
.me
.REG
[4] = NIT_NULL
;
12295 fra
.me
.REG
[0] = p0
;
12296 fra
.me
.REG
[1] = p1
;
12297 /* ./syntax//typing.nit:2037 */
12298 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12299 fra
.me
.REG
[3] = fra
.me
.REG
[1];
12300 /* ./syntax//typing.nit:2039 */
12301 REGB0
= CALL_typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12302 REGB1
= TAG_Int(0);
12303 /* ./../lib/standard//kernel.nit:214 */
12304 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
12305 /* ./syntax//typing.nit:2039 */
12306 if (UNTAG_Bool(REGB1
)) {
12307 /* ./syntax//typing.nit:2040 */
12308 if (!once_value_1
) {
12309 fra
.me
.REG
[4] = BOX_NativeString("Useless once in a once expression.");
12310 REGB1
= TAG_Int(34);
12311 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
12312 once_value_1
= fra
.me
.REG
[4];
12313 register_static_object(&once_value_1
);
12314 } else fra
.me
.REG
[4] = once_value_1
;
12315 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12316 CALL_syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
12318 /* ./syntax//typing.nit:2042 */
12319 REGB1
= CALL_typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12320 REGB0
= TAG_Int(1);
12321 /* ./../lib/standard//kernel.nit:215 */
12322 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
12323 /* ./syntax//typing.nit:2042 */
12324 CALL_typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
12325 /* ./syntax//typing.nit:2044 */
12326 CALL_SUPER_typing___AOnceExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12327 /* ./syntax//typing.nit:2046 */
12328 REGB0
= CALL_typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12329 REGB1
= TAG_Int(1);
12330 /* ./../lib/standard//kernel.nit:217 */
12331 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
12332 /* ./syntax//typing.nit:2046 */
12333 CALL_typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
12334 stack_frame_head
= fra
.me
.prev
;