1 /* This C file is generated by NIT to compile module syntax___typing. */
2 #include "syntax___typing._sep.h"
3 void syntax___typing___MMSrcModule___do_typing(val_t p0
, val_t p1
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7 fra
.me
.file
= LOCATE_syntax___typing
;
9 fra
.me
.meth
= LOCATE_syntax___typing___MMSrcModule___do_typing
;
12 fra
.me
.REG
[0] = NIT_NULL
;
13 fra
.me
.REG
[1] = NIT_NULL
;
16 /* ./syntax//typing.nit:29 */
17 fra
.me
.REG
[1] = NEW_TypingVisitor_syntax___typing___TypingVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
18 /* ./syntax//typing.nit:30 */
19 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMSrcModule___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
20 CALL_parser___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 syntax___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_syntax___typing
;
32 fra
.me
.meth
= LOCATE_syntax___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_standard___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_syntax___typing
, 43);
58 CALL_syntax___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
syntax___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_syntax___typing
;
70 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___scope_ctx
;
73 fra
.me
.REG
[0] = NIT_NULL
;
75 /* ./syntax//typing.nit:46 */
76 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____scope_ctx(fra
.me
.REG
[0])!=NIT_NULL
);
77 if (UNTAG_Bool(REGB0
)) {
79 nit_abort("Uninitialized attribute %s", "_scope_ctx", LOCATE_syntax___typing
, 46);
81 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____scope_ctx(fra
.me
.REG
[0]);
82 stack_frame_head
= fra
.me
.prev
;
85 val_t
syntax___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_syntax___typing
;
92 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___flow_ctx
;
95 fra
.me
.REG
[0] = NIT_NULL
;
97 /* ./syntax//typing.nit:50 */
98 fra
.me
.REG
[0] = ATTR_syntax___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_syntax___typing
, 50);
106 stack_frame_head
= fra
.me
.prev
;
107 return fra
.me
.REG
[0];
109 void syntax___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_syntax___typing
;
115 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor____flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
124 stack_frame_head
= fra
.me
.prev
;
127 void syntax___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_syntax___typing
;
134 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
144 REGB0
= CALL_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
150 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_setvariable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
151 CALL_syntax___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 syntax___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_syntax___typing
;
162 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
172 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_unreash(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
173 CALL_syntax___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 syntax___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_syntax___typing
;
185 fra
.me
.meth
= LOCATE_syntax___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_standard___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
211 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
212 /* ./syntax//typing.nit:71 */
213 CALL_parser___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
216 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
218 stack_frame_head
= fra
.me
.prev
;
221 val_t
syntax___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_syntax___typing
;
228 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_syntax___typing
, 76);
242 stack_frame_head
= fra
.me
.prev
;
243 return fra
.me
.REG
[0];
245 void syntax___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_syntax___typing
;
251 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor____base_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
260 stack_frame_head
= fra
.me
.prev
;
263 val_t
syntax___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_syntax___typing
;
270 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_syntax___typing
, 80);
284 stack_frame_head
= fra
.me
.prev
;
285 return fra
.me
.REG
[0];
287 void syntax___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_syntax___typing
;
293 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor____self_var(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
302 stack_frame_head
= fra
.me
.prev
;
305 val_t
syntax___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_syntax___typing
;
311 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor____top_block(fra
.me
.REG
[0]);
318 stack_frame_head
= fra
.me
.prev
;
319 return fra
.me
.REG
[0];
321 void syntax___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_syntax___typing
;
327 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor____top_block(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
336 stack_frame_head
= fra
.me
.prev
;
339 val_t
syntax___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_syntax___typing
;
345 fra
.me
.meth
= LOCATE_syntax___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_syntax___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 syntax___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_syntax___typing
;
361 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
370 stack_frame_head
= fra
.me
.prev
;
373 val_t
syntax___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_syntax___typing
;
380 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_syntax___typing
, 89);
391 REGB0
= ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]);
392 stack_frame_head
= fra
.me
.prev
;
395 void syntax___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_syntax___typing
;
402 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]) = REGB0
;
410 stack_frame_head
= fra
.me
.prev
;
413 void syntax___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_syntax___typing
;
421 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_standard___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_syntax___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 syntax___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_syntax___typing
;
458 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_standard___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_syntax___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
syntax___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_syntax___typing
;
494 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_syntax___typing
, 106);
505 REGB0
= ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]);
506 stack_frame_head
= fra
.me
.prev
;
509 void syntax___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_syntax___typing
;
516 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]) = REGB0
;
524 stack_frame_head
= fra
.me
.prev
;
527 val_t
syntax___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_syntax___typing
;
534 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0])!=NIT_NULL
);
541 if (UNTAG_Bool(REGB0
)) {
543 nit_abort("Uninitialized attribute %s", "_once_count", LOCATE_syntax___typing
, 109);
545 REGB0
= ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0]);
546 stack_frame_head
= fra
.me
.prev
;
549 void syntax___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_syntax___typing
;
556 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0]) = REGB0
;
564 stack_frame_head
= fra
.me
.prev
;
567 void syntax___typing___TypingVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
568 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___typing___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_syntax___typing
;
575 fra
.me
.meth
= LOCATE_syntax___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___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
syntax___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_syntax___typing
;
615 fra
.me
.meth
= LOCATE_syntax___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_standard___collection___array___Array___init();
635 /* ./syntax//typing.nit:120 */
636 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___init();
637 /* ./syntax//typing.nit:121 */
638 fra
.me
.REG
[6] = CALL_metamodel___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_syntax___typing
, 121);
643 REGB0
= CALL_metamodel___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_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
647 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[7])(fra
.me
.REG
[7], (&(fra
.me
)), ((fun_t
)OC_syntax___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_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
654 if (UNTAG_Bool(REGB0
)) {
656 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
658 REGB0
= ATTR_standard___collection___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:210 */
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_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
677 if (UNTAG_Bool(REGB2
)) {
679 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
681 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
682 /* ./syntax//typing.nit:143 */
684 /* ./../lib/standard//kernel.nit:217 */
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_standard___collection___array___Array___init();
690 /* ./../lib/standard//collection//array.nit:234 */
692 /* ./../lib/standard//collection//array.nit:235 */
693 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
694 if (UNTAG_Bool(REGB2
)) {
696 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 235);
698 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
699 /* ./../lib/standard//collection//array.nit:236 */
700 fra
.me
.REG
[6] = ATTR_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
705 if (UNTAG_Bool(REGB2
)) {
707 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
709 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
710 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___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_standard___collection___array___Array___with_capacity(REGB2
);
725 fra
.me
.REG
[10] = BOX_NativeString("");
727 fra
.me
.REG
[10] = NEW_String_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
733 fra
.me
.REG
[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
734 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
744 fra
.me
.REG
[8] = CALL_metamodel___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_metamodel___static_type___MMSignature
, ID_metamodel___static_type___MMSignature
)) /*cast MMSignature*/;
746 if (UNTAG_Bool(REGB2
)) {
748 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 146);
750 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
751 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
761 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
762 CALL_standard___collection___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:218 */
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_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
787 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
788 CALL_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
807 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
817 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
818 CALL_syntax___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_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
825 if (UNTAG_Bool(REGB1
)) {
827 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
829 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
830 /* ./syntax//typing.nit:150 */
832 /* ./../lib/standard//kernel.nit:217 */
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_standard___collection___array___Array___init();
838 /* ./../lib/standard//collection//array.nit:234 */
840 /* ./../lib/standard//collection//array.nit:235 */
841 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
842 if (UNTAG_Bool(REGB1
)) {
844 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 235);
846 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
847 /* ./../lib/standard//collection//array.nit:236 */
848 fra
.me
.REG
[4] = ATTR_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
853 if (UNTAG_Bool(REGB1
)) {
855 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
857 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
858 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___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_standard___collection___array___Array___with_capacity(REGB1
);
872 if (!once_value_14
) {
873 fra
.me
.REG
[8] = BOX_NativeString("");
875 fra
.me
.REG
[8] = NEW_String_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
881 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
882 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
892 fra
.me
.REG
[3] = CALL_metamodel___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_metamodel___static_type___MMSignature
, ID_metamodel___static_type___MMSignature
)) /*cast MMSignature*/;
894 if (UNTAG_Bool(REGB1
)) {
896 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 153);
898 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
899 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[3]);
909 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
910 CALL_standard___collection___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:218 */
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_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
935 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
936 CALL_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___string___Collection___join(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
955 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
965 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
966 CALL_syntax___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_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
983 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
984 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
994 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
995 CALL_syntax___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_syntax___typing___TypingVisitor___get_default_constructor_for_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
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_syntax___typing
;
1019 fra
.me
.meth
= LOCATE_syntax___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_metamodel___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_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
1038 /* ./syntax//typing.nit:125 */
1039 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
1040 fra
.me
.REG
[1] = CALL_metamodel___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_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
1043 if (UNTAG_Bool(REGB0
)) {
1045 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 126);
1047 /* ./syntax//typing.nit:127 */
1048 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1049 /* ./syntax//typing.nit:128 */
1050 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1051 fra
.me
.REG
[3] = CALL_metamodel___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_standard___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:210 */
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:210 */
1076 REGB3
= TAG_Bool((closctx
->REG
[6])==(REGB0
));
1077 /* ./syntax//typing.nit:129 */
1080 if (UNTAG_Bool(REGB1
)) {
1081 fra
.me
.REG
[3] = CALL_metamodel___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_syntax___typing
, 129);
1086 REGB1
= CALL_metamodel___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_standard___collection___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:210 */
1109 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
1110 /* ./syntax//typing.nit:134 */
1113 if (UNTAG_Bool(REGB1
)) {
1114 fra
.me
.REG
[1] = CALL_metamodel___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_standard___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_standard___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[4])(closctx
->REG
[4], fra
.me
.REG
[0]);
1142 /* ./syntax//typing.nit:136 */
1143 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[5])(closctx
->REG
[5], fra
.me
.REG
[0]);
1145 /* ./syntax//typing.nit:138 */
1146 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[5])(closctx
->REG
[5], fra
.me
.REG
[0]);
1150 stack_frame_head
= fra
.me
.prev
;
1153 void syntax___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_syntax___typing
;
1159 fra
.me
.meth
= LOCATE_syntax___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___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_syntax___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 syntax___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_syntax___typing
;
1179 fra
.me
.meth
= LOCATE_syntax___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 syntax___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_syntax___typing
;
1197 fra
.me
.meth
= LOCATE_syntax___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_standard___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_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1220 fra
.me
.REG
[4] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1221 CALL_syntax___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_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1224 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1225 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1226 CALL_syntax___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_syntax___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
syntax___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_syntax___typing
;
1239 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_syntax___typing
, 186);
1253 stack_frame_head
= fra
.me
.prev
;
1254 return fra
.me
.REG
[0];
1256 void syntax___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_syntax___typing
;
1264 fra
.me
.meth
= LOCATE_syntax___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_syntax___flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1279 CALL_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1282 CALL_syntax___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1285 CALL_syntax___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_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1288 ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1289 /* ./syntax//typing.nit:198 */
1290 CALL_SUPER_syntax___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___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_standard___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___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_parser___parser_nodes___AExpr
, ID_parser___parser_nodes___AExpr
)) /*cast AExpr*/;
1310 if (UNTAG_Bool(REGB0
)) {
1312 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 200);
1314 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1315 fra
.me
.REG
[2] = CALL_metamodel___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_syntax___typing
, 200);
1320 fra
.me
.REG
[2] = CALL_metamodel___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_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
1322 if (UNTAG_Bool(REGB0
)) {
1324 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 200);
1326 CALL_syntax___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1330 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1331 stack_frame_head
= fra
.me
.prev
;
1334 void syntax___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_syntax___typing
;
1340 fra
.me
.meth
= LOCATE_syntax___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_syntax___flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1355 CALL_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1358 CALL_syntax___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1361 CALL_syntax___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_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1364 ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1365 /* ./syntax//typing.nit:214 */
1366 CALL_SUPER_syntax___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1369 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1370 stack_frame_head
= fra
.me
.prev
;
1373 void syntax___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_syntax___typing
;
1382 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1398 REGB0
= CALL_syntax___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___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1402 fra
.me
.REG
[1] = CALL_metamodel___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_syntax___typing
, 223);
1407 fra
.me
.REG
[1] = CALL_metamodel___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_standard___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_standard___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___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 syntax___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_syntax___typing
;
1447 fra
.me
.meth
= LOCATE_syntax___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___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1462 CALL_syntax___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___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1465 CALL_syntax___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_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1469 /* ./syntax//typing.nit:235 */
1470 CALL_SUPER_syntax___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 syntax___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_syntax___typing
;
1486 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___AConcreteInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1503 /* ./syntax//typing.nit:241 */
1504 REGB0
= CALL_syntax___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___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1509 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1510 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1511 fra
.me
.REG
[0] = CALL_syntax___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_standard___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___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_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
1529 if (UNTAG_Bool(REGB1
)) {
1531 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
1533 REGB1
= ATTR_standard___collection___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:215 */
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___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:216 */
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_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1553 if (UNTAG_Bool(REGB3
)) {
1555 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 245);
1557 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1558 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___array
, 245);
1569 /* ./../lib/standard//collection//array.nit:246 */
1570 fra
.me
.REG
[4] = ATTR_standard___collection___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_standard___collection___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_syntax___typing
, 250);
1587 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1588 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1589 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1590 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1591 fra
.me
.REG
[5] = CALL_metamodel___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___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1599 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1600 fra
.me
.REG
[5] = CALL_metamodel___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_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1603 if (UNTAG_Bool(REGB3
)) {
1605 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
1607 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1608 /* ./../lib/standard//kernel.nit:215 */
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___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1614 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1615 fra
.me
.REG
[5] = CALL_metamodel___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:216 */
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_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1625 if (UNTAG_Bool(REGB4
)) {
1627 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 245);
1629 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1630 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___array
, 245);
1641 /* ./../lib/standard//collection//array.nit:246 */
1642 fra
.me
.REG
[5] = ATTR_standard___collection___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_standard___collection___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_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1654 REGB3
= CALL_metamodel___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_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1659 REGB4
= CALL_metamodel___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_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1666 REGB4
= CALL_metamodel___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_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1673 REGB4
= CALL_metamodel___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:218 */
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_standard___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_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1700 REGB3
= CALL_metamodel___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_syntax___typing
, 257);
1708 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1709 REGB4
= CALL_metamodel___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_standard___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:218 */
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___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_syntax___typing
, 259);
1738 CALL_standard___collection___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:218 */
1742 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1743 /* ./syntax//typing.nit:260 */
1745 /* ./../lib/standard//kernel.nit:215 */
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___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:216 */
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_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1760 if (UNTAG_Bool(REGB4
)) {
1762 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 245);
1764 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1765 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___array
, 245);
1776 /* ./../lib/standard//collection//array.nit:246 */
1777 fra
.me
.REG
[4] = ATTR_standard___collection___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_standard___collection___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_syntax___typing
, 263);
1794 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1795 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1796 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1797 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1798 fra
.me
.REG
[6] = CALL_metamodel___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___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1809 fra
.me
.REG
[6] = CALL_syntax___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_standard___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___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1827 CALL_standard___collection___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:218 */
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 syntax___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_syntax___typing
;
1854 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1867 /* ./syntax//typing.nit:284 */
1868 CALL_SUPER_syntax___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 syntax___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_syntax___typing
;
1878 fra
.me
.meth
= LOCATE_syntax___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_syntax___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 syntax___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_syntax___typing
;
1896 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1905 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1906 CALL_syntax___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
syntax___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_syntax___typing
;
1916 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[0]);
1923 stack_frame_head
= fra
.me
.prev
;
1924 return fra
.me
.REG
[0];
1926 void syntax___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_syntax___typing
;
1937 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1957 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1958 CALL_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1961 /* ./syntax//typing.nit:309 */
1962 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1963 /* ./syntax//typing.nit:310 */
1964 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1965 CALL_syntax___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___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1970 fra
.me
.REG
[7] = CALL_metamodel___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_syntax___typing
, 313);
1975 fra
.me
.REG
[7] = CALL_metamodel___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_standard___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_standard___collection___array___Array___init();
1992 fra
.me
.REG
[6] = fra
.me
.REG
[8];
1994 /* ./syntax//typing.nit:315 */
1995 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1996 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1997 fra
.me
.REG
[8] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[2], fra
.me
.REG
[8], fra
.me
.REG
[6]);
1998 /* ./syntax//typing.nit:316 */
1999 ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[2]) = fra
.me
.REG
[8];
2000 /* ./syntax//typing.nit:317 */
2001 fra
.me
.REG
[9] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2002 CALL_syntax___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_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2006 /* ./syntax//typing.nit:321 */
2007 CALL_SUPER_syntax___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_syntax___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___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_standard___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2029 REGB0
= CALL_syntax___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:178 */
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___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2042 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2043 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2044 fra
.me
.REG
[1] = CALL_metamodel___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_standard___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_standard___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___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___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2072 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2073 REGB2
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2074 if (UNTAG_Bool(REGB2
)) {
2075 fra
.me
.REG
[8] = CALL_syntax___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_standard___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_standard___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___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_standard___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_syntax___typing
, 334);
2127 /* ./../lib/standard//collection//array.nit:234 */
2129 /* ./../lib/standard//collection//array.nit:235 */
2130 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2131 if (UNTAG_Bool(REGB1
)) {
2133 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 235);
2135 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2136 /* ./../lib/standard//collection//array.nit:236 */
2137 fra
.me
.REG
[8] = ATTR_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2142 if (UNTAG_Bool(REGB1
)) {
2144 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
2146 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2147 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___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___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:218 */
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_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2175 /* ./syntax//typing.nit:339 */
2176 CALL_syntax___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2179 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2180 stack_frame_head
= fra
.me
.prev
;
2183 val_t
syntax___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_syntax___typing
;
2190 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_syntax___typing
, 345);
2204 stack_frame_head
= fra
.me
.prev
;
2205 return fra
.me
.REG
[0];
2207 val_t
syntax___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_syntax___typing
;
2215 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_standard___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 syntax___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_syntax___typing
;
2246 fra
.me
.meth
= LOCATE_syntax___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___syntax_base___AType___get_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2255 ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2256 stack_frame_head
= fra
.me
.prev
;
2259 val_t
syntax___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_syntax___typing
;
2266 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0])!=NIT_NULL
);
2273 if (UNTAG_Bool(REGB0
)) {
2275 nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_syntax___typing
, 356);
2277 REGB0
= ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]);
2278 stack_frame_head
= fra
.me
.prev
;
2281 val_t
syntax___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_syntax___typing
;
2289 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2310 stack_frame_head
= fra
.me
.prev
;
2313 val_t
syntax___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_syntax___typing
;
2324 fra
.me
.meth
= LOCATE_syntax___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___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_standard___collection___array___Array___with_capacity(REGB0
);
2338 if (!once_value_1
) {
2339 fra
.me
.REG
[2] = BOX_NativeString("");
2341 fra
.me
.REG
[2] = NEW_String_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2347 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2348 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2349 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2359 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2360 CALL_standard___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_syntax___typing
, 362);
2364 /* ./syntax//typing.nit:364 */
2365 REGB0
= CALL_syntax___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_standard___collection___array___Array___with_capacity(REGB0
);
2370 if (!once_value_3
) {
2371 fra
.me
.REG
[2] = BOX_NativeString("");
2373 fra
.me
.REG
[2] = NEW_String_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2379 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2380 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2381 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2391 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2392 CALL_standard___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_syntax___typing
, 366);
2396 /* ./syntax//typing.nit:368 */
2397 fra
.me
.REG
[0] = ATTR_syntax___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_syntax___typing
, 368);
2405 stack_frame_head
= fra
.me
.prev
;
2406 return fra
.me
.REG
[0];
2408 void syntax___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_syntax___typing
;
2415 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2425 stack_frame_head
= fra
.me
.prev
;
2428 val_t
syntax___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_syntax___typing
;
2435 fra
.me
.meth
= LOCATE_syntax___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
syntax___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_syntax___typing
;
2454 fra
.me
.meth
= LOCATE_syntax___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
syntax___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_syntax___typing
;
2472 fra
.me
.meth
= LOCATE_syntax___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
syntax___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_syntax___typing
;
2490 fra
.me
.meth
= LOCATE_syntax___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_syntax___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
syntax___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_syntax___typing
;
2506 fra
.me
.meth
= LOCATE_syntax___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_syntax___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
syntax___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_syntax___typing
;
2523 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_syntax___typing
, 396);
2537 stack_frame_head
= fra
.me
.prev
;
2538 return fra
.me
.REG
[0];
2540 void syntax___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_syntax___typing
;
2548 fra
.me
.meth
= LOCATE_syntax___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___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2560 fra
.me
.REG
[2] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2561 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2562 fra
.me
.REG
[3] = NEW_VarVariable_syntax___syntax_base___VarVariable___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2563 /* ./syntax//typing.nit:401 */
2564 ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
2565 /* ./syntax//typing.nit:402 */
2566 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2567 CALL_syntax___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___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_standard___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_syntax___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___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_standard___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___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_syntax___typing
, 407);
2609 REGB0
= CALL_syntax___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___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_syntax___typing
, 408);
2620 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2621 CALL_syntax___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_standard___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___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2639 CALL_syntax___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_standard___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___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_syntax___typing
, 414);
2668 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2669 CALL_syntax___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___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2673 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2674 CALL_syntax___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_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2681 stack_frame_head
= fra
.me
.prev
;
2684 void syntax___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_syntax___typing
;
2691 fra
.me
.meth
= LOCATE_syntax___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___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2701 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_syntax___typing___ABlockExpr___accept_typing_1
));
2702 /* ./syntax//typing.nit:434 */
2703 REGB0
= TAG_Bool(true);
2704 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2705 stack_frame_head
= fra
.me
.prev
;
2708 void OC_syntax___typing___ABlockExpr___accept_typing_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
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_syntax___typing
;
2717 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2728 REGB0
= CALL_syntax___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___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_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2736 REGB0
= CALL_syntax___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_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2741 REGB0
= TAG_Bool(true);
2742 CALL_syntax___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_standard___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___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 syntax___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_syntax___typing
;
2769 fra
.me
.meth
= LOCATE_syntax___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_syntax___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___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2783 fra
.me
.REG
[2] = CALL_metamodel___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_syntax___typing
, 442);
2788 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2789 /* ./syntax//typing.nit:444 */
2790 REGB0
= CALL_syntax___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_standard___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___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___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_standard___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_standard___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_standard___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___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_standard___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_standard___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_standard___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___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_standard___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_standard___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___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_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2935 stack_frame_head
= fra
.me
.prev
;
2938 void syntax___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_syntax___typing
;
2949 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2962 fra
.me
.REG
[2] = CALL_syntax___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_standard___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_syntax___typing
, 468);
2984 REGB0
= CALL_syntax___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_standard___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___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_syntax___typing
, 473);
3004 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___continue_stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3005 /* ./syntax//typing.nit:474 */
3006 fra
.me
.REG
[3] = CALL_parser___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_standard___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_standard___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_standard___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___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___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_standard___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_standard___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_standard___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___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___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_standard___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_standard___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___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_parser___parser_nodes___AExpr
, ID_parser___parser_nodes___AExpr
)) /*cast AExpr*/;
3130 if (UNTAG_Bool(REGB0
)) {
3132 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 479);
3134 CALL_syntax___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_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3142 stack_frame_head
= fra
.me
.prev
;
3145 void syntax___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_syntax___typing
;
3155 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3167 /* ./syntax//typing.nit:489 */
3168 CALL_syntax___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3171 fra
.me
.REG
[3] = CALL_syntax___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_standard___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_syntax___typing
, 493);
3193 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3194 CALL_standard___collection___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_syntax___typing
, 495);
3200 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3201 /* ./syntax//typing.nit:496 */
3202 fra
.me
.REG
[2] = CALL_parser___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_standard___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_standard___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_standard___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___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___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_standard___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_standard___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_standard___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___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___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_standard___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_standard___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___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_parser___parser_nodes___AExpr
, ID_parser___parser_nodes___AExpr
)) /*cast AExpr*/;
3326 if (UNTAG_Bool(REGB0
)) {
3328 nit_abort("Cast failed", NULL
, LOCATE_syntax___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_syntax___typing
, 502);
3334 CALL_standard___collection___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_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3342 stack_frame_head
= fra
.me
.prev
;
3345 void syntax___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_syntax___typing
;
3352 fra
.me
.meth
= LOCATE_syntax___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_syntax___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_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3364 stack_frame_head
= fra
.me
.prev
;
3367 val_t
syntax___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_syntax___typing
;
3373 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]);
3380 stack_frame_head
= fra
.me
.prev
;
3381 return fra
.me
.REG
[0];
3383 void syntax___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_syntax___typing
;
3391 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3408 /* ./syntax//typing.nit:527 */
3409 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3410 CALL_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3413 /* ./syntax//typing.nit:531 */
3414 fra
.me
.REG
[4] = CALL_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3418 CALL_syntax___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_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3424 REGB1
= CALL_syntax___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_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3429 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3430 CALL_standard___collection___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_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3434 REGB1
= CALL_standard___collection___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_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3438 /* ./syntax//typing.nit:545 */
3439 CALL_syntax___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_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3443 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___merge(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3444 CALL_syntax___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_syntax___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_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3452 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3453 /* ./syntax//typing.nit:552 */
3454 REGB0
= TAG_Bool(true);
3455 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3456 stack_frame_head
= fra
.me
.prev
;
3459 void syntax___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_syntax___typing
;
3465 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing
, 555);
3470 stack_frame_head
= fra
.me
.prev
;
3473 void syntax___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_syntax___typing
;
3480 fra
.me
.meth
= LOCATE_syntax___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_syntax___scope___BreakOnlyEscapableBlock___init(fra
.me
.REG
[0]);
3491 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3492 REGB0
= TAG_Bool(false);
3493 CALL_syntax___typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3494 stack_frame_head
= fra
.me
.prev
;
3497 void syntax___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_syntax___typing
;
3503 fra
.me
.meth
= LOCATE_syntax___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___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3512 CALL_syntax___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 syntax___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_syntax___typing
;
3523 fra
.me
.meth
= LOCATE_syntax___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___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3535 CALL_parser___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___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3538 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3539 CALL_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3542 /* ./syntax//typing.nit:580 */
3543 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3544 CALL_syntax___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___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3547 CALL_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3550 /* ./syntax//typing.nit:589 */
3551 CALL_syntax___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___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3554 CALL_syntax___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___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3557 CALL_syntax___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_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3560 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3561 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___merge_reash(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3562 CALL_syntax___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_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3566 stack_frame_head
= fra
.me
.prev
;
3569 void syntax___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_syntax___typing
;
3576 fra
.me
.meth
= LOCATE_syntax___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_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3587 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3588 REGB0
= TAG_Bool(true);
3589 CALL_syntax___typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3590 stack_frame_head
= fra
.me
.prev
;
3593 void syntax___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_syntax___typing
;
3601 fra
.me
.meth
= LOCATE_syntax___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_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3613 /* ./syntax//typing.nit:613 */
3614 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3615 CALL_parser___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___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3618 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3619 CALL_syntax___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___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3622 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_parser___parser_nodes___ATrueExpr
, ID_parser___parser_nodes___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_standard___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___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___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3637 CALL_syntax___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___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3640 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3641 /* ./syntax//typing.nit:627 */
3642 CALL_syntax___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___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3645 CALL_syntax___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_syntax___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_syntax___typing
, 629);
3652 fra
.me
.REG
[0] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3653 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3654 CALL_standard___collection___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 syntax___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_syntax___typing
;
3665 fra
.me
.meth
= LOCATE_syntax___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_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3676 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3677 REGB0
= TAG_Bool(true);
3678 CALL_syntax___typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3679 stack_frame_head
= fra
.me
.prev
;
3682 void syntax___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_syntax___typing
;
3688 fra
.me
.meth
= LOCATE_syntax___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___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3698 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3699 /* ./syntax//typing.nit:646 */
3700 CALL_syntax___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
syntax___typing___AForExpr___variables(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_syntax___typing
;
3711 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___variables
;
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_syntax___typing___AForExpr____variables(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_syntax___typing
, 653);
3725 stack_frame_head
= fra
.me
.prev
;
3726 return fra
.me
.REG
[0];
3728 void syntax___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_syntax___typing
;
3735 fra
.me
.meth
= LOCATE_syntax___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_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3746 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3747 REGB0
= TAG_Bool(true);
3748 CALL_syntax___typing___AAbsControl___process_control(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
3749 stack_frame_head
= fra
.me
.prev
;
3752 void syntax___typing___AForExpr___process_control_inside(val_t p0
, val_t p1
){
3753 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3755 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3756 fra
.me
.file
= LOCATE_syntax___typing
;
3758 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___process_control_inside
;
3759 fra
.me
.has_broke
= 0;
3760 fra
.me
.REG_size
= 3;
3761 fra
.me
.REG
[0] = NIT_NULL
;
3762 fra
.me
.REG
[1] = NIT_NULL
;
3763 fra
.me
.REG
[2] = NIT_NULL
;
3766 /* ./syntax//typing.nit:662 */
3767 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3768 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3769 /* ./syntax//typing.nit:663 */
3770 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3771 /* ./syntax//typing.nit:665 */
3772 CALL_syntax___typing___AForExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3773 /* ./syntax//typing.nit:668 */
3774 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3775 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3776 /* ./syntax//typing.nit:671 */
3777 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3778 /* ./syntax//typing.nit:672 */
3779 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3780 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3781 stack_frame_head
= fra
.me
.prev
;
3784 void syntax___typing___AForExpr___do_typing(val_t p0
, val_t p1
){
3785 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
3793 static val_t once_value_3
; /* Once value */
3794 static val_t once_value_4
; /* Once value */
3795 static val_t once_value_5
; /* Once value */
3796 static val_t once_value_6
; /* Once value */
3797 static val_t once_value_7
; /* Once value */
3798 static val_t once_value_8
; /* Once value */
3799 static val_t once_value_9
; /* Once value */
3800 static val_t once_value_10
; /* Once value */
3801 static val_t once_value_11
; /* Once value */
3802 static val_t once_value_12
; /* Once value */
3803 static val_t once_value_13
; /* Once value */
3804 static val_t once_value_14
; /* Once value */
3805 static val_t once_value_15
; /* Once value */
3806 static val_t once_value_16
; /* Once value */
3807 static val_t once_value_17
; /* Once value */
3808 static val_t once_value_18
; /* Once value */
3809 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3810 fra
.me
.file
= LOCATE_syntax___typing
;
3812 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
3813 fra
.me
.has_broke
= 0;
3814 fra
.me
.REG_size
= 8;
3815 fra
.me
.REG
[0] = NIT_NULL
;
3816 fra
.me
.REG
[1] = NIT_NULL
;
3817 fra
.me
.REG
[2] = NIT_NULL
;
3818 fra
.me
.REG
[3] = NIT_NULL
;
3819 fra
.me
.REG
[4] = NIT_NULL
;
3820 fra
.me
.REG
[5] = NIT_NULL
;
3821 fra
.me
.REG
[6] = NIT_NULL
;
3822 fra
.me
.REG
[7] = NIT_NULL
;
3825 /* ./syntax//typing.nit:678 */
3826 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
3827 /* ./syntax//typing.nit:679 */
3828 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3829 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[3])(fra
.me
.REG
[3], (&(fra
.me
)), ((fun_t
)OC_syntax___typing___AForExpr___do_typing_1
));
3830 /* ./syntax//typing.nit:684 */
3831 ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3832 /* ./syntax//typing.nit:687 */
3833 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3834 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3835 /* ./syntax//typing.nit:688 */
3836 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3837 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3838 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3839 if (UNTAG_Bool(REGB0
)) {
3842 /* ./syntax//typing.nit:689 */
3843 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3844 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3845 /* ./syntax//typing.nit:691 */
3846 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3847 if (UNTAG_Bool(REGB0
)) {
3848 /* ./syntax//typing.nit:692 */
3849 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3850 if (!once_value_3
) {
3851 fra
.me
.REG
[5] = BOX_NativeString("Type error: 'for' on a nullable expression.");
3852 REGB0
= TAG_Int(43);
3853 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3854 once_value_3
= fra
.me
.REG
[5];
3855 register_static_object(&once_value_3
);
3856 } else fra
.me
.REG
[5] = once_value_3
;
3857 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3858 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
3859 /* ./syntax//typing.nit:693 */
3862 /* ./syntax//typing.nit:697 */
3863 if (!once_value_4
) {
3864 if (!once_value_5
) {
3865 fra
.me
.REG
[5] = BOX_NativeString("iterate");
3867 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3868 once_value_5
= fra
.me
.REG
[5];
3869 register_static_object(&once_value_5
);
3870 } else fra
.me
.REG
[5] = once_value_5
;
3871 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3872 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3873 once_value_4
= fra
.me
.REG
[5];
3874 register_static_object(&once_value_4
);
3875 } else fra
.me
.REG
[5] = once_value_4
;
3876 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3877 /* ./syntax//typing.nit:698 */
3878 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3879 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3880 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3881 if (UNTAG_Bool(REGB0
)) {
3882 /* ./syntax//typing.nit:699 */
3883 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3885 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3886 if (!once_value_6
) {
3887 fra
.me
.REG
[7] = BOX_NativeString("Type error: Expected a type with an 'iterate' method. Found ");
3888 REGB0
= TAG_Int(60);
3889 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3890 once_value_6
= fra
.me
.REG
[7];
3891 register_static_object(&once_value_6
);
3892 } else fra
.me
.REG
[7] = once_value_6
;
3893 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3895 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3896 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3897 if (!once_value_7
) {
3898 fra
.me
.REG
[7] = BOX_NativeString(".");
3900 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3901 once_value_7
= fra
.me
.REG
[7];
3902 register_static_object(&once_value_7
);
3903 } else fra
.me
.REG
[7] = once_value_7
;
3904 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3905 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3906 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3907 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
3908 /* ./syntax//typing.nit:700 */
3911 /* ./syntax//typing.nit:702 */
3912 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3913 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
3914 /* ./syntax//typing.nit:703 */
3915 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3916 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3917 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3918 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3919 CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4], REGB0
);
3920 /* ./syntax//typing.nit:704 */
3921 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3922 /* ./syntax//typing.nit:705 */
3923 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3924 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3925 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3926 if (UNTAG_Bool(REGB0
)) {
3927 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3928 fra
.me
.REG
[3] = fra
.me
.REG
[5];
3930 /* ./syntax//typing.nit:706 */
3931 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3933 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
3934 if (UNTAG_Bool(REGB2
)) {
3936 /* ./../lib/standard//kernel.nit:210 */
3937 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
3938 /* ./syntax//typing.nit:706 */
3941 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
3942 if (UNTAG_Bool(REGB2
)) {
3943 /* ./syntax//typing.nit:707 */
3944 if (!once_value_8
) {
3945 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require no arguments.");
3946 REGB2
= TAG_Int(63);
3947 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
3948 once_value_8
= fra
.me
.REG
[5];
3949 register_static_object(&once_value_8
);
3950 } else fra
.me
.REG
[5] = once_value_8
;
3951 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3952 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
3953 /* ./syntax//typing.nit:708 */
3956 /* ./syntax//typing.nit:709 */
3957 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3958 /* ./../lib/standard//collection//array.nit:23 */
3959 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
3960 if (UNTAG_Bool(REGB2
)) {
3962 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
3964 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
3965 /* ./syntax//typing.nit:709 */
3967 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
3968 if (UNTAG_Bool(REGB0
)) {
3970 /* ./../lib/standard//kernel.nit:210 */
3971 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
3972 /* ./syntax//typing.nit:709 */
3975 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3976 if (UNTAG_Bool(REGB0
)) {
3977 /* ./syntax//typing.nit:710 */
3978 if (!once_value_9
) {
3979 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one closure.");
3980 REGB0
= TAG_Int(62);
3981 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3982 once_value_9
= fra
.me
.REG
[5];
3983 register_static_object(&once_value_9
);
3984 } else fra
.me
.REG
[5] = once_value_9
;
3985 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3986 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
3987 /* ./syntax//typing.nit:711 */
3991 /* ./syntax//typing.nit:713 */
3992 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3993 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3994 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3995 if (UNTAG_Bool(REGB0
)) {
3996 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 713);
3998 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3999 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4000 /* ./syntax//typing.nit:714 */
4001 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4002 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4003 if (UNTAG_Bool(REGB0
)) {
4005 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4006 if (UNTAG_Bool(REGB1
)) {
4007 REGB1
= TAG_Bool(false);
4010 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
4014 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4015 if (UNTAG_Bool(REGB0
)) {
4016 /* ./syntax//typing.nit:715 */
4017 if (!once_value_10
) {
4018 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one procedural closure.");
4019 REGB0
= TAG_Int(73);
4020 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4021 once_value_10
= fra
.me
.REG
[5];
4022 register_static_object(&once_value_10
);
4023 } else fra
.me
.REG
[5] = once_value_10
;
4024 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4025 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4026 /* ./syntax//typing.nit:716 */
4029 /* ./../lib/standard//collection//array.nit:23 */
4030 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4031 if (UNTAG_Bool(REGB0
)) {
4033 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4035 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4036 /* ./syntax//typing.nit:718 */
4037 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4038 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4039 if (UNTAG_Bool(REGB2
)) {
4041 /* ./../lib/standard//kernel.nit:210 */
4042 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4043 /* ./syntax//typing.nit:718 */
4046 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4047 if (UNTAG_Bool(REGB2
)) {
4048 /* ./syntax//typing.nit:719 */
4049 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4051 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4052 if (UNTAG_Bool(REGB0
)) {
4054 /* ./../lib/standard//kernel.nit:210 */
4055 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4056 /* ./syntax//typing.nit:719 */
4059 if (UNTAG_Bool(REGB0
)) {
4060 /* ./syntax//typing.nit:720 */
4062 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4063 if (!once_value_11
) {
4064 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4065 REGB0
= TAG_Int(16);
4066 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4067 once_value_11
= fra
.me
.REG
[4];
4068 register_static_object(&once_value_11
);
4069 } else fra
.me
.REG
[4] = once_value_11
;
4070 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4071 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4072 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4073 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4075 if (!once_value_12
) {
4076 fra
.me
.REG
[4] = BOX_NativeString(" variable ");
4077 REGB0
= TAG_Int(10);
4078 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4079 once_value_12
= fra
.me
.REG
[4];
4080 register_static_object(&once_value_12
);
4081 } else fra
.me
.REG
[4] = once_value_12
;
4082 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4083 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4084 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4085 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4086 if (!once_value_13
) {
4087 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4089 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4090 once_value_13
= fra
.me
.REG
[4];
4091 register_static_object(&once_value_13
);
4092 } else fra
.me
.REG
[4] = once_value_13
;
4093 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4094 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4095 /* ./../lib/standard//collection//array.nit:23 */
4096 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4097 if (UNTAG_Bool(REGB0
)) {
4099 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4101 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4102 /* ./syntax//typing.nit:720 */
4103 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4104 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4105 if (!once_value_14
) {
4106 fra
.me
.REG
[4] = BOX_NativeString(".");
4108 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4109 once_value_14
= fra
.me
.REG
[4];
4110 register_static_object(&once_value_14
);
4111 } else fra
.me
.REG
[4] = once_value_14
;
4112 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4113 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4114 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4115 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4117 /* ./syntax//typing.nit:722 */
4119 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4120 if (!once_value_15
) {
4121 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4122 REGB0
= TAG_Int(16);
4123 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4124 once_value_15
= fra
.me
.REG
[4];
4125 register_static_object(&once_value_15
);
4126 } else fra
.me
.REG
[4] = once_value_15
;
4127 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4128 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4129 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4130 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4132 if (!once_value_16
) {
4133 fra
.me
.REG
[4] = BOX_NativeString(" variables ");
4134 REGB0
= TAG_Int(11);
4135 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4136 once_value_16
= fra
.me
.REG
[4];
4137 register_static_object(&once_value_16
);
4138 } else fra
.me
.REG
[4] = once_value_16
;
4139 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4140 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4141 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4142 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4143 if (!once_value_17
) {
4144 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4146 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4147 once_value_17
= fra
.me
.REG
[4];
4148 register_static_object(&once_value_17
);
4149 } else fra
.me
.REG
[4] = once_value_17
;
4150 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4152 /* ./../lib/standard//collection//array.nit:23 */
4153 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4154 if (UNTAG_Bool(REGB0
)) {
4156 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4158 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4159 /* ./syntax//typing.nit:722 */
4160 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4162 if (!once_value_18
) {
4163 fra
.me
.REG
[4] = BOX_NativeString(".");
4165 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4166 once_value_18
= fra
.me
.REG
[4];
4167 register_static_object(&once_value_18
);
4168 } else fra
.me
.REG
[4] = once_value_18
;
4169 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4170 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4171 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4172 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4174 /* ./syntax//typing.nit:724 */
4177 /* ./syntax//typing.nit:728 */
4179 /* ./../lib/standard//collection//array.nit:23 */
4180 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4181 if (UNTAG_Bool(REGB1
)) {
4183 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4185 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4186 /* ./../lib/standard//kernel.nit:335 */
4188 /* ./../lib/standard//kernel.nit:215 */
4189 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
4190 /* ./../lib/standard//kernel.nit:335 */
4191 if (UNTAG_Bool(REGB2
)) {
4192 /* ./syntax//typing.nit:728 */
4194 /* ./../lib/standard//collection//array.nit:243 */
4195 fra
.me
.REG
[5] = fra
.me
.REG
[2];
4197 /* ./../lib/standard//collection//array.nit:245 */
4199 /* ./../lib/standard//kernel.nit:216 */
4200 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
4201 /* ./../lib/standard//collection//array.nit:245 */
4202 if (UNTAG_Bool(REGB4
)) {
4203 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4204 if (UNTAG_Bool(REGB4
)) {
4206 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 245);
4208 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4209 /* ./../lib/standard//kernel.nit:215 */
4210 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
4212 /* ./../lib/standard//collection//array.nit:245 */
4213 REGB5
= TAG_Bool(false);
4216 if (UNTAG_Bool(REGB4
)) {
4218 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 245);
4220 /* ./../lib/standard//collection//array.nit:246 */
4221 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
4222 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4223 if (UNTAG_Bool(REGB4
)) {
4224 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 246);
4226 /* ./../lib/standard//collection//array.nit:654 */
4227 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
4228 /* ./../lib/standard//collection//array.nit:246 */
4231 /* ./syntax//typing.nit:729 */
4232 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
4233 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4234 if (UNTAG_Bool(REGB2
)) {
4235 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 729);
4237 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4238 /* ./../lib/standard//kernel.nit:337 */
4240 /* ./../lib/standard//kernel.nit:218 */
4241 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
4242 /* ./../lib/standard//kernel.nit:337 */
4245 /* ./../lib/standard//kernel.nit:335 */
4251 stack_frame_head
= fra
.me
.prev
;
4254 void OC_syntax___typing___AForExpr___do_typing_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
4255 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4258 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4259 fra
.me
.file
= LOCATE_syntax___typing
;
4261 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4262 fra
.me
.has_broke
= 0;
4263 fra
.me
.REG_size
= 2;
4264 fra
.me
.REG
[0] = NIT_NULL
;
4265 fra
.me
.REG
[1] = NIT_NULL
;
4266 fra
.me
.closure_ctx
= closctx_param
;
4267 fra
.me
.closure_funs
= CREG
;
4269 CREG
[0] = clos_fun0
;
4270 /* ./syntax//typing.nit:680 */
4271 fra
.me
.REG
[1] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4272 fra
.me
.REG
[0] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4273 /* ./syntax//typing.nit:681 */
4274 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
4275 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4276 /* ./syntax//typing.nit:682 */
4277 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
4278 stack_frame_head
= fra
.me
.prev
;
4281 void syntax___typing___AAssertExpr___accept_typing(val_t p0
, val_t p1
){
4282 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4286 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4287 fra
.me
.file
= LOCATE_syntax___typing
;
4289 fra
.me
.meth
= LOCATE_syntax___typing___AAssertExpr___accept_typing
;
4290 fra
.me
.has_broke
= 0;
4291 fra
.me
.REG_size
= 4;
4292 fra
.me
.REG
[0] = NIT_NULL
;
4293 fra
.me
.REG
[1] = NIT_NULL
;
4294 fra
.me
.REG
[2] = NIT_NULL
;
4295 fra
.me
.REG
[3] = NIT_NULL
;
4298 /* ./syntax//typing.nit:738 */
4299 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4300 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4301 /* ./syntax//typing.nit:739 */
4302 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4303 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4304 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4305 /* ./syntax//typing.nit:742 */
4306 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4307 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4308 if (UNTAG_Bool(REGB0
)) {
4310 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4311 if (UNTAG_Bool(REGB1
)) {
4312 REGB1
= TAG_Bool(false);
4315 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4319 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4320 if (UNTAG_Bool(REGB0
)) {
4321 /* ./syntax//typing.nit:743 */
4322 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4323 /* ./syntax//typing.nit:744 */
4324 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4325 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4326 /* ./syntax//typing.nit:745 */
4327 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4328 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4329 /* ./syntax//typing.nit:746 */
4330 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4332 /* ./syntax//typing.nit:750 */
4333 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4334 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4335 /* ./syntax//typing.nit:751 */
4336 REGB0
= TAG_Bool(true);
4337 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4338 stack_frame_head
= fra
.me
.prev
;
4341 val_t
syntax___typing___AVarFormExpr___variable(val_t p0
){
4342 struct {struct stack_frame_t me
;} fra
;
4345 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4346 fra
.me
.file
= LOCATE_syntax___typing
;
4348 fra
.me
.meth
= LOCATE_syntax___typing___AVarFormExpr___variable
;
4349 fra
.me
.has_broke
= 0;
4350 fra
.me
.REG_size
= 1;
4351 fra
.me
.REG
[0] = NIT_NULL
;
4353 /* ./syntax//typing.nit:757 */
4354 fra
.me
.REG
[0] = ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[0]);
4355 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
4356 if (UNTAG_Bool(REGB0
)) {
4358 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 757);
4362 stack_frame_head
= fra
.me
.prev
;
4363 return fra
.me
.REG
[0];
4365 val_t
syntax___typing___AVarExpr___its_variable(val_t p0
){
4366 struct {struct stack_frame_t me
;} fra
;
4368 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4369 fra
.me
.file
= LOCATE_syntax___typing
;
4371 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___its_variable
;
4372 fra
.me
.has_broke
= 0;
4373 fra
.me
.REG_size
= 1;
4374 fra
.me
.REG
[0] = NIT_NULL
;
4376 /* ./syntax//typing.nit:761 */
4377 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4380 stack_frame_head
= fra
.me
.prev
;
4381 return fra
.me
.REG
[0];
4383 void syntax___typing___AVarExpr___after_typing(val_t p0
, val_t p1
){
4384 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4388 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4389 fra
.me
.file
= LOCATE_syntax___typing
;
4391 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___after_typing
;
4392 fra
.me
.has_broke
= 0;
4393 fra
.me
.REG_size
= 4;
4394 fra
.me
.REG
[0] = NIT_NULL
;
4395 fra
.me
.REG
[1] = NIT_NULL
;
4396 fra
.me
.REG
[2] = NIT_NULL
;
4397 fra
.me
.REG
[3] = NIT_NULL
;
4400 /* ./syntax//typing.nit:765 */
4401 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4402 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4403 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4404 /* ./syntax//typing.nit:766 */
4405 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4406 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4407 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4408 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4409 /* ./syntax//typing.nit:767 */
4410 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
4411 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4412 if (UNTAG_Bool(REGB0
)) {
4414 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4415 if (UNTAG_Bool(REGB1
)) {
4416 REGB1
= TAG_Bool(false);
4419 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4423 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4424 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4425 stack_frame_head
= fra
.me
.prev
;
4428 void syntax___typing___AVarAssignExpr___after_typing(val_t p0
, val_t p1
){
4429 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4433 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4434 fra
.me
.file
= LOCATE_syntax___typing
;
4436 fra
.me
.meth
= LOCATE_syntax___typing___AVarAssignExpr___after_typing
;
4437 fra
.me
.has_broke
= 0;
4438 fra
.me
.REG_size
= 5;
4439 fra
.me
.REG
[0] = NIT_NULL
;
4440 fra
.me
.REG
[1] = NIT_NULL
;
4441 fra
.me
.REG
[2] = NIT_NULL
;
4442 fra
.me
.REG
[3] = NIT_NULL
;
4443 fra
.me
.REG
[4] = NIT_NULL
;
4446 /* ./syntax//typing.nit:774 */
4447 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4448 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4449 /* ./syntax//typing.nit:777 */
4450 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4451 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4452 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4453 /* ./syntax//typing.nit:778 */
4454 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4455 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4456 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4457 if (UNTAG_Bool(REGB0
)) {
4460 /* ./syntax//typing.nit:779 */
4461 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4462 if (UNTAG_Bool(REGB0
)) {
4464 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4465 if (UNTAG_Bool(REGB1
)) {
4466 REGB1
= TAG_Bool(false);
4469 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4473 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4474 if (UNTAG_Bool(REGB0
)) {
4475 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4476 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4477 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4479 REGB1
= TAG_Bool(false);
4482 if (UNTAG_Bool(REGB0
)) {
4485 /* ./syntax//typing.nit:782 */
4486 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4487 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4488 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4489 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4490 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[4]);
4491 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4492 /* ./syntax//typing.nit:784 */
4493 REGB0
= TAG_Bool(true);
4494 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4496 stack_frame_head
= fra
.me
.prev
;
4499 val_t
syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0
, val_t p1
, val_t p2
){
4500 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4504 static val_t once_value_2
; /* Once value */
4505 static val_t once_value_3
; /* Once value */
4506 static val_t once_value_4
; /* Once value */
4507 static val_t once_value_5
; /* Once value */
4508 static val_t once_value_6
; /* Once value */
4509 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4510 fra
.me
.file
= LOCATE_syntax___typing
;
4512 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing
;
4513 fra
.me
.has_broke
= 0;
4514 fra
.me
.REG_size
= 8;
4515 fra
.me
.REG
[0] = NIT_NULL
;
4516 fra
.me
.REG
[1] = NIT_NULL
;
4517 fra
.me
.REG
[2] = NIT_NULL
;
4518 fra
.me
.REG
[3] = NIT_NULL
;
4519 fra
.me
.REG
[4] = NIT_NULL
;
4520 fra
.me
.REG
[5] = NIT_NULL
;
4521 fra
.me
.REG
[6] = NIT_NULL
;
4522 fra
.me
.REG
[7] = NIT_NULL
;
4526 /* ./syntax//typing.nit:794 */
4527 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4528 if (UNTAG_Bool(REGB0
)) {
4530 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4531 if (UNTAG_Bool(REGB1
)) {
4532 REGB1
= TAG_Bool(false);
4535 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4539 if (UNTAG_Bool(REGB0
)) {
4540 /* ./syntax//typing.nit:795 */
4541 fra
.me
.REG
[3] = NIT_NULL
;
4544 /* ./syntax//typing.nit:797 */
4545 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4546 fra
.me
.REG
[4] = CALL_syntax___typing___AAssignOp___method_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4547 /* ./syntax//typing.nit:798 */
4548 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
4549 if (UNTAG_Bool(REGB0
)) {
4550 /* ./syntax//typing.nit:799 */
4552 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4553 if (!once_value_2
) {
4554 fra
.me
.REG
[6] = BOX_NativeString("Error: Method '");
4555 REGB0
= TAG_Int(15);
4556 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4557 once_value_2
= fra
.me
.REG
[6];
4558 register_static_object(&once_value_2
);
4559 } else fra
.me
.REG
[6] = once_value_2
;
4560 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4561 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4562 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4563 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4564 if (!once_value_3
) {
4565 fra
.me
.REG
[6] = BOX_NativeString("' call on 'null'.");
4566 REGB0
= TAG_Int(17);
4567 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4568 once_value_3
= fra
.me
.REG
[6];
4569 register_static_object(&once_value_3
);
4570 } else fra
.me
.REG
[6] = once_value_3
;
4571 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4572 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4573 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4574 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4575 /* ./syntax//typing.nit:800 */
4576 fra
.me
.REG
[3] = NIT_NULL
;
4579 /* ./syntax//typing.nit:802 */
4580 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4581 if (UNTAG_Bool(REGB0
)) {
4582 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 802);
4584 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4585 /* ./syntax//typing.nit:803 */
4586 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4587 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4588 if (UNTAG_Bool(REGB0
)) {
4589 /* ./syntax//typing.nit:804 */
4591 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4592 if (!once_value_4
) {
4593 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
4594 REGB0
= TAG_Int(15);
4595 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4596 once_value_4
= fra
.me
.REG
[7];
4597 register_static_object(&once_value_4
);
4598 } else fra
.me
.REG
[7] = once_value_4
;
4599 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4600 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4601 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4603 if (!once_value_5
) {
4604 fra
.me
.REG
[7] = BOX_NativeString("' doesn't exists in ");
4605 REGB0
= TAG_Int(20);
4606 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4607 once_value_5
= fra
.me
.REG
[7];
4608 register_static_object(&once_value_5
);
4609 } else fra
.me
.REG
[7] = once_value_5
;
4610 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4611 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4612 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4613 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4614 if (!once_value_6
) {
4615 fra
.me
.REG
[7] = BOX_NativeString(".");
4617 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4618 once_value_6
= fra
.me
.REG
[7];
4619 register_static_object(&once_value_6
);
4620 } else fra
.me
.REG
[7] = once_value_6
;
4621 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4623 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4624 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
4625 /* ./syntax//typing.nit:805 */
4626 fra
.me
.REG
[3] = NIT_NULL
;
4629 /* ./syntax//typing.nit:807 */
4630 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4631 /* ./syntax//typing.nit:808 */
4632 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4633 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4634 REGB0
= TAG_Bool(false);
4635 CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6], REGB0
);
4636 /* ./syntax//typing.nit:809 */
4637 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4638 /* ./syntax//typing.nit:810 */
4639 ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4640 /* ./syntax//typing.nit:811 */
4641 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4643 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
4644 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4645 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
4646 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4647 if (UNTAG_Bool(REGB0
)) {
4648 fra
.me
.REG
[3] = NIT_NULL
;
4651 /* ./syntax//typing.nit:812 */
4652 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4653 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4654 if (UNTAG_Bool(REGB0
)) {
4655 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 812);
4657 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4658 fra
.me
.REG
[3] = fra
.me
.REG
[2];
4661 stack_frame_head
= fra
.me
.prev
;
4662 return fra
.me
.REG
[3];
4664 val_t
syntax___typing___AReassignFormExpr___assign_method(val_t p0
){
4665 struct {struct stack_frame_t me
;} fra
;
4668 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4669 fra
.me
.file
= LOCATE_syntax___typing
;
4671 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___assign_method
;
4672 fra
.me
.has_broke
= 0;
4673 fra
.me
.REG_size
= 1;
4674 fra
.me
.REG
[0] = NIT_NULL
;
4676 /* ./syntax//typing.nit:815 */
4677 fra
.me
.REG
[0] = ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]);
4678 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
4679 if (UNTAG_Bool(REGB0
)) {
4681 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 815);
4685 stack_frame_head
= fra
.me
.prev
;
4686 return fra
.me
.REG
[0];
4688 void syntax___typing___AVarReassignExpr___after_typing(val_t p0
, val_t p1
){
4689 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4693 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4694 fra
.me
.file
= LOCATE_syntax___typing
;
4696 fra
.me
.meth
= LOCATE_syntax___typing___AVarReassignExpr___after_typing
;
4697 fra
.me
.has_broke
= 0;
4698 fra
.me
.REG_size
= 5;
4699 fra
.me
.REG
[0] = NIT_NULL
;
4700 fra
.me
.REG
[1] = NIT_NULL
;
4701 fra
.me
.REG
[2] = NIT_NULL
;
4702 fra
.me
.REG
[3] = NIT_NULL
;
4703 fra
.me
.REG
[4] = NIT_NULL
;
4706 /* ./syntax//typing.nit:822 */
4707 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4708 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4709 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4710 /* ./syntax//typing.nit:823 */
4711 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4712 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4713 /* ./syntax//typing.nit:824 */
4714 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4715 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4716 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4717 /* ./syntax//typing.nit:825 */
4718 fra
.me
.REG
[2] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
4719 /* ./syntax//typing.nit:826 */
4720 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4721 if (UNTAG_Bool(REGB0
)) {
4723 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4724 if (UNTAG_Bool(REGB1
)) {
4725 REGB1
= TAG_Bool(false);
4728 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4732 if (UNTAG_Bool(REGB0
)) {
4735 /* ./syntax//typing.nit:829 */
4736 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4737 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4738 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4739 /* ./syntax//typing.nit:830 */
4740 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4741 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4742 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4743 if (UNTAG_Bool(REGB0
)) {
4746 /* ./syntax//typing.nit:831 */
4747 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4748 if (UNTAG_Bool(REGB0
)) {
4750 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4751 if (UNTAG_Bool(REGB1
)) {
4752 REGB1
= TAG_Bool(false);
4755 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4759 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4760 if (UNTAG_Bool(REGB0
)) {
4761 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4762 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
4763 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4765 REGB1
= TAG_Bool(false);
4768 if (UNTAG_Bool(REGB0
)) {
4771 /* ./syntax//typing.nit:834 */
4772 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4773 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4774 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
4775 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4776 /* ./syntax//typing.nit:836 */
4777 REGB0
= TAG_Bool(true);
4778 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4780 stack_frame_head
= fra
.me
.prev
;
4783 val_t
syntax___typing___AAssignOp___method_name(val_t p0
){
4784 struct {struct stack_frame_t me
;} fra
;
4786 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4787 fra
.me
.file
= LOCATE_syntax___typing
;
4789 fra
.me
.meth
= LOCATE_syntax___typing___AAssignOp___method_name
;
4790 fra
.me
.has_broke
= 0;
4791 fra
.me
.REG_size
= 0;
4792 /* ./syntax//typing.nit:841 */
4793 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 841);
4794 stack_frame_head
= fra
.me
.prev
;
4797 val_t
syntax___typing___APlusAssignOp___method_name(val_t p0
){
4798 struct {struct stack_frame_t me
;} fra
;
4801 static val_t once_value_1
; /* Once value */
4802 static val_t once_value_2
; /* Once value */
4803 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4804 fra
.me
.file
= LOCATE_syntax___typing
;
4806 fra
.me
.meth
= LOCATE_syntax___typing___APlusAssignOp___method_name
;
4807 fra
.me
.has_broke
= 0;
4808 fra
.me
.REG_size
= 1;
4809 fra
.me
.REG
[0] = NIT_NULL
;
4811 /* ./syntax//typing.nit:844 */
4812 if (!once_value_1
) {
4813 if (!once_value_2
) {
4814 fra
.me
.REG
[0] = BOX_NativeString("+");
4816 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4817 once_value_2
= fra
.me
.REG
[0];
4818 register_static_object(&once_value_2
);
4819 } else fra
.me
.REG
[0] = once_value_2
;
4820 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4821 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4822 once_value_1
= fra
.me
.REG
[0];
4823 register_static_object(&once_value_1
);
4824 } else fra
.me
.REG
[0] = once_value_1
;
4825 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4828 stack_frame_head
= fra
.me
.prev
;
4829 return fra
.me
.REG
[0];
4831 val_t
syntax___typing___AMinusAssignOp___method_name(val_t p0
){
4832 struct {struct stack_frame_t me
;} fra
;
4835 static val_t once_value_1
; /* Once value */
4836 static val_t once_value_2
; /* Once value */
4837 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4838 fra
.me
.file
= LOCATE_syntax___typing
;
4840 fra
.me
.meth
= LOCATE_syntax___typing___AMinusAssignOp___method_name
;
4841 fra
.me
.has_broke
= 0;
4842 fra
.me
.REG_size
= 1;
4843 fra
.me
.REG
[0] = NIT_NULL
;
4845 /* ./syntax//typing.nit:847 */
4846 if (!once_value_1
) {
4847 if (!once_value_2
) {
4848 fra
.me
.REG
[0] = BOX_NativeString("-");
4850 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4851 once_value_2
= fra
.me
.REG
[0];
4852 register_static_object(&once_value_2
);
4853 } else fra
.me
.REG
[0] = once_value_2
;
4854 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4855 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4856 once_value_1
= fra
.me
.REG
[0];
4857 register_static_object(&once_value_1
);
4858 } else fra
.me
.REG
[0] = once_value_1
;
4859 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4862 stack_frame_head
= fra
.me
.prev
;
4863 return fra
.me
.REG
[0];
4865 val_t
syntax___typing___ASelfExpr___variable(val_t p0
){
4866 struct {struct stack_frame_t me
;} fra
;
4869 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4870 fra
.me
.file
= LOCATE_syntax___typing
;
4872 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___variable
;
4873 fra
.me
.has_broke
= 0;
4874 fra
.me
.REG_size
= 1;
4875 fra
.me
.REG
[0] = NIT_NULL
;
4877 /* ./syntax//typing.nit:852 */
4878 fra
.me
.REG
[0] = ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[0]);
4879 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
4880 if (UNTAG_Bool(REGB0
)) {
4882 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 852);
4886 stack_frame_head
= fra
.me
.prev
;
4887 return fra
.me
.REG
[0];
4889 val_t
syntax___typing___ASelfExpr___its_variable(val_t p0
){
4890 struct {struct stack_frame_t me
;} fra
;
4892 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4893 fra
.me
.file
= LOCATE_syntax___typing
;
4895 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___its_variable
;
4896 fra
.me
.has_broke
= 0;
4897 fra
.me
.REG_size
= 1;
4898 fra
.me
.REG
[0] = NIT_NULL
;
4900 /* ./syntax//typing.nit:854 */
4901 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4904 stack_frame_head
= fra
.me
.prev
;
4905 return fra
.me
.REG
[0];
4907 void syntax___typing___ASelfExpr___after_typing(val_t p0
, val_t p1
){
4908 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4911 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4912 fra
.me
.file
= LOCATE_syntax___typing
;
4914 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___after_typing
;
4915 fra
.me
.has_broke
= 0;
4916 fra
.me
.REG_size
= 3;
4917 fra
.me
.REG
[0] = NIT_NULL
;
4918 fra
.me
.REG
[1] = NIT_NULL
;
4919 fra
.me
.REG
[2] = NIT_NULL
;
4922 /* ./syntax//typing.nit:858 */
4923 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4924 ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4925 /* ./syntax//typing.nit:859 */
4926 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4927 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4928 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4929 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4930 /* ./syntax//typing.nit:860 */
4931 REGB0
= TAG_Bool(true);
4932 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4933 stack_frame_head
= fra
.me
.prev
;
4936 val_t
syntax___typing___ASelfExpr___is_self(val_t p0
){
4937 struct {struct stack_frame_t me
;} fra
;
4940 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4941 fra
.me
.file
= LOCATE_syntax___typing
;
4943 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___is_self
;
4944 fra
.me
.has_broke
= 0;
4945 fra
.me
.REG_size
= 1;
4946 fra
.me
.REG
[0] = NIT_NULL
;
4948 /* ./syntax//typing.nit:863 */
4949 REGB0
= TAG_Bool(true);
4952 stack_frame_head
= fra
.me
.prev
;
4955 val_t
syntax___typing___AImplicitSelfExpr___is_implicit_self(val_t p0
){
4956 struct {struct stack_frame_t me
;} fra
;
4959 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4960 fra
.me
.file
= LOCATE_syntax___typing
;
4962 fra
.me
.meth
= LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self
;
4963 fra
.me
.has_broke
= 0;
4964 fra
.me
.REG_size
= 1;
4965 fra
.me
.REG
[0] = NIT_NULL
;
4967 /* ./syntax//typing.nit:867 */
4968 REGB0
= TAG_Bool(true);
4971 stack_frame_head
= fra
.me
.prev
;
4974 void syntax___typing___AIfexprExpr___accept_typing(val_t p0
, val_t p1
){
4975 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4979 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4980 fra
.me
.file
= LOCATE_syntax___typing
;
4982 fra
.me
.meth
= LOCATE_syntax___typing___AIfexprExpr___accept_typing
;
4983 fra
.me
.has_broke
= 0;
4984 fra
.me
.REG_size
= 5;
4985 fra
.me
.REG
[0] = NIT_NULL
;
4986 fra
.me
.REG
[1] = NIT_NULL
;
4987 fra
.me
.REG
[2] = NIT_NULL
;
4988 fra
.me
.REG
[3] = NIT_NULL
;
4989 fra
.me
.REG
[4] = NIT_NULL
;
4992 /* ./syntax//typing.nit:873 */
4993 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4994 /* ./syntax//typing.nit:876 */
4995 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4996 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4997 /* ./syntax//typing.nit:877 */
4998 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4999 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5000 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5001 /* ./syntax//typing.nit:880 */
5002 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5003 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5004 /* ./syntax//typing.nit:883 */
5005 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5006 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5007 /* ./syntax//typing.nit:886 */
5008 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5009 /* ./syntax//typing.nit:889 */
5010 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5011 /* ./syntax//typing.nit:890 */
5012 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5013 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5014 /* ./syntax//typing.nit:893 */
5015 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5016 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5017 /* ./syntax//typing.nit:896 */
5018 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5019 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5020 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___merge_reash(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[4], fra
.me
.REG
[3]);
5021 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5022 /* ./syntax//typing.nit:898 */
5024 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5025 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5026 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5027 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5029 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
, fra
.me
.REG
[3]);
5030 /* ./syntax//typing.nit:899 */
5031 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5032 if (UNTAG_Bool(REGB0
)) {
5034 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5035 if (UNTAG_Bool(REGB1
)) {
5036 REGB1
= TAG_Bool(false);
5039 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5043 if (UNTAG_Bool(REGB0
)) {
5046 /* ./syntax//typing.nit:901 */
5047 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5048 /* ./syntax//typing.nit:902 */
5049 REGB0
= TAG_Bool(true);
5050 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5052 stack_frame_head
= fra
.me
.prev
;
5055 void syntax___typing___ABoolExpr___after_typing(val_t p0
, val_t p1
){
5056 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5059 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5060 fra
.me
.file
= LOCATE_syntax___typing
;
5062 fra
.me
.meth
= LOCATE_syntax___typing___ABoolExpr___after_typing
;
5063 fra
.me
.has_broke
= 0;
5064 fra
.me
.REG_size
= 2;
5065 fra
.me
.REG
[0] = NIT_NULL
;
5066 fra
.me
.REG
[1] = NIT_NULL
;
5069 /* ./syntax//typing.nit:909 */
5070 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5071 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5072 /* ./syntax//typing.nit:910 */
5073 REGB0
= TAG_Bool(true);
5074 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5075 stack_frame_head
= fra
.me
.prev
;
5078 void syntax___typing___AOrExpr___accept_typing(val_t p0
, val_t p1
){
5079 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5083 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5084 fra
.me
.file
= LOCATE_syntax___typing
;
5086 fra
.me
.meth
= LOCATE_syntax___typing___AOrExpr___accept_typing
;
5087 fra
.me
.has_broke
= 0;
5088 fra
.me
.REG_size
= 5;
5089 fra
.me
.REG
[0] = NIT_NULL
;
5090 fra
.me
.REG
[1] = NIT_NULL
;
5091 fra
.me
.REG
[2] = NIT_NULL
;
5092 fra
.me
.REG
[3] = NIT_NULL
;
5093 fra
.me
.REG
[4] = NIT_NULL
;
5096 /* ./syntax//typing.nit:917 */
5097 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5098 /* ./syntax//typing.nit:918 */
5099 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5100 /* ./syntax//typing.nit:919 */
5101 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5102 /* ./syntax//typing.nit:922 */
5103 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5104 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5105 /* ./syntax//typing.nit:925 */
5106 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5107 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5108 /* ./syntax//typing.nit:928 */
5109 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5110 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5111 /* ./syntax//typing.nit:929 */
5112 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5113 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5114 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5115 if (UNTAG_Bool(REGB0
)) {
5117 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5118 if (UNTAG_Bool(REGB1
)) {
5119 REGB1
= TAG_Bool(false);
5122 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5126 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5127 if (UNTAG_Bool(REGB0
)) {
5128 /* ./syntax//typing.nit:930 */
5129 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5130 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5131 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5133 /* ./syntax//typing.nit:932 */
5134 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5135 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5137 /* ./syntax//typing.nit:935 */
5138 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5139 /* ./syntax//typing.nit:937 */
5140 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5141 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5142 /* ./syntax//typing.nit:938 */
5143 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5144 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5145 /* ./syntax//typing.nit:939 */
5146 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5147 /* ./syntax//typing.nit:940 */
5148 REGB0
= TAG_Bool(true);
5149 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5150 stack_frame_head
= fra
.me
.prev
;
5153 void syntax___typing___AAndExpr___accept_typing(val_t p0
, val_t p1
){
5154 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5158 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5159 fra
.me
.file
= LOCATE_syntax___typing
;
5161 fra
.me
.meth
= LOCATE_syntax___typing___AAndExpr___accept_typing
;
5162 fra
.me
.has_broke
= 0;
5163 fra
.me
.REG_size
= 5;
5164 fra
.me
.REG
[0] = NIT_NULL
;
5165 fra
.me
.REG
[1] = NIT_NULL
;
5166 fra
.me
.REG
[2] = NIT_NULL
;
5167 fra
.me
.REG
[3] = NIT_NULL
;
5168 fra
.me
.REG
[4] = NIT_NULL
;
5171 /* ./syntax//typing.nit:947 */
5172 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5173 /* ./syntax//typing.nit:948 */
5174 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5175 /* ./syntax//typing.nit:951 */
5176 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5177 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5178 /* ./syntax//typing.nit:954 */
5179 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5180 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5181 /* ./syntax//typing.nit:957 */
5182 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5183 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5184 /* ./syntax//typing.nit:958 */
5185 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5186 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5187 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5188 if (UNTAG_Bool(REGB0
)) {
5190 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5191 if (UNTAG_Bool(REGB1
)) {
5192 REGB1
= TAG_Bool(false);
5195 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5199 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5200 if (UNTAG_Bool(REGB0
)) {
5201 /* ./syntax//typing.nit:959 */
5202 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5203 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5204 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5206 /* ./syntax//typing.nit:961 */
5207 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5208 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5210 /* ./syntax//typing.nit:964 */
5211 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5212 /* ./syntax//typing.nit:966 */
5213 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5214 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5215 /* ./syntax//typing.nit:967 */
5216 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5217 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5218 /* ./syntax//typing.nit:968 */
5219 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5220 /* ./syntax//typing.nit:969 */
5221 REGB0
= TAG_Bool(true);
5222 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5223 stack_frame_head
= fra
.me
.prev
;
5226 void syntax___typing___ANotExpr___after_typing(val_t p0
, val_t p1
){
5227 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5230 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5231 fra
.me
.file
= LOCATE_syntax___typing
;
5233 fra
.me
.meth
= LOCATE_syntax___typing___ANotExpr___after_typing
;
5234 fra
.me
.has_broke
= 0;
5235 fra
.me
.REG_size
= 4;
5236 fra
.me
.REG
[0] = NIT_NULL
;
5237 fra
.me
.REG
[1] = NIT_NULL
;
5238 fra
.me
.REG
[2] = NIT_NULL
;
5239 fra
.me
.REG
[3] = NIT_NULL
;
5242 /* ./syntax//typing.nit:976 */
5243 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5244 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5245 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5246 /* ./syntax//typing.nit:979 */
5247 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5248 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[3]);
5249 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5250 /* ./syntax//typing.nit:980 */
5251 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5252 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[3]);
5253 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5254 /* ./syntax//typing.nit:982 */
5255 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5256 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5257 /* ./syntax//typing.nit:983 */
5258 REGB0
= TAG_Bool(true);
5259 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5260 stack_frame_head
= fra
.me
.prev
;
5263 void syntax___typing___AOrElseExpr___after_typing(val_t p0
, val_t p1
){
5264 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5268 static val_t once_value_1
; /* Once value */
5269 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5270 fra
.me
.file
= LOCATE_syntax___typing
;
5272 fra
.me
.meth
= LOCATE_syntax___typing___AOrElseExpr___after_typing
;
5273 fra
.me
.has_broke
= 0;
5274 fra
.me
.REG_size
= 7;
5275 fra
.me
.REG
[0] = NIT_NULL
;
5276 fra
.me
.REG
[1] = NIT_NULL
;
5277 fra
.me
.REG
[2] = NIT_NULL
;
5278 fra
.me
.REG
[3] = NIT_NULL
;
5279 fra
.me
.REG
[4] = NIT_NULL
;
5280 fra
.me
.REG
[5] = NIT_NULL
;
5281 fra
.me
.REG
[6] = NIT_NULL
;
5284 /* ./syntax//typing.nit:990 */
5285 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5286 /* ./syntax//typing.nit:993 */
5287 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5288 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5289 /* ./syntax//typing.nit:994 */
5290 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5291 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5292 /* ./syntax//typing.nit:997 */
5293 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5294 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5295 /* ./syntax//typing.nit:998 */
5296 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5297 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5298 if (UNTAG_Bool(REGB0
)) {
5299 /* ./syntax//typing.nit:999 */
5300 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5301 if (!once_value_1
) {
5302 fra
.me
.REG
[5] = BOX_NativeString("Warning: left operant of a 'or else' is not a nullable type.");
5303 REGB0
= TAG_Int(60);
5304 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5305 once_value_1
= fra
.me
.REG
[5];
5306 register_static_object(&once_value_1
);
5307 } else fra
.me
.REG
[5] = once_value_1
;
5308 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5309 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
5311 /* ./syntax//typing.nit:1001 */
5312 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5313 fra
.me
.REG
[3] = fra
.me
.REG
[5];
5315 /* ./syntax//typing.nit:1005 */
5316 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5317 fra
.me
.REG
[5] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5318 /* ./syntax//typing.nit:1006 */
5319 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5320 if (UNTAG_Bool(REGB0
)) {
5322 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5323 if (UNTAG_Bool(REGB1
)) {
5324 REGB1
= TAG_Bool(false);
5327 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5331 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5332 if (UNTAG_Bool(REGB0
)) {
5333 /* ./syntax//typing.nit:1007 */
5334 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5335 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5336 CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[6]);
5338 /* ./syntax//typing.nit:1011 */
5339 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5340 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5341 /* ./syntax//typing.nit:1012 */
5342 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5343 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5344 /* ./syntax//typing.nit:1015 */
5345 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5346 /* ./syntax//typing.nit:1018 */
5348 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5349 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5350 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5351 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
5352 /* ./syntax//typing.nit:1019 */
5353 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5354 if (UNTAG_Bool(REGB0
)) {
5356 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5357 if (UNTAG_Bool(REGB1
)) {
5358 REGB1
= TAG_Bool(false);
5361 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5365 if (UNTAG_Bool(REGB0
)) {
5368 /* ./syntax//typing.nit:1021 */
5369 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5370 /* ./syntax//typing.nit:1022 */
5371 REGB0
= TAG_Bool(true);
5372 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5374 stack_frame_head
= fra
.me
.prev
;
5377 void syntax___typing___AIntExpr___after_typing(val_t p0
, val_t p1
){
5378 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5381 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5382 fra
.me
.file
= LOCATE_syntax___typing
;
5384 fra
.me
.meth
= LOCATE_syntax___typing___AIntExpr___after_typing
;
5385 fra
.me
.has_broke
= 0;
5386 fra
.me
.REG_size
= 2;
5387 fra
.me
.REG
[0] = NIT_NULL
;
5388 fra
.me
.REG
[1] = NIT_NULL
;
5391 /* ./syntax//typing.nit:1029 */
5392 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5393 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5394 /* ./syntax//typing.nit:1030 */
5395 REGB0
= TAG_Bool(true);
5396 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5397 stack_frame_head
= fra
.me
.prev
;
5400 void syntax___typing___AFloatExpr___after_typing(val_t p0
, val_t p1
){
5401 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5404 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5405 fra
.me
.file
= LOCATE_syntax___typing
;
5407 fra
.me
.meth
= LOCATE_syntax___typing___AFloatExpr___after_typing
;
5408 fra
.me
.has_broke
= 0;
5409 fra
.me
.REG_size
= 2;
5410 fra
.me
.REG
[0] = NIT_NULL
;
5411 fra
.me
.REG
[1] = NIT_NULL
;
5414 /* ./syntax//typing.nit:1037 */
5415 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5416 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5417 /* ./syntax//typing.nit:1038 */
5418 REGB0
= TAG_Bool(true);
5419 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5420 stack_frame_head
= fra
.me
.prev
;
5423 void syntax___typing___ACharExpr___after_typing(val_t p0
, val_t p1
){
5424 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5427 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5428 fra
.me
.file
= LOCATE_syntax___typing
;
5430 fra
.me
.meth
= LOCATE_syntax___typing___ACharExpr___after_typing
;
5431 fra
.me
.has_broke
= 0;
5432 fra
.me
.REG_size
= 2;
5433 fra
.me
.REG
[0] = NIT_NULL
;
5434 fra
.me
.REG
[1] = NIT_NULL
;
5437 /* ./syntax//typing.nit:1045 */
5438 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5439 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5440 /* ./syntax//typing.nit:1046 */
5441 REGB0
= TAG_Bool(true);
5442 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5443 stack_frame_head
= fra
.me
.prev
;
5446 void syntax___typing___AStringFormExpr___after_typing(val_t p0
, val_t p1
){
5447 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5450 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5451 fra
.me
.file
= LOCATE_syntax___typing
;
5453 fra
.me
.meth
= LOCATE_syntax___typing___AStringFormExpr___after_typing
;
5454 fra
.me
.has_broke
= 0;
5455 fra
.me
.REG_size
= 2;
5456 fra
.me
.REG
[0] = NIT_NULL
;
5457 fra
.me
.REG
[1] = NIT_NULL
;
5460 /* ./syntax//typing.nit:1053 */
5461 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5462 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5463 /* ./syntax//typing.nit:1054 */
5464 REGB0
= TAG_Bool(true);
5465 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5466 stack_frame_head
= fra
.me
.prev
;
5469 val_t
syntax___typing___ASuperstringExpr___atype(val_t p0
){
5470 struct {struct stack_frame_t me
;} fra
;
5473 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5474 fra
.me
.file
= LOCATE_syntax___typing
;
5476 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___atype
;
5477 fra
.me
.has_broke
= 0;
5478 fra
.me
.REG_size
= 1;
5479 fra
.me
.REG
[0] = NIT_NULL
;
5481 /* ./syntax//typing.nit:1059 */
5482 fra
.me
.REG
[0] = ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[0]);
5483 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
5484 if (UNTAG_Bool(REGB0
)) {
5486 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1059);
5490 stack_frame_head
= fra
.me
.prev
;
5491 return fra
.me
.REG
[0];
5493 void syntax___typing___ASuperstringExpr___after_typing(val_t p0
, val_t p1
){
5494 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5497 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5498 fra
.me
.file
= LOCATE_syntax___typing
;
5500 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
5501 fra
.me
.has_broke
= 0;
5502 fra
.me
.REG_size
= 5;
5503 fra
.me
.REG
[0] = NIT_NULL
;
5504 fra
.me
.REG
[1] = NIT_NULL
;
5505 fra
.me
.REG
[2] = NIT_NULL
;
5506 fra
.me
.REG
[3] = NIT_NULL
;
5507 fra
.me
.REG
[4] = NIT_NULL
;
5510 /* ./syntax//typing.nit:1063 */
5511 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5512 /* ./syntax//typing.nit:1064 */
5513 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5514 /* ./syntax//typing.nit:1065 */
5515 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5516 /* ./syntax//typing.nit:1066 */
5517 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5518 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_syntax___typing___ASuperstringExpr___after_typing_1
));
5519 /* ./syntax//typing.nit:1067 */
5520 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5521 /* ./syntax//typing.nit:1068 */
5522 ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5523 /* ./syntax//typing.nit:1069 */
5524 REGB0
= TAG_Bool(true);
5525 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5526 stack_frame_head
= fra
.me
.prev
;
5529 void OC_syntax___typing___ASuperstringExpr___after_typing_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
5530 struct {struct stack_frame_t me
;} fra
;
5533 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5534 fra
.me
.file
= LOCATE_syntax___typing
;
5536 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
5537 fra
.me
.has_broke
= 0;
5538 fra
.me
.REG_size
= 1;
5539 fra
.me
.REG
[0] = NIT_NULL
;
5540 fra
.me
.closure_ctx
= closctx_param
;
5541 fra
.me
.closure_funs
= CREG
;
5543 CREG
[0] = clos_fun0
;
5544 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], closctx
->REG
[2]);
5545 stack_frame_head
= fra
.me
.prev
;
5548 void syntax___typing___ANullExpr___after_typing(val_t p0
, val_t p1
){
5549 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5552 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5553 fra
.me
.file
= LOCATE_syntax___typing
;
5555 fra
.me
.meth
= LOCATE_syntax___typing___ANullExpr___after_typing
;
5556 fra
.me
.has_broke
= 0;
5557 fra
.me
.REG_size
= 2;
5558 fra
.me
.REG
[0] = NIT_NULL
;
5559 fra
.me
.REG
[1] = NIT_NULL
;
5562 /* ./syntax//typing.nit:1076 */
5563 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5564 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5565 /* ./syntax//typing.nit:1077 */
5566 REGB0
= TAG_Bool(true);
5567 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5568 stack_frame_head
= fra
.me
.prev
;
5571 void syntax___typing___AArrayExpr___after_typing(val_t p0
, val_t p1
){
5572 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5576 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5577 fra
.me
.file
= LOCATE_syntax___typing
;
5579 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___after_typing
;
5580 fra
.me
.has_broke
= 0;
5581 fra
.me
.REG_size
= 3;
5582 fra
.me
.REG
[0] = NIT_NULL
;
5583 fra
.me
.REG
[1] = NIT_NULL
;
5584 fra
.me
.REG
[2] = NIT_NULL
;
5587 /* ./syntax//typing.nit:1084 */
5588 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5589 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
, fra
.me
.REG
[2]);
5590 /* ./syntax//typing.nit:1085 */
5591 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5592 if (UNTAG_Bool(REGB0
)) {
5594 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5595 if (UNTAG_Bool(REGB1
)) {
5596 REGB1
= TAG_Bool(false);
5599 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5603 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5604 if (UNTAG_Bool(REGB0
)) {
5605 CALL_syntax___typing___AArrayExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
5607 stack_frame_head
= fra
.me
.prev
;
5610 void syntax___typing___AArrayExpr___do_typing(val_t p0
, val_t p1
, val_t p2
){
5611 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5614 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5615 fra
.me
.file
= LOCATE_syntax___typing
;
5617 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___do_typing
;
5618 fra
.me
.has_broke
= 0;
5619 fra
.me
.REG_size
= 3;
5620 fra
.me
.REG
[0] = NIT_NULL
;
5621 fra
.me
.REG
[1] = NIT_NULL
;
5622 fra
.me
.REG
[2] = NIT_NULL
;
5626 /* ./syntax//typing.nit:1090 */
5627 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5628 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5629 /* ./syntax//typing.nit:1091 */
5630 REGB0
= TAG_Bool(true);
5631 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5632 stack_frame_head
= fra
.me
.prev
;
5635 void syntax___typing___ARangeExpr___after_typing(val_t p0
, val_t p1
){
5636 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5640 static val_t once_value_2
; /* Once value */
5641 static val_t once_value_3
; /* Once value */
5642 static val_t once_value_4
; /* Once value */
5643 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5644 fra
.me
.file
= LOCATE_syntax___typing
;
5646 fra
.me
.meth
= LOCATE_syntax___typing___ARangeExpr___after_typing
;
5647 fra
.me
.has_broke
= 0;
5648 fra
.me
.REG_size
= 6;
5649 fra
.me
.REG
[0] = NIT_NULL
;
5650 fra
.me
.REG
[1] = NIT_NULL
;
5651 fra
.me
.REG
[2] = NIT_NULL
;
5652 fra
.me
.REG
[3] = NIT_NULL
;
5653 fra
.me
.REG
[4] = NIT_NULL
;
5654 fra
.me
.REG
[5] = NIT_NULL
;
5657 /* ./syntax//typing.nit:1098 */
5658 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5659 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5660 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5661 if (UNTAG_Bool(REGB0
)) {
5662 REGB0
= TAG_Bool(true);
5664 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5665 REGB1
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5666 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5669 if (UNTAG_Bool(REGB0
)) {
5672 /* ./syntax//typing.nit:1099 */
5673 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5674 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5675 /* ./syntax//typing.nit:1100 */
5676 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5677 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5678 /* ./syntax//typing.nit:1101 */
5679 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5680 if (UNTAG_Bool(REGB0
)) {
5681 /* ./syntax//typing.nit:1102 */
5682 fra
.me
.REG
[2] = fra
.me
.REG
[3];
5684 /* ./syntax//typing.nit:1103 */
5685 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5686 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5687 if (UNTAG_Bool(REGB0
)) {
5688 /* ./syntax//typing.nit:1104 */
5690 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5691 if (!once_value_2
) {
5692 fra
.me
.REG
[5] = BOX_NativeString("Type error: ");
5693 REGB0
= TAG_Int(12);
5694 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5695 once_value_2
= fra
.me
.REG
[5];
5696 register_static_object(&once_value_2
);
5697 } else fra
.me
.REG
[5] = once_value_2
;
5698 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5699 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5700 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5701 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5702 if (!once_value_3
) {
5703 fra
.me
.REG
[5] = BOX_NativeString(" incompatible with ");
5704 REGB0
= TAG_Int(19);
5705 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5706 once_value_3
= fra
.me
.REG
[5];
5707 register_static_object(&once_value_3
);
5708 } else fra
.me
.REG
[5] = once_value_3
;
5709 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5711 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5712 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5713 if (!once_value_4
) {
5714 fra
.me
.REG
[3] = BOX_NativeString(".");
5716 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5717 once_value_4
= fra
.me
.REG
[3];
5718 register_static_object(&once_value_4
);
5719 } else fra
.me
.REG
[3] = once_value_4
;
5720 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5721 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5722 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5723 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
5724 /* ./syntax//typing.nit:1105 */
5728 /* ./syntax//typing.nit:1107 */
5729 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_discrete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5730 /* ./syntax//typing.nit:1108 */
5731 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5732 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5733 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5734 if (UNTAG_Bool(REGB0
)) {
5735 REGB0
= TAG_Bool(true);
5737 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5738 REGB1
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5739 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5742 if (UNTAG_Bool(REGB0
)) {
5745 /* ./syntax//typing.nit:1109 */
5746 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5747 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5748 /* ./syntax//typing.nit:1110 */
5749 REGB0
= TAG_Bool(true);
5750 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5752 stack_frame_head
= fra
.me
.prev
;
5755 val_t
syntax___typing___ASuperExpr___init_in_superclass(val_t p0
){
5756 struct {struct stack_frame_t me
;} fra
;
5758 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5759 fra
.me
.file
= LOCATE_syntax___typing
;
5761 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___init_in_superclass
;
5762 fra
.me
.has_broke
= 0;
5763 fra
.me
.REG_size
= 1;
5764 fra
.me
.REG
[0] = NIT_NULL
;
5766 /* ./syntax//typing.nit:1115 */
5767 fra
.me
.REG
[0] = ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]);
5768 stack_frame_head
= fra
.me
.prev
;
5769 return fra
.me
.REG
[0];
5771 val_t
syntax___typing___ASuperExpr___compute_raw_arguments(val_t p0
){
5772 struct {struct stack_frame_t me
;} fra
;
5774 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5775 fra
.me
.file
= LOCATE_syntax___typing
;
5777 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments
;
5778 fra
.me
.has_broke
= 0;
5779 fra
.me
.REG_size
= 1;
5780 fra
.me
.REG
[0] = NIT_NULL
;
5782 /* ./syntax//typing.nit:1116 */
5783 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5784 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5787 stack_frame_head
= fra
.me
.prev
;
5788 return fra
.me
.REG
[0];
5790 void syntax___typing___ASuperExpr___after_typing(val_t p0
, val_t p1
){
5791 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
5796 static val_t once_value_1
; /* Once value */
5797 static val_t once_value_2
; /* Once value */
5798 static val_t once_value_3
; /* Once value */
5799 static val_t once_value_5
; /* Once value */
5800 static val_t once_value_6
; /* Once value */
5801 static val_t once_value_8
; /* Once value */
5802 static val_t once_value_9
; /* Once value */
5803 static val_t once_value_10
; /* Once value */
5804 static val_t once_value_11
; /* Once value */
5805 static val_t once_value_12
; /* Once value */
5806 static val_t once_value_13
; /* Once value */
5807 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5808 fra
.me
.file
= LOCATE_syntax___typing
;
5810 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___after_typing
;
5811 fra
.me
.has_broke
= 0;
5812 fra
.me
.REG_size
= 9;
5813 fra
.me
.REG
[0] = NIT_NULL
;
5814 fra
.me
.REG
[1] = NIT_NULL
;
5815 fra
.me
.REG
[2] = NIT_NULL
;
5816 fra
.me
.REG
[3] = NIT_NULL
;
5817 fra
.me
.REG
[4] = NIT_NULL
;
5818 fra
.me
.REG
[5] = NIT_NULL
;
5819 fra
.me
.REG
[6] = NIT_NULL
;
5820 fra
.me
.REG
[7] = NIT_NULL
;
5821 fra
.me
.REG
[8] = NIT_NULL
;
5824 /* ./syntax//typing.nit:1119 */
5825 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5826 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5827 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5828 /* ./syntax//typing.nit:1120 */
5829 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5830 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5831 if (UNTAG_Bool(REGB0
)) {
5832 /* ./syntax//typing.nit:1121 */
5833 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5834 REGB0
= TAG_Bool(true);
5835 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
5837 /* ./syntax//typing.nit:1122 */
5838 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5839 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5840 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5841 if (UNTAG_Bool(REGB0
)) {
5842 /* ./syntax//typing.nit:1123 */
5843 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5844 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5845 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5846 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5847 /* ./../lib/standard//collection//array.nit:231 */
5848 fra
.me
.REG
[3] = fra
.me
.REG
[4];
5849 /* ./../lib/standard//collection//array.nit:234 */
5851 /* ./../lib/standard//collection//array.nit:235 */
5852 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5853 if (UNTAG_Bool(REGB1
)) {
5855 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 235);
5857 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5858 /* ./../lib/standard//collection//array.nit:236 */
5859 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
5860 /* ./../lib/standard//collection//array.nit:237 */
5862 /* ./../lib/standard//collection//array.nit:23 */
5863 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
5864 if (UNTAG_Bool(REGB1
)) {
5866 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
5868 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
5869 /* ./../lib/standard//kernel.nit:215 */
5870 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5871 /* ./../lib/standard//collection//array.nit:237 */
5872 if (UNTAG_Bool(REGB1
)) {
5873 /* ./../lib/standard//collection//array.nit:238 */
5874 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5875 if (UNTAG_Bool(REGB1
)) {
5876 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 238);
5878 /* ./../lib/standard//collection//array.nit:654 */
5879 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
5880 /* ./syntax//typing.nit:1125 */
5881 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5882 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5883 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5884 if (UNTAG_Bool(REGB1
)) {
5885 /* ./syntax//typing.nit:1126 */
5887 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
5888 if (!once_value_1
) {
5889 fra
.me
.REG
[8] = BOX_NativeString("Error: ");
5891 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
5892 once_value_1
= fra
.me
.REG
[8];
5893 register_static_object(&once_value_1
);
5894 } else fra
.me
.REG
[8] = once_value_1
;
5895 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5896 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5897 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5898 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
5899 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5900 if (!once_value_2
) {
5901 fra
.me
.REG
[8] = BOX_NativeString("::");
5903 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
5904 once_value_2
= fra
.me
.REG
[8];
5905 register_static_object(&once_value_2
);
5906 } else fra
.me
.REG
[8] = once_value_2
;
5907 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5908 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5909 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5910 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5911 if (!once_value_3
) {
5912 fra
.me
.REG
[8] = BOX_NativeString(" is not a constructor.");
5913 REGB1
= TAG_Int(22);
5914 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
5915 once_value_3
= fra
.me
.REG
[8];
5916 register_static_object(&once_value_3
);
5917 } else fra
.me
.REG
[8] = once_value_3
;
5918 fra
.me
.REG
[8] = fra
.me
.REG
[8];
5919 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
5920 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5921 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
5923 /* ./syntax//typing.nit:1128 */
5924 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5925 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5926 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
5927 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5929 /* ./../lib/standard//collection//array.nit:239 */
5931 /* ./../lib/standard//kernel.nit:218 */
5932 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
5933 /* ./../lib/standard//collection//array.nit:239 */
5936 /* ./../lib/standard//collection//array.nit:237 */
5941 /* ./syntax//typing.nit:1131 */
5942 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5943 if (UNTAG_Bool(REGB0
)) {
5944 /* ./syntax//typing.nit:1132 */
5946 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5947 if (!once_value_5
) {
5948 fra
.me
.REG
[3] = BOX_NativeString("Error: No contructor named ");
5949 REGB0
= TAG_Int(27);
5950 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5951 once_value_5
= fra
.me
.REG
[3];
5952 register_static_object(&once_value_5
);
5953 } else fra
.me
.REG
[3] = once_value_5
;
5954 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5955 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5956 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5957 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5958 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5960 if (!once_value_6
) {
5961 fra
.me
.REG
[3] = BOX_NativeString(" in superclasses.");
5962 REGB0
= TAG_Int(17);
5963 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5964 once_value_6
= fra
.me
.REG
[3];
5965 register_static_object(&once_value_6
);
5966 } else fra
.me
.REG
[3] = once_value_6
;
5967 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5969 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5970 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
5971 /* ./syntax//typing.nit:1133 */
5974 /* ./../lib/standard//collection//array.nit:23 */
5975 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
5976 if (UNTAG_Bool(REGB0
)) {
5978 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
5980 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
5981 /* ./syntax//typing.nit:1134 */
5983 /* ./../lib/standard//kernel.nit:217 */
5984 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
5985 /* ./syntax//typing.nit:1134 */
5986 if (UNTAG_Bool(REGB1
)) {
5987 /* ./syntax//typing.nit:1135 */
5989 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
5990 if (!once_value_8
) {
5991 fra
.me
.REG
[3] = BOX_NativeString("Error: Conflicting contructors named ");
5992 REGB1
= TAG_Int(37);
5993 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
5994 once_value_8
= fra
.me
.REG
[3];
5995 register_static_object(&once_value_8
);
5996 } else fra
.me
.REG
[3] = once_value_8
;
5997 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
5999 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6000 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6001 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6003 if (!once_value_9
) {
6004 fra
.me
.REG
[3] = BOX_NativeString(" in superclasses: ");
6005 REGB1
= TAG_Int(18);
6006 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
6007 once_value_9
= fra
.me
.REG
[3];
6008 register_static_object(&once_value_9
);
6009 } else fra
.me
.REG
[3] = once_value_9
;
6010 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6011 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6012 if (!once_value_10
) {
6013 fra
.me
.REG
[3] = BOX_NativeString(", ");
6015 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
6016 once_value_10
= fra
.me
.REG
[3];
6017 register_static_object(&once_value_10
);
6018 } else fra
.me
.REG
[3] = once_value_10
;
6019 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6020 fra
.me
.REG
[3] = CALL_standard___string___Collection___join(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6021 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6022 if (!once_value_11
) {
6023 fra
.me
.REG
[3] = BOX_NativeString(".");
6025 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
6026 once_value_11
= fra
.me
.REG
[3];
6027 register_static_object(&once_value_11
);
6028 } else fra
.me
.REG
[3] = once_value_11
;
6029 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6030 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6031 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6032 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
6033 /* ./syntax//typing.nit:1136 */
6037 /* ./syntax//typing.nit:1138 */
6038 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6039 /* ./syntax//typing.nit:1139 */
6040 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6041 if (UNTAG_Bool(REGB1
)) {
6043 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1139);
6045 /* ./syntax//typing.nit:1140 */
6046 ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
6047 /* ./syntax//typing.nit:1141 */
6048 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
6049 /* ./syntax//typing.nit:1142 */
6050 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6051 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6053 /* ./../lib/standard//kernel.nit:217 */
6054 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB0
));
6055 /* ./syntax//typing.nit:1142 */
6056 if (UNTAG_Bool(REGB0
)) {
6057 /* ./syntax//typing.nit:1143 */
6058 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6059 fra
.me
.REG
[5] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6060 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
6061 if (UNTAG_Bool(REGB0
)) {
6063 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1143);
6065 REGB0
= TAG_Bool(true);
6066 fra
.me
.REG
[5] = CALL_syntax___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
);
6067 /* ./syntax//typing.nit:1144 */
6068 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6069 fra
.me
.REG
[3] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6070 CALL_syntax___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]);
6073 /* ./syntax//typing.nit:1147 */
6075 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6076 if (!once_value_12
) {
6077 fra
.me
.REG
[4] = BOX_NativeString("Error: No super method to call for ");
6078 REGB0
= TAG_Int(35);
6079 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6080 once_value_12
= fra
.me
.REG
[4];
6081 register_static_object(&once_value_12
);
6082 } else fra
.me
.REG
[4] = once_value_12
;
6083 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6084 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6085 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6086 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6087 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6088 if (!once_value_13
) {
6089 fra
.me
.REG
[4] = BOX_NativeString(".");
6091 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6092 once_value_13
= fra
.me
.REG
[4];
6093 register_static_object(&once_value_13
);
6094 } else fra
.me
.REG
[4] = once_value_13
;
6095 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6096 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6097 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6098 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
6099 /* ./syntax//typing.nit:1148 */
6103 /* ./syntax//typing.nit:1151 */
6104 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6105 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6106 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6107 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
6108 if (UNTAG_Bool(REGB0
)) {
6110 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1151);
6112 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6113 if (UNTAG_Bool(REGB0
)) {
6114 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1151);
6116 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6117 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6118 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6119 if (UNTAG_Bool(REGB0
)) {
6121 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6122 if (UNTAG_Bool(REGB1
)) {
6123 REGB1
= TAG_Bool(false);
6126 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6130 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6131 if (UNTAG_Bool(REGB0
)) {
6132 /* ./syntax//typing.nit:1152 */
6133 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
6134 /* ./syntax//typing.nit:1153 */
6135 fra
.me
.REG
[3] = NIT_NULL
;
6136 /* ./../lib/standard//collection//array.nit:234 */
6138 /* ./../lib/standard//collection//array.nit:235 */
6139 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
6140 if (UNTAG_Bool(REGB1
)) {
6142 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 235);
6144 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
6145 /* ./../lib/standard//collection//array.nit:236 */
6146 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
6147 /* ./../lib/standard//collection//array.nit:237 */
6149 /* ./../lib/standard//collection//array.nit:23 */
6150 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
6151 if (UNTAG_Bool(REGB1
)) {
6153 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
6155 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
6156 /* ./../lib/standard//kernel.nit:215 */
6157 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6158 /* ./../lib/standard//collection//array.nit:237 */
6159 if (UNTAG_Bool(REGB1
)) {
6160 /* ./../lib/standard//collection//array.nit:238 */
6161 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6162 if (UNTAG_Bool(REGB1
)) {
6163 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 238);
6165 /* ./../lib/standard//collection//array.nit:654 */
6166 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
6167 /* ./syntax//typing.nit:1155 */
6168 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6169 if (UNTAG_Bool(REGB1
)) {
6171 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1155);
6173 /* ./syntax//typing.nit:1156 */
6174 fra
.me
.REG
[7] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6175 fra
.me
.REG
[7] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6176 REGB1
= TAG_Bool((fra
.me
.REG
[7]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
6177 if (UNTAG_Bool(REGB1
)) {
6179 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1156);
6181 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
6182 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6183 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6184 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6185 if (UNTAG_Bool(REGB1
)) {
6186 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1156);
6188 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
6189 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6190 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6191 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6192 if (UNTAG_Bool(REGB1
)) {
6193 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1156);
6195 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6196 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
6197 /* ./syntax//typing.nit:1157 */
6198 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
6199 /* ./syntax//typing.nit:1158 */
6200 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6201 if (UNTAG_Bool(REGB1
)) {
6203 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6204 if (UNTAG_Bool(REGB2
)) {
6205 REGB2
= TAG_Bool(false);
6208 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6212 if (UNTAG_Bool(REGB1
)) {
6213 REGB1
= TAG_Bool(true);
6215 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6216 if (UNTAG_Bool(REGB2
)) {
6217 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1158);
6219 REGB2
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6222 if (UNTAG_Bool(REGB1
)) {
6223 /* ./syntax//typing.nit:1159 */
6224 fra
.me
.REG
[3] = fra
.me
.REG
[7];
6226 /* ./../lib/standard//collection//array.nit:239 */
6228 /* ./../lib/standard//kernel.nit:218 */
6229 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6230 /* ./../lib/standard//collection//array.nit:239 */
6233 /* ./../lib/standard//collection//array.nit:237 */
6238 /* ./../lib/standard//collection//array.nit:234 */
6240 /* ./../lib/standard//collection//array.nit:235 */
6241 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6242 if (UNTAG_Bool(REGB1
)) {
6244 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 235);
6246 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6247 /* ./../lib/standard//collection//array.nit:236 */
6248 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6249 /* ./../lib/standard//collection//array.nit:237 */
6251 /* ./../lib/standard//collection//array.nit:23 */
6252 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6253 if (UNTAG_Bool(REGB1
)) {
6255 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
6257 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6258 /* ./../lib/standard//kernel.nit:215 */
6259 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6260 /* ./../lib/standard//collection//array.nit:237 */
6261 if (UNTAG_Bool(REGB1
)) {
6262 /* ./../lib/standard//collection//array.nit:238 */
6263 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6264 if (UNTAG_Bool(REGB1
)) {
6265 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 238);
6267 /* ./../lib/standard//collection//array.nit:654 */
6268 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
6269 /* ./syntax//typing.nit:1163 */
6270 REGB1
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
6271 if (UNTAG_Bool(REGB1
)) {
6273 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1163);
6275 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6276 /* ./../lib/standard//collection//array.nit:239 */
6278 /* ./../lib/standard//kernel.nit:218 */
6279 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6280 /* ./../lib/standard//collection//array.nit:239 */
6283 /* ./../lib/standard//collection//array.nit:237 */
6288 /* ./syntax//typing.nit:1165 */
6289 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
6291 /* ./syntax//typing.nit:1167 */
6292 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6293 /* ./syntax//typing.nit:1168 */
6294 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6295 if (UNTAG_Bool(REGB0
)) {
6297 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1168);
6299 /* ./syntax//typing.nit:1169 */
6300 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6301 /* ./syntax//typing.nit:1170 */
6302 REGB0
= TAG_Bool(true);
6303 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6305 stack_frame_head
= fra
.me
.prev
;
6308 val_t
syntax___typing___AExternCall___target_class_name(val_t p0
){
6309 struct {struct stack_frame_t me
;} fra
;
6311 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6312 fra
.me
.file
= LOCATE_syntax___typing
;
6314 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_class_name
;
6315 fra
.me
.has_broke
= 0;
6316 fra
.me
.REG_size
= 1;
6317 fra
.me
.REG
[0] = NIT_NULL
;
6319 /* ./syntax//typing.nit:1175 */
6320 fra
.me
.REG
[0] = NIT_NULL
;
6323 stack_frame_head
= fra
.me
.prev
;
6324 return fra
.me
.REG
[0];
6326 val_t
syntax___typing___AExternCall___target_method_name(val_t p0
){
6327 struct {struct stack_frame_t me
;} fra
;
6329 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6330 fra
.me
.file
= LOCATE_syntax___typing
;
6332 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_method_name
;
6333 fra
.me
.has_broke
= 0;
6334 fra
.me
.REG_size
= 0;
6335 /* ./syntax//typing.nit:1176 */
6336 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1176);
6337 stack_frame_head
= fra
.me
.prev
;
6340 void syntax___typing___AExternCall___after_typing(val_t p0
, val_t p1
){
6341 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6345 static val_t once_value_1
; /* Once value */
6346 static val_t once_value_2
; /* Once value */
6347 static val_t once_value_4
; /* Once value */
6348 static val_t once_value_5
; /* Once value */
6349 static val_t once_value_6
; /* Once value */
6350 static val_t once_value_7
; /* Once value */
6351 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6352 fra
.me
.file
= LOCATE_syntax___typing
;
6354 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___after_typing
;
6355 fra
.me
.has_broke
= 0;
6356 fra
.me
.REG_size
= 7;
6357 fra
.me
.REG
[0] = NIT_NULL
;
6358 fra
.me
.REG
[1] = NIT_NULL
;
6359 fra
.me
.REG
[2] = NIT_NULL
;
6360 fra
.me
.REG
[3] = NIT_NULL
;
6361 fra
.me
.REG
[4] = NIT_NULL
;
6362 fra
.me
.REG
[5] = NIT_NULL
;
6363 fra
.me
.REG
[6] = NIT_NULL
;
6366 /* ./syntax//typing.nit:1180 */
6367 fra
.me
.REG
[2] = CALL_syntax___typing___AExternCall___target_class_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6368 /* ./syntax//typing.nit:1181 */
6369 fra
.me
.REG
[3] = CALL_syntax___typing___AExternCall___target_method_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6370 /* ./syntax//typing.nit:1188 */
6371 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6372 if (UNTAG_Bool(REGB0
)) {
6374 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6375 if (UNTAG_Bool(REGB1
)) {
6376 REGB1
= TAG_Bool(false);
6379 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6383 if (UNTAG_Bool(REGB0
)) {
6384 /* ./syntax//typing.nit:1189 */
6385 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6386 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6388 /* ./syntax//typing.nit:1191 */
6389 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6390 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6391 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
6392 if (UNTAG_Bool(REGB0
)) {
6393 /* ./syntax//typing.nit:1192 */
6394 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6395 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6396 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
6397 /* ./syntax//typing.nit:1193 */
6398 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6399 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6400 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
6401 fra
.me
.REG
[4] = fra
.me
.REG
[5];
6403 /* ./syntax//typing.nit:1195 */
6405 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6406 if (!once_value_1
) {
6407 fra
.me
.REG
[6] = BOX_NativeString("Error: class ");
6408 REGB0
= TAG_Int(13);
6409 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
6410 once_value_1
= fra
.me
.REG
[6];
6411 register_static_object(&once_value_1
);
6412 } else fra
.me
.REG
[6] = once_value_1
;
6413 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6414 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6415 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6416 if (UNTAG_Bool(REGB0
)) {
6417 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1195);
6419 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6420 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
6421 if (!once_value_2
) {
6422 fra
.me
.REG
[2] = BOX_NativeString(", not found.");
6423 REGB0
= TAG_Int(12);
6424 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
6425 once_value_2
= fra
.me
.REG
[2];
6426 register_static_object(&once_value_2
);
6427 } else fra
.me
.REG
[2] = once_value_2
;
6428 fra
.me
.REG
[2] = fra
.me
.REG
[2];
6429 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
6430 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6431 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
6432 /* ./syntax//typing.nit:1196 */
6436 /* ./syntax//typing.nit:1200 */
6437 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6438 if (UNTAG_Bool(REGB0
)) {
6439 /* ./syntax//typing.nit:1201 */
6440 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6441 /* ./syntax//typing.nit:1203 */
6442 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6443 /* ./syntax//typing.nit:1205 */
6444 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6445 if (UNTAG_Bool(REGB0
)) {
6447 /* ./syntax//typing.nit:1208 */
6449 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6450 if (!once_value_4
) {
6451 fra
.me
.REG
[6] = BOX_NativeString("Error: property ");
6452 REGB0
= TAG_Int(16);
6453 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
6454 once_value_4
= fra
.me
.REG
[6];
6455 register_static_object(&once_value_4
);
6456 } else fra
.me
.REG
[6] = once_value_4
;
6457 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
6459 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6460 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
6461 if (!once_value_5
) {
6462 fra
.me
.REG
[6] = BOX_NativeString(" is not a method.");
6463 REGB0
= TAG_Int(17);
6464 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
6465 once_value_5
= fra
.me
.REG
[6];
6466 register_static_object(&once_value_5
);
6467 } else fra
.me
.REG
[6] = once_value_5
;
6468 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6469 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
6470 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6471 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6472 /* ./syntax//typing.nit:1209 */
6476 /* ./syntax//typing.nit:1212 */
6478 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6479 if (!once_value_6
) {
6480 fra
.me
.REG
[6] = BOX_NativeString("Error: property ");
6481 REGB0
= TAG_Int(16);
6482 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
6483 once_value_6
= fra
.me
.REG
[6];
6484 register_static_object(&once_value_6
);
6485 } else fra
.me
.REG
[6] = once_value_6
;
6486 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6487 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
6488 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6489 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6490 if (!once_value_7
) {
6491 fra
.me
.REG
[3] = BOX_NativeString(" not found in target class.");
6492 REGB0
= TAG_Int(27);
6493 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6494 once_value_7
= fra
.me
.REG
[3];
6495 register_static_object(&once_value_7
);
6496 } else fra
.me
.REG
[3] = once_value_7
;
6497 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6498 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6499 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6500 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6501 /* ./syntax//typing.nit:1213 */
6504 /* ./syntax//typing.nit:1216 */
6505 fra
.me
.REG
[5] = NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6506 /* ./syntax//typing.nit:1217 */
6507 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6508 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6509 if (UNTAG_Bool(REGB0
)) {
6511 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1217);
6513 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6514 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6516 stack_frame_head
= fra
.me
.prev
;
6519 val_t
syntax___typing___ALocalPropExternCall___target_class_name(val_t p0
){
6520 struct {struct stack_frame_t me
;} fra
;
6522 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6523 fra
.me
.file
= LOCATE_syntax___typing
;
6525 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_class_name
;
6526 fra
.me
.has_broke
= 0;
6527 fra
.me
.REG_size
= 1;
6528 fra
.me
.REG
[0] = NIT_NULL
;
6530 /* ./syntax//typing.nit:1222 */
6531 fra
.me
.REG
[0] = NIT_NULL
;
6534 stack_frame_head
= fra
.me
.prev
;
6535 return fra
.me
.REG
[0];
6537 val_t
syntax___typing___ALocalPropExternCall___target_method_name(val_t p0
){
6538 struct {struct stack_frame_t me
;} fra
;
6541 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6542 fra
.me
.file
= LOCATE_syntax___typing
;
6544 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_method_name
;
6545 fra
.me
.has_broke
= 0;
6546 fra
.me
.REG_size
= 1;
6547 fra
.me
.REG
[0] = NIT_NULL
;
6549 /* ./syntax//typing.nit:1223 */
6550 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ALocalPropExternCall___n_methid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6551 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6552 REGB0
= TAG_Bool((fra
.me
.REG
[0]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[0], COLOR_standard___symbol___Symbol
, ID_standard___symbol___Symbol
)) /*cast Symbol*/;
6553 if (UNTAG_Bool(REGB0
)) {
6555 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1223);
6559 stack_frame_head
= fra
.me
.prev
;
6560 return fra
.me
.REG
[0];
6562 void syntax___typing___ASuperExternCall___after_typing(val_t p0
, val_t p1
){
6563 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6566 static val_t once_value_1
; /* Once value */
6567 static val_t once_value_2
; /* Once value */
6568 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6569 fra
.me
.file
= LOCATE_syntax___typing
;
6571 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExternCall___after_typing
;
6572 fra
.me
.has_broke
= 0;
6573 fra
.me
.REG_size
= 4;
6574 fra
.me
.REG
[0] = NIT_NULL
;
6575 fra
.me
.REG
[1] = NIT_NULL
;
6576 fra
.me
.REG
[2] = NIT_NULL
;
6577 fra
.me
.REG
[3] = NIT_NULL
;
6580 /* ./syntax//typing.nit:1229 */
6581 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6582 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6583 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6584 /* ./syntax//typing.nit:1230 */
6585 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6586 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6587 if (UNTAG_Bool(REGB0
)) {
6588 /* ./syntax//typing.nit:1231 */
6589 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6590 REGB0
= TAG_Bool(true);
6591 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
6593 /* ./syntax//typing.nit:1233 */
6595 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6596 if (!once_value_1
) {
6597 fra
.me
.REG
[3] = BOX_NativeString("Error: No super method to call for ");
6598 REGB0
= TAG_Int(35);
6599 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6600 once_value_1
= fra
.me
.REG
[3];
6601 register_static_object(&once_value_1
);
6602 } else fra
.me
.REG
[3] = once_value_1
;
6603 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6604 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6605 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6606 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6607 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6608 if (!once_value_2
) {
6609 fra
.me
.REG
[3] = BOX_NativeString(".");
6611 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6612 once_value_2
= fra
.me
.REG
[3];
6613 register_static_object(&once_value_2
);
6614 } else fra
.me
.REG
[3] = once_value_2
;
6615 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6616 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6617 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6618 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6619 /* ./syntax//typing.nit:1234 */
6623 stack_frame_head
= fra
.me
.prev
;
6626 val_t
syntax___typing___AFullPropExternCall___target_class_name(val_t p0
){
6627 struct {struct stack_frame_t me
;} fra
;
6629 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6630 fra
.me
.file
= LOCATE_syntax___typing
;
6632 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_class_name
;
6633 fra
.me
.has_broke
= 0;
6634 fra
.me
.REG_size
= 1;
6635 fra
.me
.REG
[0] = NIT_NULL
;
6637 /* ./syntax//typing.nit:1240 */
6638 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AFullPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6639 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6642 stack_frame_head
= fra
.me
.prev
;
6643 return fra
.me
.REG
[0];
6645 val_t
syntax___typing___AFullPropExternCall___target_method_name(val_t p0
){
6646 struct {struct stack_frame_t me
;} fra
;
6649 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6650 fra
.me
.file
= LOCATE_syntax___typing
;
6652 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_method_name
;
6653 fra
.me
.has_broke
= 0;
6654 fra
.me
.REG_size
= 1;
6655 fra
.me
.REG
[0] = NIT_NULL
;
6657 /* ./syntax//typing.nit:1241 */
6658 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AFullPropExternCall___n_methid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6659 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6660 REGB0
= TAG_Bool((fra
.me
.REG
[0]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[0], COLOR_standard___symbol___Symbol
, ID_standard___symbol___Symbol
)) /*cast Symbol*/;
6661 if (UNTAG_Bool(REGB0
)) {
6663 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1241);
6667 stack_frame_head
= fra
.me
.prev
;
6668 return fra
.me
.REG
[0];
6670 val_t
syntax___typing___AInitPropExternCall___target_class_name(val_t p0
){
6671 struct {struct stack_frame_t me
;} fra
;
6673 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6674 fra
.me
.file
= LOCATE_syntax___typing
;
6676 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_class_name
;
6677 fra
.me
.has_broke
= 0;
6678 fra
.me
.REG_size
= 1;
6679 fra
.me
.REG
[0] = NIT_NULL
;
6681 /* ./syntax//typing.nit:1245 */
6682 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6683 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6686 stack_frame_head
= fra
.me
.prev
;
6687 return fra
.me
.REG
[0];
6689 val_t
syntax___typing___AInitPropExternCall___target_method_name(val_t p0
){
6690 struct {struct stack_frame_t me
;} fra
;
6693 static val_t once_value_1
; /* Once value */
6694 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6695 fra
.me
.file
= LOCATE_syntax___typing
;
6697 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_method_name
;
6698 fra
.me
.has_broke
= 0;
6699 fra
.me
.REG_size
= 1;
6700 fra
.me
.REG
[0] = NIT_NULL
;
6702 /* ./syntax//typing.nit:1246 */
6703 if (!once_value_1
) {
6704 fra
.me
.REG
[0] = BOX_NativeString("init");
6706 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
6707 once_value_1
= fra
.me
.REG
[0];
6708 register_static_object(&once_value_1
);
6709 } else fra
.me
.REG
[0] = once_value_1
;
6710 fra
.me
.REG
[0] = fra
.me
.REG
[0];
6711 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6714 stack_frame_head
= fra
.me
.prev
;
6715 return fra
.me
.REG
[0];
6717 val_t
syntax___typing___ACastExternCall___from_type(val_t p0
){
6718 struct {struct stack_frame_t me
;} fra
;
6720 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6721 fra
.me
.file
= LOCATE_syntax___typing
;
6723 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___from_type
;
6724 fra
.me
.has_broke
= 0;
6725 fra
.me
.REG_size
= 0;
6726 /* ./syntax//typing.nit:1250 */
6727 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1250);
6728 stack_frame_head
= fra
.me
.prev
;
6731 val_t
syntax___typing___ACastExternCall___to_type(val_t p0
){
6732 struct {struct stack_frame_t me
;} fra
;
6734 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6735 fra
.me
.file
= LOCATE_syntax___typing
;
6737 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___to_type
;
6738 fra
.me
.has_broke
= 0;
6739 fra
.me
.REG_size
= 0;
6740 /* ./syntax//typing.nit:1251 */
6741 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1251);
6742 stack_frame_head
= fra
.me
.prev
;
6745 void syntax___typing___ACastExternCall___after_typing(val_t p0
, val_t p1
){
6746 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6750 static val_t once_value_1
; /* Once value */
6751 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6752 fra
.me
.file
= LOCATE_syntax___typing
;
6754 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___after_typing
;
6755 fra
.me
.has_broke
= 0;
6756 fra
.me
.REG_size
= 4;
6757 fra
.me
.REG
[0] = NIT_NULL
;
6758 fra
.me
.REG
[1] = NIT_NULL
;
6759 fra
.me
.REG
[2] = NIT_NULL
;
6760 fra
.me
.REG
[3] = NIT_NULL
;
6763 /* ./syntax//typing.nit:1255 */
6764 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6765 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6766 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
6767 if (UNTAG_Bool(REGB0
)) {
6769 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6772 if (UNTAG_Bool(REGB0
)) {
6773 /* ./syntax//typing.nit:1257 */
6774 if (!once_value_1
) {
6775 fra
.me
.REG
[3] = BOX_NativeString("Attepting to cast from and to the same type.");
6776 REGB0
= TAG_Int(44);
6777 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6778 once_value_1
= fra
.me
.REG
[3];
6779 register_static_object(&once_value_1
);
6780 } else fra
.me
.REG
[3] = once_value_1
;
6781 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6782 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
6784 /* ./syntax//typing.nit:1260 */
6785 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6786 fra
.me
.REG
[0] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6787 fra
.me
.REG
[0] = NEW_MMImportedCast_metamodel___static_type___MMImportedCast___init(fra
.me
.REG
[3], fra
.me
.REG
[0]);
6788 /* ./syntax//typing.nit:1261 */
6789 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6790 /* ./syntax//typing.nit:1262 */
6791 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6792 if (UNTAG_Bool(REGB0
)) {
6794 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1262);
6796 /* ./syntax//typing.nit:1263 */
6797 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6799 stack_frame_head
= fra
.me
.prev
;
6802 val_t
syntax___typing___ACastAsExternCall___from_type(val_t p0
){
6803 struct {struct stack_frame_t me
;} fra
;
6805 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6806 fra
.me
.file
= LOCATE_syntax___typing
;
6808 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___from_type
;
6809 fra
.me
.has_broke
= 0;
6810 fra
.me
.REG_size
= 1;
6811 fra
.me
.REG
[0] = NIT_NULL
;
6813 /* ./syntax//typing.nit:1268 */
6814 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6815 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6818 stack_frame_head
= fra
.me
.prev
;
6819 return fra
.me
.REG
[0];
6821 val_t
syntax___typing___ACastAsExternCall___to_type(val_t p0
){
6822 struct {struct stack_frame_t me
;} fra
;
6824 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6825 fra
.me
.file
= LOCATE_syntax___typing
;
6827 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___to_type
;
6828 fra
.me
.has_broke
= 0;
6829 fra
.me
.REG_size
= 1;
6830 fra
.me
.REG
[0] = NIT_NULL
;
6832 /* ./syntax//typing.nit:1269 */
6833 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6834 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6837 stack_frame_head
= fra
.me
.prev
;
6838 return fra
.me
.REG
[0];
6840 val_t
syntax___typing___AAsNullableExternCall___from_type(val_t p0
){
6841 struct {struct stack_frame_t me
;} fra
;
6843 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6844 fra
.me
.file
= LOCATE_syntax___typing
;
6846 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___from_type
;
6847 fra
.me
.has_broke
= 0;
6848 fra
.me
.REG_size
= 1;
6849 fra
.me
.REG
[0] = NIT_NULL
;
6851 /* ./syntax//typing.nit:1273 */
6852 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6853 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6856 stack_frame_head
= fra
.me
.prev
;
6857 return fra
.me
.REG
[0];
6859 val_t
syntax___typing___AAsNullableExternCall___to_type(val_t p0
){
6860 struct {struct stack_frame_t me
;} fra
;
6862 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6863 fra
.me
.file
= LOCATE_syntax___typing
;
6865 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___to_type
;
6866 fra
.me
.has_broke
= 0;
6867 fra
.me
.REG_size
= 1;
6868 fra
.me
.REG
[0] = NIT_NULL
;
6870 /* ./syntax//typing.nit:1274 */
6871 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6872 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6873 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6876 stack_frame_head
= fra
.me
.prev
;
6877 return fra
.me
.REG
[0];
6879 val_t
syntax___typing___AAsNotNullableExternCall___from_type(val_t p0
){
6880 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6883 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6884 fra
.me
.file
= LOCATE_syntax___typing
;
6886 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___from_type
;
6887 fra
.me
.has_broke
= 0;
6888 fra
.me
.REG_size
= 2;
6889 fra
.me
.REG
[0] = NIT_NULL
;
6890 fra
.me
.REG
[1] = NIT_NULL
;
6892 /* ./syntax//typing.nit:1280 */
6893 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6894 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6895 /* ./syntax//typing.nit:1281 */
6896 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6897 if (UNTAG_Bool(REGB0
)) {
6898 /* ./syntax//typing.nit:1283 */
6899 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6902 /* ./syntax//typing.nit:1285 */
6903 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6904 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6908 stack_frame_head
= fra
.me
.prev
;
6909 return fra
.me
.REG
[1];
6911 val_t
syntax___typing___AAsNotNullableExternCall___to_type(val_t p0
){
6912 struct {struct stack_frame_t me
;} fra
;
6914 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6915 fra
.me
.file
= LOCATE_syntax___typing
;
6917 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___to_type
;
6918 fra
.me
.has_broke
= 0;
6919 fra
.me
.REG_size
= 1;
6920 fra
.me
.REG
[0] = NIT_NULL
;
6922 /* ./syntax//typing.nit:1288 */
6923 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6924 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6925 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6928 stack_frame_head
= fra
.me
.prev
;
6929 return fra
.me
.REG
[0];
6931 val_t
syntax___typing___AAttrFormExpr___prop(val_t p0
){
6932 struct {struct stack_frame_t me
;} fra
;
6935 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6936 fra
.me
.file
= LOCATE_syntax___typing
;
6938 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___prop
;
6939 fra
.me
.has_broke
= 0;
6940 fra
.me
.REG_size
= 1;
6941 fra
.me
.REG
[0] = NIT_NULL
;
6943 /* ./syntax//typing.nit:1292 */
6944 fra
.me
.REG
[0] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6945 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
6946 if (UNTAG_Bool(REGB0
)) {
6948 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1292);
6952 stack_frame_head
= fra
.me
.prev
;
6953 return fra
.me
.REG
[0];
6955 val_t
syntax___typing___AAttrFormExpr___attr_type(val_t p0
){
6956 struct {struct stack_frame_t me
;} fra
;
6959 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6960 fra
.me
.file
= LOCATE_syntax___typing
;
6962 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___attr_type
;
6963 fra
.me
.has_broke
= 0;
6964 fra
.me
.REG_size
= 1;
6965 fra
.me
.REG
[0] = NIT_NULL
;
6967 /* ./syntax//typing.nit:1295 */
6968 fra
.me
.REG
[0] = ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]);
6969 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
6970 if (UNTAG_Bool(REGB0
)) {
6972 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1295);
6976 stack_frame_head
= fra
.me
.prev
;
6977 return fra
.me
.REG
[0];
6979 void syntax___typing___AAttrFormExpr___do_typing(val_t p0
, val_t p1
){
6980 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6984 static val_t once_value_2
; /* Once value */
6985 static val_t once_value_3
; /* Once value */
6986 static val_t once_value_4
; /* Once value */
6987 static val_t once_value_5
; /* Once value */
6988 static val_t once_value_6
; /* Once value */
6989 static val_t once_value_7
; /* Once value */
6990 static val_t once_value_8
; /* Once value */
6991 static val_t once_value_9
; /* Once value */
6992 static val_t once_value_10
; /* Once value */
6993 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6994 fra
.me
.file
= LOCATE_syntax___typing
;
6996 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___do_typing
;
6997 fra
.me
.has_broke
= 0;
6998 fra
.me
.REG_size
= 7;
6999 fra
.me
.REG
[0] = NIT_NULL
;
7000 fra
.me
.REG
[1] = NIT_NULL
;
7001 fra
.me
.REG
[2] = NIT_NULL
;
7002 fra
.me
.REG
[3] = NIT_NULL
;
7003 fra
.me
.REG
[4] = NIT_NULL
;
7004 fra
.me
.REG
[5] = NIT_NULL
;
7005 fra
.me
.REG
[6] = NIT_NULL
;
7008 /* ./syntax//typing.nit:1301 */
7009 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7010 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7011 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7012 if (UNTAG_Bool(REGB0
)) {
7015 /* ./syntax//typing.nit:1302 */
7016 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7017 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7018 /* ./syntax//typing.nit:1303 */
7019 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7020 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7021 /* ./syntax//typing.nit:1304 */
7022 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
7023 if (UNTAG_Bool(REGB0
)) {
7024 /* ./syntax//typing.nit:1305 */
7026 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7027 if (!once_value_2
) {
7028 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute '");
7029 REGB0
= TAG_Int(18);
7030 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7031 once_value_2
= fra
.me
.REG
[5];
7032 register_static_object(&once_value_2
);
7033 } else fra
.me
.REG
[5] = once_value_2
;
7034 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7035 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7036 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7037 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7038 if (!once_value_3
) {
7039 fra
.me
.REG
[5] = BOX_NativeString("' access on 'null'.");
7040 REGB0
= TAG_Int(19);
7041 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7042 once_value_3
= fra
.me
.REG
[5];
7043 register_static_object(&once_value_3
);
7044 } else fra
.me
.REG
[5] = once_value_3
;
7045 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7046 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7047 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7048 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7049 /* ./syntax//typing.nit:1306 */
7052 /* ./syntax//typing.nit:1308 */
7053 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7054 /* ./syntax//typing.nit:1309 */
7055 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7056 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7057 if (UNTAG_Bool(REGB0
)) {
7058 /* ./syntax//typing.nit:1310 */
7060 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7061 if (!once_value_4
) {
7062 fra
.me
.REG
[6] = BOX_NativeString("Error: Attribute ");
7063 REGB0
= TAG_Int(17);
7064 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7065 once_value_4
= fra
.me
.REG
[6];
7066 register_static_object(&once_value_4
);
7067 } else fra
.me
.REG
[6] = once_value_4
;
7068 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7069 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7070 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7071 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7072 if (!once_value_5
) {
7073 fra
.me
.REG
[6] = BOX_NativeString(" doesn't exists in ");
7074 REGB0
= TAG_Int(19);
7075 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7076 once_value_5
= fra
.me
.REG
[6];
7077 register_static_object(&once_value_5
);
7078 } else fra
.me
.REG
[6] = once_value_5
;
7079 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7080 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7081 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7082 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7083 if (!once_value_6
) {
7084 fra
.me
.REG
[6] = BOX_NativeString(".");
7086 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7087 once_value_6
= fra
.me
.REG
[6];
7088 register_static_object(&once_value_6
);
7089 } else fra
.me
.REG
[6] = once_value_6
;
7090 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7091 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7092 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7093 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7094 /* ./syntax//typing.nit:1311 */
7097 /* ./syntax//typing.nit:1313 */
7098 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_attribute(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7099 /* ./syntax//typing.nit:1314 */
7100 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7101 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7102 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7103 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7104 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7106 /* ./../lib/standard//kernel.nit:215 */
7107 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
7108 /* ./syntax//typing.nit:1314 */
7109 if (UNTAG_Bool(REGB1
)) {
7110 /* ./syntax//typing.nit:1315 */
7112 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
7113 if (!once_value_7
) {
7114 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute ");
7115 REGB1
= TAG_Int(17);
7116 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
7117 once_value_7
= fra
.me
.REG
[5];
7118 register_static_object(&once_value_7
);
7119 } else fra
.me
.REG
[5] = once_value_7
;
7120 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
7122 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7124 if (!once_value_8
) {
7125 fra
.me
.REG
[3] = BOX_NativeString(" from ");
7127 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7128 once_value_8
= fra
.me
.REG
[3];
7129 register_static_object(&once_value_8
);
7130 } else fra
.me
.REG
[3] = once_value_8
;
7131 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7133 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7134 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7135 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7136 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7137 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7138 if (!once_value_9
) {
7139 fra
.me
.REG
[3] = BOX_NativeString(" is invisible in ");
7140 REGB1
= TAG_Int(17);
7141 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7142 once_value_9
= fra
.me
.REG
[3];
7143 register_static_object(&once_value_9
);
7144 } else fra
.me
.REG
[3] = once_value_9
;
7145 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7146 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7147 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7148 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7149 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7150 if (!once_value_10
) {
7151 fra
.me
.REG
[3] = BOX_NativeString("");
7153 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7154 once_value_10
= fra
.me
.REG
[3];
7155 register_static_object(&once_value_10
);
7156 } else fra
.me
.REG
[3] = once_value_10
;
7157 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7158 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7159 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7160 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
7162 /* ./syntax//typing.nit:1317 */
7163 ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
7164 /* ./syntax//typing.nit:1318 */
7165 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7166 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7167 /* ./syntax//typing.nit:1319 */
7168 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7169 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7170 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7171 if (UNTAG_Bool(REGB1
)) {
7172 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7173 if (UNTAG_Bool(REGB1
)) {
7174 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1319);
7176 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7177 fra
.me
.REG
[2] = fra
.me
.REG
[4];
7179 /* ./syntax//typing.nit:1320 */
7180 ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
7182 stack_frame_head
= fra
.me
.prev
;
7185 void syntax___typing___AAttrExpr___after_typing(val_t p0
, val_t p1
){
7186 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7190 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7191 fra
.me
.file
= LOCATE_syntax___typing
;
7193 fra
.me
.meth
= LOCATE_syntax___typing___AAttrExpr___after_typing
;
7194 fra
.me
.has_broke
= 0;
7195 fra
.me
.REG_size
= 2;
7196 fra
.me
.REG
[0] = NIT_NULL
;
7197 fra
.me
.REG
[1] = NIT_NULL
;
7200 /* ./syntax//typing.nit:1327 */
7201 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7202 /* ./syntax//typing.nit:1328 */
7203 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7204 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7205 if (UNTAG_Bool(REGB0
)) {
7207 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7208 if (UNTAG_Bool(REGB1
)) {
7209 REGB1
= TAG_Bool(false);
7212 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7216 if (UNTAG_Bool(REGB0
)) {
7219 /* ./syntax//typing.nit:1329 */
7220 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7221 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7222 /* ./syntax//typing.nit:1330 */
7223 REGB0
= TAG_Bool(true);
7224 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7226 stack_frame_head
= fra
.me
.prev
;
7229 void syntax___typing___AAttrAssignExpr___after_typing(val_t p0
, val_t p1
){
7230 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7234 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7235 fra
.me
.file
= LOCATE_syntax___typing
;
7237 fra
.me
.meth
= LOCATE_syntax___typing___AAttrAssignExpr___after_typing
;
7238 fra
.me
.has_broke
= 0;
7239 fra
.me
.REG_size
= 4;
7240 fra
.me
.REG
[0] = NIT_NULL
;
7241 fra
.me
.REG
[1] = NIT_NULL
;
7242 fra
.me
.REG
[2] = NIT_NULL
;
7243 fra
.me
.REG
[3] = NIT_NULL
;
7246 /* ./syntax//typing.nit:1337 */
7247 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7248 /* ./syntax//typing.nit:1338 */
7249 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7250 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7251 if (UNTAG_Bool(REGB0
)) {
7253 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7254 if (UNTAG_Bool(REGB1
)) {
7255 REGB1
= TAG_Bool(false);
7258 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7262 if (UNTAG_Bool(REGB0
)) {
7265 /* ./syntax//typing.nit:1339 */
7266 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7267 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7268 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
7269 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7270 if (UNTAG_Bool(REGB0
)) {
7273 /* ./syntax//typing.nit:1340 */
7274 REGB0
= TAG_Bool(true);
7275 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7277 stack_frame_head
= fra
.me
.prev
;
7280 void syntax___typing___AAttrReassignExpr___after_typing(val_t p0
, val_t p1
){
7281 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7285 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7286 fra
.me
.file
= LOCATE_syntax___typing
;
7288 fra
.me
.meth
= LOCATE_syntax___typing___AAttrReassignExpr___after_typing
;
7289 fra
.me
.has_broke
= 0;
7290 fra
.me
.REG_size
= 4;
7291 fra
.me
.REG
[0] = NIT_NULL
;
7292 fra
.me
.REG
[1] = NIT_NULL
;
7293 fra
.me
.REG
[2] = NIT_NULL
;
7294 fra
.me
.REG
[3] = NIT_NULL
;
7297 /* ./syntax//typing.nit:1347 */
7298 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7299 /* ./syntax//typing.nit:1348 */
7300 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7301 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7302 if (UNTAG_Bool(REGB0
)) {
7304 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7305 if (UNTAG_Bool(REGB1
)) {
7306 REGB1
= TAG_Bool(false);
7309 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7313 if (UNTAG_Bool(REGB0
)) {
7316 /* ./syntax//typing.nit:1349 */
7317 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7318 fra
.me
.REG
[2] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
7319 /* ./syntax//typing.nit:1350 */
7320 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7321 if (UNTAG_Bool(REGB0
)) {
7323 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7324 if (UNTAG_Bool(REGB1
)) {
7325 REGB1
= TAG_Bool(false);
7328 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7332 if (UNTAG_Bool(REGB0
)) {
7335 /* ./syntax//typing.nit:1351 */
7336 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7337 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7338 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
7339 /* ./syntax//typing.nit:1352 */
7340 REGB0
= TAG_Bool(true);
7341 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7343 stack_frame_head
= fra
.me
.prev
;
7346 void syntax___typing___AIssetAttrExpr___after_typing(val_t p0
, val_t p1
){
7347 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7351 static val_t once_value_2
; /* Once value */
7352 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7353 fra
.me
.file
= LOCATE_syntax___typing
;
7355 fra
.me
.meth
= LOCATE_syntax___typing___AIssetAttrExpr___after_typing
;
7356 fra
.me
.has_broke
= 0;
7357 fra
.me
.REG_size
= 3;
7358 fra
.me
.REG
[0] = NIT_NULL
;
7359 fra
.me
.REG
[1] = NIT_NULL
;
7360 fra
.me
.REG
[2] = NIT_NULL
;
7363 /* ./syntax//typing.nit:1359 */
7364 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7365 /* ./syntax//typing.nit:1360 */
7366 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7367 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7368 if (UNTAG_Bool(REGB0
)) {
7370 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7371 if (UNTAG_Bool(REGB1
)) {
7372 REGB1
= TAG_Bool(false);
7375 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7379 if (UNTAG_Bool(REGB0
)) {
7382 /* ./syntax//typing.nit:1361 */
7383 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7384 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7385 if (UNTAG_Bool(REGB0
)) {
7386 /* ./syntax//typing.nit:1362 */
7387 if (!once_value_2
) {
7388 fra
.me
.REG
[2] = BOX_NativeString("Error: isset on a nullable attribute.");
7389 REGB0
= TAG_Int(37);
7390 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7391 once_value_2
= fra
.me
.REG
[2];
7392 register_static_object(&once_value_2
);
7393 } else fra
.me
.REG
[2] = once_value_2
;
7394 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7395 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
7397 /* ./syntax//typing.nit:1364 */
7398 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7399 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7400 /* ./syntax//typing.nit:1365 */
7401 REGB0
= TAG_Bool(true);
7402 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7404 stack_frame_head
= fra
.me
.prev
;
7407 val_t
syntax___typing___AAbsAbsSendExpr___prop_signature(val_t p0
){
7408 struct {struct stack_frame_t me
;} fra
;
7411 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7412 fra
.me
.file
= LOCATE_syntax___typing
;
7414 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature
;
7415 fra
.me
.has_broke
= 0;
7416 fra
.me
.REG_size
= 1;
7417 fra
.me
.REG
[0] = NIT_NULL
;
7419 /* ./syntax//typing.nit:1371 */
7420 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]);
7421 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
7422 if (UNTAG_Bool(REGB0
)) {
7424 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1371);
7428 stack_frame_head
= fra
.me
.prev
;
7429 return fra
.me
.REG
[0];
7431 val_t
syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0
){
7432 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7436 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7437 fra
.me
.file
= LOCATE_syntax___typing
;
7439 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments
;
7440 fra
.me
.has_broke
= 0;
7441 fra
.me
.REG_size
= 4;
7442 fra
.me
.REG
[0] = NIT_NULL
;
7443 fra
.me
.REG
[1] = NIT_NULL
;
7444 fra
.me
.REG
[2] = NIT_NULL
;
7445 fra
.me
.REG
[3] = NIT_NULL
;
7447 /* ./syntax//typing.nit:1377 */
7448 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]);
7449 /* ./syntax//typing.nit:1378 */
7450 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7451 if (UNTAG_Bool(REGB0
)) {
7453 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7454 if (UNTAG_Bool(REGB1
)) {
7455 REGB1
= TAG_Bool(false);
7458 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7462 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7463 if (UNTAG_Bool(REGB0
)) {
7464 /* ./syntax//typing.nit:1379 */
7465 fra
.me
.REG
[2] = fra
.me
.REG
[1];
7468 /* ./syntax//typing.nit:1381 */
7469 fra
.me
.REG
[3] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7470 fra
.me
.REG
[1] = fra
.me
.REG
[3];
7471 /* ./syntax//typing.nit:1382 */
7472 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7473 if (UNTAG_Bool(REGB0
)) {
7475 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7476 if (UNTAG_Bool(REGB1
)) {
7477 REGB1
= TAG_Bool(false);
7480 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7484 if (UNTAG_Bool(REGB0
)) {
7485 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
7486 fra
.me
.REG
[1] = fra
.me
.REG
[3];
7488 /* ./syntax//typing.nit:1383 */
7489 ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7490 /* ./syntax//typing.nit:1384 */
7491 fra
.me
.REG
[2] = fra
.me
.REG
[1];
7495 stack_frame_head
= fra
.me
.prev
;
7496 return fra
.me
.REG
[2];
7498 val_t
syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0
){
7499 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7502 static val_t once_value_1
; /* Once value */
7503 static val_t once_value_2
; /* Once value */
7504 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7505 fra
.me
.file
= LOCATE_syntax___typing
;
7507 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments
;
7508 fra
.me
.has_broke
= 0;
7509 fra
.me
.REG_size
= 3;
7510 fra
.me
.REG
[0] = NIT_NULL
;
7511 fra
.me
.REG
[1] = NIT_NULL
;
7512 fra
.me
.REG
[2] = NIT_NULL
;
7514 /* ./syntax//typing.nit:1392 */
7516 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7517 if (!once_value_1
) {
7518 fra
.me
.REG
[2] = BOX_NativeString("");
7520 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7521 once_value_1
= fra
.me
.REG
[2];
7522 register_static_object(&once_value_1
);
7523 } else fra
.me
.REG
[2] = once_value_1
;
7524 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7525 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7526 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7527 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7528 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7529 if (!once_value_2
) {
7530 fra
.me
.REG
[2] = BOX_NativeString(" no compute_raw_arguments");
7531 REGB0
= TAG_Int(25);
7532 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7533 once_value_2
= fra
.me
.REG
[2];
7534 register_static_object(&once_value_2
);
7535 } else fra
.me
.REG
[2] = once_value_2
;
7536 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7537 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7538 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7539 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7540 /* ./syntax//typing.nit:1393 */
7541 fra
.me
.REG
[1] = NIT_NULL
;
7544 stack_frame_head
= fra
.me
.prev
;
7545 return fra
.me
.REG
[1];
7547 val_t
syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
7548 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7562 static val_t once_value_1
; /* Once value */
7563 static val_t once_value_2
; /* Once value */
7564 static val_t once_value_3
; /* Once value */
7565 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7566 fra
.me
.file
= LOCATE_syntax___typing
;
7568 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature
;
7569 fra
.me
.has_broke
= 0;
7570 fra
.me
.REG_size
= 7;
7571 fra
.me
.REG
[0] = NIT_NULL
;
7572 fra
.me
.REG
[1] = NIT_NULL
;
7573 fra
.me
.REG
[2] = NIT_NULL
;
7574 fra
.me
.REG
[3] = NIT_NULL
;
7575 fra
.me
.REG
[4] = NIT_NULL
;
7576 fra
.me
.REG
[5] = NIT_NULL
;
7577 fra
.me
.REG
[6] = NIT_NULL
;
7583 /* ./syntax//typing.nit:1399 */
7584 REGB0
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7585 /* ./syntax//typing.nit:1400 */
7586 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7587 /* ./syntax//typing.nit:1402 */
7588 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7589 if (UNTAG_Bool(REGB2
)) {
7591 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7592 if (UNTAG_Bool(REGB3
)) {
7593 REGB3
= TAG_Bool(false);
7596 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7600 if (UNTAG_Bool(REGB2
)) {
7603 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7604 if (UNTAG_Bool(REGB3
)) {
7605 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1402);
7607 /* ./../lib/standard//collection//array.nit:23 */
7608 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7609 if (UNTAG_Bool(REGB3
)) {
7611 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
7613 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7614 /* ./syntax//typing.nit:1402 */
7617 /* ./../lib/standard//kernel.nit:217 */
7618 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7619 /* ./syntax//typing.nit:1403 */
7620 if (UNTAG_Bool(REGB3
)) {
7621 REGB3
= TAG_Bool(true);
7623 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
7624 if (UNTAG_Bool(REGB4
)) {
7626 /* ./../lib/standard//kernel.nit:210 */
7627 REGB5
= TAG_Bool((REGB1
)==(REGB2
));
7628 /* ./syntax//typing.nit:1403 */
7631 REGB4
= TAG_Bool(!UNTAG_Bool(REGB4
));
7632 if (UNTAG_Bool(REGB4
)) {
7634 /* ./../lib/standard//kernel.nit:219 */
7635 REGB4
= TAG_Int(-UNTAG_Int(REGB4
));
7636 /* ./syntax//typing.nit:1403 */
7637 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB4
));
7638 if (UNTAG_Bool(REGB5
)) {
7640 /* ./../lib/standard//kernel.nit:210 */
7641 REGB4
= TAG_Bool((REGB0
)==(REGB4
));
7642 /* ./syntax//typing.nit:1403 */
7646 REGB4
= TAG_Bool(false);
7651 if (UNTAG_Bool(REGB3
)) {
7652 /* ./syntax//typing.nit:1404 */
7654 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3
);
7655 if (!once_value_1
) {
7656 fra
.me
.REG
[6] = BOX_NativeString("Error: arity mismatch; prototype is '");
7657 REGB3
= TAG_Int(37);
7658 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB3
);
7659 once_value_1
= fra
.me
.REG
[6];
7660 register_static_object(&once_value_1
);
7661 } else fra
.me
.REG
[6] = once_value_1
;
7662 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7663 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7664 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7665 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7666 if (!once_value_2
) {
7667 fra
.me
.REG
[3] = BOX_NativeString("");
7669 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
7670 once_value_2
= fra
.me
.REG
[3];
7671 register_static_object(&once_value_2
);
7672 } else fra
.me
.REG
[3] = once_value_2
;
7673 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7674 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7675 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7677 if (!once_value_3
) {
7678 fra
.me
.REG
[3] = BOX_NativeString("'.");
7680 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
7681 once_value_3
= fra
.me
.REG
[3];
7682 register_static_object(&once_value_3
);
7683 } else fra
.me
.REG
[3] = once_value_3
;
7684 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7686 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7687 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7688 /* ./syntax//typing.nit:1405 */
7689 REGB3
= TAG_Bool(false);
7692 /* ./syntax//typing.nit:1407 */
7694 /* ./syntax//typing.nit:1408 */
7696 /* ./../lib/standard//kernel.nit:330 */
7698 /* ./../lib/standard//kernel.nit:335 */
7700 /* ./../lib/standard//kernel.nit:215 */
7701 REGB7
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
7702 /* ./../lib/standard//kernel.nit:335 */
7703 if (UNTAG_Bool(REGB7
)) {
7704 /* ./syntax//typing.nit:1408 */
7706 /* ./syntax//typing.nit:1410 */
7707 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB7
);
7708 /* ./syntax//typing.nit:1411 */
7709 REGB8
= TAG_Bool(IS_EQUAL_OO(REGB7
,REGB0
));
7710 if (UNTAG_Bool(REGB8
)) {
7712 /* ./../lib/standard//kernel.nit:210 */
7713 REGB7
= TAG_Bool((REGB7
)==(REGB0
));
7714 /* ./syntax//typing.nit:1411 */
7717 if (UNTAG_Bool(REGB8
)) {
7718 /* ./syntax//typing.nit:1412 */
7720 /* ./../lib/standard//kernel.nit:220 */
7721 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
7722 /* ./../lib/standard//kernel.nit:324 */
7724 /* ./../lib/standard//kernel.nit:214 */
7725 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<=UNTAG_Int(REGB7
));
7726 /* ./../lib/standard//kernel.nit:324 */
7727 if (UNTAG_Bool(REGB9
)) {
7728 /* ./syntax//typing.nit:1413 */
7729 REGB9
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7730 if (UNTAG_Bool(REGB9
)) {
7731 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1413);
7733 /* ./../lib/standard//collection//array.nit:243 */
7734 fra
.me
.REG
[0] = fra
.me
.REG
[4];
7736 /* ./../lib/standard//collection//array.nit:245 */
7737 REGB10
= TAG_Int(0);
7738 /* ./../lib/standard//kernel.nit:216 */
7739 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)>=UNTAG_Int(REGB10
));
7740 /* ./../lib/standard//collection//array.nit:245 */
7741 if (UNTAG_Bool(REGB10
)) {
7742 REGB10
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
7743 if (UNTAG_Bool(REGB10
)) {
7745 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 245);
7747 REGB10
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
7748 /* ./../lib/standard//kernel.nit:215 */
7749 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)<UNTAG_Int(REGB10
));
7751 /* ./../lib/standard//collection//array.nit:245 */
7752 REGB11
= TAG_Bool(false);
7755 if (UNTAG_Bool(REGB10
)) {
7757 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 245);
7759 /* ./../lib/standard//collection//array.nit:246 */
7760 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
7761 REGB10
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
7762 if (UNTAG_Bool(REGB10
)) {
7763 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 246);
7765 /* ./../lib/standard//collection//array.nit:654 */
7766 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB9
)];
7767 /* ./../lib/standard//collection//array.nit:246 */
7770 /* ./syntax//typing.nit:1414 */
7771 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7772 /* ./syntax//typing.nit:1415 */
7774 /* ./../lib/standard//kernel.nit:218 */
7775 REGB9
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB9
));
7776 /* ./syntax//typing.nit:1415 */
7778 /* ./../lib/standard//kernel.nit:326 */
7780 /* ./../lib/standard//kernel.nit:218 */
7781 REGB9
= TAG_Int(UNTAG_Int(REGB8
)+UNTAG_Int(REGB9
));
7782 /* ./../lib/standard//kernel.nit:326 */
7785 /* ./../lib/standard//kernel.nit:324 */
7791 /* ./syntax//typing.nit:1418 */
7792 REGB8
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7793 if (UNTAG_Bool(REGB8
)) {
7794 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1418);
7796 /* ./../lib/standard//collection//array.nit:243 */
7797 fra
.me
.REG
[3] = fra
.me
.REG
[4];
7799 /* ./../lib/standard//collection//array.nit:245 */
7801 /* ./../lib/standard//kernel.nit:216 */
7802 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB7
));
7803 /* ./../lib/standard//collection//array.nit:245 */
7804 if (UNTAG_Bool(REGB7
)) {
7805 REGB7
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
7806 if (UNTAG_Bool(REGB7
)) {
7808 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 245);
7810 REGB7
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
7811 /* ./../lib/standard//kernel.nit:215 */
7812 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB7
));
7814 /* ./../lib/standard//collection//array.nit:245 */
7815 REGB9
= TAG_Bool(false);
7818 if (UNTAG_Bool(REGB7
)) {
7820 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 245);
7822 /* ./../lib/standard//collection//array.nit:246 */
7823 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
7824 REGB7
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7825 if (UNTAG_Bool(REGB7
)) {
7826 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 246);
7828 /* ./../lib/standard//collection//array.nit:654 */
7829 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB8
)];
7830 /* ./../lib/standard//collection//array.nit:246 */
7833 /* ./syntax//typing.nit:1418 */
7834 fra
.me
.REG
[0] = fra
.me
.REG
[3];
7835 /* ./syntax//typing.nit:1419 */
7836 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7837 /* ./syntax//typing.nit:1420 */
7839 /* ./../lib/standard//kernel.nit:218 */
7840 REGB8
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB8
));
7841 /* ./syntax//typing.nit:1420 */
7844 /* ./../lib/standard//kernel.nit:337 */
7846 /* ./../lib/standard//kernel.nit:218 */
7847 REGB8
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB8
));
7848 /* ./../lib/standard//kernel.nit:337 */
7851 /* ./../lib/standard//kernel.nit:335 */
7856 /* ./syntax//typing.nit:1423 */
7857 REGB4
= TAG_Bool(true);
7861 stack_frame_head
= fra
.me
.prev
;
7864 val_t
syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
7865 struct {struct stack_frame_t me
; val_t MORE_REG
[16];} fra
;
7873 static val_t once_value_2
; /* Once value */
7874 static val_t once_value_3
; /* Once value */
7875 static val_t once_value_4
; /* Once value */
7876 static val_t once_value_5
; /* Once value */
7877 static val_t once_value_6
; /* Once value */
7878 static val_t once_value_7
; /* Once value */
7879 static val_t once_value_8
; /* Once value */
7880 static val_t once_value_11
; /* Once value */
7881 static val_t once_value_12
; /* Once value */
7882 static val_t once_value_13
; /* Once value */
7883 static val_t once_value_14
; /* Once value */
7884 static val_t once_value_15
; /* Once value */
7885 static val_t once_value_16
; /* Once value */
7886 static val_t once_value_18
; /* Once value */
7887 static val_t once_value_19
; /* Once value */
7888 static val_t once_value_20
; /* Once value */
7889 static val_t once_value_21
; /* Once value */
7890 static val_t once_value_22
; /* Once value */
7891 static val_t once_value_24
; /* Once value */
7892 static val_t once_value_25
; /* Once value */
7893 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7894 fra
.me
.file
= LOCATE_syntax___typing
;
7896 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures
;
7897 fra
.me
.has_broke
= 0;
7898 fra
.me
.REG_size
= 17;
7899 fra
.me
.REG
[0] = NIT_NULL
;
7900 fra
.me
.REG
[1] = NIT_NULL
;
7901 fra
.me
.REG
[2] = NIT_NULL
;
7902 fra
.me
.REG
[3] = NIT_NULL
;
7903 fra
.me
.REG
[4] = NIT_NULL
;
7904 fra
.me
.REG
[5] = NIT_NULL
;
7905 fra
.me
.REG
[6] = NIT_NULL
;
7906 fra
.me
.REG
[7] = NIT_NULL
;
7907 fra
.me
.REG
[8] = NIT_NULL
;
7908 fra
.me
.REG
[9] = NIT_NULL
;
7909 fra
.me
.REG
[10] = NIT_NULL
;
7910 fra
.me
.REG
[11] = NIT_NULL
;
7911 fra
.me
.REG
[12] = NIT_NULL
;
7912 fra
.me
.REG
[13] = NIT_NULL
;
7913 fra
.me
.REG
[14] = NIT_NULL
;
7914 fra
.me
.REG
[15] = NIT_NULL
;
7915 fra
.me
.REG
[16] = NIT_NULL
;
7921 /* ./syntax//typing.nit:1429 */
7922 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7923 /* ./syntax//typing.nit:1430 */
7924 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7925 /* ./syntax//typing.nit:1431 */
7927 /* ./../lib/standard//collection//array.nit:231 */
7928 fra
.me
.REG
[7] = fra
.me
.REG
[6];
7929 /* ./../lib/standard//collection//array.nit:234 */
7931 /* ./../lib/standard//collection//array.nit:235 */
7932 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
7933 if (UNTAG_Bool(REGB2
)) {
7935 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 235);
7937 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
7938 /* ./../lib/standard//collection//array.nit:236 */
7939 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
7940 /* ./../lib/standard//collection//array.nit:237 */
7942 /* ./../lib/standard//collection//array.nit:23 */
7943 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
7944 if (UNTAG_Bool(REGB2
)) {
7946 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
7948 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
7949 /* ./../lib/standard//kernel.nit:215 */
7950 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
7951 /* ./../lib/standard//collection//array.nit:237 */
7952 if (UNTAG_Bool(REGB2
)) {
7953 /* ./../lib/standard//collection//array.nit:238 */
7954 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
7955 if (UNTAG_Bool(REGB2
)) {
7956 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 238);
7958 /* ./../lib/standard//collection//array.nit:654 */
7959 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
7960 /* ./syntax//typing.nit:1433 */
7961 REGB2
= CALL_metamodel___static_type___MMClosure___is_optional(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
7962 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7963 if (UNTAG_Bool(REGB2
)) {
7965 /* ./../lib/standard//kernel.nit:218 */
7966 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
7967 /* ./syntax//typing.nit:1433 */
7970 /* ./../lib/standard//collection//array.nit:239 */
7972 /* ./../lib/standard//kernel.nit:218 */
7973 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
7974 /* ./../lib/standard//collection//array.nit:239 */
7977 /* ./../lib/standard//collection//array.nit:237 */
7982 /* ./syntax//typing.nit:1435 */
7984 /* ./syntax//typing.nit:1436 */
7985 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7986 if (UNTAG_Bool(REGB2
)) {
7988 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7989 if (UNTAG_Bool(REGB3
)) {
7990 REGB3
= TAG_Bool(false);
7993 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7997 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7998 if (UNTAG_Bool(REGB2
)) {
7999 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8000 if (UNTAG_Bool(REGB2
)) {
8001 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1436);
8003 /* ./../lib/standard//collection//array.nit:23 */
8004 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8005 if (UNTAG_Bool(REGB2
)) {
8007 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8009 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8010 /* ./syntax//typing.nit:1436 */
8013 /* ./../lib/standard//collection//array.nit:23 */
8014 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8015 if (UNTAG_Bool(REGB2
)) {
8017 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8019 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8020 /* ./syntax//typing.nit:1437 */
8022 /* ./../lib/standard//kernel.nit:217 */
8023 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
8024 /* ./syntax//typing.nit:1437 */
8025 if (UNTAG_Bool(REGB3
)) {
8026 /* ./syntax//typing.nit:1438 */
8028 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
8029 if (UNTAG_Bool(REGB2
)) {
8031 /* ./../lib/standard//kernel.nit:210 */
8032 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
8033 /* ./syntax//typing.nit:1438 */
8036 if (UNTAG_Bool(REGB2
)) {
8038 /* ./../lib/standard//kernel.nit:217 */
8039 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB2
));
8041 /* ./syntax//typing.nit:1438 */
8042 REGB3
= TAG_Bool(false);
8045 if (UNTAG_Bool(REGB2
)) {
8046 /* ./syntax//typing.nit:1439 */
8048 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8049 if (!once_value_2
) {
8050 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8052 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8053 once_value_2
= fra
.me
.REG
[7];
8054 register_static_object(&once_value_2
);
8055 } else fra
.me
.REG
[7] = once_value_2
;
8056 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8057 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8058 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8059 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8060 if (!once_value_3
) {
8061 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8062 REGB2
= TAG_Int(10);
8063 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8064 once_value_3
= fra
.me
.REG
[7];
8065 register_static_object(&once_value_3
);
8066 } else fra
.me
.REG
[7] = once_value_3
;
8067 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8068 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8069 /* ./../lib/standard//collection//array.nit:23 */
8070 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8071 if (UNTAG_Bool(REGB2
)) {
8073 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8075 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8076 /* ./syntax//typing.nit:1439 */
8077 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8079 if (!once_value_4
) {
8080 fra
.me
.REG
[7] = BOX_NativeString(" blocks.");
8082 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8083 once_value_4
= fra
.me
.REG
[7];
8084 register_static_object(&once_value_4
);
8085 } else fra
.me
.REG
[7] = once_value_4
;
8086 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8087 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8088 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8089 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8091 /* ./../lib/standard//collection//array.nit:23 */
8092 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8093 if (UNTAG_Bool(REGB2
)) {
8095 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8097 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8098 /* ./../lib/standard//kernel.nit:217 */
8099 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8100 /* ./syntax//typing.nit:1440 */
8101 if (UNTAG_Bool(REGB2
)) {
8102 REGB2
= TAG_Bool(true);
8104 /* ./../lib/standard//kernel.nit:215 */
8105 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
8106 /* ./syntax//typing.nit:1440 */
8109 if (UNTAG_Bool(REGB2
)) {
8110 /* ./syntax//typing.nit:1441 */
8112 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8113 if (!once_value_5
) {
8114 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8116 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8117 once_value_5
= fra
.me
.REG
[7];
8118 register_static_object(&once_value_5
);
8119 } else fra
.me
.REG
[7] = once_value_5
;
8120 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8122 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8124 if (!once_value_6
) {
8125 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8126 REGB2
= TAG_Int(10);
8127 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8128 once_value_6
= fra
.me
.REG
[7];
8129 register_static_object(&once_value_6
);
8130 } else fra
.me
.REG
[7] = once_value_6
;
8131 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8133 /* ./../lib/standard//collection//array.nit:23 */
8134 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8135 if (UNTAG_Bool(REGB2
)) {
8137 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8139 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8140 /* ./syntax//typing.nit:1441 */
8141 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8142 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8143 if (!once_value_7
) {
8144 fra
.me
.REG
[7] = BOX_NativeString(" blocks, ");
8146 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8147 once_value_7
= fra
.me
.REG
[7];
8148 register_static_object(&once_value_7
);
8149 } else fra
.me
.REG
[7] = once_value_7
;
8150 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8152 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8153 if (UNTAG_Bool(REGB2
)) {
8154 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1441);
8156 /* ./../lib/standard//collection//array.nit:23 */
8157 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8158 if (UNTAG_Bool(REGB2
)) {
8160 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8162 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8163 /* ./syntax//typing.nit:1441 */
8164 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8165 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8166 if (!once_value_8
) {
8167 fra
.me
.REG
[7] = BOX_NativeString(" found.");
8169 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8170 once_value_8
= fra
.me
.REG
[7];
8171 register_static_object(&once_value_8
);
8172 } else fra
.me
.REG
[7] = once_value_8
;
8173 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8174 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8175 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8176 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8178 /* ./syntax//typing.nit:1444 */
8179 fra
.me
.REG
[8] = NIT_NULL
;
8180 /* ./syntax//typing.nit:1445 */
8181 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8182 if (UNTAG_Bool(REGB2
)) {
8184 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8185 if (UNTAG_Bool(REGB0
)) {
8186 REGB0
= TAG_Bool(false);
8189 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8193 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8194 if (UNTAG_Bool(REGB2
)) {
8195 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
8196 fra
.me
.REG
[8] = fra
.me
.REG
[7];
8198 /* ./syntax//typing.nit:1448 */
8200 /* ./../lib/standard//kernel.nit:217 */
8201 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8202 /* ./syntax//typing.nit:1448 */
8203 if (UNTAG_Bool(REGB2
)) {
8205 /* ./../lib/standard//kernel.nit:220 */
8206 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
8207 /* ./syntax//typing.nit:1448 */
8208 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8209 if (UNTAG_Bool(REGB0
)) {
8210 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1448);
8212 /* ./../lib/standard//collection//array.nit:243 */
8213 fra
.me
.REG
[7] = fra
.me
.REG
[4];
8214 /* ./../lib/standard//collection//array.nit:245 */
8216 /* ./../lib/standard//kernel.nit:216 */
8217 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
8218 /* ./../lib/standard//collection//array.nit:245 */
8219 if (UNTAG_Bool(REGB0
)) {
8220 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8221 if (UNTAG_Bool(REGB0
)) {
8223 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 245);
8225 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8226 /* ./../lib/standard//kernel.nit:215 */
8227 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8229 /* ./../lib/standard//collection//array.nit:245 */
8230 REGB3
= TAG_Bool(false);
8233 if (UNTAG_Bool(REGB0
)) {
8235 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 245);
8237 /* ./../lib/standard//collection//array.nit:246 */
8238 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8239 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8240 if (UNTAG_Bool(REGB0
)) {
8241 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 246);
8243 /* ./../lib/standard//collection//array.nit:654 */
8244 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB2
)];
8245 /* ./../lib/standard//collection//array.nit:246 */
8248 /* ./syntax//typing.nit:1448 */
8249 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8250 if (UNTAG_Bool(REGB2
)) {
8251 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1448);
8253 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8255 fra
.me
.REG
[7] = NIT_NULL
;
8257 /* ./syntax//typing.nit:1451 */
8259 /* ./../lib/standard//kernel.nit:330 */
8261 /* ./../lib/standard//kernel.nit:335 */
8263 /* ./../lib/standard//kernel.nit:215 */
8264 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8265 /* ./../lib/standard//kernel.nit:335 */
8266 if (UNTAG_Bool(REGB3
)) {
8267 /* ./syntax//typing.nit:1451 */
8269 /* ./syntax//typing.nit:1452 */
8270 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8271 if (UNTAG_Bool(REGB4
)) {
8272 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1452);
8274 /* ./../lib/standard//collection//array.nit:243 */
8275 fra
.me
.REG
[9] = fra
.me
.REG
[4];
8276 /* ./../lib/standard//collection//array.nit:245 */
8278 /* ./../lib/standard//kernel.nit:216 */
8279 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
8280 /* ./../lib/standard//collection//array.nit:245 */
8281 if (UNTAG_Bool(REGB4
)) {
8282 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
8283 if (UNTAG_Bool(REGB4
)) {
8285 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 245);
8287 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
8288 /* ./../lib/standard//kernel.nit:215 */
8289 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
8291 /* ./../lib/standard//collection//array.nit:245 */
8292 REGB5
= TAG_Bool(false);
8295 if (UNTAG_Bool(REGB4
)) {
8297 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 245);
8299 /* ./../lib/standard//collection//array.nit:246 */
8300 fra
.me
.REG
[9] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
8301 REGB4
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
8302 if (UNTAG_Bool(REGB4
)) {
8303 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 246);
8305 /* ./../lib/standard//collection//array.nit:654 */
8306 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB3
)];
8307 /* ./../lib/standard//collection//array.nit:246 */
8310 /* ./syntax//typing.nit:1453 */
8311 fra
.me
.REG
[10] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8312 fra
.me
.REG
[10] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8313 /* ./syntax//typing.nit:1454 */
8314 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMSignature___closure_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[10]);
8315 /* ./syntax//typing.nit:1455 */
8316 REGB3
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
8317 if (UNTAG_Bool(REGB3
)) {
8319 REGB4
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
8320 if (UNTAG_Bool(REGB4
)) {
8321 REGB4
= TAG_Bool(false);
8324 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[11])(fra
.me
.REG
[11], NIT_NULL
);
8328 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
8329 if (UNTAG_Bool(REGB3
)) {
8330 /* ./syntax//typing.nit:1456 */
8331 fra
.me
.REG
[11] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[9], fra
.me
.REG
[11], fra
.me
.REG
[8]);
8332 /* ./syntax//typing.nit:1457 */
8333 fra
.me
.REG
[12] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8334 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[11], fra
.me
.REG
[7]);
8335 /* ./syntax//typing.nit:1458 */
8336 CALL_syntax___typing___AClosureDef___accept_typing2(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[1], fra
.me
.REG
[11]);
8337 /* ./syntax//typing.nit:1459 */
8338 fra
.me
.REG
[11] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8339 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
8341 /* ./../lib/standard//collection//array.nit:23 */
8342 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8343 if (UNTAG_Bool(REGB3
)) {
8345 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8347 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8348 /* ./syntax//typing.nit:1460 */
8350 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB3
,REGB4
));
8351 if (UNTAG_Bool(REGB5
)) {
8353 /* ./../lib/standard//kernel.nit:210 */
8354 REGB4
= TAG_Bool((REGB3
)==(REGB4
));
8355 /* ./syntax//typing.nit:1460 */
8358 if (UNTAG_Bool(REGB5
)) {
8359 /* ./syntax//typing.nit:1461 */
8360 fra
.me
.REG
[11] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8362 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
8363 if (!once_value_11
) {
8364 fra
.me
.REG
[13] = BOX_NativeString("Error: no closure named '!");
8365 REGB5
= TAG_Int(26);
8366 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8367 once_value_11
= fra
.me
.REG
[13];
8368 register_static_object(&once_value_11
);
8369 } else fra
.me
.REG
[13] = once_value_11
;
8370 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8371 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8372 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8373 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8374 if (!once_value_12
) {
8375 fra
.me
.REG
[13] = BOX_NativeString("' in ");
8377 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8378 once_value_12
= fra
.me
.REG
[13];
8379 register_static_object(&once_value_12
);
8380 } else fra
.me
.REG
[13] = once_value_12
;
8381 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8382 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8383 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8385 if (!once_value_13
) {
8386 fra
.me
.REG
[13] = BOX_NativeString("; only closure is !");
8387 REGB5
= TAG_Int(19);
8388 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8389 once_value_13
= fra
.me
.REG
[13];
8390 register_static_object(&once_value_13
);
8391 } else fra
.me
.REG
[13] = once_value_13
;
8392 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8393 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8394 fra
.me
.REG
[13] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8395 REGB5
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
8396 if (UNTAG_Bool(REGB5
)) {
8397 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1461);
8399 fra
.me
.REG
[13] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8400 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8401 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8402 if (!once_value_14
) {
8403 fra
.me
.REG
[13] = BOX_NativeString(".");
8405 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8406 once_value_14
= fra
.me
.REG
[13];
8407 register_static_object(&once_value_14
);
8408 } else fra
.me
.REG
[13] = once_value_14
;
8409 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8410 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8411 fra
.me
.REG
[12] = CALL_standard___string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
8412 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[11], fra
.me
.REG
[12]);
8414 /* ./syntax//typing.nit:1463 */
8415 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___init();
8416 /* ./../lib/standard//collection//array.nit:231 */
8417 fra
.me
.REG
[11] = fra
.me
.REG
[6];
8418 /* ./../lib/standard//collection//array.nit:234 */
8420 /* ./../lib/standard//collection//array.nit:235 */
8421 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
8422 if (UNTAG_Bool(REGB4
)) {
8424 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 235);
8426 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
8427 /* ./../lib/standard//collection//array.nit:236 */
8428 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[11]);
8429 /* ./../lib/standard//collection//array.nit:237 */
8431 /* ./../lib/standard//collection//array.nit:23 */
8432 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
8433 if (UNTAG_Bool(REGB4
)) {
8435 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8437 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
8438 /* ./../lib/standard//kernel.nit:215 */
8439 REGB4
= TAG_Bool(UNTAG_Int(REGB5
)<UNTAG_Int(REGB4
));
8440 /* ./../lib/standard//collection//array.nit:237 */
8441 if (UNTAG_Bool(REGB4
)) {
8442 /* ./../lib/standard//collection//array.nit:238 */
8443 REGB4
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
8444 if (UNTAG_Bool(REGB4
)) {
8445 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 238);
8447 /* ./../lib/standard//collection//array.nit:654 */
8448 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB5
)];
8449 /* ./syntax//typing.nit:1465 */
8451 fra
.me
.REG
[15] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4
);
8452 if (!once_value_15
) {
8453 fra
.me
.REG
[16] = BOX_NativeString("!");
8455 fra
.me
.REG
[16] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[16], REGB4
);
8456 once_value_15
= fra
.me
.REG
[16];
8457 register_static_object(&once_value_15
);
8458 } else fra
.me
.REG
[16] = once_value_15
;
8459 fra
.me
.REG
[16] = fra
.me
.REG
[16];
8460 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[16]);
8461 fra
.me
.REG
[14] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
8462 fra
.me
.REG
[14] = CALL_standard___string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
8463 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
8464 if (!once_value_16
) {
8465 fra
.me
.REG
[14] = BOX_NativeString("");
8467 fra
.me
.REG
[14] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[14], REGB4
);
8468 once_value_16
= fra
.me
.REG
[14];
8469 register_static_object(&once_value_16
);
8470 } else fra
.me
.REG
[14] = once_value_16
;
8471 fra
.me
.REG
[14] = fra
.me
.REG
[14];
8472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
8473 fra
.me
.REG
[15] = CALL_standard___string___Object___to_s(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
8474 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[15]);
8475 /* ./../lib/standard//collection//array.nit:239 */
8477 /* ./../lib/standard//kernel.nit:218 */
8478 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
8479 /* ./../lib/standard//collection//array.nit:239 */
8482 /* ./../lib/standard//collection//array.nit:237 */
8487 /* ./syntax//typing.nit:1467 */
8488 fra
.me
.REG
[9] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8490 fra
.me
.REG
[13] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
8491 if (!once_value_18
) {
8492 fra
.me
.REG
[11] = BOX_NativeString("Error: no closure named '!");
8493 REGB5
= TAG_Int(26);
8494 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB5
);
8495 once_value_18
= fra
.me
.REG
[11];
8496 register_static_object(&once_value_18
);
8497 } else fra
.me
.REG
[11] = once_value_18
;
8498 fra
.me
.REG
[11] = fra
.me
.REG
[11];
8499 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[11]);
8500 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8501 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8502 if (!once_value_19
) {
8503 fra
.me
.REG
[10] = BOX_NativeString("' in ");
8505 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8506 once_value_19
= fra
.me
.REG
[10];
8507 register_static_object(&once_value_19
);
8508 } else fra
.me
.REG
[10] = once_value_19
;
8509 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8511 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8512 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8513 if (!once_value_20
) {
8514 fra
.me
.REG
[10] = BOX_NativeString("; only closures are ");
8515 REGB5
= TAG_Int(20);
8516 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8517 once_value_20
= fra
.me
.REG
[10];
8518 register_static_object(&once_value_20
);
8519 } else fra
.me
.REG
[10] = once_value_20
;
8520 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8521 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8522 if (!once_value_21
) {
8523 fra
.me
.REG
[10] = BOX_NativeString(",");
8525 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8526 once_value_21
= fra
.me
.REG
[10];
8527 register_static_object(&once_value_21
);
8528 } else fra
.me
.REG
[10] = once_value_21
;
8529 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8530 fra
.me
.REG
[10] = CALL_standard___string___Collection___join(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[10]);
8531 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8532 if (!once_value_22
) {
8533 fra
.me
.REG
[10] = BOX_NativeString(".");
8535 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8536 once_value_22
= fra
.me
.REG
[10];
8537 register_static_object(&once_value_22
);
8538 } else fra
.me
.REG
[10] = once_value_22
;
8539 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8540 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8541 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8542 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[13]);
8545 /* ./../lib/standard//kernel.nit:337 */
8547 /* ./../lib/standard//kernel.nit:218 */
8548 REGB5
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB5
));
8549 /* ./../lib/standard//kernel.nit:337 */
8552 /* ./../lib/standard//kernel.nit:335 */
8557 /* ./syntax//typing.nit:1472 */
8558 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8559 if (UNTAG_Bool(REGB2
)) {
8561 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8562 if (UNTAG_Bool(REGB0
)) {
8563 REGB0
= TAG_Bool(false);
8566 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
8570 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8571 if (UNTAG_Bool(REGB2
)) {
8572 /* ./syntax//typing.nit:1473 */
8573 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[8]);
8574 fra
.me
.REG
[5] = fra
.me
.REG
[8];
8579 /* ./syntax//typing.nit:1476 */
8581 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
8582 if (UNTAG_Bool(REGB0
)) {
8584 /* ./../lib/standard//kernel.nit:210 */
8585 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
8586 /* ./syntax//typing.nit:1476 */
8589 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8590 if (UNTAG_Bool(REGB0
)) {
8591 /* ./syntax//typing.nit:1477 */
8593 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8594 if (!once_value_24
) {
8595 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
8597 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
8598 once_value_24
= fra
.me
.REG
[6];
8599 register_static_object(&once_value_24
);
8600 } else fra
.me
.REG
[6] = once_value_24
;
8601 fra
.me
.REG
[6] = fra
.me
.REG
[6];
8602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
8603 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8604 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
8605 if (!once_value_25
) {
8606 fra
.me
.REG
[3] = BOX_NativeString(" does not require blocks.");
8607 REGB0
= TAG_Int(25);
8608 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
8609 once_value_25
= fra
.me
.REG
[3];
8610 register_static_object(&once_value_25
);
8611 } else fra
.me
.REG
[3] = once_value_25
;
8612 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8613 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
8614 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8615 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8618 /* ./syntax//typing.nit:1479 */
8621 stack_frame_head
= fra
.me
.prev
;
8622 return fra
.me
.REG
[5];
8624 void syntax___typing___AAbsSendExpr___do_typing(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
, val_t p5
, val_t p6
, val_t p7
){
8625 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8630 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8631 fra
.me
.file
= LOCATE_syntax___typing
;
8633 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___do_typing
;
8634 fra
.me
.has_broke
= 0;
8635 fra
.me
.REG_size
= 7;
8636 fra
.me
.REG
[0] = NIT_NULL
;
8637 fra
.me
.REG
[1] = NIT_NULL
;
8638 fra
.me
.REG
[2] = NIT_NULL
;
8639 fra
.me
.REG
[3] = NIT_NULL
;
8640 fra
.me
.REG
[4] = NIT_NULL
;
8641 fra
.me
.REG
[5] = NIT_NULL
;
8642 fra
.me
.REG
[6] = NIT_NULL
;
8651 /* ./syntax//typing.nit:1487 */
8652 fra
.me
.REG
[3] = CALL_syntax___typing___AAbsSendExpr___get_property(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
, fra
.me
.REG
[3]);
8653 /* ./syntax//typing.nit:1488 */
8654 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8655 if (UNTAG_Bool(REGB0
)) {
8657 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8658 if (UNTAG_Bool(REGB2
)) {
8659 REGB2
= TAG_Bool(false);
8662 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
8666 if (UNTAG_Bool(REGB0
)) {
8669 /* ./syntax//typing.nit:1489 */
8670 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsSendExpr___get_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], REGB1
);
8671 /* ./syntax//typing.nit:1490 */
8672 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8673 if (UNTAG_Bool(REGB1
)) {
8674 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1490);
8676 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8677 REGB1
= CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6], fra
.me
.REG
[4]);
8678 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8679 if (UNTAG_Bool(REGB1
)) {
8682 /* ./syntax//typing.nit:1491 */
8683 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8684 if (UNTAG_Bool(REGB1
)) {
8685 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1491);
8687 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8688 fra
.me
.REG
[5] = CALL_syntax___typing___AAbsAbsSendExpr___process_closures(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4], fra
.me
.REG
[5]);
8689 /* ./syntax//typing.nit:1492 */
8690 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8691 if (UNTAG_Bool(REGB1
)) {
8693 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8694 if (UNTAG_Bool(REGB0
)) {
8695 REGB0
= TAG_Bool(false);
8698 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8702 if (UNTAG_Bool(REGB1
)) {
8703 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8704 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8705 if (UNTAG_Bool(REGB1
)) {
8707 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8708 if (UNTAG_Bool(REGB0
)) {
8709 REGB0
= TAG_Bool(false);
8712 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8716 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8718 REGB0
= TAG_Bool(false);
8721 if (UNTAG_Bool(REGB1
)) {
8724 /* ./syntax//typing.nit:1493 */
8725 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
8726 /* ./syntax//typing.nit:1494 */
8727 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
8728 /* ./syntax//typing.nit:1495 */
8729 ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
8731 stack_frame_head
= fra
.me
.prev
;
8734 val_t
syntax___typing___AAbsSendExpr___get_property(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8735 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
8741 static val_t once_value_1
; /* Once value */
8742 static val_t once_value_2
; /* Once value */
8743 static val_t once_value_3
; /* Once value */
8744 static val_t once_value_4
; /* Once value */
8745 static val_t once_value_5
; /* Once value */
8746 static val_t once_value_6
; /* Once value */
8747 static val_t once_value_8
; /* Once value */
8748 static val_t once_value_9
; /* Once value */
8749 static val_t once_value_10
; /* Once value */
8750 static val_t once_value_11
; /* Once value */
8751 static val_t once_value_12
; /* Once value */
8752 static val_t once_value_13
; /* Once value */
8753 static val_t once_value_14
; /* Once value */
8754 static val_t once_value_15
; /* Once value */
8755 static val_t once_value_16
; /* Once value */
8756 static val_t once_value_17
; /* Once value */
8757 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8758 fra
.me
.file
= LOCATE_syntax___typing
;
8760 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_property
;
8761 fra
.me
.has_broke
= 0;
8762 fra
.me
.REG_size
= 10;
8763 fra
.me
.REG
[0] = NIT_NULL
;
8764 fra
.me
.REG
[1] = NIT_NULL
;
8765 fra
.me
.REG
[2] = NIT_NULL
;
8766 fra
.me
.REG
[3] = NIT_NULL
;
8767 fra
.me
.REG
[4] = NIT_NULL
;
8768 fra
.me
.REG
[5] = NIT_NULL
;
8769 fra
.me
.REG
[6] = NIT_NULL
;
8770 fra
.me
.REG
[7] = NIT_NULL
;
8771 fra
.me
.REG
[8] = NIT_NULL
;
8772 fra
.me
.REG
[9] = NIT_NULL
;
8778 /* ./syntax//typing.nit:1500 */
8779 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
8780 if (UNTAG_Bool(REGB1
)) {
8781 /* ./syntax//typing.nit:1501 */
8782 if (!once_value_1
) {
8783 if (!once_value_2
) {
8784 fra
.me
.REG
[4] = BOX_NativeString("==");
8786 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
8787 once_value_2
= fra
.me
.REG
[4];
8788 register_static_object(&once_value_2
);
8789 } else fra
.me
.REG
[4] = once_value_2
;
8790 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8791 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8792 once_value_1
= fra
.me
.REG
[4];
8793 register_static_object(&once_value_1
);
8794 } else fra
.me
.REG
[4] = once_value_1
;
8795 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8796 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
8797 if (UNTAG_Bool(REGB1
)) {
8799 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8802 if (UNTAG_Bool(REGB1
)) {
8803 REGB1
= TAG_Bool(true);
8805 if (!once_value_3
) {
8806 if (!once_value_4
) {
8807 fra
.me
.REG
[4] = BOX_NativeString("!=");
8809 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB2
);
8810 once_value_4
= fra
.me
.REG
[4];
8811 register_static_object(&once_value_4
);
8812 } else fra
.me
.REG
[4] = once_value_4
;
8813 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8814 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8815 once_value_3
= fra
.me
.REG
[4];
8816 register_static_object(&once_value_3
);
8817 } else fra
.me
.REG
[4] = once_value_3
;
8818 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8819 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
8820 if (UNTAG_Bool(REGB2
)) {
8822 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8827 if (UNTAG_Bool(REGB1
)) {
8828 /* ./syntax//typing.nit:1503 */
8829 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8830 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8831 fra
.me
.REG
[2] = fra
.me
.REG
[4];
8833 /* ./syntax//typing.nit:1505 */
8835 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
8836 if (!once_value_5
) {
8837 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
8838 REGB1
= TAG_Int(15);
8839 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
8840 once_value_5
= fra
.me
.REG
[5];
8841 register_static_object(&once_value_5
);
8842 } else fra
.me
.REG
[5] = once_value_5
;
8843 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8844 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
8845 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8846 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
8847 if (!once_value_6
) {
8848 fra
.me
.REG
[5] = BOX_NativeString("' call on 'null'.");
8849 REGB1
= TAG_Int(17);
8850 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
8851 once_value_6
= fra
.me
.REG
[5];
8852 register_static_object(&once_value_6
);
8853 } else fra
.me
.REG
[5] = once_value_6
;
8854 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8855 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
8856 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8857 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
8858 /* ./syntax//typing.nit:1506 */
8859 fra
.me
.REG
[4] = NIT_NULL
;
8863 /* ./syntax//typing.nit:1509 */
8864 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8865 /* ./syntax//typing.nit:1510 */
8866 fra
.me
.REG
[6] = NIT_NULL
;
8867 /* ./syntax//typing.nit:1511 */
8868 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8869 if (UNTAG_Bool(REGB1
)) {
8870 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8871 fra
.me
.REG
[6] = fra
.me
.REG
[7];
8873 /* ./syntax//typing.nit:1512 */
8874 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8875 if (UNTAG_Bool(REGB1
)) {
8877 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8878 if (UNTAG_Bool(REGB2
)) {
8879 REGB2
= TAG_Bool(false);
8882 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
8886 if (UNTAG_Bool(REGB1
)) {
8887 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8888 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8889 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8891 REGB2
= TAG_Bool(false);
8894 if (UNTAG_Bool(REGB1
)) {
8895 /* ./syntax//typing.nit:1513 */
8896 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8897 /* ./../lib/standard//collection//array.nit:23 */
8898 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8899 if (UNTAG_Bool(REGB1
)) {
8901 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8903 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8904 /* ./syntax//typing.nit:1514 */
8906 /* ./../lib/standard//kernel.nit:217 */
8907 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8908 /* ./syntax//typing.nit:1514 */
8909 if (UNTAG_Bool(REGB2
)) {
8910 /* ./syntax//typing.nit:1515 */
8912 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8913 if (!once_value_8
) {
8914 fra
.me
.REG
[9] = BOX_NativeString("Error: Ambigous method name '");
8915 REGB2
= TAG_Int(29);
8916 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
8917 once_value_8
= fra
.me
.REG
[9];
8918 register_static_object(&once_value_8
);
8919 } else fra
.me
.REG
[9] = once_value_8
;
8920 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8921 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8922 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8923 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8924 if (!once_value_9
) {
8925 fra
.me
.REG
[9] = BOX_NativeString("' for ");
8927 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
8928 once_value_9
= fra
.me
.REG
[9];
8929 register_static_object(&once_value_9
);
8930 } else fra
.me
.REG
[9] = once_value_9
;
8931 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8932 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8933 if (!once_value_10
) {
8934 fra
.me
.REG
[9] = BOX_NativeString(", ");
8936 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
8937 once_value_10
= fra
.me
.REG
[9];
8938 register_static_object(&once_value_10
);
8939 } else fra
.me
.REG
[9] = once_value_10
;
8940 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8941 fra
.me
.REG
[9] = CALL_standard___string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
8942 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8943 if (!once_value_11
) {
8944 fra
.me
.REG
[9] = BOX_NativeString(". Use explicit designation.");
8945 REGB2
= TAG_Int(27);
8946 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
8947 once_value_11
= fra
.me
.REG
[9];
8948 register_static_object(&once_value_11
);
8949 } else fra
.me
.REG
[9] = once_value_11
;
8950 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8951 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8952 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8953 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8954 /* ./syntax//typing.nit:1516 */
8955 fra
.me
.REG
[4] = NIT_NULL
;
8958 /* ./../lib/standard//collection//array.nit:23 */
8959 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8960 if (UNTAG_Bool(REGB2
)) {
8962 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8964 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8965 /* ./syntax//typing.nit:1517 */
8967 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
8968 if (UNTAG_Bool(REGB3
)) {
8970 /* ./../lib/standard//kernel.nit:210 */
8971 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
8972 /* ./syntax//typing.nit:1517 */
8975 if (UNTAG_Bool(REGB3
)) {
8976 /* ./syntax//typing.nit:1518 */
8977 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8978 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8979 if (UNTAG_Bool(REGB3
)) {
8980 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1518);
8982 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8983 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
8984 /* ./syntax//typing.nit:1519 */
8985 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
8986 if (UNTAG_Bool(REGB3
)) {
8988 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1519);
8990 /* ./syntax//typing.nit:1520 */
8991 fra
.me
.REG
[6] = fra
.me
.REG
[7];
8995 /* ./syntax//typing.nit:1524 */
8996 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8997 if (UNTAG_Bool(REGB3
)) {
8999 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9000 if (UNTAG_Bool(REGB1
)) {
9001 REGB1
= TAG_Bool(false);
9004 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9008 if (UNTAG_Bool(REGB3
)) {
9009 /* ./syntax//typing.nit:1525 */
9010 if (UNTAG_Bool(REGB0
)) {
9011 /* ./syntax//typing.nit:1526 */
9013 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9014 if (!once_value_12
) {
9015 fra
.me
.REG
[5] = BOX_NativeString("Error: Method or variable '");
9016 REGB0
= TAG_Int(27);
9017 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9018 once_value_12
= fra
.me
.REG
[5];
9019 register_static_object(&once_value_12
);
9020 } else fra
.me
.REG
[5] = once_value_12
;
9021 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9022 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9023 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9024 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9025 if (!once_value_13
) {
9026 fra
.me
.REG
[5] = BOX_NativeString("' unknown in ");
9027 REGB0
= TAG_Int(13);
9028 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9029 once_value_13
= fra
.me
.REG
[5];
9030 register_static_object(&once_value_13
);
9031 } else fra
.me
.REG
[5] = once_value_13
;
9032 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9033 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9034 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9035 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9036 if (!once_value_14
) {
9037 fra
.me
.REG
[5] = BOX_NativeString(".");
9039 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9040 once_value_14
= fra
.me
.REG
[5];
9041 register_static_object(&once_value_14
);
9042 } else fra
.me
.REG
[5] = once_value_14
;
9043 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9044 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9045 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9046 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9048 /* ./syntax//typing.nit:1528 */
9050 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9051 if (!once_value_15
) {
9052 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9053 REGB0
= TAG_Int(15);
9054 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9055 once_value_15
= fra
.me
.REG
[5];
9056 register_static_object(&once_value_15
);
9057 } else fra
.me
.REG
[5] = once_value_15
;
9058 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9059 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9060 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9061 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9062 if (!once_value_16
) {
9063 fra
.me
.REG
[3] = BOX_NativeString("' doesn't exists in ");
9064 REGB0
= TAG_Int(20);
9065 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9066 once_value_16
= fra
.me
.REG
[3];
9067 register_static_object(&once_value_16
);
9068 } else fra
.me
.REG
[3] = once_value_16
;
9069 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9070 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9071 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9072 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9073 if (!once_value_17
) {
9074 fra
.me
.REG
[2] = BOX_NativeString(".");
9076 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
9077 once_value_17
= fra
.me
.REG
[2];
9078 register_static_object(&once_value_17
);
9079 } else fra
.me
.REG
[2] = once_value_17
;
9080 fra
.me
.REG
[2] = fra
.me
.REG
[2];
9081 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9082 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9083 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9085 /* ./syntax//typing.nit:1530 */
9086 fra
.me
.REG
[4] = NIT_NULL
;
9089 /* ./syntax//typing.nit:1532 */
9090 fra
.me
.REG
[4] = fra
.me
.REG
[6];
9093 stack_frame_head
= fra
.me
.prev
;
9094 return fra
.me
.REG
[4];
9096 val_t
syntax___typing___AAbsSendExpr___get_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9097 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
9100 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9101 fra
.me
.file
= LOCATE_syntax___typing
;
9103 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_signature
;
9104 fra
.me
.has_broke
= 0;
9105 fra
.me
.REG_size
= 6;
9106 fra
.me
.REG
[0] = NIT_NULL
;
9107 fra
.me
.REG
[1] = NIT_NULL
;
9108 fra
.me
.REG
[2] = NIT_NULL
;
9109 fra
.me
.REG
[3] = NIT_NULL
;
9110 fra
.me
.REG
[4] = NIT_NULL
;
9111 fra
.me
.REG
[5] = NIT_NULL
;
9117 /* ./syntax//typing.nit:1538 */
9118 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9119 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9120 CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5], REGB0
);
9121 /* ./syntax//typing.nit:1539 */
9122 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
9123 /* ./syntax//typing.nit:1540 */
9124 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9125 if (UNTAG_Bool(REGB0
)) {
9126 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9127 fra
.me
.REG
[2] = fra
.me
.REG
[3];
9129 /* ./syntax//typing.nit:1541 */
9132 stack_frame_head
= fra
.me
.prev
;
9133 return fra
.me
.REG
[2];
9135 val_t
syntax___typing___AAbsSendExpr___prop(val_t p0
){
9136 struct {struct stack_frame_t me
;} fra
;
9139 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9140 fra
.me
.file
= LOCATE_syntax___typing
;
9142 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___prop
;
9143 fra
.me
.has_broke
= 0;
9144 fra
.me
.REG_size
= 1;
9145 fra
.me
.REG
[0] = NIT_NULL
;
9147 /* ./syntax//typing.nit:1545 */
9148 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
9149 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
9150 if (UNTAG_Bool(REGB0
)) {
9152 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1545);
9156 stack_frame_head
= fra
.me
.prev
;
9157 return fra
.me
.REG
[0];
9159 val_t
syntax___typing___AAbsSendExpr___return_type(val_t p0
){
9160 struct {struct stack_frame_t me
;} fra
;
9162 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9163 fra
.me
.file
= LOCATE_syntax___typing
;
9165 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___return_type
;
9166 fra
.me
.has_broke
= 0;
9167 fra
.me
.REG_size
= 1;
9168 fra
.me
.REG
[0] = NIT_NULL
;
9170 /* ./syntax//typing.nit:1548 */
9171 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]);
9172 stack_frame_head
= fra
.me
.prev
;
9173 return fra
.me
.REG
[0];
9175 void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0
, val_t p1
, val_t p2
){
9176 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
9181 static val_t once_value_1
; /* Once value */
9182 static val_t once_value_2
; /* Once value */
9183 static val_t once_value_3
; /* Once value */
9184 static val_t once_value_4
; /* Once value */
9185 static val_t once_value_5
; /* Once value */
9186 static val_t once_value_6
; /* Once value */
9187 static val_t once_value_7
; /* Once value */
9188 static val_t once_value_8
; /* Once value */
9189 static val_t once_value_9
; /* Once value */
9190 static val_t once_value_10
; /* Once value */
9191 static val_t once_value_11
; /* Once value */
9192 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9193 fra
.me
.file
= LOCATE_syntax___typing
;
9195 fra
.me
.meth
= LOCATE_syntax___typing___ASuperInitCall___register_super_init_call
;
9196 fra
.me
.has_broke
= 0;
9197 fra
.me
.REG_size
= 11;
9198 fra
.me
.REG
[0] = NIT_NULL
;
9199 fra
.me
.REG
[1] = NIT_NULL
;
9200 fra
.me
.REG
[2] = NIT_NULL
;
9201 fra
.me
.REG
[3] = NIT_NULL
;
9202 fra
.me
.REG
[4] = NIT_NULL
;
9203 fra
.me
.REG
[5] = NIT_NULL
;
9204 fra
.me
.REG
[6] = NIT_NULL
;
9205 fra
.me
.REG
[7] = NIT_NULL
;
9206 fra
.me
.REG
[8] = NIT_NULL
;
9207 fra
.me
.REG
[9] = NIT_NULL
;
9208 fra
.me
.REG
[10] = NIT_NULL
;
9212 /* ./syntax//typing.nit:1557 */
9213 fra
.me
.REG
[3] = CALL_parser___parser_prod___ANode___parent(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9214 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9215 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9216 if (UNTAG_Bool(REGB0
)) {
9218 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9219 if (UNTAG_Bool(REGB1
)) {
9220 REGB1
= TAG_Bool(false);
9223 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9227 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9228 if (UNTAG_Bool(REGB0
)) {
9229 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9230 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[0],fra
.me
.REG
[4]));
9231 if (UNTAG_Bool(REGB0
)) {
9233 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
9236 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9238 REGB1
= TAG_Bool(false);
9241 if (UNTAG_Bool(REGB0
)) {
9242 /* ./syntax//typing.nit:1558 */
9244 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9245 if (!once_value_1
) {
9246 fra
.me
.REG
[3] = BOX_NativeString("Error: Constructor invocation ");
9247 REGB0
= TAG_Int(30);
9248 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9249 once_value_1
= fra
.me
.REG
[3];
9250 register_static_object(&once_value_1
);
9251 } else fra
.me
.REG
[3] = once_value_1
;
9252 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9253 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9254 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9255 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9256 if (!once_value_2
) {
9257 fra
.me
.REG
[3] = BOX_NativeString(" must not be in nested block.");
9258 REGB0
= TAG_Int(29);
9259 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9260 once_value_2
= fra
.me
.REG
[3];
9261 register_static_object(&once_value_2
);
9262 } else fra
.me
.REG
[3] = once_value_2
;
9263 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9265 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9266 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9268 /* ./syntax//typing.nit:1560 */
9269 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9270 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9271 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9272 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9273 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9274 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9275 /* ./syntax//typing.nit:1561 */
9276 fra
.me
.REG
[4] = NIT_NULL
;
9277 /* ./syntax//typing.nit:1562 */
9278 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___explicit_super_init_calls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9279 REGB0
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
9280 if (UNTAG_Bool(REGB0
)) {
9282 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1562);
9284 /* ./syntax//typing.nit:1563 */
9285 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9286 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9287 if (UNTAG_Bool(REGB0
)) {
9288 /* ./syntax//typing.nit:1564 */
9289 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9290 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9291 if (UNTAG_Bool(REGB0
)) {
9292 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1564);
9294 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9295 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9296 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9297 fra
.me
.REG
[4] = fra
.me
.REG
[6];
9299 /* ./syntax//typing.nit:1566 */
9300 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9301 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9302 fra
.me
.REG
[6] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9303 /* ./syntax//typing.nit:1567 */
9304 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9305 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[7]));
9306 if (UNTAG_Bool(REGB0
)) {
9308 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
9311 if (UNTAG_Bool(REGB0
)) {
9312 /* ./syntax//typing.nit:1568 */
9313 REGB0
= TAG_Bool(true);
9314 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
9316 /* ./syntax//typing.nit:1569 */
9317 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
9318 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9319 if (UNTAG_Bool(REGB0
)) {
9320 /* ./syntax//typing.nit:1570 */
9322 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9323 if (!once_value_3
) {
9324 fra
.me
.REG
[8] = BOX_NativeString("Error: Constructor of class ");
9325 REGB0
= TAG_Int(28);
9326 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9327 once_value_3
= fra
.me
.REG
[8];
9328 register_static_object(&once_value_3
);
9329 } else fra
.me
.REG
[8] = once_value_3
;
9330 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9331 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9332 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9334 if (!once_value_4
) {
9335 fra
.me
.REG
[8] = BOX_NativeString(" must be one in ");
9336 REGB0
= TAG_Int(16);
9337 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9338 once_value_4
= fra
.me
.REG
[8];
9339 register_static_object(&once_value_4
);
9340 } else fra
.me
.REG
[8] = once_value_4
;
9341 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9342 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9343 if (!once_value_5
) {
9344 fra
.me
.REG
[8] = BOX_NativeString(", ");
9346 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9347 once_value_5
= fra
.me
.REG
[8];
9348 register_static_object(&once_value_5
);
9349 } else fra
.me
.REG
[8] = once_value_5
;
9350 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9351 fra
.me
.REG
[8] = CALL_standard___string___Collection___join(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8]);
9352 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9353 if (!once_value_6
) {
9354 fra
.me
.REG
[8] = BOX_NativeString(".");
9356 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9357 once_value_6
= fra
.me
.REG
[8];
9358 register_static_object(&once_value_6
);
9359 } else fra
.me
.REG
[8] = once_value_6
;
9360 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9361 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9362 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9363 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9365 /* ./syntax//typing.nit:1571 */
9366 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9367 if (UNTAG_Bool(REGB0
)) {
9369 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9372 if (UNTAG_Bool(REGB0
)) {
9373 /* ./syntax//typing.nit:1572 */
9375 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9376 if (!once_value_7
) {
9377 fra
.me
.REG
[8] = BOX_NativeString("Error: Only one super constructor invocation of class ");
9378 REGB0
= TAG_Int(54);
9379 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9380 once_value_7
= fra
.me
.REG
[8];
9381 register_static_object(&once_value_7
);
9382 } else fra
.me
.REG
[8] = once_value_7
;
9383 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9385 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9386 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9387 if (!once_value_8
) {
9388 fra
.me
.REG
[8] = BOX_NativeString(" is allowed.");
9389 REGB0
= TAG_Int(12);
9390 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9391 once_value_8
= fra
.me
.REG
[8];
9392 register_static_object(&once_value_8
);
9393 } else fra
.me
.REG
[8] = once_value_8
;
9394 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9395 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9396 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9397 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9399 /* ./../lib/standard//collection//array.nit:234 */
9401 /* ./../lib/standard//collection//array.nit:235 */
9402 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
9403 if (UNTAG_Bool(REGB1
)) {
9405 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 235);
9407 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
9408 /* ./../lib/standard//collection//array.nit:236 */
9409 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
9410 /* ./../lib/standard//collection//array.nit:237 */
9412 /* ./../lib/standard//collection//array.nit:23 */
9413 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
9414 if (UNTAG_Bool(REGB1
)) {
9416 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
9418 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
9419 /* ./../lib/standard//kernel.nit:215 */
9420 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
9421 /* ./../lib/standard//collection//array.nit:237 */
9422 if (UNTAG_Bool(REGB1
)) {
9423 /* ./../lib/standard//collection//array.nit:238 */
9424 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9425 if (UNTAG_Bool(REGB1
)) {
9426 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 238);
9428 /* ./../lib/standard//collection//array.nit:654 */
9429 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
9430 /* ./syntax//typing.nit:1575 */
9431 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[8],fra
.me
.REG
[4]));
9432 if (UNTAG_Bool(REGB1
)) {
9434 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[4]);
9437 if (UNTAG_Bool(REGB1
)) {
9438 /* ./syntax//typing.nit:1576 */
9439 fra
.me
.REG
[4] = NIT_NULL
;
9441 /* ./syntax//typing.nit:1577 */
9442 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[8],fra
.me
.REG
[3]));
9443 if (UNTAG_Bool(REGB1
)) {
9445 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9448 if (UNTAG_Bool(REGB1
)) {
9449 /* ./syntax//typing.nit:1578 */
9450 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9451 if (UNTAG_Bool(REGB1
)) {
9453 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9454 if (UNTAG_Bool(REGB2
)) {
9455 REGB2
= TAG_Bool(false);
9458 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9462 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9463 if (UNTAG_Bool(REGB1
)) {
9464 /* ./syntax//typing.nit:1579 */
9466 fra
.me
.REG
[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9467 if (!once_value_9
) {
9468 fra
.me
.REG
[10] = BOX_NativeString("Error: Constructor of ");
9469 REGB1
= TAG_Int(22);
9470 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB1
);
9471 once_value_9
= fra
.me
.REG
[10];
9472 register_static_object(&once_value_9
);
9473 } else fra
.me
.REG
[10] = once_value_9
;
9474 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9475 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
9476 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9477 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9478 if (!once_value_10
) {
9479 fra
.me
.REG
[8] = BOX_NativeString(" must be invoked before constructor of ");
9480 REGB1
= TAG_Int(39);
9481 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
9482 once_value_10
= fra
.me
.REG
[8];
9483 register_static_object(&once_value_10
);
9484 } else fra
.me
.REG
[8] = once_value_10
;
9485 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9486 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9487 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9488 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9489 if (!once_value_11
) {
9490 fra
.me
.REG
[8] = BOX_NativeString("");
9492 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
9493 once_value_11
= fra
.me
.REG
[8];
9494 register_static_object(&once_value_11
);
9495 } else fra
.me
.REG
[8] = once_value_11
;
9496 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9497 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9498 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9499 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[9]);
9501 /* ./syntax//typing.nit:1581 */
9502 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
9503 /* ./syntax//typing.nit:1582 */
9507 /* ./../lib/standard//collection//array.nit:239 */
9509 /* ./../lib/standard//kernel.nit:218 */
9510 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
9511 /* ./../lib/standard//collection//array.nit:239 */
9514 /* ./../lib/standard//collection//array.nit:237 */
9523 stack_frame_head
= fra
.me
.prev
;
9526 val_t
syntax___typing___ANewExpr___compute_raw_arguments(val_t p0
){
9527 struct {struct stack_frame_t me
;} fra
;
9529 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9530 fra
.me
.file
= LOCATE_syntax___typing
;
9532 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___compute_raw_arguments
;
9533 fra
.me
.has_broke
= 0;
9534 fra
.me
.REG_size
= 1;
9535 fra
.me
.REG
[0] = NIT_NULL
;
9537 /* ./syntax//typing.nit:1591 */
9538 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ANewExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9539 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9542 stack_frame_head
= fra
.me
.prev
;
9543 return fra
.me
.REG
[0];
9545 void syntax___typing___ANewExpr___after_typing(val_t p0
, val_t p1
){
9546 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
9550 static val_t once_value_2
; /* Once value */
9551 static val_t once_value_3
; /* Once value */
9552 static val_t once_value_4
; /* Once value */
9553 static val_t once_value_5
; /* Once value */
9554 static val_t once_value_6
; /* Once value */
9555 static val_t once_value_7
; /* Once value */
9556 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9557 fra
.me
.file
= LOCATE_syntax___typing
;
9559 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___after_typing
;
9560 fra
.me
.has_broke
= 0;
9561 fra
.me
.REG_size
= 5;
9562 fra
.me
.REG
[0] = NIT_NULL
;
9563 fra
.me
.REG
[1] = NIT_NULL
;
9564 fra
.me
.REG
[2] = NIT_NULL
;
9565 fra
.me
.REG
[3] = NIT_NULL
;
9566 fra
.me
.REG
[4] = NIT_NULL
;
9569 /* ./syntax//typing.nit:1594 */
9570 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9571 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9572 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9573 if (UNTAG_Bool(REGB0
)) {
9576 /* ./syntax//typing.nit:1595 */
9577 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9578 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9579 /* ./syntax//typing.nit:1596 */
9580 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9581 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9582 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9583 if (UNTAG_Bool(REGB0
)) {
9584 /* ./syntax//typing.nit:1597 */
9586 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9587 if (!once_value_2
) {
9588 fra
.me
.REG
[4] = BOX_NativeString("Error: try to instantiate abstract class ");
9589 REGB0
= TAG_Int(41);
9590 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9591 once_value_2
= fra
.me
.REG
[4];
9592 register_static_object(&once_value_2
);
9593 } else fra
.me
.REG
[4] = once_value_2
;
9594 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9596 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9597 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9598 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9599 if (!once_value_3
) {
9600 fra
.me
.REG
[4] = BOX_NativeString(".");
9602 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9603 once_value_3
= fra
.me
.REG
[4];
9604 register_static_object(&once_value_3
);
9605 } else fra
.me
.REG
[4] = once_value_3
;
9606 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9607 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9608 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9609 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
9610 /* ./syntax//typing.nit:1598 */
9613 /* ./syntax//typing.nit:1601 */
9614 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9615 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9616 if (UNTAG_Bool(REGB0
)) {
9618 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9619 if (UNTAG_Bool(REGB1
)) {
9620 REGB1
= TAG_Bool(false);
9623 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9627 if (UNTAG_Bool(REGB0
)) {
9628 /* ./syntax//typing.nit:1602 */
9629 if (!once_value_4
) {
9630 if (!once_value_5
) {
9631 fra
.me
.REG
[3] = BOX_NativeString("init");
9633 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9634 once_value_5
= fra
.me
.REG
[3];
9635 register_static_object(&once_value_5
);
9636 } else fra
.me
.REG
[3] = once_value_5
;
9637 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9638 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9639 once_value_4
= fra
.me
.REG
[3];
9640 register_static_object(&once_value_4
);
9641 } else fra
.me
.REG
[3] = once_value_4
;
9642 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9644 /* ./syntax//typing.nit:1604 */
9645 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9646 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9647 if (UNTAG_Bool(REGB0
)) {
9648 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1604);
9650 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9651 fra
.me
.REG
[3] = fra
.me
.REG
[4];
9653 /* ./syntax//typing.nit:1607 */
9654 REGB0
= TAG_Bool(false);
9655 REGB1
= TAG_Bool(false);
9656 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9657 CALL_syntax___typing___AAbsSendExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
, REGB1
, fra
.me
.REG
[3], fra
.me
.REG
[4], NIT_NULL
);
9658 /* ./syntax//typing.nit:1608 */
9659 fra
.me
.REG
[4] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
9660 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9661 if (UNTAG_Bool(REGB1
)) {
9663 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9664 if (UNTAG_Bool(REGB0
)) {
9665 REGB0
= TAG_Bool(false);
9668 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9672 if (UNTAG_Bool(REGB1
)) {
9675 /* ./syntax//typing.nit:1610 */
9676 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9677 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9678 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9679 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9680 if (UNTAG_Bool(REGB1
)) {
9681 /* ./syntax//typing.nit:1611 */
9683 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9684 if (!once_value_6
) {
9685 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
9687 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
9688 once_value_6
= fra
.me
.REG
[3];
9689 register_static_object(&once_value_6
);
9690 } else fra
.me
.REG
[3] = once_value_6
;
9691 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9692 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9693 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9694 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9695 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9696 if (!once_value_7
) {
9697 fra
.me
.REG
[3] = BOX_NativeString(" is not a constructor.");
9698 REGB1
= TAG_Int(22);
9699 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
9700 once_value_7
= fra
.me
.REG
[3];
9701 register_static_object(&once_value_7
);
9702 } else fra
.me
.REG
[3] = once_value_7
;
9703 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9704 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9705 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9706 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9707 /* ./syntax//typing.nit:1612 */
9710 /* ./syntax//typing.nit:1614 */
9711 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9712 /* ./syntax//typing.nit:1615 */
9713 REGB1
= TAG_Bool(true);
9714 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
9716 stack_frame_head
= fra
.me
.prev
;
9719 val_t
syntax___typing___ASendExpr___name(val_t p0
){
9720 struct {struct stack_frame_t me
;} fra
;
9722 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9723 fra
.me
.file
= LOCATE_syntax___typing
;
9725 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___name
;
9726 fra
.me
.has_broke
= 0;
9727 fra
.me
.REG_size
= 0;
9728 /* ./syntax//typing.nit:1621 */
9729 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1621);
9730 stack_frame_head
= fra
.me
.prev
;
9733 val_t
syntax___typing___ASendExpr___closure_defs(val_t p0
){
9734 struct {struct stack_frame_t me
;} fra
;
9736 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9737 fra
.me
.file
= LOCATE_syntax___typing
;
9739 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___closure_defs
;
9740 fra
.me
.has_broke
= 0;
9741 fra
.me
.REG_size
= 1;
9742 fra
.me
.REG
[0] = NIT_NULL
;
9744 /* ./syntax//typing.nit:1625 */
9745 fra
.me
.REG
[0] = NIT_NULL
;
9748 stack_frame_head
= fra
.me
.prev
;
9749 return fra
.me
.REG
[0];
9751 void syntax___typing___ASendExpr___after_typing(val_t p0
, val_t p1
){
9752 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9754 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9755 fra
.me
.file
= LOCATE_syntax___typing
;
9757 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___after_typing
;
9758 fra
.me
.has_broke
= 0;
9759 fra
.me
.REG_size
= 2;
9760 fra
.me
.REG
[0] = NIT_NULL
;
9761 fra
.me
.REG
[1] = NIT_NULL
;
9764 /* ./syntax//typing.nit:1629 */
9765 CALL_syntax___typing___ASendExpr___do_all_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
9766 stack_frame_head
= fra
.me
.prev
;
9769 void syntax___typing___ASendExpr___do_all_typing(val_t p0
, val_t p1
){
9770 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
9774 static val_t once_value_2
; /* Once value */
9775 static val_t once_value_3
; /* Once value */
9776 static val_t once_value_4
; /* Once value */
9777 static val_t once_value_5
; /* Once value */
9778 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9779 fra
.me
.file
= LOCATE_syntax___typing
;
9781 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___do_all_typing
;
9782 fra
.me
.has_broke
= 0;
9783 fra
.me
.REG_size
= 6;
9784 fra
.me
.REG
[0] = NIT_NULL
;
9785 fra
.me
.REG
[1] = NIT_NULL
;
9786 fra
.me
.REG
[2] = NIT_NULL
;
9787 fra
.me
.REG
[3] = NIT_NULL
;
9788 fra
.me
.REG
[4] = NIT_NULL
;
9789 fra
.me
.REG
[5] = NIT_NULL
;
9792 /* ./syntax//typing.nit:1634 */
9793 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9794 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
9795 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9796 if (UNTAG_Bool(REGB0
)) {
9799 /* ./syntax//typing.nit:1635 */
9800 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9801 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9802 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9803 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9804 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9805 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9806 fra
.me
.REG
[3] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9807 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9808 fra
.me
.REG
[5] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9809 CALL_syntax___typing___AAbsSendExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
, REGB1
, fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[5]);
9810 /* ./syntax//typing.nit:1636 */
9811 fra
.me
.REG
[5] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
9812 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9813 if (UNTAG_Bool(REGB1
)) {
9815 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9816 if (UNTAG_Bool(REGB0
)) {
9817 REGB0
= TAG_Bool(false);
9820 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9824 if (UNTAG_Bool(REGB1
)) {
9827 /* ./syntax//typing.nit:1637 */
9828 fra
.me
.REG
[5] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
9829 REGB1
= TAG_Bool(fra
.me
.REG
[5]!=NIT_NULL
);
9830 if (UNTAG_Bool(REGB1
)) {
9832 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1637);
9834 /* ./syntax//typing.nit:1639 */
9835 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9836 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9837 if (UNTAG_Bool(REGB1
)) {
9838 /* ./syntax//typing.nit:1640 */
9839 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9840 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9841 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9842 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9843 if (UNTAG_Bool(REGB1
)) {
9844 /* ./syntax//typing.nit:1641 */
9846 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9847 if (!once_value_2
) {
9848 fra
.me
.REG
[3] = BOX_NativeString("Error: try to invoke constructor ");
9849 REGB1
= TAG_Int(33);
9850 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
9851 once_value_2
= fra
.me
.REG
[3];
9852 register_static_object(&once_value_2
);
9853 } else fra
.me
.REG
[3] = once_value_2
;
9854 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9855 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9856 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9857 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9858 if (!once_value_3
) {
9859 fra
.me
.REG
[3] = BOX_NativeString(" in a method.");
9860 REGB1
= TAG_Int(13);
9861 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
9862 once_value_3
= fra
.me
.REG
[3];
9863 register_static_object(&once_value_3
);
9864 } else fra
.me
.REG
[3] = once_value_3
;
9865 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9866 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9867 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9868 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9870 /* ./syntax//typing.nit:1642 */
9871 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9872 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9873 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9874 if (UNTAG_Bool(REGB1
)) {
9875 /* ./syntax//typing.nit:1643 */
9877 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9878 if (!once_value_4
) {
9879 fra
.me
.REG
[3] = BOX_NativeString("Error: constructor ");
9880 REGB1
= TAG_Int(19);
9881 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
9882 once_value_4
= fra
.me
.REG
[3];
9883 register_static_object(&once_value_4
);
9884 } else fra
.me
.REG
[3] = once_value_4
;
9885 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9886 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9887 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9888 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9889 if (!once_value_5
) {
9890 fra
.me
.REG
[3] = BOX_NativeString(" is not invoken on 'self'.");
9891 REGB1
= TAG_Int(26);
9892 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
9893 once_value_5
= fra
.me
.REG
[3];
9894 register_static_object(&once_value_5
);
9895 } else fra
.me
.REG
[3] = once_value_5
;
9896 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9897 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9898 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9899 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9901 /* ./syntax//typing.nit:1645 */
9902 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5]);
9906 /* ./syntax//typing.nit:1649 */
9907 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAbsSendExpr___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9908 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
9909 /* ./syntax//typing.nit:1650 */
9910 REGB1
= TAG_Bool(true);
9911 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
9913 stack_frame_head
= fra
.me
.prev
;
9916 val_t
syntax___typing___ASendReassignExpr___read_prop(val_t p0
){
9917 struct {struct stack_frame_t me
;} fra
;
9920 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9921 fra
.me
.file
= LOCATE_syntax___typing
;
9923 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___read_prop
;
9924 fra
.me
.has_broke
= 0;
9925 fra
.me
.REG_size
= 1;
9926 fra
.me
.REG
[0] = NIT_NULL
;
9928 /* ./syntax//typing.nit:1655 */
9929 fra
.me
.REG
[0] = ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[0]);
9930 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
9931 if (UNTAG_Bool(REGB0
)) {
9933 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1655);
9937 stack_frame_head
= fra
.me
.prev
;
9938 return fra
.me
.REG
[0];
9940 void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0
, val_t p1
){
9941 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
9946 static val_t once_value_2
; /* Once value */
9947 static val_t once_value_3
; /* Once value */
9948 static val_t once_value_4
; /* Once value */
9949 static val_t once_value_5
; /* Once value */
9950 static val_t once_value_6
; /* Once value */
9951 static val_t once_value_7
; /* Once value */
9952 static val_t once_value_8
; /* Once value */
9953 static val_t once_value_9
; /* Once value */
9954 static val_t once_value_10
; /* Once value */
9955 static val_t once_value_11
; /* Once value */
9956 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9957 fra
.me
.file
= LOCATE_syntax___typing
;
9959 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___do_all_typing
;
9960 fra
.me
.has_broke
= 0;
9961 fra
.me
.REG_size
= 7;
9962 fra
.me
.REG
[0] = NIT_NULL
;
9963 fra
.me
.REG
[1] = NIT_NULL
;
9964 fra
.me
.REG
[2] = NIT_NULL
;
9965 fra
.me
.REG
[3] = NIT_NULL
;
9966 fra
.me
.REG
[4] = NIT_NULL
;
9967 fra
.me
.REG
[5] = NIT_NULL
;
9968 fra
.me
.REG
[6] = NIT_NULL
;
9971 /* ./syntax//typing.nit:1659 */
9972 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9973 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
9974 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9975 if (UNTAG_Bool(REGB0
)) {
9978 /* ./syntax//typing.nit:1660 */
9979 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9980 /* ./syntax//typing.nit:1661 */
9981 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9982 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9983 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9984 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9985 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9986 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9987 fra
.me
.REG
[4] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9988 CALL_syntax___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
);
9989 /* ./syntax//typing.nit:1662 */
9990 fra
.me
.REG
[4] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
9991 /* ./syntax//typing.nit:1663 */
9992 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9993 if (UNTAG_Bool(REGB1
)) {
9995 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9996 if (UNTAG_Bool(REGB0
)) {
9997 REGB0
= TAG_Bool(false);
10000 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10004 if (UNTAG_Bool(REGB1
)) {
10007 /* ./syntax//typing.nit:1664 */
10008 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10009 if (UNTAG_Bool(REGB1
)) {
10010 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1664);
10012 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10013 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10014 if (UNTAG_Bool(REGB1
)) {
10015 /* ./syntax//typing.nit:1665 */
10016 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10017 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10018 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10019 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10020 if (UNTAG_Bool(REGB1
)) {
10021 /* ./syntax//typing.nit:1666 */
10022 REGB1
= TAG_Int(3);
10023 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10024 if (!once_value_2
) {
10025 fra
.me
.REG
[5] = BOX_NativeString("Error: try to invoke constructor ");
10026 REGB1
= TAG_Int(33);
10027 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10028 once_value_2
= fra
.me
.REG
[5];
10029 register_static_object(&once_value_2
);
10030 } else fra
.me
.REG
[5] = once_value_2
;
10031 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10032 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10033 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10034 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10035 if (!once_value_3
) {
10036 fra
.me
.REG
[5] = BOX_NativeString(" in a method.");
10037 REGB1
= TAG_Int(13);
10038 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10039 once_value_3
= fra
.me
.REG
[5];
10040 register_static_object(&once_value_3
);
10041 } else fra
.me
.REG
[5] = once_value_3
;
10042 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10043 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10044 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10045 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10047 /* ./syntax//typing.nit:1667 */
10048 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10049 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10050 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10051 if (UNTAG_Bool(REGB1
)) {
10052 /* ./syntax//typing.nit:1668 */
10053 REGB1
= TAG_Int(3);
10054 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10055 if (!once_value_4
) {
10056 fra
.me
.REG
[5] = BOX_NativeString("Error: constructor ");
10057 REGB1
= TAG_Int(19);
10058 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10059 once_value_4
= fra
.me
.REG
[5];
10060 register_static_object(&once_value_4
);
10061 } else fra
.me
.REG
[5] = once_value_4
;
10062 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10063 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10064 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10065 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10066 if (!once_value_5
) {
10067 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
10068 REGB1
= TAG_Int(26);
10069 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10070 once_value_5
= fra
.me
.REG
[5];
10071 register_static_object(&once_value_5
);
10072 } else fra
.me
.REG
[5] = once_value_5
;
10073 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10075 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10076 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10080 /* ./syntax//typing.nit:1671 */
10081 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10082 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10083 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10084 if (UNTAG_Bool(REGB1
)) {
10085 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1671);
10087 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10088 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10089 REGB1
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
10090 if (UNTAG_Bool(REGB1
)) {
10092 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1671);
10094 /* ./syntax//typing.nit:1672 */
10095 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10096 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10097 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10098 if (UNTAG_Bool(REGB1
)) {
10099 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10100 fra
.me
.REG
[3] = fra
.me
.REG
[5];
10102 /* ./syntax//typing.nit:1674 */
10103 fra
.me
.REG
[3] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
10104 /* ./syntax//typing.nit:1675 */
10105 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10106 if (UNTAG_Bool(REGB1
)) {
10108 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10109 if (UNTAG_Bool(REGB0
)) {
10110 REGB0
= TAG_Bool(false);
10113 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10117 if (UNTAG_Bool(REGB1
)) {
10120 /* ./syntax//typing.nit:1676 */
10121 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10122 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10123 CALL_syntax___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]);
10124 /* ./syntax//typing.nit:1678 */
10125 ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
10126 /* ./syntax//typing.nit:1679 */
10127 fra
.me
.REG
[5] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10128 fra
.me
.REG
[2] = fra
.me
.REG
[5];
10129 /* ./syntax//typing.nit:1680 */
10130 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
10132 /* ./syntax//typing.nit:1682 */
10133 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10134 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10135 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10136 REGB1
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10137 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10138 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10139 REGB2
= TAG_Int(3);
10140 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
10141 if (!once_value_6
) {
10142 fra
.me
.REG
[6] = BOX_NativeString("");
10143 REGB2
= TAG_Int(0);
10144 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10145 once_value_6
= fra
.me
.REG
[6];
10146 register_static_object(&once_value_6
);
10147 } else fra
.me
.REG
[6] = once_value_6
;
10148 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10149 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
10150 fra
.me
.REG
[6] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10151 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10152 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
10153 if (!once_value_7
) {
10154 fra
.me
.REG
[6] = BOX_NativeString("=");
10155 REGB2
= TAG_Int(1);
10156 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10157 once_value_7
= fra
.me
.REG
[6];
10158 register_static_object(&once_value_7
);
10159 } else fra
.me
.REG
[6] = once_value_7
;
10160 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
10162 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10163 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10164 CALL_syntax___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
);
10165 /* ./syntax//typing.nit:1683 */
10166 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10167 if (UNTAG_Bool(REGB0
)) {
10168 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1683);
10170 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10171 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10172 if (UNTAG_Bool(REGB0
)) {
10173 /* ./syntax//typing.nit:1684 */
10174 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10175 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10176 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10177 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10178 if (UNTAG_Bool(REGB0
)) {
10179 /* ./syntax//typing.nit:1685 */
10180 REGB0
= TAG_Int(3);
10181 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10182 if (!once_value_8
) {
10183 fra
.me
.REG
[3] = BOX_NativeString("Error: try to invoke constructor ");
10184 REGB0
= TAG_Int(33);
10185 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
10186 once_value_8
= fra
.me
.REG
[3];
10187 register_static_object(&once_value_8
);
10188 } else fra
.me
.REG
[3] = once_value_8
;
10189 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10190 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
10191 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10192 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
10193 if (!once_value_9
) {
10194 fra
.me
.REG
[3] = BOX_NativeString(" in a method.");
10195 REGB0
= TAG_Int(13);
10196 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
10197 once_value_9
= fra
.me
.REG
[3];
10198 register_static_object(&once_value_9
);
10199 } else fra
.me
.REG
[3] = once_value_9
;
10200 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10201 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
10202 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10203 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
10205 /* ./syntax//typing.nit:1686 */
10206 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10207 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10208 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10209 if (UNTAG_Bool(REGB0
)) {
10210 /* ./syntax//typing.nit:1687 */
10211 REGB0
= TAG_Int(3);
10212 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10213 if (!once_value_10
) {
10214 fra
.me
.REG
[3] = BOX_NativeString("Error: constructor ");
10215 REGB0
= TAG_Int(19);
10216 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
10217 once_value_10
= fra
.me
.REG
[3];
10218 register_static_object(&once_value_10
);
10219 } else fra
.me
.REG
[3] = once_value_10
;
10220 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10221 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
10222 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10223 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
10224 if (!once_value_11
) {
10225 fra
.me
.REG
[4] = BOX_NativeString(" is not invoken on 'self'.");
10226 REGB0
= TAG_Int(26);
10227 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10228 once_value_11
= fra
.me
.REG
[4];
10229 register_static_object(&once_value_11
);
10230 } else fra
.me
.REG
[4] = once_value_11
;
10231 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10232 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
10233 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10234 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
10238 /* ./syntax//typing.nit:1691 */
10239 REGB0
= TAG_Bool(true);
10240 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
10242 stack_frame_head
= fra
.me
.prev
;
10245 val_t
syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0
){
10246 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10249 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10250 fra
.me
.file
= LOCATE_syntax___typing
;
10251 fra
.me
.line
= 1696;
10252 fra
.me
.meth
= LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments
;
10253 fra
.me
.has_broke
= 0;
10254 fra
.me
.REG_size
= 2;
10255 fra
.me
.REG
[0] = NIT_NULL
;
10256 fra
.me
.REG
[1] = NIT_NULL
;
10257 fra
.me
.REG
[0] = p0
;
10258 /* ./syntax//typing.nit:1696 */
10259 REGB0
= TAG_Int(1);
10260 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10261 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10262 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
10265 stack_frame_head
= fra
.me
.prev
;
10266 return fra
.me
.REG
[1];
10268 val_t
syntax___typing___AEqExpr___name(val_t p0
){
10269 struct {struct stack_frame_t me
;} fra
;
10272 static val_t once_value_1
; /* Once value */
10273 static val_t once_value_2
; /* Once value */
10274 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10275 fra
.me
.file
= LOCATE_syntax___typing
;
10276 fra
.me
.line
= 1699;
10277 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___name
;
10278 fra
.me
.has_broke
= 0;
10279 fra
.me
.REG_size
= 1;
10280 fra
.me
.REG
[0] = NIT_NULL
;
10281 fra
.me
.REG
[0] = p0
;
10282 /* ./syntax//typing.nit:1699 */
10283 if (!once_value_1
) {
10284 if (!once_value_2
) {
10285 fra
.me
.REG
[0] = BOX_NativeString("==");
10286 REGB0
= TAG_Int(2);
10287 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10288 once_value_2
= fra
.me
.REG
[0];
10289 register_static_object(&once_value_2
);
10290 } else fra
.me
.REG
[0] = once_value_2
;
10291 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10292 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10293 once_value_1
= fra
.me
.REG
[0];
10294 register_static_object(&once_value_1
);
10295 } else fra
.me
.REG
[0] = once_value_1
;
10296 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10299 stack_frame_head
= fra
.me
.prev
;
10300 return fra
.me
.REG
[0];
10302 void syntax___typing___AEqExpr___after_typing(val_t p0
, val_t p1
){
10303 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
10307 static val_t once_value_2
; /* Once value */
10308 static val_t once_value_3
; /* Once value */
10309 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10310 fra
.me
.file
= LOCATE_syntax___typing
;
10311 fra
.me
.line
= 1700;
10312 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___after_typing
;
10313 fra
.me
.has_broke
= 0;
10314 fra
.me
.REG_size
= 4;
10315 fra
.me
.REG
[0] = NIT_NULL
;
10316 fra
.me
.REG
[1] = NIT_NULL
;
10317 fra
.me
.REG
[2] = NIT_NULL
;
10318 fra
.me
.REG
[3] = NIT_NULL
;
10319 fra
.me
.REG
[0] = p0
;
10320 fra
.me
.REG
[1] = p1
;
10321 /* ./syntax//typing.nit:1700 */
10322 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10323 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10324 /* ./syntax//typing.nit:1702 */
10325 CALL_SUPER_syntax___typing___AEqExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10326 /* ./syntax//typing.nit:1703 */
10327 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10328 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10329 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10330 if (UNTAG_Bool(REGB0
)) {
10331 REGB0
= TAG_Bool(true);
10333 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10334 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10335 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10338 if (UNTAG_Bool(REGB0
)) {
10341 /* ./syntax//typing.nit:1704 */
10342 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10343 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10344 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10345 if (UNTAG_Bool(REGB0
)) {
10346 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10347 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10348 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10349 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10351 REGB1
= TAG_Bool(false);
10354 if (UNTAG_Bool(REGB0
)) {
10355 REGB0
= TAG_Bool(true);
10357 /* ./syntax//typing.nit:1705 */
10358 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10359 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10360 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10361 /* ./syntax//typing.nit:1704 */
10364 if (UNTAG_Bool(REGB0
)) {
10365 /* ./syntax//typing.nit:1705 */
10366 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10367 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10368 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10369 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10371 /* ./syntax//typing.nit:1704 */
10372 REGB1
= TAG_Bool(false);
10375 if (UNTAG_Bool(REGB0
)) {
10376 /* ./syntax//typing.nit:1706 */
10377 if (!once_value_2
) {
10378 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
10379 REGB0
= TAG_Int(59);
10380 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10381 once_value_2
= fra
.me
.REG
[1];
10382 register_static_object(&once_value_2
);
10383 } else fra
.me
.REG
[1] = once_value_2
;
10384 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10385 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10387 /* ./syntax//typing.nit:1709 */
10388 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10389 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10390 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10391 if (UNTAG_Bool(REGB0
)) {
10392 /* ./syntax//typing.nit:1710 */
10393 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10394 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10395 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10396 if (UNTAG_Bool(REGB0
)) {
10397 /* ./syntax//typing.nit:1711 */
10398 if (!once_value_3
) {
10399 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
10400 REGB0
= TAG_Int(43);
10401 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10402 once_value_3
= fra
.me
.REG
[1];
10403 register_static_object(&once_value_3
);
10404 } else fra
.me
.REG
[1] = once_value_3
;
10405 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10406 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10408 /* ./syntax//typing.nit:1713 */
10409 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10410 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10413 /* ./syntax//typing.nit:1715 */
10414 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10415 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10416 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10417 if (UNTAG_Bool(REGB0
)) {
10418 /* ./syntax//typing.nit:1716 */
10419 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10420 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10424 stack_frame_head
= fra
.me
.prev
;
10427 void syntax___typing___AEqExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
10428 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10432 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10433 fra
.me
.file
= LOCATE_syntax___typing
;
10434 fra
.me
.line
= 1720;
10435 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___try_to_isa
;
10436 fra
.me
.has_broke
= 0;
10437 fra
.me
.REG_size
= 5;
10438 fra
.me
.REG
[0] = NIT_NULL
;
10439 fra
.me
.REG
[1] = NIT_NULL
;
10440 fra
.me
.REG
[2] = NIT_NULL
;
10441 fra
.me
.REG
[3] = NIT_NULL
;
10442 fra
.me
.REG
[4] = NIT_NULL
;
10443 fra
.me
.REG
[0] = p0
;
10444 fra
.me
.REG
[1] = p1
;
10445 fra
.me
.REG
[2] = p2
;
10446 /* ./syntax//typing.nit:1722 */
10447 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10448 /* ./syntax//typing.nit:1723 */
10449 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10450 if (UNTAG_Bool(REGB0
)) {
10452 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10453 if (UNTAG_Bool(REGB1
)) {
10454 REGB1
= TAG_Bool(false);
10457 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10461 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10462 if (UNTAG_Bool(REGB0
)) {
10463 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10464 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
10466 REGB1
= TAG_Bool(false);
10469 if (UNTAG_Bool(REGB0
)) {
10470 /* ./syntax//typing.nit:1724 */
10471 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10472 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10473 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10474 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
10475 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10476 /* ./syntax//typing.nit:1725 */
10477 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10478 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10479 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10480 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
10482 stack_frame_head
= fra
.me
.prev
;
10485 val_t
syntax___typing___ANeExpr___name(val_t p0
){
10486 struct {struct stack_frame_t me
;} fra
;
10489 static val_t once_value_1
; /* Once value */
10490 static val_t once_value_2
; /* Once value */
10491 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10492 fra
.me
.file
= LOCATE_syntax___typing
;
10493 fra
.me
.line
= 1730;
10494 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___name
;
10495 fra
.me
.has_broke
= 0;
10496 fra
.me
.REG_size
= 1;
10497 fra
.me
.REG
[0] = NIT_NULL
;
10498 fra
.me
.REG
[0] = p0
;
10499 /* ./syntax//typing.nit:1730 */
10500 if (!once_value_1
) {
10501 if (!once_value_2
) {
10502 fra
.me
.REG
[0] = BOX_NativeString("!=");
10503 REGB0
= TAG_Int(2);
10504 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10505 once_value_2
= fra
.me
.REG
[0];
10506 register_static_object(&once_value_2
);
10507 } else fra
.me
.REG
[0] = once_value_2
;
10508 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10509 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10510 once_value_1
= fra
.me
.REG
[0];
10511 register_static_object(&once_value_1
);
10512 } else fra
.me
.REG
[0] = once_value_1
;
10513 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10516 stack_frame_head
= fra
.me
.prev
;
10517 return fra
.me
.REG
[0];
10519 void syntax___typing___ANeExpr___after_typing(val_t p0
, val_t p1
){
10520 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
10524 static val_t once_value_2
; /* Once value */
10525 static val_t once_value_3
; /* Once value */
10526 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10527 fra
.me
.file
= LOCATE_syntax___typing
;
10528 fra
.me
.line
= 1731;
10529 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___after_typing
;
10530 fra
.me
.has_broke
= 0;
10531 fra
.me
.REG_size
= 4;
10532 fra
.me
.REG
[0] = NIT_NULL
;
10533 fra
.me
.REG
[1] = NIT_NULL
;
10534 fra
.me
.REG
[2] = NIT_NULL
;
10535 fra
.me
.REG
[3] = NIT_NULL
;
10536 fra
.me
.REG
[0] = p0
;
10537 fra
.me
.REG
[1] = p1
;
10538 /* ./syntax//typing.nit:1731 */
10539 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10540 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10541 /* ./syntax//typing.nit:1733 */
10542 CALL_SUPER_syntax___typing___ANeExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10543 /* ./syntax//typing.nit:1734 */
10544 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10545 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10546 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10547 if (UNTAG_Bool(REGB0
)) {
10548 REGB0
= TAG_Bool(true);
10550 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10551 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10552 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10555 if (UNTAG_Bool(REGB0
)) {
10558 /* ./syntax//typing.nit:1735 */
10559 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10560 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10561 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10562 if (UNTAG_Bool(REGB0
)) {
10563 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10564 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10565 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10566 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10568 REGB1
= TAG_Bool(false);
10571 if (UNTAG_Bool(REGB0
)) {
10572 REGB0
= TAG_Bool(true);
10574 /* ./syntax//typing.nit:1736 */
10575 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10576 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10577 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10578 /* ./syntax//typing.nit:1735 */
10581 if (UNTAG_Bool(REGB0
)) {
10582 /* ./syntax//typing.nit:1736 */
10583 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10584 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10585 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10586 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10588 /* ./syntax//typing.nit:1735 */
10589 REGB1
= TAG_Bool(false);
10592 if (UNTAG_Bool(REGB0
)) {
10593 /* ./syntax//typing.nit:1737 */
10594 if (!once_value_2
) {
10595 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
10596 REGB0
= TAG_Int(59);
10597 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10598 once_value_2
= fra
.me
.REG
[1];
10599 register_static_object(&once_value_2
);
10600 } else fra
.me
.REG
[1] = once_value_2
;
10601 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10602 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10604 /* ./syntax//typing.nit:1740 */
10605 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10606 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10607 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10608 if (UNTAG_Bool(REGB0
)) {
10609 /* ./syntax//typing.nit:1741 */
10610 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10611 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10612 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10613 if (UNTAG_Bool(REGB0
)) {
10614 /* ./syntax//typing.nit:1742 */
10615 if (!once_value_3
) {
10616 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
10617 REGB0
= TAG_Int(43);
10618 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10619 once_value_3
= fra
.me
.REG
[1];
10620 register_static_object(&once_value_3
);
10621 } else fra
.me
.REG
[1] = once_value_3
;
10622 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10623 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10625 /* ./syntax//typing.nit:1744 */
10626 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10627 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10630 /* ./syntax//typing.nit:1746 */
10631 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10632 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10633 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10634 if (UNTAG_Bool(REGB0
)) {
10635 /* ./syntax//typing.nit:1747 */
10636 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10637 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10641 stack_frame_head
= fra
.me
.prev
;
10644 void syntax___typing___ANeExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
10645 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10649 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10650 fra
.me
.file
= LOCATE_syntax___typing
;
10651 fra
.me
.line
= 1751;
10652 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___try_to_isa
;
10653 fra
.me
.has_broke
= 0;
10654 fra
.me
.REG_size
= 5;
10655 fra
.me
.REG
[0] = NIT_NULL
;
10656 fra
.me
.REG
[1] = NIT_NULL
;
10657 fra
.me
.REG
[2] = NIT_NULL
;
10658 fra
.me
.REG
[3] = NIT_NULL
;
10659 fra
.me
.REG
[4] = NIT_NULL
;
10660 fra
.me
.REG
[0] = p0
;
10661 fra
.me
.REG
[1] = p1
;
10662 fra
.me
.REG
[2] = p2
;
10663 /* ./syntax//typing.nit:1753 */
10664 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10665 /* ./syntax//typing.nit:1754 */
10666 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10667 if (UNTAG_Bool(REGB0
)) {
10669 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10670 if (UNTAG_Bool(REGB1
)) {
10671 REGB1
= TAG_Bool(false);
10674 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10678 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10679 if (UNTAG_Bool(REGB0
)) {
10680 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10681 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
10683 REGB1
= TAG_Bool(false);
10686 if (UNTAG_Bool(REGB0
)) {
10687 /* ./syntax//typing.nit:1755 */
10688 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10689 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10690 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10691 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
10692 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10693 /* ./syntax//typing.nit:1756 */
10694 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10695 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10696 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10697 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
10699 stack_frame_head
= fra
.me
.prev
;
10702 val_t
syntax___typing___ALtExpr___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_syntax___typing
;
10710 fra
.me
.line
= 1761;
10711 fra
.me
.meth
= LOCATE_syntax___typing___ALtExpr___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:1761 */
10717 if (!once_value_1
) {
10718 if (!once_value_2
) {
10719 fra
.me
.REG
[0] = BOX_NativeString("<");
10720 REGB0
= TAG_Int(1);
10721 fra
.me
.REG
[0] = NEW_String_standard___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_standard___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
syntax___typing___ALeExpr___name(val_t p0
){
10737 struct {struct stack_frame_t me
;} fra
;
10740 static val_t once_value_1
; /* Once value */
10741 static val_t once_value_2
; /* Once value */
10742 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10743 fra
.me
.file
= LOCATE_syntax___typing
;
10744 fra
.me
.line
= 1764;
10745 fra
.me
.meth
= LOCATE_syntax___typing___ALeExpr___name
;
10746 fra
.me
.has_broke
= 0;
10747 fra
.me
.REG_size
= 1;
10748 fra
.me
.REG
[0] = NIT_NULL
;
10749 fra
.me
.REG
[0] = p0
;
10750 /* ./syntax//typing.nit:1764 */
10751 if (!once_value_1
) {
10752 if (!once_value_2
) {
10753 fra
.me
.REG
[0] = BOX_NativeString("<=");
10754 REGB0
= TAG_Int(2);
10755 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10756 once_value_2
= fra
.me
.REG
[0];
10757 register_static_object(&once_value_2
);
10758 } else fra
.me
.REG
[0] = once_value_2
;
10759 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10760 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10761 once_value_1
= fra
.me
.REG
[0];
10762 register_static_object(&once_value_1
);
10763 } else fra
.me
.REG
[0] = once_value_1
;
10764 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10767 stack_frame_head
= fra
.me
.prev
;
10768 return fra
.me
.REG
[0];
10770 val_t
syntax___typing___ALlExpr___name(val_t p0
){
10771 struct {struct stack_frame_t me
;} fra
;
10774 static val_t once_value_1
; /* Once value */
10775 static val_t once_value_2
; /* Once value */
10776 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10777 fra
.me
.file
= LOCATE_syntax___typing
;
10778 fra
.me
.line
= 1767;
10779 fra
.me
.meth
= LOCATE_syntax___typing___ALlExpr___name
;
10780 fra
.me
.has_broke
= 0;
10781 fra
.me
.REG_size
= 1;
10782 fra
.me
.REG
[0] = NIT_NULL
;
10783 fra
.me
.REG
[0] = p0
;
10784 /* ./syntax//typing.nit:1767 */
10785 if (!once_value_1
) {
10786 if (!once_value_2
) {
10787 fra
.me
.REG
[0] = BOX_NativeString("<<");
10788 REGB0
= TAG_Int(2);
10789 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10790 once_value_2
= fra
.me
.REG
[0];
10791 register_static_object(&once_value_2
);
10792 } else fra
.me
.REG
[0] = once_value_2
;
10793 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10794 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10795 once_value_1
= fra
.me
.REG
[0];
10796 register_static_object(&once_value_1
);
10797 } else fra
.me
.REG
[0] = once_value_1
;
10798 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10801 stack_frame_head
= fra
.me
.prev
;
10802 return fra
.me
.REG
[0];
10804 val_t
syntax___typing___AGtExpr___name(val_t p0
){
10805 struct {struct stack_frame_t me
;} fra
;
10808 static val_t once_value_1
; /* Once value */
10809 static val_t once_value_2
; /* Once value */
10810 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10811 fra
.me
.file
= LOCATE_syntax___typing
;
10812 fra
.me
.line
= 1770;
10813 fra
.me
.meth
= LOCATE_syntax___typing___AGtExpr___name
;
10814 fra
.me
.has_broke
= 0;
10815 fra
.me
.REG_size
= 1;
10816 fra
.me
.REG
[0] = NIT_NULL
;
10817 fra
.me
.REG
[0] = p0
;
10818 /* ./syntax//typing.nit:1770 */
10819 if (!once_value_1
) {
10820 if (!once_value_2
) {
10821 fra
.me
.REG
[0] = BOX_NativeString(">");
10822 REGB0
= TAG_Int(1);
10823 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10824 once_value_2
= fra
.me
.REG
[0];
10825 register_static_object(&once_value_2
);
10826 } else fra
.me
.REG
[0] = once_value_2
;
10827 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10828 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10829 once_value_1
= fra
.me
.REG
[0];
10830 register_static_object(&once_value_1
);
10831 } else fra
.me
.REG
[0] = once_value_1
;
10832 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10835 stack_frame_head
= fra
.me
.prev
;
10836 return fra
.me
.REG
[0];
10838 val_t
syntax___typing___AGeExpr___name(val_t p0
){
10839 struct {struct stack_frame_t me
;} fra
;
10842 static val_t once_value_1
; /* Once value */
10843 static val_t once_value_2
; /* Once value */
10844 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10845 fra
.me
.file
= LOCATE_syntax___typing
;
10846 fra
.me
.line
= 1773;
10847 fra
.me
.meth
= LOCATE_syntax___typing___AGeExpr___name
;
10848 fra
.me
.has_broke
= 0;
10849 fra
.me
.REG_size
= 1;
10850 fra
.me
.REG
[0] = NIT_NULL
;
10851 fra
.me
.REG
[0] = p0
;
10852 /* ./syntax//typing.nit:1773 */
10853 if (!once_value_1
) {
10854 if (!once_value_2
) {
10855 fra
.me
.REG
[0] = BOX_NativeString(">=");
10856 REGB0
= TAG_Int(2);
10857 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10858 once_value_2
= fra
.me
.REG
[0];
10859 register_static_object(&once_value_2
);
10860 } else fra
.me
.REG
[0] = once_value_2
;
10861 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10862 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10863 once_value_1
= fra
.me
.REG
[0];
10864 register_static_object(&once_value_1
);
10865 } else fra
.me
.REG
[0] = once_value_1
;
10866 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10869 stack_frame_head
= fra
.me
.prev
;
10870 return fra
.me
.REG
[0];
10872 val_t
syntax___typing___AGgExpr___name(val_t p0
){
10873 struct {struct stack_frame_t me
;} fra
;
10876 static val_t once_value_1
; /* Once value */
10877 static val_t once_value_2
; /* Once value */
10878 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10879 fra
.me
.file
= LOCATE_syntax___typing
;
10880 fra
.me
.line
= 1776;
10881 fra
.me
.meth
= LOCATE_syntax___typing___AGgExpr___name
;
10882 fra
.me
.has_broke
= 0;
10883 fra
.me
.REG_size
= 1;
10884 fra
.me
.REG
[0] = NIT_NULL
;
10885 fra
.me
.REG
[0] = p0
;
10886 /* ./syntax//typing.nit:1776 */
10887 if (!once_value_1
) {
10888 if (!once_value_2
) {
10889 fra
.me
.REG
[0] = BOX_NativeString(">>");
10890 REGB0
= TAG_Int(2);
10891 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10892 once_value_2
= fra
.me
.REG
[0];
10893 register_static_object(&once_value_2
);
10894 } else fra
.me
.REG
[0] = once_value_2
;
10895 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10896 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10897 once_value_1
= fra
.me
.REG
[0];
10898 register_static_object(&once_value_1
);
10899 } else fra
.me
.REG
[0] = once_value_1
;
10900 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10903 stack_frame_head
= fra
.me
.prev
;
10904 return fra
.me
.REG
[0];
10906 val_t
syntax___typing___APlusExpr___name(val_t p0
){
10907 struct {struct stack_frame_t me
;} fra
;
10910 static val_t once_value_1
; /* Once value */
10911 static val_t once_value_2
; /* Once value */
10912 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10913 fra
.me
.file
= LOCATE_syntax___typing
;
10914 fra
.me
.line
= 1779;
10915 fra
.me
.meth
= LOCATE_syntax___typing___APlusExpr___name
;
10916 fra
.me
.has_broke
= 0;
10917 fra
.me
.REG_size
= 1;
10918 fra
.me
.REG
[0] = NIT_NULL
;
10919 fra
.me
.REG
[0] = p0
;
10920 /* ./syntax//typing.nit:1779 */
10921 if (!once_value_1
) {
10922 if (!once_value_2
) {
10923 fra
.me
.REG
[0] = BOX_NativeString("+");
10924 REGB0
= TAG_Int(1);
10925 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10926 once_value_2
= fra
.me
.REG
[0];
10927 register_static_object(&once_value_2
);
10928 } else fra
.me
.REG
[0] = once_value_2
;
10929 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10930 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10931 once_value_1
= fra
.me
.REG
[0];
10932 register_static_object(&once_value_1
);
10933 } else fra
.me
.REG
[0] = once_value_1
;
10934 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10937 stack_frame_head
= fra
.me
.prev
;
10938 return fra
.me
.REG
[0];
10940 val_t
syntax___typing___AMinusExpr___name(val_t p0
){
10941 struct {struct stack_frame_t me
;} fra
;
10944 static val_t once_value_1
; /* Once value */
10945 static val_t once_value_2
; /* Once value */
10946 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10947 fra
.me
.file
= LOCATE_syntax___typing
;
10948 fra
.me
.line
= 1782;
10949 fra
.me
.meth
= LOCATE_syntax___typing___AMinusExpr___name
;
10950 fra
.me
.has_broke
= 0;
10951 fra
.me
.REG_size
= 1;
10952 fra
.me
.REG
[0] = NIT_NULL
;
10953 fra
.me
.REG
[0] = p0
;
10954 /* ./syntax//typing.nit:1782 */
10955 if (!once_value_1
) {
10956 if (!once_value_2
) {
10957 fra
.me
.REG
[0] = BOX_NativeString("-");
10958 REGB0
= TAG_Int(1);
10959 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10960 once_value_2
= fra
.me
.REG
[0];
10961 register_static_object(&once_value_2
);
10962 } else fra
.me
.REG
[0] = once_value_2
;
10963 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10964 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10965 once_value_1
= fra
.me
.REG
[0];
10966 register_static_object(&once_value_1
);
10967 } else fra
.me
.REG
[0] = once_value_1
;
10968 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10971 stack_frame_head
= fra
.me
.prev
;
10972 return fra
.me
.REG
[0];
10974 val_t
syntax___typing___AStarshipExpr___name(val_t p0
){
10975 struct {struct stack_frame_t me
;} fra
;
10978 static val_t once_value_1
; /* Once value */
10979 static val_t once_value_2
; /* Once value */
10980 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10981 fra
.me
.file
= LOCATE_syntax___typing
;
10982 fra
.me
.line
= 1785;
10983 fra
.me
.meth
= LOCATE_syntax___typing___AStarshipExpr___name
;
10984 fra
.me
.has_broke
= 0;
10985 fra
.me
.REG_size
= 1;
10986 fra
.me
.REG
[0] = NIT_NULL
;
10987 fra
.me
.REG
[0] = p0
;
10988 /* ./syntax//typing.nit:1785 */
10989 if (!once_value_1
) {
10990 if (!once_value_2
) {
10991 fra
.me
.REG
[0] = BOX_NativeString("<=>");
10992 REGB0
= TAG_Int(3);
10993 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10994 once_value_2
= fra
.me
.REG
[0];
10995 register_static_object(&once_value_2
);
10996 } else fra
.me
.REG
[0] = once_value_2
;
10997 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10998 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10999 once_value_1
= fra
.me
.REG
[0];
11000 register_static_object(&once_value_1
);
11001 } else fra
.me
.REG
[0] = once_value_1
;
11002 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11005 stack_frame_head
= fra
.me
.prev
;
11006 return fra
.me
.REG
[0];
11008 val_t
syntax___typing___AStarExpr___name(val_t p0
){
11009 struct {struct stack_frame_t me
;} fra
;
11012 static val_t once_value_1
; /* Once value */
11013 static val_t once_value_2
; /* Once value */
11014 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11015 fra
.me
.file
= LOCATE_syntax___typing
;
11016 fra
.me
.line
= 1788;
11017 fra
.me
.meth
= LOCATE_syntax___typing___AStarExpr___name
;
11018 fra
.me
.has_broke
= 0;
11019 fra
.me
.REG_size
= 1;
11020 fra
.me
.REG
[0] = NIT_NULL
;
11021 fra
.me
.REG
[0] = p0
;
11022 /* ./syntax//typing.nit:1788 */
11023 if (!once_value_1
) {
11024 if (!once_value_2
) {
11025 fra
.me
.REG
[0] = BOX_NativeString("*");
11026 REGB0
= TAG_Int(1);
11027 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11028 once_value_2
= fra
.me
.REG
[0];
11029 register_static_object(&once_value_2
);
11030 } else fra
.me
.REG
[0] = once_value_2
;
11031 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11032 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11033 once_value_1
= fra
.me
.REG
[0];
11034 register_static_object(&once_value_1
);
11035 } else fra
.me
.REG
[0] = once_value_1
;
11036 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11039 stack_frame_head
= fra
.me
.prev
;
11040 return fra
.me
.REG
[0];
11042 val_t
syntax___typing___ASlashExpr___name(val_t p0
){
11043 struct {struct stack_frame_t me
;} fra
;
11046 static val_t once_value_1
; /* Once value */
11047 static val_t once_value_2
; /* Once value */
11048 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11049 fra
.me
.file
= LOCATE_syntax___typing
;
11050 fra
.me
.line
= 1791;
11051 fra
.me
.meth
= LOCATE_syntax___typing___ASlashExpr___name
;
11052 fra
.me
.has_broke
= 0;
11053 fra
.me
.REG_size
= 1;
11054 fra
.me
.REG
[0] = NIT_NULL
;
11055 fra
.me
.REG
[0] = p0
;
11056 /* ./syntax//typing.nit:1791 */
11057 if (!once_value_1
) {
11058 if (!once_value_2
) {
11059 fra
.me
.REG
[0] = BOX_NativeString("/");
11060 REGB0
= TAG_Int(1);
11061 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11062 once_value_2
= fra
.me
.REG
[0];
11063 register_static_object(&once_value_2
);
11064 } else fra
.me
.REG
[0] = once_value_2
;
11065 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11066 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11067 once_value_1
= fra
.me
.REG
[0];
11068 register_static_object(&once_value_1
);
11069 } else fra
.me
.REG
[0] = once_value_1
;
11070 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11073 stack_frame_head
= fra
.me
.prev
;
11074 return fra
.me
.REG
[0];
11076 val_t
syntax___typing___APercentExpr___name(val_t p0
){
11077 struct {struct stack_frame_t me
;} fra
;
11080 static val_t once_value_1
; /* Once value */
11081 static val_t once_value_2
; /* Once value */
11082 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11083 fra
.me
.file
= LOCATE_syntax___typing
;
11084 fra
.me
.line
= 1794;
11085 fra
.me
.meth
= LOCATE_syntax___typing___APercentExpr___name
;
11086 fra
.me
.has_broke
= 0;
11087 fra
.me
.REG_size
= 1;
11088 fra
.me
.REG
[0] = NIT_NULL
;
11089 fra
.me
.REG
[0] = p0
;
11090 /* ./syntax//typing.nit:1794 */
11091 if (!once_value_1
) {
11092 if (!once_value_2
) {
11093 fra
.me
.REG
[0] = BOX_NativeString("%");
11094 REGB0
= TAG_Int(1);
11095 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11096 once_value_2
= fra
.me
.REG
[0];
11097 register_static_object(&once_value_2
);
11098 } else fra
.me
.REG
[0] = once_value_2
;
11099 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11100 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11101 once_value_1
= fra
.me
.REG
[0];
11102 register_static_object(&once_value_1
);
11103 } else fra
.me
.REG
[0] = once_value_1
;
11104 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11107 stack_frame_head
= fra
.me
.prev
;
11108 return fra
.me
.REG
[0];
11110 val_t
syntax___typing___AUminusExpr___name(val_t p0
){
11111 struct {struct stack_frame_t me
;} fra
;
11114 static val_t once_value_1
; /* Once value */
11115 static val_t once_value_2
; /* Once value */
11116 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11117 fra
.me
.file
= LOCATE_syntax___typing
;
11118 fra
.me
.line
= 1798;
11119 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___name
;
11120 fra
.me
.has_broke
= 0;
11121 fra
.me
.REG_size
= 1;
11122 fra
.me
.REG
[0] = NIT_NULL
;
11123 fra
.me
.REG
[0] = p0
;
11124 /* ./syntax//typing.nit:1798 */
11125 if (!once_value_1
) {
11126 if (!once_value_2
) {
11127 fra
.me
.REG
[0] = BOX_NativeString("unary -");
11128 REGB0
= TAG_Int(7);
11129 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11130 once_value_2
= fra
.me
.REG
[0];
11131 register_static_object(&once_value_2
);
11132 } else fra
.me
.REG
[0] = once_value_2
;
11133 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11134 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11135 once_value_1
= fra
.me
.REG
[0];
11136 register_static_object(&once_value_1
);
11137 } else fra
.me
.REG
[0] = once_value_1
;
11138 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11141 stack_frame_head
= fra
.me
.prev
;
11142 return fra
.me
.REG
[0];
11144 val_t
syntax___typing___AUminusExpr___compute_raw_arguments(val_t p0
){
11145 struct {struct stack_frame_t me
;} fra
;
11147 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11148 fra
.me
.file
= LOCATE_syntax___typing
;
11149 fra
.me
.line
= 1799;
11150 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments
;
11151 fra
.me
.has_broke
= 0;
11152 fra
.me
.REG_size
= 1;
11153 fra
.me
.REG
[0] = NIT_NULL
;
11154 fra
.me
.REG
[0] = p0
;
11155 /* ./syntax//typing.nit:1799 */
11156 fra
.me
.REG
[0] = NIT_NULL
;
11159 stack_frame_head
= fra
.me
.prev
;
11160 return fra
.me
.REG
[0];
11162 void syntax___typing___ACallFormExpr___after_typing(val_t p0
, val_t p1
){
11163 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
11167 static val_t once_value_1
; /* Once value */
11168 static val_t once_value_2
; /* Once value */
11169 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11170 fra
.me
.file
= LOCATE_syntax___typing
;
11171 fra
.me
.line
= 1803;
11172 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___after_typing
;
11173 fra
.me
.has_broke
= 0;
11174 fra
.me
.REG_size
= 9;
11175 fra
.me
.REG
[0] = NIT_NULL
;
11176 fra
.me
.REG
[1] = NIT_NULL
;
11177 fra
.me
.REG
[2] = NIT_NULL
;
11178 fra
.me
.REG
[3] = NIT_NULL
;
11179 fra
.me
.REG
[4] = NIT_NULL
;
11180 fra
.me
.REG
[5] = NIT_NULL
;
11181 fra
.me
.REG
[6] = NIT_NULL
;
11182 fra
.me
.REG
[7] = NIT_NULL
;
11183 fra
.me
.REG
[8] = NIT_NULL
;
11184 fra
.me
.REG
[0] = p0
;
11185 fra
.me
.REG
[1] = p1
;
11186 /* ./syntax//typing.nit:1803 */
11187 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11188 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11189 /* ./syntax//typing.nit:1805 */
11190 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11191 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11192 if (UNTAG_Bool(REGB0
)) {
11193 /* ./syntax//typing.nit:1806 */
11194 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11195 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11196 /* ./syntax//typing.nit:1807 */
11197 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11198 fra
.me
.REG
[5] = CALL_syntax___scope___ScopeContext_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
11199 /* ./syntax//typing.nit:1808 */
11200 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
11201 if (UNTAG_Bool(REGB0
)) {
11203 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
11204 if (UNTAG_Bool(REGB1
)) {
11205 REGB1
= TAG_Bool(false);
11208 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
11212 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11213 if (UNTAG_Bool(REGB0
)) {
11214 /* ./syntax//typing.nit:1810 */
11215 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_syntax___syntax_base___ClosureVariable
, ID_syntax___syntax_base___ClosureVariable
)) /*cast ClosureVariable*/;
11216 if (UNTAG_Bool(REGB0
)) {
11217 /* ./syntax//typing.nit:1811 */
11218 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11219 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11220 fra
.me
.REG
[8] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11221 fra
.me
.REG
[8] = NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
11222 /* ./syntax//typing.nit:1812 */
11223 ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
11225 /* ./syntax//typing.nit:1814 */
11226 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11227 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
11228 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11229 if (UNTAG_Bool(REGB0
)) {
11230 /* ./syntax//typing.nit:1815 */
11231 REGB0
= TAG_Int(3);
11232 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11233 if (!once_value_1
) {
11234 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
11235 REGB0
= TAG_Int(7);
11236 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
11237 once_value_1
= fra
.me
.REG
[6];
11238 register_static_object(&once_value_1
);
11239 } else fra
.me
.REG
[6] = once_value_1
;
11240 fra
.me
.REG
[6] = fra
.me
.REG
[6];
11241 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
11242 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11243 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
11244 if (!once_value_2
) {
11245 fra
.me
.REG
[4] = BOX_NativeString(" is variable, not a function.");
11246 REGB0
= TAG_Int(29);
11247 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
11248 once_value_2
= fra
.me
.REG
[4];
11249 register_static_object(&once_value_2
);
11250 } else fra
.me
.REG
[4] = once_value_2
;
11251 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11252 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
11253 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
11254 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
11255 /* ./syntax//typing.nit:1816 */
11258 /* ./syntax//typing.nit:1818 */
11259 fra
.me
.REG
[7] = CALL_syntax___typing___ACallFormExpr___variable_create(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
11260 fra
.me
.REG
[8] = fra
.me
.REG
[7];
11261 /* ./syntax//typing.nit:1819 */
11262 ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
11264 /* ./syntax//typing.nit:1821 */
11265 CALL_parser___parser_prod___ANode___replace_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
11266 /* ./syntax//typing.nit:1822 */
11267 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
11268 /* ./syntax//typing.nit:1823 */
11272 /* ./syntax//typing.nit:1827 */
11273 CALL_SUPER_syntax___typing___ACallFormExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11275 stack_frame_head
= fra
.me
.prev
;
11278 val_t
syntax___typing___ACallFormExpr___closure_defs(val_t p0
){
11279 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11282 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11283 fra
.me
.file
= LOCATE_syntax___typing
;
11284 fra
.me
.line
= 1830;
11285 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___closure_defs
;
11286 fra
.me
.has_broke
= 0;
11287 fra
.me
.REG_size
= 2;
11288 fra
.me
.REG
[0] = NIT_NULL
;
11289 fra
.me
.REG
[1] = NIT_NULL
;
11290 fra
.me
.REG
[0] = p0
;
11291 /* ./syntax//typing.nit:1832 */
11292 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11293 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11294 if (UNTAG_Bool(REGB0
)) {
11295 /* ./syntax//typing.nit:1833 */
11296 fra
.me
.REG
[1] = NIT_NULL
;
11299 /* ./syntax//typing.nit:1835 */
11300 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11301 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11302 fra
.me
.REG
[1] = fra
.me
.REG
[0];
11306 stack_frame_head
= fra
.me
.prev
;
11307 return fra
.me
.REG
[1];
11309 val_t
syntax___typing___ACallFormExpr___variable_create(val_t p0
, val_t p1
){
11310 struct {struct stack_frame_t me
;} fra
;
11312 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11313 fra
.me
.file
= LOCATE_syntax___typing
;
11314 fra
.me
.line
= 1839;
11315 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___variable_create
;
11316 fra
.me
.has_broke
= 0;
11317 fra
.me
.REG_size
= 0;
11318 /* ./syntax//typing.nit:1839 */
11319 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1839);
11320 stack_frame_head
= fra
.me
.prev
;
11323 val_t
syntax___typing___ACallExpr___variable_create(val_t p0
, val_t p1
){
11324 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11326 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11327 fra
.me
.file
= LOCATE_syntax___typing
;
11328 fra
.me
.line
= 1844;
11329 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___variable_create
;
11330 fra
.me
.has_broke
= 0;
11331 fra
.me
.REG_size
= 2;
11332 fra
.me
.REG
[0] = NIT_NULL
;
11333 fra
.me
.REG
[1] = NIT_NULL
;
11334 fra
.me
.REG
[0] = p0
;
11335 fra
.me
.REG
[1] = p1
;
11336 /* ./syntax//typing.nit:1846 */
11337 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11338 fra
.me
.REG
[0] = NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(fra
.me
.REG
[0]);
11341 stack_frame_head
= fra
.me
.prev
;
11342 return fra
.me
.REG
[0];
11344 val_t
syntax___typing___ACallExpr___name(val_t p0
){
11345 struct {struct stack_frame_t me
;} fra
;
11347 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11348 fra
.me
.file
= LOCATE_syntax___typing
;
11349 fra
.me
.line
= 1849;
11350 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___name
;
11351 fra
.me
.has_broke
= 0;
11352 fra
.me
.REG_size
= 1;
11353 fra
.me
.REG
[0] = NIT_NULL
;
11354 fra
.me
.REG
[0] = p0
;
11355 /* ./syntax//typing.nit:1849 */
11356 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11357 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11360 stack_frame_head
= fra
.me
.prev
;
11361 return fra
.me
.REG
[0];
11363 val_t
syntax___typing___ACallExpr___compute_raw_arguments(val_t p0
){
11364 struct {struct stack_frame_t me
;} fra
;
11366 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11367 fra
.me
.file
= LOCATE_syntax___typing
;
11368 fra
.me
.line
= 1850;
11369 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___compute_raw_arguments
;
11370 fra
.me
.has_broke
= 0;
11371 fra
.me
.REG_size
= 1;
11372 fra
.me
.REG
[0] = NIT_NULL
;
11373 fra
.me
.REG
[0] = p0
;
11374 /* ./syntax//typing.nit:1850 */
11375 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11376 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11379 stack_frame_head
= fra
.me
.prev
;
11380 return fra
.me
.REG
[0];
11382 val_t
syntax___typing___ACallAssignExpr___variable_create(val_t p0
, val_t p1
){
11383 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
11385 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11386 fra
.me
.file
= LOCATE_syntax___typing
;
11387 fra
.me
.line
= 1854;
11388 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___variable_create
;
11389 fra
.me
.has_broke
= 0;
11390 fra
.me
.REG_size
= 3;
11391 fra
.me
.REG
[0] = NIT_NULL
;
11392 fra
.me
.REG
[1] = NIT_NULL
;
11393 fra
.me
.REG
[2] = NIT_NULL
;
11394 fra
.me
.REG
[0] = p0
;
11395 fra
.me
.REG
[1] = p1
;
11396 /* ./syntax//typing.nit:1856 */
11397 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11398 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_assign(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11399 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11400 fra
.me
.REG
[0] = NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
11403 stack_frame_head
= fra
.me
.prev
;
11404 return fra
.me
.REG
[0];
11406 val_t
syntax___typing___ACallAssignExpr___name(val_t p0
){
11407 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11410 static val_t once_value_1
; /* Once value */
11411 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11412 fra
.me
.file
= LOCATE_syntax___typing
;
11413 fra
.me
.line
= 1859;
11414 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___name
;
11415 fra
.me
.has_broke
= 0;
11416 fra
.me
.REG_size
= 2;
11417 fra
.me
.REG
[0] = NIT_NULL
;
11418 fra
.me
.REG
[1] = NIT_NULL
;
11419 fra
.me
.REG
[0] = p0
;
11420 /* ./syntax//typing.nit:1859 */
11421 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11422 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11423 if (!once_value_1
) {
11424 fra
.me
.REG
[1] = BOX_NativeString("=");
11425 REGB0
= TAG_Int(1);
11426 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11427 once_value_1
= fra
.me
.REG
[1];
11428 register_static_object(&once_value_1
);
11429 } else fra
.me
.REG
[1] = once_value_1
;
11430 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11431 fra
.me
.REG
[1] = CALL_standard___string___String_____plus(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11432 fra
.me
.REG
[1] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11435 stack_frame_head
= fra
.me
.prev
;
11436 return fra
.me
.REG
[1];
11438 val_t
syntax___typing___ACallAssignExpr___compute_raw_arguments(val_t p0
){
11439 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11441 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11442 fra
.me
.file
= LOCATE_syntax___typing
;
11443 fra
.me
.line
= 1860;
11444 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments
;
11445 fra
.me
.has_broke
= 0;
11446 fra
.me
.REG_size
= 2;
11447 fra
.me
.REG
[0] = NIT_NULL
;
11448 fra
.me
.REG
[1] = NIT_NULL
;
11449 fra
.me
.REG
[0] = p0
;
11450 /* ./syntax//typing.nit:1861 */
11451 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11452 fra
.me
.REG
[1] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11453 /* ./syntax//typing.nit:1862 */
11454 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11455 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11456 /* ./syntax//typing.nit:1863 */
11459 stack_frame_head
= fra
.me
.prev
;
11460 return fra
.me
.REG
[1];
11462 val_t
syntax___typing___ACallReassignExpr___variable_create(val_t p0
, val_t p1
){
11463 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
11465 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11466 fra
.me
.file
= LOCATE_syntax___typing
;
11467 fra
.me
.line
= 1868;
11468 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___variable_create
;
11469 fra
.me
.has_broke
= 0;
11470 fra
.me
.REG_size
= 3;
11471 fra
.me
.REG
[0] = NIT_NULL
;
11472 fra
.me
.REG
[1] = NIT_NULL
;
11473 fra
.me
.REG
[2] = NIT_NULL
;
11474 fra
.me
.REG
[0] = p0
;
11475 fra
.me
.REG
[1] = p1
;
11476 /* ./syntax//typing.nit:1870 */
11477 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11478 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11479 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11480 fra
.me
.REG
[0] = NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
11483 stack_frame_head
= fra
.me
.prev
;
11484 return fra
.me
.REG
[0];
11486 val_t
syntax___typing___ACallReassignExpr___name(val_t p0
){
11487 struct {struct stack_frame_t me
;} fra
;
11489 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11490 fra
.me
.file
= LOCATE_syntax___typing
;
11491 fra
.me
.line
= 1873;
11492 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___name
;
11493 fra
.me
.has_broke
= 0;
11494 fra
.me
.REG_size
= 1;
11495 fra
.me
.REG
[0] = NIT_NULL
;
11496 fra
.me
.REG
[0] = p0
;
11497 /* ./syntax//typing.nit:1873 */
11498 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11499 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11502 stack_frame_head
= fra
.me
.prev
;
11503 return fra
.me
.REG
[0];
11505 val_t
syntax___typing___ACallReassignExpr___compute_raw_arguments(val_t p0
){
11506 struct {struct stack_frame_t me
;} fra
;
11508 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11509 fra
.me
.file
= LOCATE_syntax___typing
;
11510 fra
.me
.line
= 1874;
11511 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments
;
11512 fra
.me
.has_broke
= 0;
11513 fra
.me
.REG_size
= 1;
11514 fra
.me
.REG
[0] = NIT_NULL
;
11515 fra
.me
.REG
[0] = p0
;
11516 /* ./syntax//typing.nit:1874 */
11517 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11518 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11521 stack_frame_head
= fra
.me
.prev
;
11522 return fra
.me
.REG
[0];
11524 val_t
syntax___typing___ABraExpr___name(val_t p0
){
11525 struct {struct stack_frame_t me
;} fra
;
11528 static val_t once_value_1
; /* Once value */
11529 static val_t once_value_2
; /* Once value */
11530 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11531 fra
.me
.file
= LOCATE_syntax___typing
;
11532 fra
.me
.line
= 1878;
11533 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___name
;
11534 fra
.me
.has_broke
= 0;
11535 fra
.me
.REG_size
= 1;
11536 fra
.me
.REG
[0] = NIT_NULL
;
11537 fra
.me
.REG
[0] = p0
;
11538 /* ./syntax//typing.nit:1878 */
11539 if (!once_value_1
) {
11540 if (!once_value_2
) {
11541 fra
.me
.REG
[0] = BOX_NativeString("[]");
11542 REGB0
= TAG_Int(2);
11543 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11544 once_value_2
= fra
.me
.REG
[0];
11545 register_static_object(&once_value_2
);
11546 } else fra
.me
.REG
[0] = once_value_2
;
11547 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11548 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11549 once_value_1
= fra
.me
.REG
[0];
11550 register_static_object(&once_value_1
);
11551 } else fra
.me
.REG
[0] = once_value_1
;
11552 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11555 stack_frame_head
= fra
.me
.prev
;
11556 return fra
.me
.REG
[0];
11558 val_t
syntax___typing___ABraExpr___compute_raw_arguments(val_t p0
){
11559 struct {struct stack_frame_t me
;} fra
;
11561 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11562 fra
.me
.file
= LOCATE_syntax___typing
;
11563 fra
.me
.line
= 1879;
11564 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___compute_raw_arguments
;
11565 fra
.me
.has_broke
= 0;
11566 fra
.me
.REG_size
= 1;
11567 fra
.me
.REG
[0] = NIT_NULL
;
11568 fra
.me
.REG
[0] = p0
;
11569 /* ./syntax//typing.nit:1879 */
11570 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11571 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11574 stack_frame_head
= fra
.me
.prev
;
11575 return fra
.me
.REG
[0];
11577 val_t
syntax___typing___ABraExpr___closure_defs(val_t p0
){
11578 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11581 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11582 fra
.me
.file
= LOCATE_syntax___typing
;
11583 fra
.me
.line
= 1880;
11584 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___closure_defs
;
11585 fra
.me
.has_broke
= 0;
11586 fra
.me
.REG_size
= 2;
11587 fra
.me
.REG
[0] = NIT_NULL
;
11588 fra
.me
.REG
[1] = NIT_NULL
;
11589 fra
.me
.REG
[0] = p0
;
11590 /* ./syntax//typing.nit:1882 */
11591 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11592 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11593 if (UNTAG_Bool(REGB0
)) {
11594 /* ./syntax//typing.nit:1883 */
11595 fra
.me
.REG
[1] = NIT_NULL
;
11598 /* ./syntax//typing.nit:1885 */
11599 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11600 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11601 fra
.me
.REG
[1] = fra
.me
.REG
[0];
11605 stack_frame_head
= fra
.me
.prev
;
11606 return fra
.me
.REG
[1];
11608 val_t
syntax___typing___ABraAssignExpr___name(val_t p0
){
11609 struct {struct stack_frame_t me
;} fra
;
11612 static val_t once_value_1
; /* Once value */
11613 static val_t once_value_2
; /* Once value */
11614 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11615 fra
.me
.file
= LOCATE_syntax___typing
;
11616 fra
.me
.line
= 1891;
11617 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___name
;
11618 fra
.me
.has_broke
= 0;
11619 fra
.me
.REG_size
= 1;
11620 fra
.me
.REG
[0] = NIT_NULL
;
11621 fra
.me
.REG
[0] = p0
;
11622 /* ./syntax//typing.nit:1891 */
11623 if (!once_value_1
) {
11624 if (!once_value_2
) {
11625 fra
.me
.REG
[0] = BOX_NativeString("[]=");
11626 REGB0
= TAG_Int(3);
11627 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11628 once_value_2
= fra
.me
.REG
[0];
11629 register_static_object(&once_value_2
);
11630 } else fra
.me
.REG
[0] = once_value_2
;
11631 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11632 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11633 once_value_1
= fra
.me
.REG
[0];
11634 register_static_object(&once_value_1
);
11635 } else fra
.me
.REG
[0] = once_value_1
;
11636 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11639 stack_frame_head
= fra
.me
.prev
;
11640 return fra
.me
.REG
[0];
11642 val_t
syntax___typing___ABraAssignExpr___compute_raw_arguments(val_t p0
){
11643 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11645 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11646 fra
.me
.file
= LOCATE_syntax___typing
;
11647 fra
.me
.line
= 1892;
11648 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments
;
11649 fra
.me
.has_broke
= 0;
11650 fra
.me
.REG_size
= 2;
11651 fra
.me
.REG
[0] = NIT_NULL
;
11652 fra
.me
.REG
[1] = NIT_NULL
;
11653 fra
.me
.REG
[0] = p0
;
11654 /* ./syntax//typing.nit:1893 */
11655 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11656 fra
.me
.REG
[1] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11657 /* ./syntax//typing.nit:1894 */
11658 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11659 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11660 /* ./syntax//typing.nit:1895 */
11663 stack_frame_head
= fra
.me
.prev
;
11664 return fra
.me
.REG
[1];
11666 val_t
syntax___typing___ABraReassignExpr___name(val_t p0
){
11667 struct {struct stack_frame_t me
;} fra
;
11670 static val_t once_value_1
; /* Once value */
11671 static val_t once_value_2
; /* Once value */
11672 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11673 fra
.me
.file
= LOCATE_syntax___typing
;
11674 fra
.me
.line
= 1900;
11675 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___name
;
11676 fra
.me
.has_broke
= 0;
11677 fra
.me
.REG_size
= 1;
11678 fra
.me
.REG
[0] = NIT_NULL
;
11679 fra
.me
.REG
[0] = p0
;
11680 /* ./syntax//typing.nit:1900 */
11681 if (!once_value_1
) {
11682 if (!once_value_2
) {
11683 fra
.me
.REG
[0] = BOX_NativeString("[]");
11684 REGB0
= TAG_Int(2);
11685 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11686 once_value_2
= fra
.me
.REG
[0];
11687 register_static_object(&once_value_2
);
11688 } else fra
.me
.REG
[0] = once_value_2
;
11689 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11690 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11691 once_value_1
= fra
.me
.REG
[0];
11692 register_static_object(&once_value_1
);
11693 } else fra
.me
.REG
[0] = once_value_1
;
11694 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11697 stack_frame_head
= fra
.me
.prev
;
11698 return fra
.me
.REG
[0];
11700 val_t
syntax___typing___ABraReassignExpr___compute_raw_arguments(val_t p0
){
11701 struct {struct stack_frame_t me
;} fra
;
11703 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11704 fra
.me
.file
= LOCATE_syntax___typing
;
11705 fra
.me
.line
= 1901;
11706 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments
;
11707 fra
.me
.has_broke
= 0;
11708 fra
.me
.REG_size
= 1;
11709 fra
.me
.REG
[0] = NIT_NULL
;
11710 fra
.me
.REG
[0] = p0
;
11711 /* ./syntax//typing.nit:1901 */
11712 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11713 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11716 stack_frame_head
= fra
.me
.prev
;
11717 return fra
.me
.REG
[0];
11719 val_t
syntax___typing___AInitExpr___name(val_t p0
){
11720 struct {struct stack_frame_t me
;} fra
;
11723 static val_t once_value_1
; /* Once value */
11724 static val_t once_value_2
; /* Once value */
11725 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11726 fra
.me
.file
= LOCATE_syntax___typing
;
11727 fra
.me
.line
= 1905;
11728 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___name
;
11729 fra
.me
.has_broke
= 0;
11730 fra
.me
.REG_size
= 1;
11731 fra
.me
.REG
[0] = NIT_NULL
;
11732 fra
.me
.REG
[0] = p0
;
11733 /* ./syntax//typing.nit:1905 */
11734 if (!once_value_1
) {
11735 if (!once_value_2
) {
11736 fra
.me
.REG
[0] = BOX_NativeString("init");
11737 REGB0
= TAG_Int(4);
11738 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11739 once_value_2
= fra
.me
.REG
[0];
11740 register_static_object(&once_value_2
);
11741 } else fra
.me
.REG
[0] = once_value_2
;
11742 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11743 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11744 once_value_1
= fra
.me
.REG
[0];
11745 register_static_object(&once_value_1
);
11746 } else fra
.me
.REG
[0] = once_value_1
;
11747 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11750 stack_frame_head
= fra
.me
.prev
;
11751 return fra
.me
.REG
[0];
11753 val_t
syntax___typing___AInitExpr___compute_raw_arguments(val_t p0
){
11754 struct {struct stack_frame_t me
;} fra
;
11756 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11757 fra
.me
.file
= LOCATE_syntax___typing
;
11758 fra
.me
.line
= 1906;
11759 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___compute_raw_arguments
;
11760 fra
.me
.has_broke
= 0;
11761 fra
.me
.REG_size
= 1;
11762 fra
.me
.REG
[0] = NIT_NULL
;
11763 fra
.me
.REG
[0] = p0
;
11764 /* ./syntax//typing.nit:1906 */
11765 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11766 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11769 stack_frame_head
= fra
.me
.prev
;
11770 return fra
.me
.REG
[0];
11772 val_t
syntax___typing___AClosureCallExpr___variable(val_t p0
){
11773 struct {struct stack_frame_t me
;} fra
;
11776 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11777 fra
.me
.file
= LOCATE_syntax___typing
;
11778 fra
.me
.line
= 1911;
11779 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___variable
;
11780 fra
.me
.has_broke
= 0;
11781 fra
.me
.REG_size
= 1;
11782 fra
.me
.REG
[0] = NIT_NULL
;
11783 fra
.me
.REG
[0] = p0
;
11784 /* ./syntax//typing.nit:1911 */
11785 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[0]);
11786 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
11787 if (UNTAG_Bool(REGB0
)) {
11789 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1911);
11793 stack_frame_head
= fra
.me
.prev
;
11794 return fra
.me
.REG
[0];
11796 val_t
syntax___typing___AClosureCallExpr___compute_raw_arguments(val_t p0
){
11797 struct {struct stack_frame_t me
;} fra
;
11799 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11800 fra
.me
.file
= LOCATE_syntax___typing
;
11801 fra
.me
.line
= 1912;
11802 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments
;
11803 fra
.me
.has_broke
= 0;
11804 fra
.me
.REG_size
= 1;
11805 fra
.me
.REG
[0] = NIT_NULL
;
11806 fra
.me
.REG
[0] = p0
;
11807 /* ./syntax//typing.nit:1912 */
11808 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AClosureCallExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11809 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11812 stack_frame_head
= fra
.me
.prev
;
11813 return fra
.me
.REG
[0];
11815 void syntax___typing___AClosureCallExpr___after_typing(val_t p0
, val_t p1
){
11816 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11820 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11821 fra
.me
.file
= LOCATE_syntax___typing
;
11822 fra
.me
.line
= 1914;
11823 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___after_typing
;
11824 fra
.me
.has_broke
= 0;
11825 fra
.me
.REG_size
= 5;
11826 fra
.me
.REG
[0] = NIT_NULL
;
11827 fra
.me
.REG
[1] = NIT_NULL
;
11828 fra
.me
.REG
[2] = NIT_NULL
;
11829 fra
.me
.REG
[3] = NIT_NULL
;
11830 fra
.me
.REG
[4] = NIT_NULL
;
11831 fra
.me
.REG
[0] = p0
;
11832 fra
.me
.REG
[1] = p1
;
11833 /* ./syntax//typing.nit:1916 */
11834 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11835 /* ./syntax//typing.nit:1917 */
11836 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11837 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11838 if (UNTAG_Bool(REGB0
)) {
11839 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11841 /* ./syntax//typing.nit:1918 */
11842 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11843 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11844 /* ./syntax//typing.nit:1919 */
11845 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11846 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11847 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11848 REGB0
= CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[4]);
11849 /* ./syntax//typing.nit:1920 */
11850 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11851 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11852 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
11853 if (UNTAG_Bool(REGB1
)) {
11854 /* ./syntax//typing.nit:1921 */
11855 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11856 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11857 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11858 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11859 CALL_syntax___typing___AAbsAbsSendExpr___process_closures(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4], fra
.me
.REG
[3]);
11861 /* ./syntax//typing.nit:1923 */
11862 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11863 if (UNTAG_Bool(REGB0
)) {
11866 /* ./syntax//typing.nit:1924 */
11867 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11868 /* ./syntax//typing.nit:1925 */
11869 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11870 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11871 /* ./syntax//typing.nit:1926 */
11872 REGB0
= TAG_Bool(true);
11873 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
11875 stack_frame_head
= fra
.me
.prev
;
11878 val_t
syntax___typing___AClosureId___to_symbol(val_t p0
){
11879 struct {struct stack_frame_t me
;} fra
;
11881 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11882 fra
.me
.file
= LOCATE_syntax___typing
;
11883 fra
.me
.line
= 1931;
11884 fra
.me
.meth
= LOCATE_syntax___typing___AClosureId___to_symbol
;
11885 fra
.me
.has_broke
= 0;
11886 fra
.me
.REG_size
= 0;
11887 /* ./syntax//typing.nit:1931 */
11888 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1931);
11889 stack_frame_head
= fra
.me
.prev
;
11892 val_t
syntax___typing___ASimpleClosureId___to_symbol(val_t p0
){
11893 struct {struct stack_frame_t me
;} fra
;
11895 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11896 fra
.me
.file
= LOCATE_syntax___typing
;
11897 fra
.me
.line
= 1934;
11898 fra
.me
.meth
= LOCATE_syntax___typing___ASimpleClosureId___to_symbol
;
11899 fra
.me
.has_broke
= 0;
11900 fra
.me
.REG_size
= 1;
11901 fra
.me
.REG
[0] = NIT_NULL
;
11902 fra
.me
.REG
[0] = p0
;
11903 /* ./syntax//typing.nit:1934 */
11904 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASimpleClosureId___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11905 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11908 stack_frame_head
= fra
.me
.prev
;
11909 return fra
.me
.REG
[0];
11911 val_t
syntax___typing___ABreakClosureId___to_symbol(val_t p0
){
11912 struct {struct stack_frame_t me
;} fra
;
11914 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11915 fra
.me
.file
= LOCATE_syntax___typing
;
11916 fra
.me
.line
= 1937;
11917 fra
.me
.meth
= LOCATE_syntax___typing___ABreakClosureId___to_symbol
;
11918 fra
.me
.has_broke
= 0;
11919 fra
.me
.REG_size
= 1;
11920 fra
.me
.REG
[0] = NIT_NULL
;
11921 fra
.me
.REG
[0] = p0
;
11922 /* ./syntax//typing.nit:1937 */
11923 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11924 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11927 stack_frame_head
= fra
.me
.prev
;
11928 return fra
.me
.REG
[0];
11930 val_t
syntax___typing___AClosureDef___closure(val_t p0
){
11931 struct {struct stack_frame_t me
;} fra
;
11934 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11935 fra
.me
.file
= LOCATE_syntax___typing
;
11936 fra
.me
.line
= 1942;
11937 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___closure
;
11938 fra
.me
.has_broke
= 0;
11939 fra
.me
.REG_size
= 1;
11940 fra
.me
.REG
[0] = NIT_NULL
;
11941 fra
.me
.REG
[0] = p0
;
11942 /* ./syntax//typing.nit:1942 */
11943 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[0]);
11944 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
11945 if (UNTAG_Bool(REGB0
)) {
11947 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1942);
11951 stack_frame_head
= fra
.me
.prev
;
11952 return fra
.me
.REG
[0];
11954 val_t
syntax___typing___AClosureDef___escapable(val_t p0
){
11955 struct {struct stack_frame_t me
;} fra
;
11957 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11958 fra
.me
.file
= LOCATE_syntax___typing
;
11959 fra
.me
.line
= 1944;
11960 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___escapable
;
11961 fra
.me
.has_broke
= 0;
11962 fra
.me
.REG_size
= 1;
11963 fra
.me
.REG
[0] = NIT_NULL
;
11964 fra
.me
.REG
[0] = p0
;
11965 /* ./syntax//typing.nit:1944 */
11966 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]);
11967 stack_frame_head
= fra
.me
.prev
;
11968 return fra
.me
.REG
[0];
11970 void syntax___typing___AClosureDef___accept_typing(val_t p0
, val_t p1
){
11971 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
11974 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11975 fra
.me
.file
= LOCATE_syntax___typing
;
11976 fra
.me
.line
= 1948;
11977 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing
;
11978 fra
.me
.has_broke
= 0;
11979 fra
.me
.REG_size
= 3;
11980 fra
.me
.REG
[0] = NIT_NULL
;
11981 fra
.me
.REG
[1] = NIT_NULL
;
11982 fra
.me
.REG
[2] = NIT_NULL
;
11983 fra
.me
.REG
[0] = p0
;
11984 fra
.me
.REG
[1] = p1
;
11985 /* ./syntax//typing.nit:1948 */
11986 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11987 /* ./syntax//typing.nit:1951 */
11988 REGB0
= TAG_Bool(ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2])!=NIT_NULL
);
11989 if (UNTAG_Bool(REGB0
)) {
11991 nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_syntax___typing
, 1951);
11993 REGB0
= ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2]);
11994 if (UNTAG_Bool(REGB0
)) {
11995 CALL_SUPER_syntax___typing___AClosureDef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11997 stack_frame_head
= fra
.me
.prev
;
12000 void syntax___typing___AClosureDef___accept_typing2(val_t p0
, val_t p1
, val_t p2
){
12001 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
12007 static val_t once_value_1
; /* Once value */
12008 static val_t once_value_2
; /* Once value */
12009 static val_t once_value_3
; /* Once value */
12010 static val_t once_value_6
; /* Once value */
12011 static val_t once_value_7
; /* Once value */
12012 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12013 fra
.me
.file
= LOCATE_syntax___typing
;
12014 fra
.me
.line
= 1954;
12015 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing2
;
12016 fra
.me
.has_broke
= 0;
12017 fra
.me
.REG_size
= 8;
12018 fra
.me
.REG
[0] = NIT_NULL
;
12019 fra
.me
.REG
[1] = NIT_NULL
;
12020 fra
.me
.REG
[2] = NIT_NULL
;
12021 fra
.me
.REG
[3] = NIT_NULL
;
12022 fra
.me
.REG
[4] = NIT_NULL
;
12023 fra
.me
.REG
[5] = NIT_NULL
;
12024 fra
.me
.REG
[6] = NIT_NULL
;
12025 fra
.me
.REG
[7] = NIT_NULL
;
12026 fra
.me
.REG
[0] = p0
;
12027 fra
.me
.REG
[1] = p1
;
12028 fra
.me
.REG
[2] = p2
;
12029 /* ./syntax//typing.nit:1956 */
12030 ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12031 /* ./syntax//typing.nit:1958 */
12032 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12033 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12034 /* ./syntax//typing.nit:1959 */
12035 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12036 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12037 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12038 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
12039 if (UNTAG_Bool(REGB2
)) {
12041 /* ./../lib/standard//kernel.nit:210 */
12042 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
12043 /* ./syntax//typing.nit:1959 */
12046 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
12047 if (UNTAG_Bool(REGB2
)) {
12048 /* ./syntax//typing.nit:1960 */
12049 REGB2
= TAG_Int(5);
12050 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
12051 if (!once_value_1
) {
12052 fra
.me
.REG
[5] = BOX_NativeString("Error: ");
12053 REGB2
= TAG_Int(7);
12054 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12055 once_value_1
= fra
.me
.REG
[5];
12056 register_static_object(&once_value_1
);
12057 } else fra
.me
.REG
[5] = once_value_1
;
12058 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12059 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12060 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12061 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
12062 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12063 if (!once_value_2
) {
12064 fra
.me
.REG
[5] = BOX_NativeString(" automatic variable names expected, ");
12065 REGB2
= TAG_Int(36);
12066 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12067 once_value_2
= fra
.me
.REG
[5];
12068 register_static_object(&once_value_2
);
12069 } else fra
.me
.REG
[5] = once_value_2
;
12070 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12071 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12072 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12073 REGB2
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
12074 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
12075 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12076 if (!once_value_3
) {
12077 fra
.me
.REG
[5] = BOX_NativeString(" found.");
12078 REGB2
= TAG_Int(7);
12079 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12080 once_value_3
= fra
.me
.REG
[5];
12081 register_static_object(&once_value_3
);
12082 } else fra
.me
.REG
[5] = once_value_3
;
12083 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12084 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12085 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12086 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12087 /* ./syntax//typing.nit:1961 */
12090 /* ./syntax//typing.nit:1964 */
12091 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12092 ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12093 /* ./syntax//typing.nit:1966 */
12094 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12095 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
12096 /* ./syntax//typing.nit:1967 */
12097 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12098 /* ./syntax//typing.nit:1968 */
12099 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12100 /* ./syntax//typing.nit:1969 */
12101 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12102 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
12103 /* ./syntax//typing.nit:1970 */
12104 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
12105 CALL_syntax___syntax_base___AClosureDef___variables__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
12106 /* ./syntax//typing.nit:1971 */
12107 REGB2
= TAG_Int(0);
12108 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12109 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
12110 /* ./../lib/standard//kernel.nit:335 */
12112 /* ./../lib/standard//kernel.nit:215 */
12113 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
12114 /* ./../lib/standard//kernel.nit:335 */
12115 if (UNTAG_Bool(REGB0
)) {
12116 /* ./syntax//typing.nit:1971 */
12118 /* ./syntax//typing.nit:1972 */
12119 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12120 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
12121 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
12122 if (UNTAG_Bool(REGB3
)) {
12123 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1972);
12125 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
12126 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12127 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
12128 fra
.me
.REG
[7] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12129 /* ./syntax//typing.nit:1973 */
12130 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12131 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
12132 if (UNTAG_Bool(REGB3
)) {
12133 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1973);
12135 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12136 /* ./syntax//typing.nit:1974 */
12137 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
12138 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
12139 /* ./syntax//typing.nit:1975 */
12140 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12141 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12142 /* ./../lib/standard//kernel.nit:337 */
12143 REGB0
= TAG_Int(1);
12144 /* ./../lib/standard//kernel.nit:218 */
12145 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
12146 /* ./../lib/standard//kernel.nit:337 */
12149 /* ./../lib/standard//kernel.nit:335 */
12154 /* ./syntax//typing.nit:1978 */
12155 REGB2
= TAG_Bool(true);
12156 ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[0]) = REGB2
;
12157 /* ./syntax//typing.nit:1979 */
12158 CALL_syntax___typing___ANode___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12159 /* ./syntax//typing.nit:1981 */
12160 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12161 REGB2
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12162 REGB1
= TAG_Bool(false);
12163 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
12164 if (UNTAG_Bool(REGB0
)) {
12166 /* ./../lib/standard//kernel.nit:178 */
12167 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
12168 /* ./syntax//typing.nit:1981 */
12171 if (UNTAG_Bool(REGB0
)) {
12172 /* ./syntax//typing.nit:1982 */
12173 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12174 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12175 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12176 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12177 if (UNTAG_Bool(REGB0
)) {
12179 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12180 if (UNTAG_Bool(REGB1
)) {
12181 REGB1
= TAG_Bool(false);
12184 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12188 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12189 if (UNTAG_Bool(REGB0
)) {
12190 /* ./syntax//typing.nit:1983 */
12191 if (!once_value_6
) {
12192 fra
.me
.REG
[3] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
12193 REGB0
= TAG_Int(77);
12194 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12195 once_value_6
= fra
.me
.REG
[3];
12196 register_static_object(&once_value_6
);
12197 } else fra
.me
.REG
[3] = once_value_6
;
12198 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12199 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12201 /* ./syntax//typing.nit:1984 */
12202 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12203 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12204 if (UNTAG_Bool(REGB0
)) {
12205 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12206 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
12207 if (UNTAG_Bool(REGB0
)) {
12209 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
12210 if (UNTAG_Bool(REGB1
)) {
12211 REGB1
= TAG_Bool(false);
12214 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
12218 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12220 REGB1
= TAG_Bool(false);
12223 if (UNTAG_Bool(REGB0
)) {
12224 /* ./syntax//typing.nit:1985 */
12225 if (!once_value_7
) {
12226 fra
.me
.REG
[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
12227 REGB0
= TAG_Int(80);
12228 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
12229 once_value_7
= fra
.me
.REG
[2];
12230 register_static_object(&once_value_7
);
12231 } else fra
.me
.REG
[2] = once_value_7
;
12232 fra
.me
.REG
[2] = fra
.me
.REG
[2];
12233 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
12237 /* ./syntax//typing.nit:1988 */
12238 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
12239 /* ./syntax//typing.nit:1989 */
12240 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
12241 /* ./syntax//typing.nit:1990 */
12242 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12243 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12245 stack_frame_head
= fra
.me
.prev
;
12248 void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
12249 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
12253 static val_t once_value_2
; /* Once value */
12254 static val_t once_value_3
; /* Once value */
12255 static val_t once_value_4
; /* Once value */
12256 static val_t once_value_5
; /* Once value */
12257 static val_t once_value_6
; /* Once value */
12258 static val_t once_value_7
; /* Once value */
12259 static val_t once_value_8
; /* Once value */
12260 static val_t once_value_9
; /* Once value */
12261 static val_t once_value_10
; /* Once value */
12262 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12263 fra
.me
.file
= LOCATE_syntax___typing
;
12264 fra
.me
.line
= 1996;
12265 fra
.me
.meth
= LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast
;
12266 fra
.me
.has_broke
= 0;
12267 fra
.me
.REG_size
= 6;
12268 fra
.me
.REG
[0] = NIT_NULL
;
12269 fra
.me
.REG
[1] = NIT_NULL
;
12270 fra
.me
.REG
[2] = NIT_NULL
;
12271 fra
.me
.REG
[3] = NIT_NULL
;
12272 fra
.me
.REG
[4] = NIT_NULL
;
12273 fra
.me
.REG
[5] = NIT_NULL
;
12274 fra
.me
.REG
[0] = p0
;
12275 fra
.me
.REG
[1] = p1
;
12276 fra
.me
.REG
[2] = p2
;
12277 fra
.me
.REG
[3] = p3
;
12278 /* ./syntax//typing.nit:1998 */
12279 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
12280 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12281 if (UNTAG_Bool(REGB0
)) {
12284 /* ./syntax//typing.nit:1999 */
12285 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12286 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12287 if (UNTAG_Bool(REGB0
)) {
12290 /* ./syntax//typing.nit:2000 */
12291 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12292 /* ./syntax//typing.nit:2001 */
12293 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12294 /* ./syntax//typing.nit:2002 */
12295 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
12296 if (UNTAG_Bool(REGB0
)) {
12298 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
12301 if (UNTAG_Bool(REGB0
)) {
12302 /* ./syntax//typing.nit:2003 */
12303 REGB0
= TAG_Int(3);
12304 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12305 if (!once_value_2
) {
12306 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
12307 REGB0
= TAG_Int(33);
12308 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12309 once_value_2
= fra
.me
.REG
[5];
12310 register_static_object(&once_value_2
);
12311 } else fra
.me
.REG
[5] = once_value_2
;
12312 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12313 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12314 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12315 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12316 if (!once_value_3
) {
12317 fra
.me
.REG
[5] = BOX_NativeString(".");
12318 REGB0
= TAG_Int(1);
12319 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12320 once_value_3
= fra
.me
.REG
[5];
12321 register_static_object(&once_value_3
);
12322 } else fra
.me
.REG
[5] = once_value_3
;
12323 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12324 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12325 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12326 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12328 /* ./syntax//typing.nit:2004 */
12329 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
12330 if (UNTAG_Bool(REGB0
)) {
12331 /* ./syntax//typing.nit:2005 */
12332 REGB0
= TAG_Int(5);
12333 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12334 if (!once_value_4
) {
12335 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
12336 REGB0
= TAG_Int(33);
12337 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12338 once_value_4
= fra
.me
.REG
[5];
12339 register_static_object(&once_value_4
);
12340 } else fra
.me
.REG
[5] = once_value_4
;
12341 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12342 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12343 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12345 if (!once_value_5
) {
12346 fra
.me
.REG
[5] = BOX_NativeString(" since it is a ");
12347 REGB0
= TAG_Int(15);
12348 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12349 once_value_5
= fra
.me
.REG
[5];
12350 register_static_object(&once_value_5
);
12351 } else fra
.me
.REG
[5] = once_value_5
;
12352 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12354 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12356 if (!once_value_6
) {
12357 fra
.me
.REG
[5] = BOX_NativeString(".");
12358 REGB0
= TAG_Int(1);
12359 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12360 once_value_6
= fra
.me
.REG
[5];
12361 register_static_object(&once_value_6
);
12362 } else fra
.me
.REG
[5] = once_value_6
;
12363 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12365 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12366 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12368 /* ./syntax//typing.nit:2006 */
12369 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
12370 if (UNTAG_Bool(REGB0
)) {
12371 /* ./syntax//typing.nit:2008 */
12372 REGB0
= TAG_Int(3);
12373 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12374 if (!once_value_7
) {
12375 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is null therefore cannot be a ");
12376 REGB0
= TAG_Int(50);
12377 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12378 once_value_7
= fra
.me
.REG
[5];
12379 register_static_object(&once_value_7
);
12380 } else fra
.me
.REG
[5] = once_value_7
;
12381 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12382 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12383 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12385 if (!once_value_8
) {
12386 fra
.me
.REG
[5] = BOX_NativeString(".");
12387 REGB0
= TAG_Int(1);
12388 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12389 once_value_8
= fra
.me
.REG
[5];
12390 register_static_object(&once_value_8
);
12391 } else fra
.me
.REG
[5] = once_value_8
;
12392 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12393 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12394 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12395 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12397 /* ./syntax//typing.nit:2009 */
12398 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12399 if (UNTAG_Bool(REGB0
)) {
12400 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12401 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
12402 if (UNTAG_Bool(REGB0
)) {
12404 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
12408 REGB1
= TAG_Bool(false);
12411 if (UNTAG_Bool(REGB0
)) {
12412 /* ./syntax//typing.nit:2010 */
12413 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___type_formal___MMTypeFormal
, ID_metamodel___type_formal___MMTypeFormal
)) /*cast MMTypeFormal*/;
12414 if (UNTAG_Bool(REGB0
)) {
12415 fra
.me
.REG
[3] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12416 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12418 REGB1
= TAG_Bool(false);
12421 if (UNTAG_Bool(REGB0
)) {
12423 /* ./syntax//typing.nit:2016 */
12424 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AIsaExpr
, ID_parser___parser_nodes___AIsaExpr
)) /*cast AIsaExpr*/;
12425 if (UNTAG_Bool(REGB0
)) {
12426 /* ./syntax//typing.nit:2017 */
12427 if (!once_value_9
) {
12428 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '!= null'.");
12429 REGB0
= TAG_Int(26);
12430 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12431 once_value_9
= fra
.me
.REG
[3];
12432 register_static_object(&once_value_9
);
12433 } else fra
.me
.REG
[3] = once_value_9
;
12434 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12435 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12437 /* ./syntax//typing.nit:2019 */
12438 if (!once_value_10
) {
12439 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
12440 REGB0
= TAG_Int(32);
12441 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12442 once_value_10
= fra
.me
.REG
[3];
12443 register_static_object(&once_value_10
);
12444 } else fra
.me
.REG
[3] = once_value_10
;
12445 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12446 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12454 stack_frame_head
= fra
.me
.prev
;
12457 void syntax___typing___AIsaExpr___after_typing(val_t p0
, val_t p1
){
12458 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12462 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12463 fra
.me
.file
= LOCATE_syntax___typing
;
12464 fra
.me
.line
= 2027;
12465 fra
.me
.meth
= LOCATE_syntax___typing___AIsaExpr___after_typing
;
12466 fra
.me
.has_broke
= 0;
12467 fra
.me
.REG_size
= 5;
12468 fra
.me
.REG
[0] = NIT_NULL
;
12469 fra
.me
.REG
[1] = NIT_NULL
;
12470 fra
.me
.REG
[2] = NIT_NULL
;
12471 fra
.me
.REG
[3] = NIT_NULL
;
12472 fra
.me
.REG
[4] = NIT_NULL
;
12473 fra
.me
.REG
[0] = p0
;
12474 fra
.me
.REG
[1] = p1
;
12475 /* ./syntax//typing.nit:2029 */
12476 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12477 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12478 CALL_syntax___typing___ATypeCheckExpr___check_expr_cast(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
12479 /* ./syntax//typing.nit:2030 */
12480 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12481 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12482 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12483 if (UNTAG_Bool(REGB0
)) {
12486 /* ./syntax//typing.nit:2031 */
12487 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12488 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12489 /* ./syntax//typing.nit:2032 */
12490 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12491 if (UNTAG_Bool(REGB0
)) {
12493 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12494 if (UNTAG_Bool(REGB1
)) {
12495 REGB1
= TAG_Bool(false);
12498 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12502 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12503 if (UNTAG_Bool(REGB0
)) {
12504 /* ./syntax//typing.nit:2033 */
12505 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12506 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12507 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12508 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___sub_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[4]);
12509 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12511 /* ./syntax//typing.nit:2035 */
12512 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12513 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
12514 /* ./syntax//typing.nit:2036 */
12515 REGB0
= TAG_Bool(true);
12516 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12518 stack_frame_head
= fra
.me
.prev
;
12521 void syntax___typing___AAsCastExpr___after_typing(val_t p0
, val_t p1
){
12522 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
12526 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12527 fra
.me
.file
= LOCATE_syntax___typing
;
12528 fra
.me
.line
= 2042;
12529 fra
.me
.meth
= LOCATE_syntax___typing___AAsCastExpr___after_typing
;
12530 fra
.me
.has_broke
= 0;
12531 fra
.me
.REG_size
= 4;
12532 fra
.me
.REG
[0] = NIT_NULL
;
12533 fra
.me
.REG
[1] = NIT_NULL
;
12534 fra
.me
.REG
[2] = NIT_NULL
;
12535 fra
.me
.REG
[3] = NIT_NULL
;
12536 fra
.me
.REG
[0] = p0
;
12537 fra
.me
.REG
[1] = p1
;
12538 /* ./syntax//typing.nit:2044 */
12539 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12540 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12541 CALL_syntax___typing___ATypeCheckExpr___check_expr_cast(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
12542 /* ./syntax//typing.nit:2045 */
12543 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12544 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12545 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12546 if (UNTAG_Bool(REGB0
)) {
12549 /* ./syntax//typing.nit:2046 */
12550 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12551 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12552 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
12553 /* ./syntax//typing.nit:2047 */
12554 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
12555 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12556 if (UNTAG_Bool(REGB0
)) {
12558 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12559 if (UNTAG_Bool(REGB1
)) {
12560 REGB1
= TAG_Bool(false);
12563 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12567 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12568 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12570 stack_frame_head
= fra
.me
.prev
;
12573 void syntax___typing___AAsNotnullExpr___after_typing(val_t p0
, val_t p1
){
12574 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12577 static val_t once_value_2
; /* Once value */
12578 static val_t once_value_3
; /* Once value */
12579 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12580 fra
.me
.file
= LOCATE_syntax___typing
;
12581 fra
.me
.line
= 2052;
12582 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotnullExpr___after_typing
;
12583 fra
.me
.has_broke
= 0;
12584 fra
.me
.REG_size
= 5;
12585 fra
.me
.REG
[0] = NIT_NULL
;
12586 fra
.me
.REG
[1] = NIT_NULL
;
12587 fra
.me
.REG
[2] = NIT_NULL
;
12588 fra
.me
.REG
[3] = NIT_NULL
;
12589 fra
.me
.REG
[4] = NIT_NULL
;
12590 fra
.me
.REG
[0] = p0
;
12591 fra
.me
.REG
[1] = p1
;
12592 /* ./syntax//typing.nit:2054 */
12593 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12594 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
12595 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12596 if (UNTAG_Bool(REGB0
)) {
12599 /* ./syntax//typing.nit:2055 */
12600 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12601 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12602 /* ./syntax//typing.nit:2056 */
12603 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
12604 if (UNTAG_Bool(REGB0
)) {
12605 /* ./syntax//typing.nit:2057 */
12606 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12607 if (!once_value_2
) {
12608 fra
.me
.REG
[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
12609 REGB0
= TAG_Int(43);
12610 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
12611 once_value_2
= fra
.me
.REG
[4];
12612 register_static_object(&once_value_2
);
12613 } else fra
.me
.REG
[4] = once_value_2
;
12614 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12615 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
12616 /* ./syntax//typing.nit:2058 */
12619 /* ./syntax//typing.nit:2059 */
12620 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12621 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12622 if (UNTAG_Bool(REGB0
)) {
12623 /* ./syntax//typing.nit:2060 */
12624 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12625 if (!once_value_3
) {
12626 fra
.me
.REG
[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
12627 REGB0
= TAG_Int(45);
12628 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
12629 once_value_3
= fra
.me
.REG
[4];
12630 register_static_object(&once_value_3
);
12631 } else fra
.me
.REG
[4] = once_value_3
;
12632 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12633 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
12636 /* ./syntax//typing.nit:2062 */
12637 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12638 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12639 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12640 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12641 /* ./syntax//typing.nit:2063 */
12642 REGB0
= TAG_Bool(true);
12643 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12645 stack_frame_head
= fra
.me
.prev
;
12648 void syntax___typing___AProxyExpr___after_typing(val_t p0
, val_t p1
){
12649 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12652 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12653 fra
.me
.file
= LOCATE_syntax___typing
;
12654 fra
.me
.line
= 2068;
12655 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___after_typing
;
12656 fra
.me
.has_broke
= 0;
12657 fra
.me
.REG_size
= 2;
12658 fra
.me
.REG
[0] = NIT_NULL
;
12659 fra
.me
.REG
[1] = NIT_NULL
;
12660 fra
.me
.REG
[0] = p0
;
12661 fra
.me
.REG
[1] = p1
;
12662 /* ./syntax//typing.nit:2070 */
12663 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12664 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12665 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12666 if (UNTAG_Bool(REGB0
)) {
12669 /* ./syntax//typing.nit:2071 */
12670 REGB0
= TAG_Bool(true);
12671 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12672 /* ./syntax//typing.nit:2072 */
12673 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12674 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12675 if (UNTAG_Bool(REGB0
)) {
12678 /* ./syntax//typing.nit:2073 */
12679 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12680 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12681 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
12683 stack_frame_head
= fra
.me
.prev
;
12686 void syntax___typing___AOnceExpr___accept_typing(val_t p0
, val_t p1
){
12687 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12691 static val_t once_value_1
; /* Once value */
12692 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12693 fra
.me
.file
= LOCATE_syntax___typing
;
12694 fra
.me
.line
= 2078;
12695 fra
.me
.meth
= LOCATE_syntax___typing___AOnceExpr___accept_typing
;
12696 fra
.me
.has_broke
= 0;
12697 fra
.me
.REG_size
= 5;
12698 fra
.me
.REG
[0] = NIT_NULL
;
12699 fra
.me
.REG
[1] = NIT_NULL
;
12700 fra
.me
.REG
[2] = NIT_NULL
;
12701 fra
.me
.REG
[3] = NIT_NULL
;
12702 fra
.me
.REG
[4] = NIT_NULL
;
12703 fra
.me
.REG
[0] = p0
;
12704 fra
.me
.REG
[1] = p1
;
12705 /* ./syntax//typing.nit:2078 */
12706 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12707 fra
.me
.REG
[3] = fra
.me
.REG
[1];
12708 /* ./syntax//typing.nit:2080 */
12709 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12710 REGB1
= TAG_Int(0);
12711 /* ./../lib/standard//kernel.nit:217 */
12712 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
12713 /* ./syntax//typing.nit:2080 */
12714 if (UNTAG_Bool(REGB1
)) {
12715 /* ./syntax//typing.nit:2081 */
12716 if (!once_value_1
) {
12717 fra
.me
.REG
[4] = BOX_NativeString("Useless once in a once expression.");
12718 REGB1
= TAG_Int(34);
12719 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
12720 once_value_1
= fra
.me
.REG
[4];
12721 register_static_object(&once_value_1
);
12722 } else fra
.me
.REG
[4] = once_value_1
;
12723 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12724 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
12726 /* ./syntax//typing.nit:2083 */
12727 REGB1
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12728 REGB0
= TAG_Int(1);
12729 /* ./../lib/standard//kernel.nit:218 */
12730 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
12731 /* ./syntax//typing.nit:2083 */
12732 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
12733 /* ./syntax//typing.nit:2085 */
12734 CALL_SUPER_syntax___typing___AOnceExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12735 /* ./syntax//typing.nit:2087 */
12736 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12737 REGB1
= TAG_Int(1);
12738 /* ./../lib/standard//kernel.nit:220 */
12739 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
12740 /* ./syntax//typing.nit:2087 */
12741 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
12742 stack_frame_head
= fra
.me
.prev
;