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
; val_t MORE_REG
[1];} 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
;
96 fra
.me
.REG
[1] = NIT_NULL
;
98 /* ./syntax//typing.nit:49 */
99 fra
.me
.REG
[1] = fra
.me
.REG
[0];
100 /* ./syntax//typing.nit:50 */
101 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____flow_ctx(fra
.me
.REG
[1]);
102 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
103 if (UNTAG_Bool(REGB0
)) {
105 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 50);
109 stack_frame_head
= fra
.me
.prev
;
110 return fra
.me
.REG
[1];
112 void syntax___typing___TypingVisitor___flow_ctx__eq(val_t p0
, val_t p1
){
113 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
115 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
116 fra
.me
.file
= LOCATE_syntax___typing
;
118 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___flow_ctx__eq
;
119 fra
.me
.has_broke
= 0;
121 fra
.me
.REG
[0] = NIT_NULL
;
122 fra
.me
.REG
[1] = NIT_NULL
;
125 /* ./syntax//typing.nit:51 */
126 ATTR_syntax___typing___TypingVisitor____flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
127 stack_frame_head
= fra
.me
.prev
;
130 void syntax___typing___TypingVisitor___mark_is_set(val_t p0
, val_t p1
){
131 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
134 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
135 fra
.me
.file
= LOCATE_syntax___typing
;
137 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___mark_is_set
;
138 fra
.me
.has_broke
= 0;
140 fra
.me
.REG
[0] = NIT_NULL
;
141 fra
.me
.REG
[1] = NIT_NULL
;
142 fra
.me
.REG
[2] = NIT_NULL
;
145 /* ./syntax//typing.nit:56 */
146 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
147 REGB0
= CALL_syntax___flow___FlowContext___is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
148 if (UNTAG_Bool(REGB0
)) {
151 /* ./syntax//typing.nit:57 */
152 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
153 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_setvariable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
154 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
156 stack_frame_head
= fra
.me
.prev
;
159 void syntax___typing___TypingVisitor___mark_unreash(val_t p0
, val_t p1
){
160 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
162 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
163 fra
.me
.file
= LOCATE_syntax___typing
;
165 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___mark_unreash
;
166 fra
.me
.has_broke
= 0;
168 fra
.me
.REG
[0] = NIT_NULL
;
169 fra
.me
.REG
[1] = NIT_NULL
;
170 fra
.me
.REG
[2] = NIT_NULL
;
173 /* ./syntax//typing.nit:63 */
174 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
175 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_unreash(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
176 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
177 stack_frame_head
= fra
.me
.prev
;
180 void syntax___typing___TypingVisitor___enter_visit_block(val_t p0
, val_t p1
){
181 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
185 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
186 fra
.me
.file
= LOCATE_syntax___typing
;
188 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___enter_visit_block
;
189 fra
.me
.has_broke
= 0;
191 fra
.me
.REG
[0] = NIT_NULL
;
192 fra
.me
.REG
[1] = NIT_NULL
;
193 fra
.me
.REG
[2] = NIT_NULL
;
196 /* ./syntax//typing.nit:69 */
197 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
198 if (UNTAG_Bool(REGB0
)) {
200 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
201 if (UNTAG_Bool(REGB1
)) {
202 REGB1
= TAG_Bool(false);
205 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
209 if (UNTAG_Bool(REGB0
)) {
212 /* ./syntax//typing.nit:70 */
213 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
214 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
215 /* ./syntax//typing.nit:71 */
216 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
217 /* ./syntax//typing.nit:72 */
218 fra
.me
.REG
[0] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
219 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
221 stack_frame_head
= fra
.me
.prev
;
224 val_t
syntax___typing___TypingVisitor___base_flow_ctx(val_t p0
){
225 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
228 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
229 fra
.me
.file
= LOCATE_syntax___typing
;
231 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___base_flow_ctx
;
232 fra
.me
.has_broke
= 0;
234 fra
.me
.REG
[0] = NIT_NULL
;
235 fra
.me
.REG
[1] = NIT_NULL
;
237 /* ./syntax//typing.nit:75 */
238 fra
.me
.REG
[1] = fra
.me
.REG
[0];
239 /* ./syntax//typing.nit:76 */
240 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra
.me
.REG
[1]);
241 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
242 if (UNTAG_Bool(REGB0
)) {
244 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 76);
248 stack_frame_head
= fra
.me
.prev
;
249 return fra
.me
.REG
[1];
251 void syntax___typing___TypingVisitor___base_flow_ctx__eq(val_t p0
, val_t p1
){
252 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
254 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
255 fra
.me
.file
= LOCATE_syntax___typing
;
257 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___base_flow_ctx__eq
;
258 fra
.me
.has_broke
= 0;
260 fra
.me
.REG
[0] = NIT_NULL
;
261 fra
.me
.REG
[1] = NIT_NULL
;
264 /* ./syntax//typing.nit:77 */
265 ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
266 stack_frame_head
= fra
.me
.prev
;
269 val_t
syntax___typing___TypingVisitor___self_var(val_t p0
){
270 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
273 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
274 fra
.me
.file
= LOCATE_syntax___typing
;
276 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___self_var
;
277 fra
.me
.has_broke
= 0;
279 fra
.me
.REG
[0] = NIT_NULL
;
280 fra
.me
.REG
[1] = NIT_NULL
;
282 /* ./syntax//typing.nit:79 */
283 fra
.me
.REG
[1] = fra
.me
.REG
[0];
284 /* ./syntax//typing.nit:80 */
285 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____self_var(fra
.me
.REG
[1]);
286 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
287 if (UNTAG_Bool(REGB0
)) {
289 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 80);
293 stack_frame_head
= fra
.me
.prev
;
294 return fra
.me
.REG
[1];
296 void syntax___typing___TypingVisitor___self_var__eq(val_t p0
, val_t p1
){
297 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
299 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
300 fra
.me
.file
= LOCATE_syntax___typing
;
302 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___self_var__eq
;
303 fra
.me
.has_broke
= 0;
305 fra
.me
.REG
[0] = NIT_NULL
;
306 fra
.me
.REG
[1] = NIT_NULL
;
309 /* ./syntax//typing.nit:81 */
310 ATTR_syntax___typing___TypingVisitor____self_var(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
311 stack_frame_head
= fra
.me
.prev
;
314 val_t
syntax___typing___TypingVisitor___top_block(val_t p0
){
315 struct {struct stack_frame_t me
;} fra
;
317 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
318 fra
.me
.file
= LOCATE_syntax___typing
;
320 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___top_block
;
321 fra
.me
.has_broke
= 0;
323 fra
.me
.REG
[0] = NIT_NULL
;
325 /* ./syntax//typing.nit:83 */
326 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____top_block(fra
.me
.REG
[0]);
327 stack_frame_head
= fra
.me
.prev
;
328 return fra
.me
.REG
[0];
330 void syntax___typing___TypingVisitor___top_block__eq(val_t p0
, val_t p1
){
331 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
333 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
334 fra
.me
.file
= LOCATE_syntax___typing
;
336 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___top_block__eq
;
337 fra
.me
.has_broke
= 0;
339 fra
.me
.REG
[0] = NIT_NULL
;
340 fra
.me
.REG
[1] = NIT_NULL
;
343 /* ./syntax//typing.nit:83 */
344 ATTR_syntax___typing___TypingVisitor____top_block(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
345 stack_frame_head
= fra
.me
.prev
;
348 val_t
syntax___typing___TypingVisitor___explicit_super_init_calls(val_t p0
){
349 struct {struct stack_frame_t me
;} fra
;
351 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
352 fra
.me
.file
= LOCATE_syntax___typing
;
354 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls
;
355 fra
.me
.has_broke
= 0;
357 fra
.me
.REG
[0] = NIT_NULL
;
359 /* ./syntax//typing.nit:86 */
360 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]);
361 stack_frame_head
= fra
.me
.prev
;
362 return fra
.me
.REG
[0];
364 void syntax___typing___TypingVisitor___explicit_super_init_calls__eq(val_t p0
, val_t p1
){
365 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
367 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
368 fra
.me
.file
= LOCATE_syntax___typing
;
370 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls__eq
;
371 fra
.me
.has_broke
= 0;
373 fra
.me
.REG
[0] = NIT_NULL
;
374 fra
.me
.REG
[1] = NIT_NULL
;
377 /* ./syntax//typing.nit:86 */
378 ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
379 stack_frame_head
= fra
.me
.prev
;
382 val_t
syntax___typing___TypingVisitor___explicit_other_init_call(val_t p0
){
383 struct {struct stack_frame_t me
;} fra
;
386 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
387 fra
.me
.file
= LOCATE_syntax___typing
;
389 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call
;
390 fra
.me
.has_broke
= 0;
392 fra
.me
.REG
[0] = NIT_NULL
;
394 /* ./syntax//typing.nit:89 */
395 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0])!=NIT_NULL
);
396 if (UNTAG_Bool(REGB0
)) {
398 nit_abort("Uninitialized attribute %s", "_explicit_other_init_call", LOCATE_syntax___typing
, 89);
400 REGB0
= ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]);
401 stack_frame_head
= fra
.me
.prev
;
404 void syntax___typing___TypingVisitor___explicit_other_init_call__eq(val_t p0
, val_t p1
){
405 struct {struct stack_frame_t me
;} fra
;
408 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
409 fra
.me
.file
= LOCATE_syntax___typing
;
411 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call__eq
;
412 fra
.me
.has_broke
= 0;
414 fra
.me
.REG
[0] = NIT_NULL
;
417 /* ./syntax//typing.nit:89 */
418 ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]) = REGB0
;
419 stack_frame_head
= fra
.me
.prev
;
422 void syntax___typing___TypingVisitor___use_if_true_flow_ctx(val_t p0
, val_t p1
){
423 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
427 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
428 fra
.me
.file
= LOCATE_syntax___typing
;
430 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___use_if_true_flow_ctx
;
431 fra
.me
.has_broke
= 0;
433 fra
.me
.REG
[0] = NIT_NULL
;
434 fra
.me
.REG
[1] = NIT_NULL
;
437 /* ./syntax//typing.nit:95 */
438 fra
.me
.REG
[1] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
439 /* ./syntax//typing.nit:96 */
440 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
441 if (UNTAG_Bool(REGB0
)) {
443 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
444 if (UNTAG_Bool(REGB1
)) {
445 REGB1
= TAG_Bool(false);
448 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
452 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
453 if (UNTAG_Bool(REGB0
)) {
454 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
456 stack_frame_head
= fra
.me
.prev
;
459 void syntax___typing___TypingVisitor___use_if_false_flow_ctx(val_t p0
, val_t p1
){
460 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
464 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
465 fra
.me
.file
= LOCATE_syntax___typing
;
467 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___use_if_false_flow_ctx
;
468 fra
.me
.has_broke
= 0;
470 fra
.me
.REG
[0] = NIT_NULL
;
471 fra
.me
.REG
[1] = NIT_NULL
;
474 /* ./syntax//typing.nit:102 */
475 fra
.me
.REG
[1] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
476 /* ./syntax//typing.nit:103 */
477 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
478 if (UNTAG_Bool(REGB0
)) {
480 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
481 if (UNTAG_Bool(REGB1
)) {
482 REGB1
= TAG_Bool(false);
485 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
489 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
490 if (UNTAG_Bool(REGB0
)) {
491 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
493 stack_frame_head
= fra
.me
.prev
;
496 val_t
syntax___typing___TypingVisitor___is_default_closure_definition(val_t p0
){
497 struct {struct stack_frame_t me
;} fra
;
500 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
501 fra
.me
.file
= LOCATE_syntax___typing
;
503 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition
;
504 fra
.me
.has_broke
= 0;
506 fra
.me
.REG
[0] = NIT_NULL
;
508 /* ./syntax//typing.nit:106 */
509 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0])!=NIT_NULL
);
510 if (UNTAG_Bool(REGB0
)) {
512 nit_abort("Uninitialized attribute %s", "_is_default_closure_definition", LOCATE_syntax___typing
, 106);
514 REGB0
= ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]);
515 stack_frame_head
= fra
.me
.prev
;
518 void syntax___typing___TypingVisitor___is_default_closure_definition__eq(val_t p0
, val_t p1
){
519 struct {struct stack_frame_t me
;} fra
;
522 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
523 fra
.me
.file
= LOCATE_syntax___typing
;
525 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition__eq
;
526 fra
.me
.has_broke
= 0;
528 fra
.me
.REG
[0] = NIT_NULL
;
531 /* ./syntax//typing.nit:106 */
532 ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]) = REGB0
;
533 stack_frame_head
= fra
.me
.prev
;
536 val_t
syntax___typing___TypingVisitor___once_count(val_t p0
){
537 struct {struct stack_frame_t me
;} fra
;
540 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
541 fra
.me
.file
= LOCATE_syntax___typing
;
543 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___once_count
;
544 fra
.me
.has_broke
= 0;
546 fra
.me
.REG
[0] = NIT_NULL
;
548 /* ./syntax//typing.nit:109 */
549 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0])!=NIT_NULL
);
550 if (UNTAG_Bool(REGB0
)) {
552 nit_abort("Uninitialized attribute %s", "_once_count", LOCATE_syntax___typing
, 109);
554 REGB0
= ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0]);
555 stack_frame_head
= fra
.me
.prev
;
558 void syntax___typing___TypingVisitor___once_count__eq(val_t p0
, val_t p1
){
559 struct {struct stack_frame_t me
;} fra
;
562 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
563 fra
.me
.file
= LOCATE_syntax___typing
;
565 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___once_count__eq
;
566 fra
.me
.has_broke
= 0;
568 fra
.me
.REG
[0] = NIT_NULL
;
571 /* ./syntax//typing.nit:109 */
572 ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0]) = REGB0
;
573 stack_frame_head
= fra
.me
.prev
;
576 void syntax___typing___TypingVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
577 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___typing___TypingVisitor
].i
;
578 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
580 if (init_table
[itpos0
]) return;
581 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
582 fra
.me
.file
= LOCATE_syntax___typing
;
584 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___init
;
585 fra
.me
.has_broke
= 0;
587 fra
.me
.REG
[0] = NIT_NULL
;
588 fra
.me
.REG
[1] = NIT_NULL
;
589 fra
.me
.REG
[2] = NIT_NULL
;
593 /* ./syntax//typing.nit:112 */
594 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
595 stack_frame_head
= fra
.me
.prev
;
596 init_table
[itpos0
] = 1;
599 val_t
syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
600 struct {struct stack_frame_t me
; val_t MORE_REG
[11];} fra
;
605 static val_t once_value_6
; /* Once value */
606 static val_t once_value_7
; /* Once value */
607 static val_t once_value_8
; /* Once value */
608 static val_t once_value_10
; /* Once value */
609 static val_t once_value_11
; /* Once value */
610 static val_t once_value_12
; /* Once value */
611 static val_t once_value_13
; /* Once value */
612 static val_t once_value_14
; /* Once value */
613 static val_t once_value_15
; /* Once value */
614 static val_t once_value_16
; /* Once value */
615 static val_t once_value_18
; /* Once value */
616 static val_t once_value_19
; /* Once value */
617 static val_t once_value_20
; /* Once value */
618 static val_t once_value_21
; /* Once value */
619 static val_t once_value_22
; /* Once value */
620 static val_t once_value_23
; /* Once value */
621 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
622 fra
.me
.file
= LOCATE_syntax___typing
;
624 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for
;
625 fra
.me
.has_broke
= 0;
626 fra
.me
.REG_size
= 12;
627 fra
.me
.REG
[0] = NIT_NULL
;
628 fra
.me
.REG
[1] = NIT_NULL
;
629 fra
.me
.REG
[2] = NIT_NULL
;
630 fra
.me
.REG
[3] = NIT_NULL
;
631 fra
.me
.REG
[4] = NIT_NULL
;
632 fra
.me
.REG
[5] = NIT_NULL
;
633 fra
.me
.REG
[6] = NIT_NULL
;
634 fra
.me
.REG
[7] = NIT_NULL
;
635 fra
.me
.REG
[8] = NIT_NULL
;
636 fra
.me
.REG
[9] = NIT_NULL
;
637 fra
.me
.REG
[10] = NIT_NULL
;
638 fra
.me
.REG
[11] = NIT_NULL
;
643 /* ./syntax//typing.nit:114 */
644 fra
.me
.REG
[4] = fra
.me
.REG
[0];
645 /* ./syntax//typing.nit:116 */
646 fra
.me
.REG
[5] = fra
.me
.REG
[4];
647 /* ./syntax//typing.nit:119 */
648 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
649 /* ./syntax//typing.nit:120 */
650 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
651 /* ./syntax//typing.nit:121 */
652 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
653 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
654 if (UNTAG_Bool(REGB0
)) {
655 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 121);
657 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
658 fra
.me
.REG
[8] = REGB0
;
659 /* ./syntax//typing.nit:122 */
660 fra
.me
.REG
[9] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
661 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[9])(fra
.me
.REG
[9], (&(fra
.me
)), ((fun_t
)OC_syntax___typing___TypingVisitor___get_default_constructor_for_1
));
662 switch ((&(fra
.me
))->has_broke
) {
664 case 1: (&(fra
.me
))->has_broke
= 0; goto label5
;
666 /* ./../lib/standard//collection//array.nit:23 */
667 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
668 if (UNTAG_Bool(REGB0
)) {
670 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
672 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
673 /* ./syntax//typing.nit:141 */
675 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
676 if (UNTAG_Bool(REGB2
)) {
678 /* ./../lib/standard//kernel.nit:210 */
679 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
680 /* ./syntax//typing.nit:141 */
683 if (UNTAG_Bool(REGB2
)) {
684 /* ./syntax//typing.nit:142 */
685 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
686 fra
.me
.REG
[9] = fra
.me
.REG
[3];
689 /* ./../lib/standard//collection//array.nit:23 */
690 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
691 if (UNTAG_Bool(REGB2
)) {
693 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
695 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
696 /* ./syntax//typing.nit:143 */
698 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
699 if (UNTAG_Bool(REGB0
)) {
701 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
703 /* ./../lib/standard//kernel.nit:217 */
704 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB1
));
705 /* ./syntax//typing.nit:143 */
706 if (UNTAG_Bool(REGB1
)) {
707 /* ./syntax//typing.nit:144 */
708 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
709 /* ./../lib/standard//collection//array.nit:232 */
711 /* ./../lib/standard//collection//array.nit:233 */
712 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
713 if (UNTAG_Bool(REGB2
)) {
715 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
717 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
718 /* ./../lib/standard//collection//array.nit:234 */
719 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
720 /* ./../lib/standard//collection//array.nit:235 */
722 /* ./../lib/standard//collection//array.nit:23 */
723 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
724 if (UNTAG_Bool(REGB2
)) {
726 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
728 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
729 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
730 if (UNTAG_Bool(REGB0
)) {
732 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
734 /* ./../lib/standard//kernel.nit:215 */
735 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
736 /* ./../lib/standard//collection//array.nit:235 */
737 if (UNTAG_Bool(REGB2
)) {
738 /* ./../lib/standard//collection//array.nit:236 */
739 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
740 if (UNTAG_Bool(REGB2
)) {
741 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
743 /* ./../lib/standard//collection//array.nit:652 */
744 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
745 /* ./syntax//typing.nit:146 */
747 fra
.me
.REG
[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
749 fra
.me
.REG
[11] = BOX_NativeString("");
751 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB2
);
752 once_value_6
= fra
.me
.REG
[11];
753 register_static_object(&once_value_6
);
754 } else fra
.me
.REG
[11] = once_value_6
;
755 fra
.me
.REG
[11] = fra
.me
.REG
[11];
756 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
757 fra
.me
.REG
[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
760 fra
.me
.REG
[11] = BOX_NativeString("");
762 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB2
);
763 once_value_7
= fra
.me
.REG
[11];
764 register_static_object(&once_value_7
);
765 } else fra
.me
.REG
[11] = once_value_7
;
766 fra
.me
.REG
[11] = fra
.me
.REG
[11];
767 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
768 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
769 REGB2
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMSignature
, ID_metamodel___static_type___MMSignature
)) /*cast MMSignature*/;
770 if (UNTAG_Bool(REGB2
)) {
772 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 146);
774 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
775 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
777 fra
.me
.REG
[4] = BOX_NativeString("");
779 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB2
);
780 once_value_8
= fra
.me
.REG
[4];
781 register_static_object(&once_value_8
);
782 } else fra
.me
.REG
[4] = once_value_8
;
783 fra
.me
.REG
[4] = fra
.me
.REG
[4];
784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
785 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[10]);
787 /* ./../lib/standard//collection//array.nit:237 */
789 /* ./../lib/standard//kernel.nit:218 */
790 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
791 /* ./../lib/standard//collection//array.nit:237 */
794 /* ./../lib/standard//collection//array.nit:235 */
799 /* ./syntax//typing.nit:148 */
801 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
802 if (!once_value_10
) {
803 fra
.me
.REG
[6] = BOX_NativeString("Error: Conflicting default constructor to call for ");
805 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
806 once_value_10
= fra
.me
.REG
[6];
807 register_static_object(&once_value_10
);
808 } else fra
.me
.REG
[6] = once_value_10
;
809 fra
.me
.REG
[6] = fra
.me
.REG
[6];
810 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
811 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
812 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
813 if (!once_value_11
) {
814 fra
.me
.REG
[6] = BOX_NativeString(": ");
816 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
817 once_value_11
= fra
.me
.REG
[6];
818 register_static_object(&once_value_11
);
819 } else fra
.me
.REG
[6] = once_value_11
;
820 fra
.me
.REG
[6] = fra
.me
.REG
[6];
821 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
822 if (!once_value_12
) {
823 fra
.me
.REG
[6] = BOX_NativeString(", ");
825 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
826 once_value_12
= fra
.me
.REG
[6];
827 register_static_object(&once_value_12
);
828 } else fra
.me
.REG
[6] = once_value_12
;
829 fra
.me
.REG
[6] = fra
.me
.REG
[6];
830 fra
.me
.REG
[6] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
831 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
832 if (!once_value_13
) {
833 fra
.me
.REG
[6] = BOX_NativeString(".");
835 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
836 once_value_13
= fra
.me
.REG
[6];
837 register_static_object(&once_value_13
);
838 } else fra
.me
.REG
[6] = once_value_13
;
839 fra
.me
.REG
[6] = fra
.me
.REG
[6];
840 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
841 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
842 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[8]);
843 /* ./syntax//typing.nit:149 */
844 fra
.me
.REG
[9] = NIT_NULL
;
847 /* ./../lib/standard//collection//array.nit:23 */
848 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
849 if (UNTAG_Bool(REGB1
)) {
851 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
853 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
854 /* ./syntax//typing.nit:150 */
856 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
857 if (UNTAG_Bool(REGB0
)) {
859 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
861 /* ./../lib/standard//kernel.nit:217 */
862 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
863 /* ./syntax//typing.nit:150 */
864 if (UNTAG_Bool(REGB2
)) {
865 /* ./syntax//typing.nit:151 */
866 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
867 /* ./../lib/standard//collection//array.nit:232 */
869 /* ./../lib/standard//collection//array.nit:233 */
870 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
871 if (UNTAG_Bool(REGB1
)) {
873 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
875 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
876 /* ./../lib/standard//collection//array.nit:234 */
877 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
878 /* ./../lib/standard//collection//array.nit:235 */
880 /* ./../lib/standard//collection//array.nit:23 */
881 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
882 if (UNTAG_Bool(REGB1
)) {
884 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
886 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
887 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
888 if (UNTAG_Bool(REGB0
)) {
890 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
892 /* ./../lib/standard//kernel.nit:215 */
893 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
894 /* ./../lib/standard//collection//array.nit:235 */
895 if (UNTAG_Bool(REGB1
)) {
896 /* ./../lib/standard//collection//array.nit:236 */
897 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
898 if (UNTAG_Bool(REGB1
)) {
899 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
901 /* ./../lib/standard//collection//array.nit:652 */
902 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB2
)];
903 /* ./syntax//typing.nit:153 */
905 fra
.me
.REG
[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
906 if (!once_value_14
) {
907 fra
.me
.REG
[4] = BOX_NativeString("");
909 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
910 once_value_14
= fra
.me
.REG
[4];
911 register_static_object(&once_value_14
);
912 } else fra
.me
.REG
[4] = once_value_14
;
913 fra
.me
.REG
[4] = fra
.me
.REG
[4];
914 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
915 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
916 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
917 if (!once_value_15
) {
918 fra
.me
.REG
[4] = BOX_NativeString("");
920 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
921 once_value_15
= fra
.me
.REG
[4];
922 register_static_object(&once_value_15
);
923 } else fra
.me
.REG
[4] = once_value_15
;
924 fra
.me
.REG
[4] = fra
.me
.REG
[4];
925 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
926 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
927 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*/;
928 if (UNTAG_Bool(REGB1
)) {
930 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 153);
932 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
933 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[3]);
934 if (!once_value_16
) {
935 fra
.me
.REG
[3] = BOX_NativeString("");
937 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
938 once_value_16
= fra
.me
.REG
[3];
939 register_static_object(&once_value_16
);
940 } else fra
.me
.REG
[3] = once_value_16
;
941 fra
.me
.REG
[3] = fra
.me
.REG
[3];
942 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[3]);
943 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
944 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[10]);
945 /* ./../lib/standard//collection//array.nit:237 */
947 /* ./../lib/standard//kernel.nit:218 */
948 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
949 /* ./../lib/standard//collection//array.nit:237 */
952 /* ./../lib/standard//collection//array.nit:235 */
957 /* ./syntax//typing.nit:155 */
959 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
960 if (!once_value_18
) {
961 fra
.me
.REG
[6] = BOX_NativeString("Error: there is no available compatible constructor in ");
963 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
964 once_value_18
= fra
.me
.REG
[6];
965 register_static_object(&once_value_18
);
966 } else fra
.me
.REG
[6] = once_value_18
;
967 fra
.me
.REG
[6] = fra
.me
.REG
[6];
968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
969 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
970 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
971 if (!once_value_19
) {
972 fra
.me
.REG
[6] = BOX_NativeString(". Discarded candidates are ");
974 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
975 once_value_19
= fra
.me
.REG
[6];
976 register_static_object(&once_value_19
);
977 } else fra
.me
.REG
[6] = once_value_19
;
978 fra
.me
.REG
[6] = fra
.me
.REG
[6];
979 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
980 if (!once_value_20
) {
981 fra
.me
.REG
[6] = BOX_NativeString(", ");
983 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
984 once_value_20
= fra
.me
.REG
[6];
985 register_static_object(&once_value_20
);
986 } else fra
.me
.REG
[6] = once_value_20
;
987 fra
.me
.REG
[6] = fra
.me
.REG
[6];
988 fra
.me
.REG
[6] = CALL_standard___string___Collection___join(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
989 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
990 if (!once_value_21
) {
991 fra
.me
.REG
[6] = BOX_NativeString(".");
993 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
994 once_value_21
= fra
.me
.REG
[6];
995 register_static_object(&once_value_21
);
996 } else fra
.me
.REG
[6] = once_value_21
;
997 fra
.me
.REG
[6] = fra
.me
.REG
[6];
998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
999 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1000 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[0]);
1001 /* ./syntax//typing.nit:156 */
1002 fra
.me
.REG
[9] = NIT_NULL
;
1005 /* ./syntax//typing.nit:158 */
1007 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
1008 if (!once_value_22
) {
1009 fra
.me
.REG
[6] = BOX_NativeString("Error: there is no available compatible constructor in ");
1010 REGB2
= TAG_Int(55);
1011 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
1012 once_value_22
= fra
.me
.REG
[6];
1013 register_static_object(&once_value_22
);
1014 } else fra
.me
.REG
[6] = once_value_22
;
1015 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1016 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1017 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
1019 if (!once_value_23
) {
1020 fra
.me
.REG
[2] = BOX_NativeString(".");
1022 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB2
);
1023 once_value_23
= fra
.me
.REG
[2];
1024 register_static_object(&once_value_23
);
1025 } else fra
.me
.REG
[2] = once_value_23
;
1026 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1027 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
1028 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1029 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[0]);
1030 /* ./syntax//typing.nit:159 */
1031 fra
.me
.REG
[9] = NIT_NULL
;
1037 stack_frame_head
= fra
.me
.prev
;
1038 return fra
.me
.REG
[9];
1040 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
){
1041 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1048 static val_t once_value_3
; /* Once value */
1049 static val_t once_value_4
; /* Once value */
1050 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1051 fra
.me
.file
= LOCATE_syntax___typing
;
1053 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for
;
1054 fra
.me
.has_broke
= 0;
1055 fra
.me
.REG_size
= 4;
1056 fra
.me
.REG
[0] = NIT_NULL
;
1057 fra
.me
.REG
[1] = NIT_NULL
;
1058 fra
.me
.REG
[2] = NIT_NULL
;
1059 fra
.me
.REG
[3] = NIT_NULL
;
1060 fra
.me
.closure_ctx
= closctx_param
;
1061 fra
.me
.closure_funs
= CREG
;
1063 CREG
[0] = clos_fun0
;
1064 /* ./syntax//typing.nit:123 */
1065 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[2]);
1066 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1067 if (UNTAG_Bool(REGB0
)) {
1070 /* ./syntax//typing.nit:124 */
1071 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
1072 /* ./syntax//typing.nit:125 */
1073 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
1074 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1075 /* ./syntax//typing.nit:126 */
1076 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
1077 if (UNTAG_Bool(REGB0
)) {
1079 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 126);
1081 /* ./syntax//typing.nit:127 */
1082 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1083 /* ./syntax//typing.nit:128 */
1084 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1085 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(closctx
->REG
[3])(closctx
->REG
[3]);
1086 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
1087 if (UNTAG_Bool(REGB1
)) {
1089 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1092 if (UNTAG_Bool(REGB1
)) {
1093 /* ./syntax//typing.nit:129 */
1095 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1096 if (UNTAG_Bool(REGB2
)) {
1098 /* ./../lib/standard//kernel.nit:210 */
1099 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1100 /* ./syntax//typing.nit:129 */
1103 if (UNTAG_Bool(REGB2
)) {
1104 REGB2
= TAG_Bool(true);
1106 REGB1
= TAG_Bool(IS_EQUAL_OO(closctx
->REG
[8],REGB0
));
1107 if (UNTAG_Bool(REGB1
)) {
1109 /* ./../lib/standard//kernel.nit:210 */
1110 REGB3
= TAG_Bool((closctx
->REG
[8])==(REGB0
));
1111 /* ./syntax//typing.nit:129 */
1114 if (UNTAG_Bool(REGB1
)) {
1115 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(closctx
->REG
[3])(closctx
->REG
[3]);
1116 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1117 if (UNTAG_Bool(REGB1
)) {
1118 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 129);
1120 REGB1
= CALL_metamodel___static_type___MMSignature_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1122 REGB3
= TAG_Bool(false);
1127 if (UNTAG_Bool(REGB2
)) {
1128 /* ./syntax//typing.nit:130 */
1129 closctx
->REG
[9] = fra
.me
.REG
[0];
1130 closctx
->has_broke
= 1;
1133 /* ./syntax//typing.nit:132 */
1134 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1137 /* ./syntax//typing.nit:134 */
1139 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
1140 if (UNTAG_Bool(REGB1
)) {
1142 /* ./../lib/standard//kernel.nit:210 */
1143 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
1144 /* ./syntax//typing.nit:134 */
1147 if (UNTAG_Bool(REGB1
)) {
1148 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1149 if (!once_value_3
) {
1150 if (!once_value_4
) {
1151 fra
.me
.REG
[3] = BOX_NativeString("init");
1153 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
1154 once_value_4
= fra
.me
.REG
[3];
1155 register_static_object(&once_value_4
);
1156 } else fra
.me
.REG
[3] = once_value_4
;
1157 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1158 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1159 once_value_3
= fra
.me
.REG
[3];
1160 register_static_object(&once_value_3
);
1161 } else fra
.me
.REG
[3] = once_value_3
;
1162 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1163 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
1164 if (UNTAG_Bool(REGB1
)) {
1166 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1170 REGB2
= TAG_Bool(false);
1173 if (UNTAG_Bool(REGB1
)) {
1174 /* ./syntax//typing.nit:135 */
1175 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0]);
1176 /* ./syntax//typing.nit:136 */
1177 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1179 /* ./syntax//typing.nit:138 */
1180 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1184 stack_frame_head
= fra
.me
.prev
;
1187 void syntax___typing___ANode___accept_typing(val_t p0
, val_t p1
){
1188 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1190 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1191 fra
.me
.file
= LOCATE_syntax___typing
;
1193 fra
.me
.meth
= LOCATE_syntax___typing___ANode___accept_typing
;
1194 fra
.me
.has_broke
= 0;
1195 fra
.me
.REG_size
= 2;
1196 fra
.me
.REG
[0] = NIT_NULL
;
1197 fra
.me
.REG
[1] = NIT_NULL
;
1200 /* ./syntax//typing.nit:170 */
1201 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1202 /* ./syntax//typing.nit:171 */
1203 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1204 stack_frame_head
= fra
.me
.prev
;
1207 void syntax___typing___ANode___after_typing(val_t p0
, val_t p1
){
1208 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1210 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1211 fra
.me
.file
= LOCATE_syntax___typing
;
1213 fra
.me
.meth
= LOCATE_syntax___typing___ANode___after_typing
;
1214 fra
.me
.has_broke
= 0;
1215 fra
.me
.REG_size
= 2;
1216 fra
.me
.REG
[0] = NIT_NULL
;
1217 fra
.me
.REG
[1] = NIT_NULL
;
1220 stack_frame_head
= fra
.me
.prev
;
1223 void syntax___typing___AClassdef___accept_typing(val_t p0
, val_t p1
){
1224 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1227 static val_t once_value_1
; /* Once value */
1228 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1229 fra
.me
.file
= LOCATE_syntax___typing
;
1231 fra
.me
.meth
= LOCATE_syntax___typing___AClassdef___accept_typing
;
1232 fra
.me
.has_broke
= 0;
1233 fra
.me
.REG_size
= 5;
1234 fra
.me
.REG
[0] = NIT_NULL
;
1235 fra
.me
.REG
[1] = NIT_NULL
;
1236 fra
.me
.REG
[2] = NIT_NULL
;
1237 fra
.me
.REG
[3] = NIT_NULL
;
1238 fra
.me
.REG
[4] = NIT_NULL
;
1241 /* ./syntax//typing.nit:177 */
1242 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1243 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1244 /* ./syntax//typing.nit:179 */
1245 if (!once_value_1
) {
1246 fra
.me
.REG
[4] = BOX_NativeString("self");
1248 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1249 once_value_1
= fra
.me
.REG
[4];
1250 register_static_object(&once_value_1
);
1251 } else fra
.me
.REG
[4] = once_value_1
;
1252 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1253 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1254 fra
.me
.REG
[4] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1255 CALL_syntax___typing___TypingVisitor___self_var__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1256 /* ./syntax//typing.nit:180 */
1257 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1258 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1259 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1260 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1261 /* ./syntax//typing.nit:181 */
1262 CALL_SUPER_syntax___typing___AClassdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1263 stack_frame_head
= fra
.me
.prev
;
1266 val_t
syntax___typing___APropdef___self_var(val_t p0
){
1267 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1270 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1271 fra
.me
.file
= LOCATE_syntax___typing
;
1273 fra
.me
.meth
= LOCATE_syntax___typing___APropdef___self_var
;
1274 fra
.me
.has_broke
= 0;
1275 fra
.me
.REG_size
= 2;
1276 fra
.me
.REG
[0] = NIT_NULL
;
1277 fra
.me
.REG
[1] = NIT_NULL
;
1279 /* ./syntax//typing.nit:186 */
1280 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1281 fra
.me
.REG
[1] = ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[1]);
1282 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1283 if (UNTAG_Bool(REGB0
)) {
1285 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 186);
1289 stack_frame_head
= fra
.me
.prev
;
1290 return fra
.me
.REG
[1];
1292 void syntax___typing___AAttrPropdef___accept_typing(val_t p0
, val_t p1
){
1293 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1297 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1298 fra
.me
.file
= LOCATE_syntax___typing
;
1300 fra
.me
.meth
= LOCATE_syntax___typing___AAttrPropdef___accept_typing
;
1301 fra
.me
.has_broke
= 0;
1302 fra
.me
.REG_size
= 5;
1303 fra
.me
.REG
[0] = NIT_NULL
;
1304 fra
.me
.REG
[1] = NIT_NULL
;
1305 fra
.me
.REG
[2] = NIT_NULL
;
1306 fra
.me
.REG
[3] = NIT_NULL
;
1307 fra
.me
.REG
[4] = NIT_NULL
;
1310 /* ./syntax//typing.nit:191 */
1311 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1312 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1313 /* ./syntax//typing.nit:193 */
1314 fra
.me
.REG
[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1315 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1316 /* ./syntax//typing.nit:194 */
1317 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1318 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1319 /* ./syntax//typing.nit:196 */
1320 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1321 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1322 /* ./syntax//typing.nit:197 */
1323 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1324 ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1325 /* ./syntax//typing.nit:198 */
1326 CALL_SUPER_syntax___typing___AAttrPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1327 /* ./syntax//typing.nit:199 */
1328 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1329 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1330 if (UNTAG_Bool(REGB0
)) {
1332 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1333 if (UNTAG_Bool(REGB1
)) {
1334 REGB1
= TAG_Bool(false);
1337 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1341 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1342 if (UNTAG_Bool(REGB0
)) {
1343 /* ./syntax//typing.nit:200 */
1344 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1345 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*/;
1346 if (UNTAG_Bool(REGB0
)) {
1348 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 200);
1350 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1351 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1352 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1353 if (UNTAG_Bool(REGB0
)) {
1354 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 200);
1356 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1357 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*/;
1358 if (UNTAG_Bool(REGB0
)) {
1360 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 200);
1362 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1364 /* ./syntax//typing.nit:202 */
1365 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1366 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1367 stack_frame_head
= fra
.me
.prev
;
1370 void syntax___typing___AMethPropdef___accept_typing(val_t p0
, val_t p1
){
1371 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1373 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1374 fra
.me
.file
= LOCATE_syntax___typing
;
1376 fra
.me
.meth
= LOCATE_syntax___typing___AMethPropdef___accept_typing
;
1377 fra
.me
.has_broke
= 0;
1378 fra
.me
.REG_size
= 5;
1379 fra
.me
.REG
[0] = NIT_NULL
;
1380 fra
.me
.REG
[1] = NIT_NULL
;
1381 fra
.me
.REG
[2] = NIT_NULL
;
1382 fra
.me
.REG
[3] = NIT_NULL
;
1383 fra
.me
.REG
[4] = NIT_NULL
;
1386 /* ./syntax//typing.nit:207 */
1387 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1388 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1389 /* ./syntax//typing.nit:209 */
1390 fra
.me
.REG
[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1391 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1392 /* ./syntax//typing.nit:210 */
1393 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1394 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1395 /* ./syntax//typing.nit:212 */
1396 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1397 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1398 /* ./syntax//typing.nit:213 */
1399 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1400 ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1401 /* ./syntax//typing.nit:214 */
1402 CALL_SUPER_syntax___typing___AMethPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1403 /* ./syntax//typing.nit:215 */
1404 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1405 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1406 stack_frame_head
= fra
.me
.prev
;
1409 void syntax___typing___AConcreteMethPropdef___after_typing(val_t p0
, val_t p1
){
1410 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1414 static val_t once_value_1
; /* Once value */
1415 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1416 fra
.me
.file
= LOCATE_syntax___typing
;
1418 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteMethPropdef___after_typing
;
1419 fra
.me
.has_broke
= 0;
1420 fra
.me
.REG_size
= 4;
1421 fra
.me
.REG
[0] = NIT_NULL
;
1422 fra
.me
.REG
[1] = NIT_NULL
;
1423 fra
.me
.REG
[2] = NIT_NULL
;
1424 fra
.me
.REG
[3] = NIT_NULL
;
1427 /* ./syntax//typing.nit:220 */
1428 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1429 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1430 /* ./syntax//typing.nit:222 */
1431 CALL_SUPER_syntax___typing___AConcreteMethPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1432 /* ./syntax//typing.nit:223 */
1433 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1434 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1435 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1436 if (UNTAG_Bool(REGB0
)) {
1437 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1438 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1439 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1440 if (UNTAG_Bool(REGB0
)) {
1441 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 223);
1443 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1444 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1445 if (UNTAG_Bool(REGB0
)) {
1447 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1448 if (UNTAG_Bool(REGB1
)) {
1449 REGB1
= TAG_Bool(false);
1452 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1456 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1458 REGB1
= TAG_Bool(false);
1461 if (UNTAG_Bool(REGB0
)) {
1462 /* ./syntax//typing.nit:224 */
1463 if (!once_value_1
) {
1464 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of function (a 'return' with a value was expected).");
1465 REGB0
= TAG_Int(78);
1466 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
1467 once_value_1
= fra
.me
.REG
[1];
1468 register_static_object(&once_value_1
);
1469 } else fra
.me
.REG
[1] = once_value_1
;
1470 fra
.me
.REG
[1] = fra
.me
.REG
[1];
1471 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
1473 stack_frame_head
= fra
.me
.prev
;
1476 void syntax___typing___AConcreteInitPropdef___accept_typing(val_t p0
, val_t p1
){
1477 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1480 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1481 fra
.me
.file
= LOCATE_syntax___typing
;
1483 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteInitPropdef___accept_typing
;
1484 fra
.me
.has_broke
= 0;
1485 fra
.me
.REG_size
= 5;
1486 fra
.me
.REG
[0] = NIT_NULL
;
1487 fra
.me
.REG
[1] = NIT_NULL
;
1488 fra
.me
.REG
[2] = NIT_NULL
;
1489 fra
.me
.REG
[3] = NIT_NULL
;
1490 fra
.me
.REG
[4] = NIT_NULL
;
1493 /* ./syntax//typing.nit:230 */
1494 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1495 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1496 /* ./syntax//typing.nit:232 */
1497 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1498 CALL_syntax___typing___TypingVisitor___top_block__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1499 /* ./syntax//typing.nit:233 */
1500 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1501 CALL_syntax___typing___TypingVisitor___explicit_super_init_calls__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1502 /* ./syntax//typing.nit:234 */
1503 REGB0
= TAG_Bool(false);
1504 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1505 /* ./syntax//typing.nit:235 */
1506 CALL_SUPER_syntax___typing___AConcreteInitPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1507 stack_frame_head
= fra
.me
.prev
;
1510 void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0
, val_t p1
){
1511 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
1519 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1520 fra
.me
.file
= LOCATE_syntax___typing
;
1522 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteInitPropdef___after_typing
;
1523 fra
.me
.has_broke
= 0;
1524 fra
.me
.REG_size
= 8;
1525 fra
.me
.REG
[0] = NIT_NULL
;
1526 fra
.me
.REG
[1] = NIT_NULL
;
1527 fra
.me
.REG
[2] = NIT_NULL
;
1528 fra
.me
.REG
[3] = NIT_NULL
;
1529 fra
.me
.REG
[4] = NIT_NULL
;
1530 fra
.me
.REG
[5] = NIT_NULL
;
1531 fra
.me
.REG
[6] = NIT_NULL
;
1532 fra
.me
.REG
[7] = NIT_NULL
;
1535 /* ./syntax//typing.nit:238 */
1536 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1537 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1538 /* ./syntax//typing.nit:240 */
1539 CALL_SUPER_syntax___typing___AConcreteInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1540 /* ./syntax//typing.nit:241 */
1541 REGB0
= CALL_syntax___typing___TypingVisitor___explicit_other_init_call(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1542 if (UNTAG_Bool(REGB0
)) {
1543 REGB0
= TAG_Bool(true);
1545 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1546 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1547 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1548 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1549 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[4]));
1550 if (UNTAG_Bool(REGB1
)) {
1552 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1555 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1558 if (UNTAG_Bool(REGB0
)) {
1560 /* ./syntax//typing.nit:244 */
1562 /* ./syntax//typing.nit:245 */
1563 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1564 /* ./../lib/standard//collection//array.nit:23 */
1565 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1566 if (UNTAG_Bool(REGB1
)) {
1568 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
1570 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1571 /* ./syntax//typing.nit:246 */
1572 fra
.me
.REG
[4] = NIT_NULL
;
1573 /* ./syntax//typing.nit:247 */
1574 fra
.me
.REG
[1] = NIT_NULL
;
1575 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1576 if (UNTAG_Bool(REGB2
)) {
1578 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1580 /* ./../lib/standard//kernel.nit:215 */
1581 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1582 /* ./syntax//typing.nit:248 */
1583 if (UNTAG_Bool(REGB2
)) {
1584 /* ./syntax//typing.nit:249 */
1585 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1586 /* ./../lib/standard//collection//array.nit:241 */
1588 /* ./../lib/standard//collection//array.nit:243 */
1590 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1591 if (UNTAG_Bool(REGB4
)) {
1593 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1595 /* ./../lib/standard//kernel.nit:216 */
1596 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
1597 /* ./../lib/standard//collection//array.nit:243 */
1598 if (UNTAG_Bool(REGB3
)) {
1599 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1600 if (UNTAG_Bool(REGB3
)) {
1602 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
1604 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1605 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1606 if (UNTAG_Bool(REGB4
)) {
1608 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1610 /* ./../lib/standard//kernel.nit:215 */
1611 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1613 /* ./../lib/standard//collection//array.nit:243 */
1614 REGB4
= TAG_Bool(false);
1617 if (UNTAG_Bool(REGB3
)) {
1619 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
1621 /* ./../lib/standard//collection//array.nit:244 */
1622 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1623 REGB3
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1624 if (UNTAG_Bool(REGB3
)) {
1625 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
1627 /* ./../lib/standard//collection//array.nit:652 */
1628 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB2
)];
1629 /* ./../lib/standard//collection//array.nit:244 */
1632 /* ./syntax//typing.nit:249 */
1633 fra
.me
.REG
[4] = fra
.me
.REG
[5];
1634 /* ./syntax//typing.nit:250 */
1635 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1636 if (UNTAG_Bool(REGB2
)) {
1637 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 250);
1639 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1640 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1641 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1642 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1643 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
1644 fra
.me
.REG
[1] = fra
.me
.REG
[6];
1646 /* ./syntax//typing.nit:252 */
1648 /* ./syntax//typing.nit:253 */
1650 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1651 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1652 fra
.me
.REG
[6] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1653 /* ./../lib/standard//collection//array.nit:23 */
1654 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
1655 if (UNTAG_Bool(REGB3
)) {
1657 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
1659 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
1660 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1661 if (UNTAG_Bool(REGB4
)) {
1663 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1665 /* ./../lib/standard//kernel.nit:215 */
1666 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1667 /* ./syntax//typing.nit:253 */
1668 if (UNTAG_Bool(REGB3
)) {
1669 /* ./syntax//typing.nit:254 */
1670 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1671 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1672 fra
.me
.REG
[6] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1673 /* ./../lib/standard//collection//array.nit:241 */
1675 /* ./../lib/standard//collection//array.nit:243 */
1677 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1678 if (UNTAG_Bool(REGB5
)) {
1680 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1682 /* ./../lib/standard//kernel.nit:216 */
1683 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1684 /* ./../lib/standard//collection//array.nit:243 */
1685 if (UNTAG_Bool(REGB4
)) {
1686 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
1687 if (UNTAG_Bool(REGB4
)) {
1689 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
1691 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
1692 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1693 if (UNTAG_Bool(REGB5
)) {
1695 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1697 /* ./../lib/standard//kernel.nit:215 */
1698 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1700 /* ./../lib/standard//collection//array.nit:243 */
1701 REGB5
= TAG_Bool(false);
1704 if (UNTAG_Bool(REGB4
)) {
1706 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
1708 /* ./../lib/standard//collection//array.nit:244 */
1709 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
1710 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1711 if (UNTAG_Bool(REGB4
)) {
1712 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
1714 /* ./../lib/standard//collection//array.nit:652 */
1715 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB3
)];
1716 /* ./../lib/standard//collection//array.nit:244 */
1719 /* ./syntax//typing.nit:255 */
1720 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1721 REGB3
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1722 if (UNTAG_Bool(REGB3
)) {
1723 REGB3
= TAG_Bool(true);
1725 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1726 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1729 if (UNTAG_Bool(REGB3
)) {
1730 REGB3
= TAG_Bool(true);
1732 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1733 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1736 if (UNTAG_Bool(REGB3
)) {
1737 /* ./syntax//typing.nit:256 */
1739 /* ./../lib/standard//kernel.nit:218 */
1740 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1741 /* ./syntax//typing.nit:256 */
1744 /* ./syntax//typing.nit:257 */
1745 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1746 if (UNTAG_Bool(REGB3
)) {
1748 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1749 if (UNTAG_Bool(REGB4
)) {
1750 REGB4
= TAG_Bool(false);
1753 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1757 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1758 if (UNTAG_Bool(REGB3
)) {
1759 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1760 REGB3
= CALL_metamodel___partial_order___PartialOrderElement_____leq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
1761 if (UNTAG_Bool(REGB3
)) {
1762 REGB3
= TAG_Bool(true);
1764 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1765 if (UNTAG_Bool(REGB4
)) {
1766 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 257);
1768 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1769 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1773 REGB4
= TAG_Bool(false);
1776 if (UNTAG_Bool(REGB3
)) {
1777 /* ./syntax//typing.nit:258 */
1778 REGB3
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[1]));
1779 if (UNTAG_Bool(REGB3
)) {
1781 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
1784 if (UNTAG_Bool(REGB3
)) {
1786 /* ./../lib/standard//kernel.nit:218 */
1787 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1788 /* ./syntax//typing.nit:258 */
1791 /* ./syntax//typing.nit:259 */
1792 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1793 REGB3
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
1794 if (UNTAG_Bool(REGB3
)) {
1796 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 259);
1798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
1799 /* ./syntax//typing.nit:260 */
1801 /* ./../lib/standard//kernel.nit:218 */
1802 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1803 /* ./syntax//typing.nit:260 */
1805 REGB3
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1806 if (UNTAG_Bool(REGB3
)) {
1808 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1810 /* ./../lib/standard//kernel.nit:215 */
1811 REGB3
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1812 /* ./syntax//typing.nit:261 */
1813 if (UNTAG_Bool(REGB3
)) {
1814 /* ./syntax//typing.nit:262 */
1815 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1816 /* ./../lib/standard//collection//array.nit:241 */
1818 /* ./../lib/standard//collection//array.nit:243 */
1820 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1821 if (UNTAG_Bool(REGB5
)) {
1823 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1825 /* ./../lib/standard//kernel.nit:216 */
1826 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1827 /* ./../lib/standard//collection//array.nit:243 */
1828 if (UNTAG_Bool(REGB4
)) {
1829 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1830 if (UNTAG_Bool(REGB4
)) {
1832 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
1834 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1835 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1836 if (UNTAG_Bool(REGB5
)) {
1838 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1840 /* ./../lib/standard//kernel.nit:215 */
1841 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1843 /* ./../lib/standard//collection//array.nit:243 */
1844 REGB5
= TAG_Bool(false);
1847 if (UNTAG_Bool(REGB4
)) {
1849 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
1851 /* ./../lib/standard//collection//array.nit:244 */
1852 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1853 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1854 if (UNTAG_Bool(REGB4
)) {
1855 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
1857 /* ./../lib/standard//collection//array.nit:652 */
1858 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
1859 /* ./../lib/standard//collection//array.nit:244 */
1862 /* ./syntax//typing.nit:262 */
1863 fra
.me
.REG
[4] = fra
.me
.REG
[5];
1864 /* ./syntax//typing.nit:263 */
1865 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1866 if (UNTAG_Bool(REGB3
)) {
1867 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 263);
1869 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1870 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1871 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1872 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1873 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
1874 fra
.me
.REG
[1] = fra
.me
.REG
[7];
1876 /* ./syntax//typing.nit:265 */
1877 fra
.me
.REG
[4] = NIT_NULL
;
1878 /* ./syntax//typing.nit:266 */
1879 fra
.me
.REG
[1] = NIT_NULL
;
1882 /* ./syntax//typing.nit:269 */
1883 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1884 fra
.me
.REG
[7] = CALL_syntax___typing___TypingVisitor___get_default_constructor_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[6], fra
.me
.REG
[7]);
1885 /* ./syntax//typing.nit:270 */
1886 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1887 if (UNTAG_Bool(REGB3
)) {
1889 REGB4
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1890 if (UNTAG_Bool(REGB4
)) {
1891 REGB4
= TAG_Bool(false);
1894 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
1898 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1899 if (UNTAG_Bool(REGB3
)) {
1900 /* ./syntax//typing.nit:271 */
1901 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1902 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1904 /* ./syntax//typing.nit:273 */
1906 /* ./../lib/standard//kernel.nit:218 */
1907 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1908 /* ./syntax//typing.nit:273 */
1913 /* ./syntax//typing.nit:253 */
1919 stack_frame_head
= fra
.me
.prev
;
1922 void syntax___typing___AParam___after_typing(val_t p0
, val_t p1
){
1923 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1925 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1926 fra
.me
.file
= LOCATE_syntax___typing
;
1928 fra
.me
.meth
= LOCATE_syntax___typing___AParam___after_typing
;
1929 fra
.me
.has_broke
= 0;
1930 fra
.me
.REG_size
= 2;
1931 fra
.me
.REG
[0] = NIT_NULL
;
1932 fra
.me
.REG
[1] = NIT_NULL
;
1935 /* ./syntax//typing.nit:283 */
1936 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1937 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1938 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1939 stack_frame_head
= fra
.me
.prev
;
1942 val_t
syntax___typing___AClosureDecl___escapable(val_t p0
){
1943 struct {struct stack_frame_t me
;} fra
;
1945 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1946 fra
.me
.file
= LOCATE_syntax___typing
;
1948 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___escapable
;
1949 fra
.me
.has_broke
= 0;
1950 fra
.me
.REG_size
= 1;
1951 fra
.me
.REG
[0] = NIT_NULL
;
1953 /* ./syntax//typing.nit:288 */
1954 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[0]);
1955 stack_frame_head
= fra
.me
.prev
;
1956 return fra
.me
.REG
[0];
1958 void syntax___typing___AClosureDecl___accept_typing(val_t p0
, val_t p1
){
1959 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
1964 static val_t once_value_1
; /* Once value */
1965 static val_t once_value_2
; /* Once value */
1966 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1967 fra
.me
.file
= LOCATE_syntax___typing
;
1969 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___accept_typing
;
1970 fra
.me
.has_broke
= 0;
1971 fra
.me
.REG_size
= 10;
1972 fra
.me
.REG
[0] = NIT_NULL
;
1973 fra
.me
.REG
[1] = NIT_NULL
;
1974 fra
.me
.REG
[2] = NIT_NULL
;
1975 fra
.me
.REG
[3] = NIT_NULL
;
1976 fra
.me
.REG
[4] = NIT_NULL
;
1977 fra
.me
.REG
[5] = NIT_NULL
;
1978 fra
.me
.REG
[6] = NIT_NULL
;
1979 fra
.me
.REG
[7] = NIT_NULL
;
1980 fra
.me
.REG
[8] = NIT_NULL
;
1981 fra
.me
.REG
[9] = NIT_NULL
;
1984 /* ./syntax//typing.nit:291 */
1985 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1986 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1987 /* ./syntax//typing.nit:294 */
1988 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1989 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1990 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1991 /* ./syntax//typing.nit:296 */
1992 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1993 /* ./syntax//typing.nit:297 */
1994 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1995 /* ./syntax//typing.nit:298 */
1996 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1997 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1998 /* ./syntax//typing.nit:300 */
1999 fra
.me
.REG
[6] = NIT_NULL
;
2000 /* ./syntax//typing.nit:301 */
2001 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2002 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2003 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2004 if (UNTAG_Bool(REGB0
)) {
2005 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 301);
2007 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2008 /* ./syntax//typing.nit:302 */
2009 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2010 if (UNTAG_Bool(REGB0
)) {
2012 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2013 if (UNTAG_Bool(REGB1
)) {
2014 REGB1
= TAG_Bool(false);
2017 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
2021 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2022 if (UNTAG_Bool(REGB0
)) {
2023 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
2024 fra
.me
.REG
[6] = fra
.me
.REG
[8];
2026 /* ./syntax//typing.nit:303 */
2027 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2028 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2029 fra
.me
.REG
[8] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[2], fra
.me
.REG
[8], fra
.me
.REG
[6]);
2030 /* ./syntax//typing.nit:304 */
2031 ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[2]) = fra
.me
.REG
[8];
2032 /* ./syntax//typing.nit:305 */
2033 fra
.me
.REG
[9] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2034 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8], NIT_NULL
);
2035 /* ./syntax//typing.nit:307 */
2036 REGB0
= TAG_Bool(true);
2037 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2038 /* ./syntax//typing.nit:309 */
2039 CALL_SUPER_syntax___typing___AClosureDecl___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2040 /* ./syntax//typing.nit:311 */
2041 REGB0
= TAG_Bool(false);
2042 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2043 /* ./syntax//typing.nit:313 */
2044 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2045 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2046 if (UNTAG_Bool(REGB0
)) {
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 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2058 if (UNTAG_Bool(REGB0
)) {
2059 /* ./syntax//typing.nit:314 */
2060 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2061 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2062 REGB1
= TAG_Bool(false);
2063 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
2064 if (UNTAG_Bool(REGB2
)) {
2066 /* ./../lib/standard//kernel.nit:178 */
2067 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
2068 /* ./syntax//typing.nit:314 */
2071 if (UNTAG_Bool(REGB2
)) {
2072 /* ./syntax//typing.nit:315 */
2073 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2074 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2075 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2076 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2077 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2078 if (UNTAG_Bool(REGB2
)) {
2080 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2081 if (UNTAG_Bool(REGB1
)) {
2082 REGB1
= TAG_Bool(false);
2085 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2089 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2090 if (UNTAG_Bool(REGB2
)) {
2091 /* ./syntax//typing.nit:316 */
2092 if (!once_value_1
) {
2093 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
2094 REGB2
= TAG_Int(77);
2095 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB2
);
2096 once_value_1
= fra
.me
.REG
[1];
2097 register_static_object(&once_value_1
);
2098 } else fra
.me
.REG
[1] = once_value_1
;
2099 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2100 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
2102 /* ./syntax//typing.nit:317 */
2103 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2104 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2105 REGB2
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2106 if (UNTAG_Bool(REGB2
)) {
2107 fra
.me
.REG
[8] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2108 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2109 if (UNTAG_Bool(REGB2
)) {
2111 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2112 if (UNTAG_Bool(REGB1
)) {
2113 REGB1
= TAG_Bool(false);
2116 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
2120 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2122 REGB1
= TAG_Bool(false);
2125 if (UNTAG_Bool(REGB2
)) {
2126 /* ./syntax//typing.nit:318 */
2127 if (!once_value_2
) {
2128 fra
.me
.REG
[8] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
2129 REGB2
= TAG_Int(80);
2130 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB2
);
2131 once_value_2
= fra
.me
.REG
[8];
2132 register_static_object(&once_value_2
);
2133 } else fra
.me
.REG
[8] = once_value_2
;
2134 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2135 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[8]);
2140 /* ./syntax//typing.nit:322 */
2141 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2142 if (UNTAG_Bool(REGB2
)) {
2144 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2145 if (UNTAG_Bool(REGB1
)) {
2146 REGB1
= TAG_Bool(false);
2149 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2153 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2154 if (UNTAG_Bool(REGB2
)) {
2155 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2156 if (UNTAG_Bool(REGB2
)) {
2157 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 322);
2159 /* ./../lib/standard//collection//array.nit:232 */
2161 /* ./../lib/standard//collection//array.nit:233 */
2162 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2163 if (UNTAG_Bool(REGB1
)) {
2165 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
2167 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2168 /* ./../lib/standard//collection//array.nit:234 */
2169 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
2170 /* ./../lib/standard//collection//array.nit:235 */
2172 /* ./../lib/standard//collection//array.nit:23 */
2173 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2174 if (UNTAG_Bool(REGB1
)) {
2176 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
2178 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2179 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
2180 if (UNTAG_Bool(REGB0
)) {
2182 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2184 /* ./../lib/standard//kernel.nit:215 */
2185 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
2186 /* ./../lib/standard//collection//array.nit:235 */
2187 if (UNTAG_Bool(REGB1
)) {
2188 /* ./../lib/standard//collection//array.nit:236 */
2189 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2190 if (UNTAG_Bool(REGB1
)) {
2191 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
2193 /* ./../lib/standard//collection//array.nit:652 */
2194 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB2
)];
2195 /* ./syntax//typing.nit:323 */
2196 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
2197 /* ./../lib/standard//collection//array.nit:237 */
2199 /* ./../lib/standard//kernel.nit:218 */
2200 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
2201 /* ./../lib/standard//collection//array.nit:237 */
2204 /* ./../lib/standard//collection//array.nit:235 */
2210 /* ./syntax//typing.nit:326 */
2211 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2212 /* ./syntax//typing.nit:327 */
2213 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2214 /* ./syntax//typing.nit:328 */
2215 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2216 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2217 stack_frame_head
= fra
.me
.prev
;
2220 val_t
syntax___typing___AType___stype(val_t p0
){
2221 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2224 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2225 fra
.me
.file
= LOCATE_syntax___typing
;
2227 fra
.me
.meth
= LOCATE_syntax___typing___AType___stype
;
2228 fra
.me
.has_broke
= 0;
2229 fra
.me
.REG_size
= 2;
2230 fra
.me
.REG
[0] = NIT_NULL
;
2231 fra
.me
.REG
[1] = NIT_NULL
;
2233 /* ./syntax//typing.nit:333 */
2234 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2235 fra
.me
.REG
[1] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[1]);
2236 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2237 if (UNTAG_Bool(REGB0
)) {
2239 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 333);
2243 stack_frame_head
= fra
.me
.prev
;
2244 return fra
.me
.REG
[1];
2246 val_t
syntax___typing___AType___is_typed(val_t p0
){
2247 struct {struct stack_frame_t me
;} fra
;
2251 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2252 fra
.me
.file
= LOCATE_syntax___typing
;
2254 fra
.me
.meth
= LOCATE_syntax___typing___AType___is_typed
;
2255 fra
.me
.has_broke
= 0;
2256 fra
.me
.REG_size
= 1;
2257 fra
.me
.REG
[0] = NIT_NULL
;
2259 /* ./syntax//typing.nit:334 */
2260 fra
.me
.REG
[0] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]);
2261 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2262 if (UNTAG_Bool(REGB0
)) {
2264 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2265 if (UNTAG_Bool(REGB1
)) {
2266 REGB1
= TAG_Bool(false);
2269 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2273 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2276 stack_frame_head
= fra
.me
.prev
;
2279 void syntax___typing___AType___after_typing(val_t p0
, val_t p1
){
2280 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2282 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2283 fra
.me
.file
= LOCATE_syntax___typing
;
2285 fra
.me
.meth
= LOCATE_syntax___typing___AType___after_typing
;
2286 fra
.me
.has_broke
= 0;
2287 fra
.me
.REG_size
= 2;
2288 fra
.me
.REG
[0] = NIT_NULL
;
2289 fra
.me
.REG
[1] = NIT_NULL
;
2292 /* ./syntax//typing.nit:339 */
2293 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AType___get_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2294 ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2295 stack_frame_head
= fra
.me
.prev
;
2298 val_t
syntax___typing___AExpr___is_typed(val_t p0
){
2299 struct {struct stack_frame_t me
;} fra
;
2302 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2303 fra
.me
.file
= LOCATE_syntax___typing
;
2305 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_typed
;
2306 fra
.me
.has_broke
= 0;
2307 fra
.me
.REG_size
= 1;
2308 fra
.me
.REG
[0] = NIT_NULL
;
2310 /* ./syntax//typing.nit:344 */
2311 REGB0
= TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0])!=NIT_NULL
);
2312 if (UNTAG_Bool(REGB0
)) {
2314 nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_syntax___typing
, 344);
2316 REGB0
= ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]);
2317 stack_frame_head
= fra
.me
.prev
;
2320 val_t
syntax___typing___AExpr___is_statement(val_t p0
){
2321 struct {struct stack_frame_t me
;} fra
;
2325 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2326 fra
.me
.file
= LOCATE_syntax___typing
;
2328 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_statement
;
2329 fra
.me
.has_broke
= 0;
2330 fra
.me
.REG_size
= 1;
2331 fra
.me
.REG
[0] = NIT_NULL
;
2333 /* ./syntax//typing.nit:345 */
2334 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
2335 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2336 if (UNTAG_Bool(REGB0
)) {
2338 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2339 if (UNTAG_Bool(REGB1
)) {
2340 REGB1
= TAG_Bool(false);
2343 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2349 stack_frame_head
= fra
.me
.prev
;
2352 val_t
syntax___typing___AExpr___stype(val_t p0
){
2353 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2356 static val_t once_value_1
; /* Once value */
2357 static val_t once_value_2
; /* Once value */
2358 static val_t once_value_3
; /* Once value */
2359 static val_t once_value_4
; /* Once value */
2360 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2361 fra
.me
.file
= LOCATE_syntax___typing
;
2363 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___stype
;
2364 fra
.me
.has_broke
= 0;
2365 fra
.me
.REG_size
= 4;
2366 fra
.me
.REG
[0] = NIT_NULL
;
2367 fra
.me
.REG
[1] = NIT_NULL
;
2368 fra
.me
.REG
[2] = NIT_NULL
;
2369 fra
.me
.REG
[3] = NIT_NULL
;
2371 /* ./syntax//typing.nit:346 */
2372 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2373 /* ./syntax//typing.nit:348 */
2374 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2375 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2376 if (UNTAG_Bool(REGB0
)) {
2377 /* ./syntax//typing.nit:349 */
2379 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2380 if (!once_value_1
) {
2381 fra
.me
.REG
[3] = BOX_NativeString("");
2383 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2384 once_value_1
= fra
.me
.REG
[3];
2385 register_static_object(&once_value_1
);
2386 } else fra
.me
.REG
[3] = once_value_1
;
2387 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2388 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2389 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2390 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2391 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2392 if (!once_value_2
) {
2393 fra
.me
.REG
[3] = BOX_NativeString(": not is_typed");
2394 REGB0
= TAG_Int(14);
2395 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2396 once_value_2
= fra
.me
.REG
[3];
2397 register_static_object(&once_value_2
);
2398 } else fra
.me
.REG
[3] = once_value_2
;
2399 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2400 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2401 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2402 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2403 /* ./syntax//typing.nit:350 */
2404 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 350);
2406 /* ./syntax//typing.nit:352 */
2407 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2408 if (UNTAG_Bool(REGB0
)) {
2409 /* ./syntax//typing.nit:353 */
2411 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2412 if (!once_value_3
) {
2413 fra
.me
.REG
[3] = BOX_NativeString("");
2415 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2416 once_value_3
= fra
.me
.REG
[3];
2417 register_static_object(&once_value_3
);
2418 } else fra
.me
.REG
[3] = once_value_3
;
2419 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2420 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2421 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2422 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2423 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2424 if (!once_value_4
) {
2425 fra
.me
.REG
[3] = BOX_NativeString(": is_statement");
2426 REGB0
= TAG_Int(14);
2427 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2428 once_value_4
= fra
.me
.REG
[3];
2429 register_static_object(&once_value_4
);
2430 } else fra
.me
.REG
[3] = once_value_4
;
2431 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2432 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2433 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2434 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2435 /* ./syntax//typing.nit:354 */
2436 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 354);
2438 /* ./syntax//typing.nit:356 */
2439 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[1]);
2440 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2441 if (UNTAG_Bool(REGB0
)) {
2443 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 356);
2447 stack_frame_head
= fra
.me
.prev
;
2448 return fra
.me
.REG
[1];
2450 void syntax___typing___AExpr___after_typing(val_t p0
, val_t p1
){
2451 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2454 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2455 fra
.me
.file
= LOCATE_syntax___typing
;
2457 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___after_typing
;
2458 fra
.me
.has_broke
= 0;
2459 fra
.me
.REG_size
= 2;
2460 fra
.me
.REG
[0] = NIT_NULL
;
2461 fra
.me
.REG
[1] = NIT_NULL
;
2464 /* ./syntax//typing.nit:363 */
2465 REGB0
= TAG_Bool(true);
2466 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2467 stack_frame_head
= fra
.me
.prev
;
2470 val_t
syntax___typing___AExpr___is_implicit_self(val_t p0
){
2471 struct {struct stack_frame_t me
;} fra
;
2474 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2475 fra
.me
.file
= LOCATE_syntax___typing
;
2477 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_implicit_self
;
2478 fra
.me
.has_broke
= 0;
2479 fra
.me
.REG_size
= 1;
2480 fra
.me
.REG
[0] = NIT_NULL
;
2482 /* ./syntax//typing.nit:367 */
2483 REGB0
= TAG_Bool(false);
2486 stack_frame_head
= fra
.me
.prev
;
2489 val_t
syntax___typing___AExpr___is_self(val_t p0
){
2490 struct {struct stack_frame_t me
;} fra
;
2493 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2494 fra
.me
.file
= LOCATE_syntax___typing
;
2496 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_self
;
2497 fra
.me
.has_broke
= 0;
2498 fra
.me
.REG_size
= 1;
2499 fra
.me
.REG
[0] = NIT_NULL
;
2501 /* ./syntax//typing.nit:370 */
2502 REGB0
= TAG_Bool(false);
2505 stack_frame_head
= fra
.me
.prev
;
2508 val_t
syntax___typing___AExpr___its_variable(val_t p0
){
2509 struct {struct stack_frame_t me
;} fra
;
2511 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2512 fra
.me
.file
= LOCATE_syntax___typing
;
2514 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___its_variable
;
2515 fra
.me
.has_broke
= 0;
2516 fra
.me
.REG_size
= 1;
2517 fra
.me
.REG
[0] = NIT_NULL
;
2519 /* ./syntax//typing.nit:373 */
2520 fra
.me
.REG
[0] = NIT_NULL
;
2523 stack_frame_head
= fra
.me
.prev
;
2524 return fra
.me
.REG
[0];
2526 val_t
syntax___typing___AExpr___if_true_flow_ctx(val_t p0
){
2527 struct {struct stack_frame_t me
;} fra
;
2529 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2530 fra
.me
.file
= LOCATE_syntax___typing
;
2532 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___if_true_flow_ctx
;
2533 fra
.me
.has_broke
= 0;
2534 fra
.me
.REG_size
= 1;
2535 fra
.me
.REG
[0] = NIT_NULL
;
2537 /* ./syntax//typing.nit:375 */
2538 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]);
2539 stack_frame_head
= fra
.me
.prev
;
2540 return fra
.me
.REG
[0];
2542 val_t
syntax___typing___AExpr___if_false_flow_ctx(val_t p0
){
2543 struct {struct stack_frame_t me
;} 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___AExpr___if_false_flow_ctx
;
2549 fra
.me
.has_broke
= 0;
2550 fra
.me
.REG_size
= 1;
2551 fra
.me
.REG
[0] = NIT_NULL
;
2553 /* ./syntax//typing.nit:378 */
2554 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]);
2555 stack_frame_head
= fra
.me
.prev
;
2556 return fra
.me
.REG
[0];
2558 val_t
syntax___typing___AVardeclExpr___variable(val_t p0
){
2559 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2562 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2563 fra
.me
.file
= LOCATE_syntax___typing
;
2565 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___variable
;
2566 fra
.me
.has_broke
= 0;
2567 fra
.me
.REG_size
= 2;
2568 fra
.me
.REG
[0] = NIT_NULL
;
2569 fra
.me
.REG
[1] = NIT_NULL
;
2571 /* ./syntax//typing.nit:384 */
2572 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2573 fra
.me
.REG
[1] = ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[1]);
2574 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2575 if (UNTAG_Bool(REGB0
)) {
2577 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 384);
2581 stack_frame_head
= fra
.me
.prev
;
2582 return fra
.me
.REG
[1];
2584 void syntax___typing___AVardeclExpr___after_typing(val_t p0
, val_t p1
){
2585 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2589 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2590 fra
.me
.file
= LOCATE_syntax___typing
;
2592 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___after_typing
;
2593 fra
.me
.has_broke
= 0;
2594 fra
.me
.REG_size
= 5;
2595 fra
.me
.REG
[0] = NIT_NULL
;
2596 fra
.me
.REG
[1] = NIT_NULL
;
2597 fra
.me
.REG
[2] = NIT_NULL
;
2598 fra
.me
.REG
[3] = NIT_NULL
;
2599 fra
.me
.REG
[4] = NIT_NULL
;
2602 /* ./syntax//typing.nit:388 */
2603 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2604 fra
.me
.REG
[2] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2605 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2606 fra
.me
.REG
[3] = NEW_VarVariable_syntax___syntax_base___VarVariable___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2607 /* ./syntax//typing.nit:389 */
2608 ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
2609 /* ./syntax//typing.nit:390 */
2610 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2611 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2612 /* ./syntax//typing.nit:391 */
2613 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2614 /* ./syntax//typing.nit:392 */
2615 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2616 if (UNTAG_Bool(REGB0
)) {
2618 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2619 if (UNTAG_Bool(REGB1
)) {
2620 REGB1
= TAG_Bool(false);
2623 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2627 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2628 if (UNTAG_Bool(REGB0
)) {
2629 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2631 /* ./syntax//typing.nit:394 */
2632 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2633 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2634 if (UNTAG_Bool(REGB0
)) {
2636 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2637 if (UNTAG_Bool(REGB1
)) {
2638 REGB1
= TAG_Bool(false);
2641 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2645 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2646 if (UNTAG_Bool(REGB0
)) {
2647 /* ./syntax//typing.nit:395 */
2648 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2649 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2650 if (UNTAG_Bool(REGB0
)) {
2651 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 395);
2653 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2654 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2655 if (UNTAG_Bool(REGB0
)) {
2658 /* ./syntax//typing.nit:396 */
2659 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2660 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2661 if (UNTAG_Bool(REGB0
)) {
2662 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 396);
2664 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2665 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2666 /* ./syntax//typing.nit:397 */
2667 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2668 if (UNTAG_Bool(REGB0
)) {
2670 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2671 if (UNTAG_Bool(REGB1
)) {
2672 REGB1
= TAG_Bool(false);
2675 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2679 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2680 if (UNTAG_Bool(REGB0
)) {
2681 /* ./syntax//typing.nit:398 */
2682 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2683 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
2686 /* ./syntax//typing.nit:400 */
2687 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2688 if (UNTAG_Bool(REGB0
)) {
2690 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2691 if (UNTAG_Bool(REGB1
)) {
2692 REGB1
= TAG_Bool(false);
2695 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2699 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2700 if (UNTAG_Bool(REGB0
)) {
2701 /* ./syntax//typing.nit:401 */
2702 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2703 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2704 if (UNTAG_Bool(REGB0
)) {
2707 /* ./syntax//typing.nit:402 */
2708 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2709 if (UNTAG_Bool(REGB0
)) {
2710 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 402);
2712 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2713 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2715 /* ./syntax//typing.nit:404 */
2716 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2717 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2718 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2721 /* ./syntax//typing.nit:406 */
2722 REGB0
= TAG_Bool(true);
2723 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2725 stack_frame_head
= fra
.me
.prev
;
2728 void syntax___typing___ABlockExpr___accept_typing(val_t p0
, val_t p1
){
2729 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2732 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2733 fra
.me
.file
= LOCATE_syntax___typing
;
2735 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
2736 fra
.me
.has_broke
= 0;
2737 fra
.me
.REG_size
= 3;
2738 fra
.me
.REG
[0] = NIT_NULL
;
2739 fra
.me
.REG
[1] = NIT_NULL
;
2740 fra
.me
.REG
[2] = NIT_NULL
;
2743 /* ./syntax//typing.nit:413 */
2744 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2745 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
));
2746 /* ./syntax//typing.nit:422 */
2747 REGB0
= TAG_Bool(true);
2748 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2749 stack_frame_head
= fra
.me
.prev
;
2752 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
){
2753 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2757 static val_t once_value_2
; /* Once value */
2758 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2759 fra
.me
.file
= LOCATE_syntax___typing
;
2761 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
2762 fra
.me
.has_broke
= 0;
2763 fra
.me
.REG_size
= 2;
2764 fra
.me
.REG
[0] = NIT_NULL
;
2765 fra
.me
.REG
[1] = NIT_NULL
;
2766 fra
.me
.closure_ctx
= closctx_param
;
2767 fra
.me
.closure_funs
= CREG
;
2769 CREG
[0] = clos_fun0
;
2770 /* ./syntax//typing.nit:414 */
2771 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2772 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2773 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2774 if (UNTAG_Bool(REGB0
)) {
2775 /* ./syntax//typing.nit:415 */
2776 CALL_parser___parser_prod___Visitor___enter_visit(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2778 /* ./syntax//typing.nit:416 */
2779 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2780 REGB0
= CALL_syntax___flow___FlowContext___already_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2781 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2782 if (UNTAG_Bool(REGB0
)) {
2783 /* ./syntax//typing.nit:417 */
2784 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2785 REGB0
= TAG_Bool(true);
2786 CALL_syntax___flow___FlowContext___already_unreash__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
2787 /* ./syntax//typing.nit:418 */
2788 if (!once_value_2
) {
2789 fra
.me
.REG
[1] = BOX_NativeString("Error: unreachable statement.");
2790 REGB0
= TAG_Int(29);
2791 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
2792 once_value_2
= fra
.me
.REG
[1];
2793 register_static_object(&once_value_2
);
2794 } else fra
.me
.REG
[1] = once_value_2
;
2795 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2796 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[1]);
2799 stack_frame_head
= fra
.me
.prev
;
2802 void syntax___typing___AReturnExpr___after_typing(val_t p0
, val_t p1
){
2803 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2807 static val_t once_value_1
; /* Once value */
2808 static val_t once_value_3
; /* Once value */
2809 static val_t once_value_4
; /* Once value */
2810 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2811 fra
.me
.file
= LOCATE_syntax___typing
;
2813 fra
.me
.meth
= LOCATE_syntax___typing___AReturnExpr___after_typing
;
2814 fra
.me
.has_broke
= 0;
2815 fra
.me
.REG_size
= 5;
2816 fra
.me
.REG
[0] = NIT_NULL
;
2817 fra
.me
.REG
[1] = NIT_NULL
;
2818 fra
.me
.REG
[2] = NIT_NULL
;
2819 fra
.me
.REG
[3] = NIT_NULL
;
2820 fra
.me
.REG
[4] = NIT_NULL
;
2823 /* ./syntax//typing.nit:429 */
2824 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2825 /* ./syntax//typing.nit:430 */
2826 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2827 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2828 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2829 if (UNTAG_Bool(REGB0
)) {
2830 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 430);
2832 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2833 /* ./syntax//typing.nit:432 */
2834 REGB0
= CALL_syntax___typing___TypingVisitor___is_default_closure_definition(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2835 if (UNTAG_Bool(REGB0
)) {
2836 /* ./syntax//typing.nit:433 */
2837 if (!once_value_1
) {
2838 fra
.me
.REG
[3] = BOX_NativeString("Error: 'return' invalid in default closure definitions. Use 'continue' or 'break'.");
2839 REGB0
= TAG_Int(82);
2840 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2841 once_value_1
= fra
.me
.REG
[3];
2842 register_static_object(&once_value_1
);
2843 } else fra
.me
.REG
[3] = once_value_1
;
2844 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2845 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2846 /* ./syntax//typing.nit:434 */
2849 /* ./syntax//typing.nit:437 */
2850 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2851 /* ./syntax//typing.nit:438 */
2852 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2853 if (UNTAG_Bool(REGB0
)) {
2855 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2856 if (UNTAG_Bool(REGB1
)) {
2857 REGB1
= TAG_Bool(false);
2860 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
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
);
2877 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2879 REGB1
= TAG_Bool(false);
2882 if (UNTAG_Bool(REGB0
)) {
2883 /* ./syntax//typing.nit:439 */
2884 if (!once_value_3
) {
2885 fra
.me
.REG
[4] = BOX_NativeString("Error: Return without value in a function.");
2886 REGB0
= TAG_Int(42);
2887 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2888 once_value_3
= fra
.me
.REG
[4];
2889 register_static_object(&once_value_3
);
2890 } else fra
.me
.REG
[4] = once_value_3
;
2891 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2892 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
2894 /* ./syntax//typing.nit:440 */
2895 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2896 if (UNTAG_Bool(REGB0
)) {
2898 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2899 if (UNTAG_Bool(REGB1
)) {
2900 REGB1
= TAG_Bool(false);
2903 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2907 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2908 if (UNTAG_Bool(REGB0
)) {
2909 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2910 if (UNTAG_Bool(REGB0
)) {
2912 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2913 if (UNTAG_Bool(REGB1
)) {
2914 REGB1
= TAG_Bool(false);
2917 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2922 REGB1
= TAG_Bool(false);
2925 if (UNTAG_Bool(REGB0
)) {
2926 /* ./syntax//typing.nit:441 */
2927 if (!once_value_4
) {
2928 fra
.me
.REG
[4] = BOX_NativeString("Error: Return with value in a procedure.");
2929 REGB0
= TAG_Int(40);
2930 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2931 once_value_4
= fra
.me
.REG
[4];
2932 register_static_object(&once_value_4
);
2933 } else fra
.me
.REG
[4] = once_value_4
;
2934 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2935 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
2937 /* ./syntax//typing.nit:442 */
2938 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2939 if (UNTAG_Bool(REGB0
)) {
2941 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2942 if (UNTAG_Bool(REGB1
)) {
2943 REGB1
= TAG_Bool(false);
2946 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2950 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2951 if (UNTAG_Bool(REGB0
)) {
2952 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2953 if (UNTAG_Bool(REGB0
)) {
2955 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2956 if (UNTAG_Bool(REGB1
)) {
2957 REGB1
= TAG_Bool(false);
2960 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2964 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2966 REGB1
= TAG_Bool(false);
2969 if (UNTAG_Bool(REGB0
)) {
2970 /* ./syntax//typing.nit:443 */
2971 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2975 /* ./syntax//typing.nit:445 */
2976 REGB0
= TAG_Bool(true);
2977 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2979 stack_frame_head
= fra
.me
.prev
;
2982 void syntax___typing___AContinueExpr___after_typing(val_t p0
, val_t p1
){
2983 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2987 static val_t once_value_2
; /* Once value */
2988 static val_t once_value_3
; /* Once value */
2989 static val_t once_value_4
; /* Once value */
2990 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2991 fra
.me
.file
= LOCATE_syntax___typing
;
2993 fra
.me
.meth
= LOCATE_syntax___typing___AContinueExpr___after_typing
;
2994 fra
.me
.has_broke
= 0;
2995 fra
.me
.REG_size
= 5;
2996 fra
.me
.REG
[0] = NIT_NULL
;
2997 fra
.me
.REG
[1] = NIT_NULL
;
2998 fra
.me
.REG
[2] = NIT_NULL
;
2999 fra
.me
.REG
[3] = NIT_NULL
;
3000 fra
.me
.REG
[4] = NIT_NULL
;
3003 /* ./syntax//typing.nit:450 */
3004 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3005 /* ./syntax//typing.nit:452 */
3006 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3007 /* ./syntax//typing.nit:453 */
3008 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3009 fra
.me
.REG
[3] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3010 /* ./syntax//typing.nit:454 */
3011 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3012 if (UNTAG_Bool(REGB0
)) {
3014 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3015 if (UNTAG_Bool(REGB1
)) {
3016 REGB1
= TAG_Bool(false);
3019 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3023 if (UNTAG_Bool(REGB0
)) {
3026 /* ./syntax//typing.nit:456 */
3027 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3028 if (UNTAG_Bool(REGB0
)) {
3029 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 456);
3031 REGB0
= CALL_syntax___scope___EscapableBlock___is_break_block(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3032 if (UNTAG_Bool(REGB0
)) {
3033 /* ./syntax//typing.nit:457 */
3034 if (!once_value_2
) {
3035 fra
.me
.REG
[4] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
3036 REGB0
= TAG_Int(39);
3037 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3038 once_value_2
= fra
.me
.REG
[4];
3039 register_static_object(&once_value_2
);
3040 } else fra
.me
.REG
[4] = once_value_2
;
3041 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3042 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3043 /* ./syntax//typing.nit:458 */
3046 /* ./syntax//typing.nit:461 */
3047 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3048 if (UNTAG_Bool(REGB0
)) {
3049 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 461);
3051 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableBlock___continue_stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3052 /* ./syntax//typing.nit:462 */
3053 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3054 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3055 if (UNTAG_Bool(REGB0
)) {
3057 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3058 if (UNTAG_Bool(REGB1
)) {
3059 REGB1
= TAG_Bool(false);
3062 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3066 if (UNTAG_Bool(REGB0
)) {
3067 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3068 if (UNTAG_Bool(REGB0
)) {
3070 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3071 if (UNTAG_Bool(REGB1
)) {
3072 REGB1
= TAG_Bool(false);
3075 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3079 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3081 REGB1
= TAG_Bool(false);
3084 if (UNTAG_Bool(REGB0
)) {
3085 /* ./syntax//typing.nit:463 */
3086 if (!once_value_3
) {
3087 fra
.me
.REG
[4] = BOX_NativeString("Error: continue with a value required in this block.");
3088 REGB0
= TAG_Int(52);
3089 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3090 once_value_3
= fra
.me
.REG
[4];
3091 register_static_object(&once_value_3
);
3092 } else fra
.me
.REG
[4] = once_value_3
;
3093 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3094 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3096 /* ./syntax//typing.nit:464 */
3097 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3098 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3099 if (UNTAG_Bool(REGB0
)) {
3101 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3102 if (UNTAG_Bool(REGB1
)) {
3103 REGB1
= TAG_Bool(false);
3106 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3110 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3111 if (UNTAG_Bool(REGB0
)) {
3112 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3113 if (UNTAG_Bool(REGB0
)) {
3115 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3116 if (UNTAG_Bool(REGB1
)) {
3117 REGB1
= TAG_Bool(false);
3120 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3125 REGB1
= TAG_Bool(false);
3128 if (UNTAG_Bool(REGB0
)) {
3129 /* ./syntax//typing.nit:465 */
3130 if (!once_value_4
) {
3131 fra
.me
.REG
[4] = BOX_NativeString("Error: continue without value required in this block.");
3132 REGB0
= TAG_Int(53);
3133 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3134 once_value_4
= fra
.me
.REG
[4];
3135 register_static_object(&once_value_4
);
3136 } else fra
.me
.REG
[4] = once_value_4
;
3137 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3138 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3140 /* ./syntax//typing.nit:466 */
3141 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3142 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3143 if (UNTAG_Bool(REGB0
)) {
3145 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3146 if (UNTAG_Bool(REGB1
)) {
3147 REGB1
= TAG_Bool(false);
3150 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3154 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3155 if (UNTAG_Bool(REGB0
)) {
3156 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3157 if (UNTAG_Bool(REGB0
)) {
3159 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3160 if (UNTAG_Bool(REGB1
)) {
3161 REGB1
= TAG_Bool(false);
3164 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3168 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3170 REGB1
= TAG_Bool(false);
3173 if (UNTAG_Bool(REGB0
)) {
3174 /* ./syntax//typing.nit:467 */
3175 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3176 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_parser___parser_nodes___AExpr
, ID_parser___parser_nodes___AExpr
)) /*cast AExpr*/;
3177 if (UNTAG_Bool(REGB0
)) {
3179 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 467);
3181 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3185 /* ./syntax//typing.nit:469 */
3186 REGB0
= TAG_Bool(true);
3187 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
3189 stack_frame_head
= fra
.me
.prev
;
3192 void syntax___typing___ABreakExpr___after_typing(val_t p0
, val_t p1
){
3193 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3197 static val_t once_value_2
; /* Once value */
3198 static val_t once_value_3
; /* Once value */
3199 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3200 fra
.me
.file
= LOCATE_syntax___typing
;
3202 fra
.me
.meth
= LOCATE_syntax___typing___ABreakExpr___after_typing
;
3203 fra
.me
.has_broke
= 0;
3204 fra
.me
.REG_size
= 6;
3205 fra
.me
.REG
[0] = NIT_NULL
;
3206 fra
.me
.REG
[1] = NIT_NULL
;
3207 fra
.me
.REG
[2] = NIT_NULL
;
3208 fra
.me
.REG
[3] = NIT_NULL
;
3209 fra
.me
.REG
[4] = NIT_NULL
;
3210 fra
.me
.REG
[5] = NIT_NULL
;
3213 /* ./syntax//typing.nit:474 */
3214 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3215 /* ./syntax//typing.nit:476 */
3216 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3217 /* ./syntax//typing.nit:477 */
3218 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3219 /* ./syntax//typing.nit:478 */
3220 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3221 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3222 /* ./syntax//typing.nit:479 */
3223 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3224 if (UNTAG_Bool(REGB0
)) {
3226 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3227 if (UNTAG_Bool(REGB1
)) {
3228 REGB1
= TAG_Bool(false);
3231 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3235 if (UNTAG_Bool(REGB0
)) {
3238 /* ./syntax//typing.nit:481 */
3239 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3240 if (UNTAG_Bool(REGB0
)) {
3241 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 481);
3243 fra
.me
.REG
[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3244 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3245 /* ./syntax//typing.nit:483 */
3246 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3247 if (UNTAG_Bool(REGB0
)) {
3248 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 483);
3250 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3251 /* ./syntax//typing.nit:484 */
3252 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3253 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3254 if (UNTAG_Bool(REGB0
)) {
3256 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3257 if (UNTAG_Bool(REGB1
)) {
3258 REGB1
= TAG_Bool(false);
3261 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3265 if (UNTAG_Bool(REGB0
)) {
3266 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3267 if (UNTAG_Bool(REGB0
)) {
3269 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3270 if (UNTAG_Bool(REGB1
)) {
3271 REGB1
= TAG_Bool(false);
3274 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3278 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3280 REGB1
= TAG_Bool(false);
3283 if (UNTAG_Bool(REGB0
)) {
3284 /* ./syntax//typing.nit:485 */
3285 if (!once_value_2
) {
3286 fra
.me
.REG
[3] = BOX_NativeString("Error: break with a value required in this block.");
3287 REGB0
= TAG_Int(49);
3288 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3289 once_value_2
= fra
.me
.REG
[3];
3290 register_static_object(&once_value_2
);
3291 } else fra
.me
.REG
[3] = once_value_2
;
3292 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3293 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3295 /* ./syntax//typing.nit:486 */
3296 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3297 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3298 if (UNTAG_Bool(REGB0
)) {
3300 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3301 if (UNTAG_Bool(REGB1
)) {
3302 REGB1
= TAG_Bool(false);
3305 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3309 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3310 if (UNTAG_Bool(REGB0
)) {
3311 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3312 if (UNTAG_Bool(REGB0
)) {
3314 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3315 if (UNTAG_Bool(REGB1
)) {
3316 REGB1
= TAG_Bool(false);
3319 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3324 REGB1
= TAG_Bool(false);
3327 if (UNTAG_Bool(REGB0
)) {
3328 /* ./syntax//typing.nit:487 */
3329 if (!once_value_3
) {
3330 fra
.me
.REG
[3] = BOX_NativeString("Error: break without value required in this block.");
3331 REGB0
= TAG_Int(50);
3332 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3333 once_value_3
= fra
.me
.REG
[3];
3334 register_static_object(&once_value_3
);
3335 } else fra
.me
.REG
[3] = once_value_3
;
3336 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3337 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3339 /* ./syntax//typing.nit:488 */
3340 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3341 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3342 if (UNTAG_Bool(REGB0
)) {
3344 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3345 if (UNTAG_Bool(REGB1
)) {
3346 REGB1
= TAG_Bool(false);
3349 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3353 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3354 if (UNTAG_Bool(REGB0
)) {
3355 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3356 if (UNTAG_Bool(REGB0
)) {
3358 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3359 if (UNTAG_Bool(REGB1
)) {
3360 REGB1
= TAG_Bool(false);
3363 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3367 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3369 REGB1
= TAG_Bool(false);
3372 if (UNTAG_Bool(REGB0
)) {
3373 /* ./syntax//typing.nit:490 */
3374 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3375 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*/;
3376 if (UNTAG_Bool(REGB0
)) {
3378 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 490);
3380 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3381 if (UNTAG_Bool(REGB0
)) {
3382 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 490);
3384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3388 /* ./syntax//typing.nit:492 */
3389 REGB0
= TAG_Bool(true);
3390 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
3392 stack_frame_head
= fra
.me
.prev
;
3395 void syntax___typing___AAbortExpr___after_typing(val_t p0
, val_t p1
){
3396 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3399 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3400 fra
.me
.file
= LOCATE_syntax___typing
;
3402 fra
.me
.meth
= LOCATE_syntax___typing___AAbortExpr___after_typing
;
3403 fra
.me
.has_broke
= 0;
3404 fra
.me
.REG_size
= 2;
3405 fra
.me
.REG
[0] = NIT_NULL
;
3406 fra
.me
.REG
[1] = NIT_NULL
;
3409 /* ./syntax//typing.nit:499 */
3410 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3411 /* ./syntax//typing.nit:500 */
3412 REGB0
= TAG_Bool(true);
3413 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3414 stack_frame_head
= fra
.me
.prev
;
3417 val_t
syntax___typing___AAbsControl___escapable(val_t p0
){
3418 struct {struct stack_frame_t me
;} fra
;
3420 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3421 fra
.me
.file
= LOCATE_syntax___typing
;
3423 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___escapable
;
3424 fra
.me
.has_broke
= 0;
3425 fra
.me
.REG_size
= 1;
3426 fra
.me
.REG
[0] = NIT_NULL
;
3428 /* ./syntax//typing.nit:507 */
3429 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]);
3430 stack_frame_head
= fra
.me
.prev
;
3431 return fra
.me
.REG
[0];
3433 void syntax___typing___AAbsControl___process_control(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
3434 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3438 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3439 fra
.me
.file
= LOCATE_syntax___typing
;
3441 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control
;
3442 fra
.me
.has_broke
= 0;
3443 fra
.me
.REG_size
= 7;
3444 fra
.me
.REG
[0] = NIT_NULL
;
3445 fra
.me
.REG
[1] = NIT_NULL
;
3446 fra
.me
.REG
[2] = NIT_NULL
;
3447 fra
.me
.REG
[3] = NIT_NULL
;
3448 fra
.me
.REG
[4] = NIT_NULL
;
3449 fra
.me
.REG
[5] = NIT_NULL
;
3450 fra
.me
.REG
[6] = NIT_NULL
;
3456 /* ./syntax//typing.nit:514 */
3457 ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3458 /* ./syntax//typing.nit:515 */
3459 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3460 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3461 /* ./syntax//typing.nit:518 */
3462 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3463 /* ./syntax//typing.nit:519 */
3464 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3465 /* ./syntax//typing.nit:520 */
3466 if (UNTAG_Bool(REGB0
)) {
3467 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3468 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3470 /* ./syntax//typing.nit:523 */
3471 CALL_syntax___typing___AAbsControl___process_control_inside(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3472 /* ./syntax//typing.nit:526 */
3473 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3474 REGB1
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3475 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
3476 if (UNTAG_Bool(REGB1
)) {
3477 /* ./syntax//typing.nit:527 */
3478 fra
.me
.REG
[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3479 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3480 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3482 /* ./syntax//typing.nit:531 */
3483 fra
.me
.REG
[6] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3484 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3485 if (UNTAG_Bool(REGB1
)) {
3486 /* ./syntax//typing.nit:532 */
3487 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3488 /* ./syntax//typing.nit:533 */
3489 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3491 /* ./syntax//typing.nit:535 */
3492 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3493 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]);
3494 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3496 /* ./syntax//typing.nit:538 */
3497 if (UNTAG_Bool(REGB0
)) {
3498 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3500 /* ./syntax//typing.nit:539 */
3501 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3502 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3503 /* ./syntax//typing.nit:540 */
3504 REGB0
= TAG_Bool(true);
3505 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3506 stack_frame_head
= fra
.me
.prev
;
3509 void syntax___typing___AAbsControl___process_control_inside(val_t p0
, val_t p1
){
3510 struct {struct stack_frame_t me
;} fra
;
3512 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3513 fra
.me
.file
= LOCATE_syntax___typing
;
3515 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control_inside
;
3516 fra
.me
.has_broke
= 0;
3517 fra
.me
.REG_size
= 0;
3518 /* ./syntax//typing.nit:543 */
3519 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 543);
3520 stack_frame_head
= fra
.me
.prev
;
3523 void syntax___typing___ADoExpr___accept_typing(val_t p0
, val_t p1
){
3524 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3527 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3528 fra
.me
.file
= LOCATE_syntax___typing
;
3530 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___accept_typing
;
3531 fra
.me
.has_broke
= 0;
3532 fra
.me
.REG_size
= 4;
3533 fra
.me
.REG
[0] = NIT_NULL
;
3534 fra
.me
.REG
[1] = NIT_NULL
;
3535 fra
.me
.REG
[2] = NIT_NULL
;
3536 fra
.me
.REG
[3] = NIT_NULL
;
3539 /* ./syntax//typing.nit:551 */
3540 fra
.me
.REG
[2] = NEW_BreakOnlyEscapableBlock_syntax___scope___BreakOnlyEscapableBlock___init(fra
.me
.REG
[0]);
3541 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3542 REGB0
= TAG_Bool(false);
3543 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
);
3544 stack_frame_head
= fra
.me
.prev
;
3547 void syntax___typing___ADoExpr___process_control_inside(val_t p0
, val_t p1
){
3548 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3550 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3551 fra
.me
.file
= LOCATE_syntax___typing
;
3553 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___process_control_inside
;
3554 fra
.me
.has_broke
= 0;
3555 fra
.me
.REG_size
= 2;
3556 fra
.me
.REG
[0] = NIT_NULL
;
3557 fra
.me
.REG
[1] = NIT_NULL
;
3560 /* ./syntax//typing.nit:556 */
3561 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3562 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3563 stack_frame_head
= fra
.me
.prev
;
3566 void syntax___typing___AIfExpr___accept_typing(val_t p0
, val_t p1
){
3567 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3570 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3571 fra
.me
.file
= LOCATE_syntax___typing
;
3573 fra
.me
.meth
= LOCATE_syntax___typing___AIfExpr___accept_typing
;
3574 fra
.me
.has_broke
= 0;
3575 fra
.me
.REG_size
= 5;
3576 fra
.me
.REG
[0] = NIT_NULL
;
3577 fra
.me
.REG
[1] = NIT_NULL
;
3578 fra
.me
.REG
[2] = NIT_NULL
;
3579 fra
.me
.REG
[3] = NIT_NULL
;
3580 fra
.me
.REG
[4] = NIT_NULL
;
3583 /* ./syntax//typing.nit:563 */
3584 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3585 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3586 /* ./syntax//typing.nit:564 */
3587 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3588 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3589 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3590 /* ./syntax//typing.nit:567 */
3591 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3592 /* ./syntax//typing.nit:568 */
3593 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3594 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3595 /* ./syntax//typing.nit:571 */
3596 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3597 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3598 /* ./syntax//typing.nit:574 */
3599 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3600 /* ./syntax//typing.nit:577 */
3601 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3602 /* ./syntax//typing.nit:578 */
3603 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3604 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3605 /* ./syntax//typing.nit:581 */
3606 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3607 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3608 /* ./syntax//typing.nit:584 */
3609 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3610 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3611 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]);
3612 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3613 /* ./syntax//typing.nit:585 */
3614 REGB0
= TAG_Bool(true);
3615 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3616 stack_frame_head
= fra
.me
.prev
;
3619 void syntax___typing___AWhileExpr___accept_typing(val_t p0
, val_t p1
){
3620 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3623 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3624 fra
.me
.file
= LOCATE_syntax___typing
;
3626 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___accept_typing
;
3627 fra
.me
.has_broke
= 0;
3628 fra
.me
.REG_size
= 4;
3629 fra
.me
.REG
[0] = NIT_NULL
;
3630 fra
.me
.REG
[1] = NIT_NULL
;
3631 fra
.me
.REG
[2] = NIT_NULL
;
3632 fra
.me
.REG
[3] = NIT_NULL
;
3635 /* ./syntax//typing.nit:593 */
3636 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3637 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3638 REGB0
= TAG_Bool(true);
3639 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
);
3640 stack_frame_head
= fra
.me
.prev
;
3643 void syntax___typing___AWhileExpr___process_control_inside(val_t p0
, val_t p1
){
3644 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3647 static val_t once_value_1
; /* Once value */
3648 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3649 fra
.me
.file
= LOCATE_syntax___typing
;
3651 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___process_control_inside
;
3652 fra
.me
.has_broke
= 0;
3653 fra
.me
.REG_size
= 5;
3654 fra
.me
.REG
[0] = NIT_NULL
;
3655 fra
.me
.REG
[1] = NIT_NULL
;
3656 fra
.me
.REG
[2] = NIT_NULL
;
3657 fra
.me
.REG
[3] = NIT_NULL
;
3658 fra
.me
.REG
[4] = NIT_NULL
;
3661 /* ./syntax//typing.nit:598 */
3662 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3663 /* ./syntax//typing.nit:601 */
3664 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3665 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3666 /* ./syntax//typing.nit:602 */
3667 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3668 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3669 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
3670 /* ./syntax//typing.nit:604 */
3671 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3672 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_parser___parser_nodes___ATrueExpr
, ID_parser___parser_nodes___ATrueExpr
)) /*cast ATrueExpr*/;
3673 if (UNTAG_Bool(REGB0
)) {
3674 /* ./syntax//typing.nit:605 */
3675 if (!once_value_1
) {
3676 fra
.me
.REG
[4] = BOX_NativeString("Warning: use 'loop' instead of 'while true do'.");
3677 REGB0
= TAG_Int(47);
3678 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3679 once_value_1
= fra
.me
.REG
[4];
3680 register_static_object(&once_value_1
);
3681 } else fra
.me
.REG
[4] = once_value_1
;
3682 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3683 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3685 /* ./syntax//typing.nit:609 */
3686 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3687 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3688 /* ./syntax//typing.nit:612 */
3689 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3690 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3691 /* ./syntax//typing.nit:615 */
3692 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3693 /* ./syntax//typing.nit:616 */
3694 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3695 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3696 /* ./syntax//typing.nit:617 */
3697 fra
.me
.REG
[0] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3698 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3699 if (UNTAG_Bool(REGB0
)) {
3700 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 617);
3702 fra
.me
.REG
[0] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3703 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3704 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3705 stack_frame_head
= fra
.me
.prev
;
3708 void syntax___typing___ALoopExpr___accept_typing(val_t p0
, val_t p1
){
3709 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3712 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3713 fra
.me
.file
= LOCATE_syntax___typing
;
3715 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___accept_typing
;
3716 fra
.me
.has_broke
= 0;
3717 fra
.me
.REG_size
= 4;
3718 fra
.me
.REG
[0] = NIT_NULL
;
3719 fra
.me
.REG
[1] = NIT_NULL
;
3720 fra
.me
.REG
[2] = NIT_NULL
;
3721 fra
.me
.REG
[3] = NIT_NULL
;
3724 /* ./syntax//typing.nit:625 */
3725 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3726 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3727 REGB0
= TAG_Bool(true);
3728 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
);
3729 stack_frame_head
= fra
.me
.prev
;
3732 void syntax___typing___ALoopExpr___process_control_inside(val_t p0
, val_t p1
){
3733 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3735 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3736 fra
.me
.file
= LOCATE_syntax___typing
;
3738 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___process_control_inside
;
3739 fra
.me
.has_broke
= 0;
3740 fra
.me
.REG_size
= 3;
3741 fra
.me
.REG
[0] = NIT_NULL
;
3742 fra
.me
.REG
[1] = NIT_NULL
;
3743 fra
.me
.REG
[2] = NIT_NULL
;
3746 /* ./syntax//typing.nit:631 */
3747 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3748 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3749 /* ./syntax//typing.nit:634 */
3750 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3751 stack_frame_head
= fra
.me
.prev
;
3754 val_t
syntax___typing___AForExpr___variables(val_t p0
){
3755 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3758 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3759 fra
.me
.file
= LOCATE_syntax___typing
;
3761 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___variables
;
3762 fra
.me
.has_broke
= 0;
3763 fra
.me
.REG_size
= 2;
3764 fra
.me
.REG
[0] = NIT_NULL
;
3765 fra
.me
.REG
[1] = NIT_NULL
;
3767 /* ./syntax//typing.nit:641 */
3768 fra
.me
.REG
[1] = fra
.me
.REG
[0];
3769 fra
.me
.REG
[1] = ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[1]);
3770 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
3771 if (UNTAG_Bool(REGB0
)) {
3773 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 641);
3777 stack_frame_head
= fra
.me
.prev
;
3778 return fra
.me
.REG
[1];
3780 void syntax___typing___AForExpr___accept_typing(val_t p0
, val_t p1
){
3781 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3784 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3785 fra
.me
.file
= LOCATE_syntax___typing
;
3787 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___accept_typing
;
3788 fra
.me
.has_broke
= 0;
3789 fra
.me
.REG_size
= 4;
3790 fra
.me
.REG
[0] = NIT_NULL
;
3791 fra
.me
.REG
[1] = NIT_NULL
;
3792 fra
.me
.REG
[2] = NIT_NULL
;
3793 fra
.me
.REG
[3] = NIT_NULL
;
3796 /* ./syntax//typing.nit:645 */
3797 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3798 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3799 REGB0
= TAG_Bool(true);
3800 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
);
3801 stack_frame_head
= fra
.me
.prev
;
3804 void syntax___typing___AForExpr___process_control_inside(val_t p0
, val_t p1
){
3805 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3807 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3808 fra
.me
.file
= LOCATE_syntax___typing
;
3810 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___process_control_inside
;
3811 fra
.me
.has_broke
= 0;
3812 fra
.me
.REG_size
= 3;
3813 fra
.me
.REG
[0] = NIT_NULL
;
3814 fra
.me
.REG
[1] = NIT_NULL
;
3815 fra
.me
.REG
[2] = NIT_NULL
;
3818 /* ./syntax//typing.nit:650 */
3819 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3820 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3821 /* ./syntax//typing.nit:651 */
3822 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3823 /* ./syntax//typing.nit:653 */
3824 CALL_syntax___typing___AForExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3825 /* ./syntax//typing.nit:656 */
3826 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3827 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3828 /* ./syntax//typing.nit:659 */
3829 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3830 /* ./syntax//typing.nit:660 */
3831 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3832 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3833 stack_frame_head
= fra
.me
.prev
;
3836 void syntax___typing___AForExpr___do_typing(val_t p0
, val_t p1
){
3837 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
3845 static val_t once_value_3
; /* Once value */
3846 static val_t once_value_4
; /* Once value */
3847 static val_t once_value_5
; /* Once value */
3848 static val_t once_value_6
; /* Once value */
3849 static val_t once_value_7
; /* Once value */
3850 static val_t once_value_8
; /* Once value */
3851 static val_t once_value_9
; /* Once value */
3852 static val_t once_value_10
; /* Once value */
3853 static val_t once_value_11
; /* Once value */
3854 static val_t once_value_12
; /* Once value */
3855 static val_t once_value_13
; /* Once value */
3856 static val_t once_value_14
; /* Once value */
3857 static val_t once_value_15
; /* Once value */
3858 static val_t once_value_16
; /* Once value */
3859 static val_t once_value_17
; /* Once value */
3860 static val_t once_value_18
; /* Once value */
3861 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3862 fra
.me
.file
= LOCATE_syntax___typing
;
3864 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
3865 fra
.me
.has_broke
= 0;
3866 fra
.me
.REG_size
= 8;
3867 fra
.me
.REG
[0] = NIT_NULL
;
3868 fra
.me
.REG
[1] = NIT_NULL
;
3869 fra
.me
.REG
[2] = NIT_NULL
;
3870 fra
.me
.REG
[3] = NIT_NULL
;
3871 fra
.me
.REG
[4] = NIT_NULL
;
3872 fra
.me
.REG
[5] = NIT_NULL
;
3873 fra
.me
.REG
[6] = NIT_NULL
;
3874 fra
.me
.REG
[7] = NIT_NULL
;
3877 /* ./syntax//typing.nit:666 */
3878 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
3879 /* ./syntax//typing.nit:667 */
3880 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3881 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
));
3882 /* ./syntax//typing.nit:672 */
3883 ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3884 /* ./syntax//typing.nit:675 */
3885 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3886 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3887 /* ./syntax//typing.nit:676 */
3888 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3889 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3890 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3891 if (UNTAG_Bool(REGB0
)) {
3894 /* ./syntax//typing.nit:677 */
3895 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3896 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3897 /* ./syntax//typing.nit:679 */
3898 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3899 if (UNTAG_Bool(REGB0
)) {
3900 /* ./syntax//typing.nit:680 */
3901 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3902 if (!once_value_3
) {
3903 fra
.me
.REG
[5] = BOX_NativeString("Type error: 'for' on a nullable expression.");
3904 REGB0
= TAG_Int(43);
3905 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3906 once_value_3
= fra
.me
.REG
[5];
3907 register_static_object(&once_value_3
);
3908 } else fra
.me
.REG
[5] = once_value_3
;
3909 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3910 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
3911 /* ./syntax//typing.nit:681 */
3914 /* ./syntax//typing.nit:685 */
3915 if (!once_value_4
) {
3916 if (!once_value_5
) {
3917 fra
.me
.REG
[5] = BOX_NativeString("iterate");
3919 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3920 once_value_5
= fra
.me
.REG
[5];
3921 register_static_object(&once_value_5
);
3922 } else fra
.me
.REG
[5] = once_value_5
;
3923 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3924 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3925 once_value_4
= fra
.me
.REG
[5];
3926 register_static_object(&once_value_4
);
3927 } else fra
.me
.REG
[5] = once_value_4
;
3928 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3929 /* ./syntax//typing.nit:686 */
3930 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3931 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3932 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3933 if (UNTAG_Bool(REGB0
)) {
3934 /* ./syntax//typing.nit:687 */
3935 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3937 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3938 if (!once_value_6
) {
3939 fra
.me
.REG
[7] = BOX_NativeString("Type error: Expected a type with an 'iterate' method. Found ");
3940 REGB0
= TAG_Int(60);
3941 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3942 once_value_6
= fra
.me
.REG
[7];
3943 register_static_object(&once_value_6
);
3944 } else fra
.me
.REG
[7] = once_value_6
;
3945 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3946 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3947 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3948 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3949 if (!once_value_7
) {
3950 fra
.me
.REG
[7] = BOX_NativeString(".");
3952 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3953 once_value_7
= fra
.me
.REG
[7];
3954 register_static_object(&once_value_7
);
3955 } else fra
.me
.REG
[7] = once_value_7
;
3956 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3957 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3958 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3959 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
3960 /* ./syntax//typing.nit:688 */
3963 /* ./syntax//typing.nit:690 */
3964 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3965 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
3966 /* ./syntax//typing.nit:691 */
3967 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3968 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3969 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3970 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3971 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
);
3972 /* ./syntax//typing.nit:692 */
3973 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3974 /* ./syntax//typing.nit:693 */
3975 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3976 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3977 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3978 if (UNTAG_Bool(REGB0
)) {
3979 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3980 fra
.me
.REG
[3] = fra
.me
.REG
[5];
3982 /* ./syntax//typing.nit:694 */
3983 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3985 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
3986 if (UNTAG_Bool(REGB2
)) {
3988 /* ./../lib/standard//kernel.nit:210 */
3989 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
3990 /* ./syntax//typing.nit:694 */
3993 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
3994 if (UNTAG_Bool(REGB2
)) {
3995 /* ./syntax//typing.nit:695 */
3996 if (!once_value_8
) {
3997 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require no arguments.");
3998 REGB2
= TAG_Int(63);
3999 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
4000 once_value_8
= fra
.me
.REG
[5];
4001 register_static_object(&once_value_8
);
4002 } else fra
.me
.REG
[5] = once_value_8
;
4003 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4004 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4005 /* ./syntax//typing.nit:696 */
4008 /* ./syntax//typing.nit:697 */
4009 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4010 /* ./../lib/standard//collection//array.nit:23 */
4011 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4012 if (UNTAG_Bool(REGB2
)) {
4014 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4016 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4017 /* ./syntax//typing.nit:697 */
4019 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4020 if (UNTAG_Bool(REGB0
)) {
4022 /* ./../lib/standard//kernel.nit:210 */
4023 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4024 /* ./syntax//typing.nit:697 */
4027 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4028 if (UNTAG_Bool(REGB0
)) {
4029 /* ./syntax//typing.nit:698 */
4030 if (!once_value_9
) {
4031 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one closure.");
4032 REGB0
= TAG_Int(62);
4033 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4034 once_value_9
= fra
.me
.REG
[5];
4035 register_static_object(&once_value_9
);
4036 } else fra
.me
.REG
[5] = once_value_9
;
4037 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4038 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4039 /* ./syntax//typing.nit:699 */
4043 /* ./syntax//typing.nit:701 */
4044 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4045 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4046 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4047 if (UNTAG_Bool(REGB0
)) {
4048 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 701);
4050 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4051 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4052 /* ./syntax//typing.nit:702 */
4053 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4054 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4055 if (UNTAG_Bool(REGB0
)) {
4057 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4058 if (UNTAG_Bool(REGB1
)) {
4059 REGB1
= TAG_Bool(false);
4062 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
4066 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4067 if (UNTAG_Bool(REGB0
)) {
4068 /* ./syntax//typing.nit:703 */
4069 if (!once_value_10
) {
4070 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one procedural closure.");
4071 REGB0
= TAG_Int(73);
4072 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4073 once_value_10
= fra
.me
.REG
[5];
4074 register_static_object(&once_value_10
);
4075 } else fra
.me
.REG
[5] = once_value_10
;
4076 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4077 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4078 /* ./syntax//typing.nit:704 */
4081 /* ./../lib/standard//collection//array.nit:23 */
4082 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4083 if (UNTAG_Bool(REGB0
)) {
4085 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4087 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4088 /* ./syntax//typing.nit:706 */
4089 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4090 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4091 if (UNTAG_Bool(REGB2
)) {
4093 /* ./../lib/standard//kernel.nit:210 */
4094 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4095 /* ./syntax//typing.nit:706 */
4098 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4099 if (UNTAG_Bool(REGB2
)) {
4100 /* ./syntax//typing.nit:707 */
4101 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4103 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4104 if (UNTAG_Bool(REGB0
)) {
4106 /* ./../lib/standard//kernel.nit:210 */
4107 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4108 /* ./syntax//typing.nit:707 */
4111 if (UNTAG_Bool(REGB0
)) {
4112 /* ./syntax//typing.nit:708 */
4114 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4115 if (!once_value_11
) {
4116 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4117 REGB0
= TAG_Int(16);
4118 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4119 once_value_11
= fra
.me
.REG
[4];
4120 register_static_object(&once_value_11
);
4121 } else fra
.me
.REG
[4] = once_value_11
;
4122 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4124 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4125 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4126 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4127 if (!once_value_12
) {
4128 fra
.me
.REG
[4] = BOX_NativeString(" variable ");
4129 REGB0
= TAG_Int(10);
4130 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4131 once_value_12
= fra
.me
.REG
[4];
4132 register_static_object(&once_value_12
);
4133 } else fra
.me
.REG
[4] = once_value_12
;
4134 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4135 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4136 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4137 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4138 if (!once_value_13
) {
4139 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4141 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4142 once_value_13
= fra
.me
.REG
[4];
4143 register_static_object(&once_value_13
);
4144 } else fra
.me
.REG
[4] = once_value_13
;
4145 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4146 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4147 /* ./../lib/standard//collection//array.nit:23 */
4148 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4149 if (UNTAG_Bool(REGB0
)) {
4151 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4153 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4154 /* ./syntax//typing.nit:708 */
4155 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4156 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4157 if (!once_value_14
) {
4158 fra
.me
.REG
[4] = BOX_NativeString(".");
4160 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4161 once_value_14
= fra
.me
.REG
[4];
4162 register_static_object(&once_value_14
);
4163 } else fra
.me
.REG
[4] = once_value_14
;
4164 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4165 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4166 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4167 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4169 /* ./syntax//typing.nit:710 */
4171 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4172 if (!once_value_15
) {
4173 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4174 REGB0
= TAG_Int(16);
4175 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4176 once_value_15
= fra
.me
.REG
[4];
4177 register_static_object(&once_value_15
);
4178 } else fra
.me
.REG
[4] = once_value_15
;
4179 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4180 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4181 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4182 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4183 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4184 if (!once_value_16
) {
4185 fra
.me
.REG
[4] = BOX_NativeString(" variables ");
4186 REGB0
= TAG_Int(11);
4187 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4188 once_value_16
= fra
.me
.REG
[4];
4189 register_static_object(&once_value_16
);
4190 } else fra
.me
.REG
[4] = once_value_16
;
4191 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4192 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4193 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4194 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4195 if (!once_value_17
) {
4196 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4198 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4199 once_value_17
= fra
.me
.REG
[4];
4200 register_static_object(&once_value_17
);
4201 } else fra
.me
.REG
[4] = once_value_17
;
4202 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4203 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4204 /* ./../lib/standard//collection//array.nit:23 */
4205 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4206 if (UNTAG_Bool(REGB0
)) {
4208 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4210 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4211 /* ./syntax//typing.nit:710 */
4212 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4213 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4214 if (!once_value_18
) {
4215 fra
.me
.REG
[4] = BOX_NativeString(".");
4217 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4218 once_value_18
= fra
.me
.REG
[4];
4219 register_static_object(&once_value_18
);
4220 } else fra
.me
.REG
[4] = once_value_18
;
4221 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4222 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4223 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4224 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4226 /* ./syntax//typing.nit:712 */
4229 /* ./syntax//typing.nit:716 */
4231 /* ./../lib/standard//collection//array.nit:23 */
4232 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4233 if (UNTAG_Bool(REGB1
)) {
4235 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
4237 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4238 /* ./../lib/standard//kernel.nit:335 */
4240 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
4241 if (UNTAG_Bool(REGB2
)) {
4243 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4245 /* ./../lib/standard//kernel.nit:215 */
4246 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
4247 /* ./../lib/standard//kernel.nit:335 */
4248 if (UNTAG_Bool(REGB2
)) {
4249 /* ./syntax//typing.nit:716 */
4251 /* ./../lib/standard//collection//array.nit:241 */
4252 fra
.me
.REG
[5] = fra
.me
.REG
[2];
4254 /* ./../lib/standard//collection//array.nit:243 */
4256 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4257 if (UNTAG_Bool(REGB5
)) {
4259 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4261 /* ./../lib/standard//kernel.nit:216 */
4262 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
4263 /* ./../lib/standard//collection//array.nit:243 */
4264 if (UNTAG_Bool(REGB4
)) {
4265 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4266 if (UNTAG_Bool(REGB4
)) {
4268 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
4270 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4271 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4272 if (UNTAG_Bool(REGB5
)) {
4274 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4276 /* ./../lib/standard//kernel.nit:215 */
4277 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
4279 /* ./../lib/standard//collection//array.nit:243 */
4280 REGB5
= TAG_Bool(false);
4283 if (UNTAG_Bool(REGB4
)) {
4285 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
4287 /* ./../lib/standard//collection//array.nit:244 */
4288 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
4289 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4290 if (UNTAG_Bool(REGB4
)) {
4291 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
4293 /* ./../lib/standard//collection//array.nit:652 */
4294 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
4295 /* ./../lib/standard//collection//array.nit:244 */
4298 /* ./syntax//typing.nit:717 */
4299 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
4300 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4301 if (UNTAG_Bool(REGB2
)) {
4302 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 717);
4304 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4305 /* ./../lib/standard//kernel.nit:337 */
4307 /* ./../lib/standard//kernel.nit:218 */
4308 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
4309 /* ./../lib/standard//kernel.nit:337 */
4312 /* ./../lib/standard//kernel.nit:335 */
4318 stack_frame_head
= fra
.me
.prev
;
4321 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
){
4322 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4325 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4326 fra
.me
.file
= LOCATE_syntax___typing
;
4328 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4329 fra
.me
.has_broke
= 0;
4330 fra
.me
.REG_size
= 2;
4331 fra
.me
.REG
[0] = NIT_NULL
;
4332 fra
.me
.REG
[1] = NIT_NULL
;
4333 fra
.me
.closure_ctx
= closctx_param
;
4334 fra
.me
.closure_funs
= CREG
;
4336 CREG
[0] = clos_fun0
;
4337 /* ./syntax//typing.nit:668 */
4338 fra
.me
.REG
[1] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4339 fra
.me
.REG
[0] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4340 /* ./syntax//typing.nit:669 */
4341 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
4342 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4343 /* ./syntax//typing.nit:670 */
4344 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
4345 stack_frame_head
= fra
.me
.prev
;
4348 void syntax___typing___AAssertExpr___accept_typing(val_t p0
, val_t p1
){
4349 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4353 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4354 fra
.me
.file
= LOCATE_syntax___typing
;
4356 fra
.me
.meth
= LOCATE_syntax___typing___AAssertExpr___accept_typing
;
4357 fra
.me
.has_broke
= 0;
4358 fra
.me
.REG_size
= 4;
4359 fra
.me
.REG
[0] = NIT_NULL
;
4360 fra
.me
.REG
[1] = NIT_NULL
;
4361 fra
.me
.REG
[2] = NIT_NULL
;
4362 fra
.me
.REG
[3] = NIT_NULL
;
4365 /* ./syntax//typing.nit:726 */
4366 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4367 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4368 /* ./syntax//typing.nit:727 */
4369 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4370 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4371 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4372 /* ./syntax//typing.nit:730 */
4373 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4374 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4375 if (UNTAG_Bool(REGB0
)) {
4377 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4378 if (UNTAG_Bool(REGB1
)) {
4379 REGB1
= TAG_Bool(false);
4382 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4386 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4387 if (UNTAG_Bool(REGB0
)) {
4388 /* ./syntax//typing.nit:731 */
4389 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4390 /* ./syntax//typing.nit:732 */
4391 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4392 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4393 /* ./syntax//typing.nit:733 */
4394 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4395 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4396 /* ./syntax//typing.nit:734 */
4397 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4399 /* ./syntax//typing.nit:738 */
4400 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4401 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4402 /* ./syntax//typing.nit:739 */
4403 REGB0
= TAG_Bool(true);
4404 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4405 stack_frame_head
= fra
.me
.prev
;
4408 val_t
syntax___typing___AVarFormExpr___variable(val_t p0
){
4409 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4412 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4413 fra
.me
.file
= LOCATE_syntax___typing
;
4415 fra
.me
.meth
= LOCATE_syntax___typing___AVarFormExpr___variable
;
4416 fra
.me
.has_broke
= 0;
4417 fra
.me
.REG_size
= 2;
4418 fra
.me
.REG
[0] = NIT_NULL
;
4419 fra
.me
.REG
[1] = NIT_NULL
;
4421 /* ./syntax//typing.nit:745 */
4422 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4423 fra
.me
.REG
[1] = ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[1]);
4424 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4425 if (UNTAG_Bool(REGB0
)) {
4427 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 745);
4431 stack_frame_head
= fra
.me
.prev
;
4432 return fra
.me
.REG
[1];
4434 val_t
syntax___typing___AVarExpr___its_variable(val_t p0
){
4435 struct {struct stack_frame_t me
;} fra
;
4437 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4438 fra
.me
.file
= LOCATE_syntax___typing
;
4440 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___its_variable
;
4441 fra
.me
.has_broke
= 0;
4442 fra
.me
.REG_size
= 1;
4443 fra
.me
.REG
[0] = NIT_NULL
;
4445 /* ./syntax//typing.nit:749 */
4446 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4449 stack_frame_head
= fra
.me
.prev
;
4450 return fra
.me
.REG
[0];
4452 void syntax___typing___AVarExpr___after_typing(val_t p0
, val_t p1
){
4453 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4457 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4458 fra
.me
.file
= LOCATE_syntax___typing
;
4460 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___after_typing
;
4461 fra
.me
.has_broke
= 0;
4462 fra
.me
.REG_size
= 4;
4463 fra
.me
.REG
[0] = NIT_NULL
;
4464 fra
.me
.REG
[1] = NIT_NULL
;
4465 fra
.me
.REG
[2] = NIT_NULL
;
4466 fra
.me
.REG
[3] = NIT_NULL
;
4469 /* ./syntax//typing.nit:753 */
4470 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4471 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4472 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4473 /* ./syntax//typing.nit:754 */
4474 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4475 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4476 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4477 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4478 /* ./syntax//typing.nit:755 */
4479 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
4480 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4481 if (UNTAG_Bool(REGB0
)) {
4483 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4484 if (UNTAG_Bool(REGB1
)) {
4485 REGB1
= TAG_Bool(false);
4488 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4492 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4493 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4494 stack_frame_head
= fra
.me
.prev
;
4497 void syntax___typing___AVarAssignExpr___after_typing(val_t p0
, val_t p1
){
4498 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4502 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4503 fra
.me
.file
= LOCATE_syntax___typing
;
4505 fra
.me
.meth
= LOCATE_syntax___typing___AVarAssignExpr___after_typing
;
4506 fra
.me
.has_broke
= 0;
4507 fra
.me
.REG_size
= 5;
4508 fra
.me
.REG
[0] = NIT_NULL
;
4509 fra
.me
.REG
[1] = NIT_NULL
;
4510 fra
.me
.REG
[2] = NIT_NULL
;
4511 fra
.me
.REG
[3] = NIT_NULL
;
4512 fra
.me
.REG
[4] = NIT_NULL
;
4515 /* ./syntax//typing.nit:762 */
4516 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4517 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4518 /* ./syntax//typing.nit:765 */
4519 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4520 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4521 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4522 /* ./syntax//typing.nit:766 */
4523 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4524 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4525 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4526 if (UNTAG_Bool(REGB0
)) {
4529 /* ./syntax//typing.nit:767 */
4530 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4531 if (UNTAG_Bool(REGB0
)) {
4533 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4534 if (UNTAG_Bool(REGB1
)) {
4535 REGB1
= TAG_Bool(false);
4538 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4542 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4543 if (UNTAG_Bool(REGB0
)) {
4544 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4545 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]);
4546 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4548 REGB1
= TAG_Bool(false);
4551 if (UNTAG_Bool(REGB0
)) {
4554 /* ./syntax//typing.nit:770 */
4555 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4556 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4557 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4558 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4559 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]);
4560 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4561 /* ./syntax//typing.nit:772 */
4562 REGB0
= TAG_Bool(true);
4563 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4565 stack_frame_head
= fra
.me
.prev
;
4568 val_t
syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0
, val_t p1
, val_t p2
){
4569 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4573 static val_t once_value_2
; /* Once value */
4574 static val_t once_value_3
; /* Once value */
4575 static val_t once_value_4
; /* Once value */
4576 static val_t once_value_5
; /* Once value */
4577 static val_t once_value_6
; /* Once value */
4578 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4579 fra
.me
.file
= LOCATE_syntax___typing
;
4581 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing
;
4582 fra
.me
.has_broke
= 0;
4583 fra
.me
.REG_size
= 8;
4584 fra
.me
.REG
[0] = NIT_NULL
;
4585 fra
.me
.REG
[1] = NIT_NULL
;
4586 fra
.me
.REG
[2] = NIT_NULL
;
4587 fra
.me
.REG
[3] = NIT_NULL
;
4588 fra
.me
.REG
[4] = NIT_NULL
;
4589 fra
.me
.REG
[5] = NIT_NULL
;
4590 fra
.me
.REG
[6] = NIT_NULL
;
4591 fra
.me
.REG
[7] = NIT_NULL
;
4595 /* ./syntax//typing.nit:782 */
4596 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4597 if (UNTAG_Bool(REGB0
)) {
4599 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4600 if (UNTAG_Bool(REGB1
)) {
4601 REGB1
= TAG_Bool(false);
4604 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4608 if (UNTAG_Bool(REGB0
)) {
4609 /* ./syntax//typing.nit:783 */
4610 fra
.me
.REG
[3] = NIT_NULL
;
4613 /* ./syntax//typing.nit:785 */
4614 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4615 fra
.me
.REG
[4] = CALL_syntax___typing___AAssignOp___method_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4616 /* ./syntax//typing.nit:786 */
4617 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*/;
4618 if (UNTAG_Bool(REGB0
)) {
4619 /* ./syntax//typing.nit:787 */
4621 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4622 if (!once_value_2
) {
4623 fra
.me
.REG
[6] = BOX_NativeString("Error: Method '");
4624 REGB0
= TAG_Int(15);
4625 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4626 once_value_2
= fra
.me
.REG
[6];
4627 register_static_object(&once_value_2
);
4628 } else fra
.me
.REG
[6] = once_value_2
;
4629 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4631 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4632 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4633 if (!once_value_3
) {
4634 fra
.me
.REG
[6] = BOX_NativeString("' call on 'null'.");
4635 REGB0
= TAG_Int(17);
4636 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4637 once_value_3
= fra
.me
.REG
[6];
4638 register_static_object(&once_value_3
);
4639 } else fra
.me
.REG
[6] = once_value_3
;
4640 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4641 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4642 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4643 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4644 /* ./syntax//typing.nit:788 */
4645 fra
.me
.REG
[3] = NIT_NULL
;
4648 /* ./syntax//typing.nit:790 */
4649 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4650 if (UNTAG_Bool(REGB0
)) {
4651 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 790);
4653 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4654 /* ./syntax//typing.nit:791 */
4655 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4656 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4657 if (UNTAG_Bool(REGB0
)) {
4658 /* ./syntax//typing.nit:792 */
4660 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4661 if (!once_value_4
) {
4662 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
4663 REGB0
= TAG_Int(15);
4664 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4665 once_value_4
= fra
.me
.REG
[7];
4666 register_static_object(&once_value_4
);
4667 } else fra
.me
.REG
[7] = once_value_4
;
4668 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4669 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4670 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4671 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4672 if (!once_value_5
) {
4673 fra
.me
.REG
[7] = BOX_NativeString("' doesn't exists in ");
4674 REGB0
= TAG_Int(20);
4675 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4676 once_value_5
= fra
.me
.REG
[7];
4677 register_static_object(&once_value_5
);
4678 } else fra
.me
.REG
[7] = once_value_5
;
4679 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4680 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4681 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4682 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4683 if (!once_value_6
) {
4684 fra
.me
.REG
[7] = BOX_NativeString(".");
4686 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4687 once_value_6
= fra
.me
.REG
[7];
4688 register_static_object(&once_value_6
);
4689 } else fra
.me
.REG
[7] = once_value_6
;
4690 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4691 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4692 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4693 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
4694 /* ./syntax//typing.nit:793 */
4695 fra
.me
.REG
[3] = NIT_NULL
;
4698 /* ./syntax//typing.nit:795 */
4699 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4700 /* ./syntax//typing.nit:796 */
4701 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4702 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4703 REGB0
= TAG_Bool(false);
4704 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
);
4705 /* ./syntax//typing.nit:797 */
4706 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4707 /* ./syntax//typing.nit:798 */
4708 ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4709 /* ./syntax//typing.nit:799 */
4710 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4712 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
4713 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4714 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]);
4715 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4716 if (UNTAG_Bool(REGB0
)) {
4717 fra
.me
.REG
[3] = NIT_NULL
;
4720 /* ./syntax//typing.nit:800 */
4721 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4722 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4723 if (UNTAG_Bool(REGB0
)) {
4724 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 800);
4726 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4727 fra
.me
.REG
[3] = fra
.me
.REG
[2];
4730 stack_frame_head
= fra
.me
.prev
;
4731 return fra
.me
.REG
[3];
4733 val_t
syntax___typing___AReassignFormExpr___assign_method(val_t p0
){
4734 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4737 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4738 fra
.me
.file
= LOCATE_syntax___typing
;
4740 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___assign_method
;
4741 fra
.me
.has_broke
= 0;
4742 fra
.me
.REG_size
= 2;
4743 fra
.me
.REG
[0] = NIT_NULL
;
4744 fra
.me
.REG
[1] = NIT_NULL
;
4746 /* ./syntax//typing.nit:803 */
4747 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4748 fra
.me
.REG
[1] = ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[1]);
4749 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4750 if (UNTAG_Bool(REGB0
)) {
4752 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 803);
4756 stack_frame_head
= fra
.me
.prev
;
4757 return fra
.me
.REG
[1];
4759 void syntax___typing___AVarReassignExpr___after_typing(val_t p0
, val_t p1
){
4760 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4764 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4765 fra
.me
.file
= LOCATE_syntax___typing
;
4767 fra
.me
.meth
= LOCATE_syntax___typing___AVarReassignExpr___after_typing
;
4768 fra
.me
.has_broke
= 0;
4769 fra
.me
.REG_size
= 5;
4770 fra
.me
.REG
[0] = NIT_NULL
;
4771 fra
.me
.REG
[1] = NIT_NULL
;
4772 fra
.me
.REG
[2] = NIT_NULL
;
4773 fra
.me
.REG
[3] = NIT_NULL
;
4774 fra
.me
.REG
[4] = NIT_NULL
;
4777 /* ./syntax//typing.nit:810 */
4778 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4779 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4780 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4781 /* ./syntax//typing.nit:811 */
4782 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4783 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4784 /* ./syntax//typing.nit:812 */
4785 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4786 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4787 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4788 /* ./syntax//typing.nit:813 */
4789 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]);
4790 /* ./syntax//typing.nit:814 */
4791 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4792 if (UNTAG_Bool(REGB0
)) {
4794 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4795 if (UNTAG_Bool(REGB1
)) {
4796 REGB1
= TAG_Bool(false);
4799 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4803 if (UNTAG_Bool(REGB0
)) {
4806 /* ./syntax//typing.nit:817 */
4807 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4808 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4809 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4810 /* ./syntax//typing.nit:818 */
4811 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4812 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4813 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4814 if (UNTAG_Bool(REGB0
)) {
4817 /* ./syntax//typing.nit:819 */
4818 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4819 if (UNTAG_Bool(REGB0
)) {
4821 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4822 if (UNTAG_Bool(REGB1
)) {
4823 REGB1
= TAG_Bool(false);
4826 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4830 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4831 if (UNTAG_Bool(REGB0
)) {
4832 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4833 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]);
4834 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4836 REGB1
= TAG_Bool(false);
4839 if (UNTAG_Bool(REGB0
)) {
4842 /* ./syntax//typing.nit:822 */
4843 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4844 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4845 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]);
4846 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4847 /* ./syntax//typing.nit:824 */
4848 REGB0
= TAG_Bool(true);
4849 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4851 stack_frame_head
= fra
.me
.prev
;
4854 val_t
syntax___typing___AAssignOp___method_name(val_t p0
){
4855 struct {struct stack_frame_t me
;} fra
;
4857 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4858 fra
.me
.file
= LOCATE_syntax___typing
;
4860 fra
.me
.meth
= LOCATE_syntax___typing___AAssignOp___method_name
;
4861 fra
.me
.has_broke
= 0;
4862 fra
.me
.REG_size
= 0;
4863 /* ./syntax//typing.nit:829 */
4864 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 829);
4865 stack_frame_head
= fra
.me
.prev
;
4868 val_t
syntax___typing___APlusAssignOp___method_name(val_t p0
){
4869 struct {struct stack_frame_t me
;} fra
;
4872 static val_t once_value_1
; /* Once value */
4873 static val_t once_value_2
; /* Once value */
4874 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4875 fra
.me
.file
= LOCATE_syntax___typing
;
4877 fra
.me
.meth
= LOCATE_syntax___typing___APlusAssignOp___method_name
;
4878 fra
.me
.has_broke
= 0;
4879 fra
.me
.REG_size
= 1;
4880 fra
.me
.REG
[0] = NIT_NULL
;
4882 /* ./syntax//typing.nit:832 */
4883 if (!once_value_1
) {
4884 if (!once_value_2
) {
4885 fra
.me
.REG
[0] = BOX_NativeString("+");
4887 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4888 once_value_2
= fra
.me
.REG
[0];
4889 register_static_object(&once_value_2
);
4890 } else fra
.me
.REG
[0] = once_value_2
;
4891 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4892 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4893 once_value_1
= fra
.me
.REG
[0];
4894 register_static_object(&once_value_1
);
4895 } else fra
.me
.REG
[0] = once_value_1
;
4896 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4899 stack_frame_head
= fra
.me
.prev
;
4900 return fra
.me
.REG
[0];
4902 val_t
syntax___typing___AMinusAssignOp___method_name(val_t p0
){
4903 struct {struct stack_frame_t me
;} fra
;
4906 static val_t once_value_1
; /* Once value */
4907 static val_t once_value_2
; /* Once value */
4908 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4909 fra
.me
.file
= LOCATE_syntax___typing
;
4911 fra
.me
.meth
= LOCATE_syntax___typing___AMinusAssignOp___method_name
;
4912 fra
.me
.has_broke
= 0;
4913 fra
.me
.REG_size
= 1;
4914 fra
.me
.REG
[0] = NIT_NULL
;
4916 /* ./syntax//typing.nit:835 */
4917 if (!once_value_1
) {
4918 if (!once_value_2
) {
4919 fra
.me
.REG
[0] = BOX_NativeString("-");
4921 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4922 once_value_2
= fra
.me
.REG
[0];
4923 register_static_object(&once_value_2
);
4924 } else fra
.me
.REG
[0] = once_value_2
;
4925 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4926 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4927 once_value_1
= fra
.me
.REG
[0];
4928 register_static_object(&once_value_1
);
4929 } else fra
.me
.REG
[0] = once_value_1
;
4930 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4933 stack_frame_head
= fra
.me
.prev
;
4934 return fra
.me
.REG
[0];
4936 val_t
syntax___typing___ASelfExpr___variable(val_t p0
){
4937 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} 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___variable
;
4944 fra
.me
.has_broke
= 0;
4945 fra
.me
.REG_size
= 2;
4946 fra
.me
.REG
[0] = NIT_NULL
;
4947 fra
.me
.REG
[1] = NIT_NULL
;
4949 /* ./syntax//typing.nit:840 */
4950 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4951 fra
.me
.REG
[1] = ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[1]);
4952 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4953 if (UNTAG_Bool(REGB0
)) {
4955 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 840);
4959 stack_frame_head
= fra
.me
.prev
;
4960 return fra
.me
.REG
[1];
4962 val_t
syntax___typing___ASelfExpr___its_variable(val_t p0
){
4963 struct {struct stack_frame_t me
;} fra
;
4965 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4966 fra
.me
.file
= LOCATE_syntax___typing
;
4968 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___its_variable
;
4969 fra
.me
.has_broke
= 0;
4970 fra
.me
.REG_size
= 1;
4971 fra
.me
.REG
[0] = NIT_NULL
;
4973 /* ./syntax//typing.nit:842 */
4974 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4977 stack_frame_head
= fra
.me
.prev
;
4978 return fra
.me
.REG
[0];
4980 void syntax___typing___ASelfExpr___after_typing(val_t p0
, val_t p1
){
4981 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4984 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4985 fra
.me
.file
= LOCATE_syntax___typing
;
4987 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___after_typing
;
4988 fra
.me
.has_broke
= 0;
4989 fra
.me
.REG_size
= 3;
4990 fra
.me
.REG
[0] = NIT_NULL
;
4991 fra
.me
.REG
[1] = NIT_NULL
;
4992 fra
.me
.REG
[2] = NIT_NULL
;
4995 /* ./syntax//typing.nit:846 */
4996 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4997 ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4998 /* ./syntax//typing.nit:847 */
4999 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5000 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5001 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5002 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5003 /* ./syntax//typing.nit:848 */
5004 REGB0
= TAG_Bool(true);
5005 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5006 stack_frame_head
= fra
.me
.prev
;
5009 val_t
syntax___typing___ASelfExpr___is_self(val_t p0
){
5010 struct {struct stack_frame_t me
;} fra
;
5013 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5014 fra
.me
.file
= LOCATE_syntax___typing
;
5016 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___is_self
;
5017 fra
.me
.has_broke
= 0;
5018 fra
.me
.REG_size
= 1;
5019 fra
.me
.REG
[0] = NIT_NULL
;
5021 /* ./syntax//typing.nit:851 */
5022 REGB0
= TAG_Bool(true);
5025 stack_frame_head
= fra
.me
.prev
;
5028 val_t
syntax___typing___AImplicitSelfExpr___is_implicit_self(val_t p0
){
5029 struct {struct stack_frame_t me
;} fra
;
5032 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5033 fra
.me
.file
= LOCATE_syntax___typing
;
5035 fra
.me
.meth
= LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self
;
5036 fra
.me
.has_broke
= 0;
5037 fra
.me
.REG_size
= 1;
5038 fra
.me
.REG
[0] = NIT_NULL
;
5040 /* ./syntax//typing.nit:855 */
5041 REGB0
= TAG_Bool(true);
5044 stack_frame_head
= fra
.me
.prev
;
5047 void syntax___typing___AIfexprExpr___accept_typing(val_t p0
, val_t p1
){
5048 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5052 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5053 fra
.me
.file
= LOCATE_syntax___typing
;
5055 fra
.me
.meth
= LOCATE_syntax___typing___AIfexprExpr___accept_typing
;
5056 fra
.me
.has_broke
= 0;
5057 fra
.me
.REG_size
= 5;
5058 fra
.me
.REG
[0] = NIT_NULL
;
5059 fra
.me
.REG
[1] = NIT_NULL
;
5060 fra
.me
.REG
[2] = NIT_NULL
;
5061 fra
.me
.REG
[3] = NIT_NULL
;
5062 fra
.me
.REG
[4] = NIT_NULL
;
5065 /* ./syntax//typing.nit:861 */
5066 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5067 /* ./syntax//typing.nit:864 */
5068 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5069 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5070 /* ./syntax//typing.nit:865 */
5071 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5072 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5073 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5074 /* ./syntax//typing.nit:868 */
5075 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5076 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5077 /* ./syntax//typing.nit:871 */
5078 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5079 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5080 /* ./syntax//typing.nit:874 */
5081 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5082 /* ./syntax//typing.nit:877 */
5083 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5084 /* ./syntax//typing.nit:878 */
5085 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5086 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5087 /* ./syntax//typing.nit:881 */
5088 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5089 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5090 /* ./syntax//typing.nit:884 */
5091 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5092 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5093 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]);
5094 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5095 /* ./syntax//typing.nit:886 */
5097 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5098 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5099 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5100 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5101 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5102 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]);
5103 /* ./syntax//typing.nit:887 */
5104 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5105 if (UNTAG_Bool(REGB0
)) {
5107 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5108 if (UNTAG_Bool(REGB1
)) {
5109 REGB1
= TAG_Bool(false);
5112 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5116 if (UNTAG_Bool(REGB0
)) {
5119 /* ./syntax//typing.nit:889 */
5120 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5121 /* ./syntax//typing.nit:890 */
5122 REGB0
= TAG_Bool(true);
5123 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5125 stack_frame_head
= fra
.me
.prev
;
5128 void syntax___typing___ABoolExpr___after_typing(val_t p0
, val_t p1
){
5129 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5132 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5133 fra
.me
.file
= LOCATE_syntax___typing
;
5135 fra
.me
.meth
= LOCATE_syntax___typing___ABoolExpr___after_typing
;
5136 fra
.me
.has_broke
= 0;
5137 fra
.me
.REG_size
= 2;
5138 fra
.me
.REG
[0] = NIT_NULL
;
5139 fra
.me
.REG
[1] = NIT_NULL
;
5142 /* ./syntax//typing.nit:897 */
5143 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5144 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5145 /* ./syntax//typing.nit:898 */
5146 REGB0
= TAG_Bool(true);
5147 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5148 stack_frame_head
= fra
.me
.prev
;
5151 void syntax___typing___AOrExpr___accept_typing(val_t p0
, val_t p1
){
5152 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5156 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5157 fra
.me
.file
= LOCATE_syntax___typing
;
5159 fra
.me
.meth
= LOCATE_syntax___typing___AOrExpr___accept_typing
;
5160 fra
.me
.has_broke
= 0;
5161 fra
.me
.REG_size
= 5;
5162 fra
.me
.REG
[0] = NIT_NULL
;
5163 fra
.me
.REG
[1] = NIT_NULL
;
5164 fra
.me
.REG
[2] = NIT_NULL
;
5165 fra
.me
.REG
[3] = NIT_NULL
;
5166 fra
.me
.REG
[4] = NIT_NULL
;
5169 /* ./syntax//typing.nit:905 */
5170 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5171 /* ./syntax//typing.nit:906 */
5172 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5173 /* ./syntax//typing.nit:907 */
5174 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5175 /* ./syntax//typing.nit:910 */
5176 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___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:913 */
5179 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5180 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5181 /* ./syntax//typing.nit:916 */
5182 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___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:917 */
5185 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5186 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_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:918 */
5202 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5203 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5204 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5206 /* ./syntax//typing.nit:920 */
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_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5210 /* ./syntax//typing.nit:923 */
5211 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5212 /* ./syntax//typing.nit:925 */
5213 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___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:926 */
5216 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___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:927 */
5219 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5220 /* ./syntax//typing.nit:928 */
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___AAndExpr___accept_typing(val_t p0
, val_t p1
){
5227 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5231 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5232 fra
.me
.file
= LOCATE_syntax___typing
;
5234 fra
.me
.meth
= LOCATE_syntax___typing___AAndExpr___accept_typing
;
5235 fra
.me
.has_broke
= 0;
5236 fra
.me
.REG_size
= 5;
5237 fra
.me
.REG
[0] = NIT_NULL
;
5238 fra
.me
.REG
[1] = NIT_NULL
;
5239 fra
.me
.REG
[2] = NIT_NULL
;
5240 fra
.me
.REG
[3] = NIT_NULL
;
5241 fra
.me
.REG
[4] = NIT_NULL
;
5244 /* ./syntax//typing.nit:935 */
5245 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5246 /* ./syntax//typing.nit:936 */
5247 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5248 /* ./syntax//typing.nit:939 */
5249 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5250 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5251 /* ./syntax//typing.nit:942 */
5252 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5253 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5254 /* ./syntax//typing.nit:945 */
5255 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5256 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5257 /* ./syntax//typing.nit:946 */
5258 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5259 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5260 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5261 if (UNTAG_Bool(REGB0
)) {
5263 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5264 if (UNTAG_Bool(REGB1
)) {
5265 REGB1
= TAG_Bool(false);
5268 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5272 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5273 if (UNTAG_Bool(REGB0
)) {
5274 /* ./syntax//typing.nit:947 */
5275 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5276 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5277 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5279 /* ./syntax//typing.nit:949 */
5280 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5281 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5283 /* ./syntax//typing.nit:952 */
5284 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5285 /* ./syntax//typing.nit:954 */
5286 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5287 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5288 /* ./syntax//typing.nit:955 */
5289 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5290 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5291 /* ./syntax//typing.nit:956 */
5292 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5293 /* ./syntax//typing.nit:957 */
5294 REGB0
= TAG_Bool(true);
5295 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5296 stack_frame_head
= fra
.me
.prev
;
5299 void syntax___typing___ANotExpr___after_typing(val_t p0
, val_t p1
){
5300 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5303 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5304 fra
.me
.file
= LOCATE_syntax___typing
;
5306 fra
.me
.meth
= LOCATE_syntax___typing___ANotExpr___after_typing
;
5307 fra
.me
.has_broke
= 0;
5308 fra
.me
.REG_size
= 4;
5309 fra
.me
.REG
[0] = NIT_NULL
;
5310 fra
.me
.REG
[1] = NIT_NULL
;
5311 fra
.me
.REG
[2] = NIT_NULL
;
5312 fra
.me
.REG
[3] = NIT_NULL
;
5315 /* ./syntax//typing.nit:964 */
5316 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5317 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5318 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5319 /* ./syntax//typing.nit:967 */
5320 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5321 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[3]);
5322 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5323 /* ./syntax//typing.nit:968 */
5324 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5325 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[3]);
5326 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5327 /* ./syntax//typing.nit:970 */
5328 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5329 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5330 /* ./syntax//typing.nit:971 */
5331 REGB0
= TAG_Bool(true);
5332 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5333 stack_frame_head
= fra
.me
.prev
;
5336 void syntax___typing___AOrElseExpr___after_typing(val_t p0
, val_t p1
){
5337 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5341 static val_t once_value_1
; /* Once value */
5342 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5343 fra
.me
.file
= LOCATE_syntax___typing
;
5345 fra
.me
.meth
= LOCATE_syntax___typing___AOrElseExpr___after_typing
;
5346 fra
.me
.has_broke
= 0;
5347 fra
.me
.REG_size
= 7;
5348 fra
.me
.REG
[0] = NIT_NULL
;
5349 fra
.me
.REG
[1] = NIT_NULL
;
5350 fra
.me
.REG
[2] = NIT_NULL
;
5351 fra
.me
.REG
[3] = NIT_NULL
;
5352 fra
.me
.REG
[4] = NIT_NULL
;
5353 fra
.me
.REG
[5] = NIT_NULL
;
5354 fra
.me
.REG
[6] = NIT_NULL
;
5357 /* ./syntax//typing.nit:978 */
5358 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5359 /* ./syntax//typing.nit:981 */
5360 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5361 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5362 /* ./syntax//typing.nit:982 */
5363 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5364 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5365 /* ./syntax//typing.nit:985 */
5366 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5367 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5368 /* ./syntax//typing.nit:986 */
5369 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5370 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5371 if (UNTAG_Bool(REGB0
)) {
5372 /* ./syntax//typing.nit:987 */
5373 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5374 if (!once_value_1
) {
5375 fra
.me
.REG
[5] = BOX_NativeString("Warning: left operant of a 'or else' is not a nullable type.");
5376 REGB0
= TAG_Int(60);
5377 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5378 once_value_1
= fra
.me
.REG
[5];
5379 register_static_object(&once_value_1
);
5380 } else fra
.me
.REG
[5] = once_value_1
;
5381 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5382 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
5384 /* ./syntax//typing.nit:989 */
5385 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5386 fra
.me
.REG
[3] = fra
.me
.REG
[5];
5388 /* ./syntax//typing.nit:993 */
5389 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5390 fra
.me
.REG
[5] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5391 /* ./syntax//typing.nit:994 */
5392 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5393 if (UNTAG_Bool(REGB0
)) {
5395 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5396 if (UNTAG_Bool(REGB1
)) {
5397 REGB1
= TAG_Bool(false);
5400 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5404 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5405 if (UNTAG_Bool(REGB0
)) {
5406 /* ./syntax//typing.nit:995 */
5407 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5408 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5409 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]);
5411 /* ./syntax//typing.nit:999 */
5412 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5413 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5414 /* ./syntax//typing.nit:1000 */
5415 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5416 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5417 /* ./syntax//typing.nit:1003 */
5418 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5419 /* ./syntax//typing.nit:1006 */
5421 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5422 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5423 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5424 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]);
5425 /* ./syntax//typing.nit:1007 */
5426 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5427 if (UNTAG_Bool(REGB0
)) {
5429 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5430 if (UNTAG_Bool(REGB1
)) {
5431 REGB1
= TAG_Bool(false);
5434 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5438 if (UNTAG_Bool(REGB0
)) {
5441 /* ./syntax//typing.nit:1009 */
5442 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5443 /* ./syntax//typing.nit:1010 */
5444 REGB0
= TAG_Bool(true);
5445 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5447 stack_frame_head
= fra
.me
.prev
;
5450 void syntax___typing___AIntExpr___after_typing(val_t p0
, val_t p1
){
5451 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5454 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5455 fra
.me
.file
= LOCATE_syntax___typing
;
5457 fra
.me
.meth
= LOCATE_syntax___typing___AIntExpr___after_typing
;
5458 fra
.me
.has_broke
= 0;
5459 fra
.me
.REG_size
= 2;
5460 fra
.me
.REG
[0] = NIT_NULL
;
5461 fra
.me
.REG
[1] = NIT_NULL
;
5464 /* ./syntax//typing.nit:1017 */
5465 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5466 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5467 /* ./syntax//typing.nit:1018 */
5468 REGB0
= TAG_Bool(true);
5469 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5470 stack_frame_head
= fra
.me
.prev
;
5473 void syntax___typing___AFloatExpr___after_typing(val_t p0
, val_t p1
){
5474 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5477 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5478 fra
.me
.file
= LOCATE_syntax___typing
;
5480 fra
.me
.meth
= LOCATE_syntax___typing___AFloatExpr___after_typing
;
5481 fra
.me
.has_broke
= 0;
5482 fra
.me
.REG_size
= 2;
5483 fra
.me
.REG
[0] = NIT_NULL
;
5484 fra
.me
.REG
[1] = NIT_NULL
;
5487 /* ./syntax//typing.nit:1025 */
5488 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5489 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5490 /* ./syntax//typing.nit:1026 */
5491 REGB0
= TAG_Bool(true);
5492 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5493 stack_frame_head
= fra
.me
.prev
;
5496 void syntax___typing___ACharExpr___after_typing(val_t p0
, val_t p1
){
5497 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5500 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5501 fra
.me
.file
= LOCATE_syntax___typing
;
5503 fra
.me
.meth
= LOCATE_syntax___typing___ACharExpr___after_typing
;
5504 fra
.me
.has_broke
= 0;
5505 fra
.me
.REG_size
= 2;
5506 fra
.me
.REG
[0] = NIT_NULL
;
5507 fra
.me
.REG
[1] = NIT_NULL
;
5510 /* ./syntax//typing.nit:1033 */
5511 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5512 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5513 /* ./syntax//typing.nit:1034 */
5514 REGB0
= TAG_Bool(true);
5515 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5516 stack_frame_head
= fra
.me
.prev
;
5519 void syntax___typing___AStringFormExpr___after_typing(val_t p0
, val_t p1
){
5520 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5523 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5524 fra
.me
.file
= LOCATE_syntax___typing
;
5526 fra
.me
.meth
= LOCATE_syntax___typing___AStringFormExpr___after_typing
;
5527 fra
.me
.has_broke
= 0;
5528 fra
.me
.REG_size
= 2;
5529 fra
.me
.REG
[0] = NIT_NULL
;
5530 fra
.me
.REG
[1] = NIT_NULL
;
5533 /* ./syntax//typing.nit:1041 */
5534 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5535 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5536 /* ./syntax//typing.nit:1042 */
5537 REGB0
= TAG_Bool(true);
5538 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5539 stack_frame_head
= fra
.me
.prev
;
5542 val_t
syntax___typing___ASuperstringExpr___atype(val_t p0
){
5543 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5546 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5547 fra
.me
.file
= LOCATE_syntax___typing
;
5549 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___atype
;
5550 fra
.me
.has_broke
= 0;
5551 fra
.me
.REG_size
= 2;
5552 fra
.me
.REG
[0] = NIT_NULL
;
5553 fra
.me
.REG
[1] = NIT_NULL
;
5555 /* ./syntax//typing.nit:1047 */
5556 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5557 fra
.me
.REG
[1] = ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[1]);
5558 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5559 if (UNTAG_Bool(REGB0
)) {
5561 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1047);
5565 stack_frame_head
= fra
.me
.prev
;
5566 return fra
.me
.REG
[1];
5568 void syntax___typing___ASuperstringExpr___after_typing(val_t p0
, val_t p1
){
5569 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5572 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5573 fra
.me
.file
= LOCATE_syntax___typing
;
5575 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
5576 fra
.me
.has_broke
= 0;
5577 fra
.me
.REG_size
= 5;
5578 fra
.me
.REG
[0] = NIT_NULL
;
5579 fra
.me
.REG
[1] = NIT_NULL
;
5580 fra
.me
.REG
[2] = NIT_NULL
;
5581 fra
.me
.REG
[3] = NIT_NULL
;
5582 fra
.me
.REG
[4] = NIT_NULL
;
5585 /* ./syntax//typing.nit:1051 */
5586 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5587 /* ./syntax//typing.nit:1052 */
5588 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5589 /* ./syntax//typing.nit:1053 */
5590 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5591 /* ./syntax//typing.nit:1054 */
5592 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5593 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
));
5594 /* ./syntax//typing.nit:1055 */
5595 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5596 /* ./syntax//typing.nit:1056 */
5597 ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5598 /* ./syntax//typing.nit:1057 */
5599 REGB0
= TAG_Bool(true);
5600 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5601 stack_frame_head
= fra
.me
.prev
;
5604 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
){
5605 struct {struct stack_frame_t me
;} fra
;
5608 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5609 fra
.me
.file
= LOCATE_syntax___typing
;
5611 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
5612 fra
.me
.has_broke
= 0;
5613 fra
.me
.REG_size
= 1;
5614 fra
.me
.REG
[0] = NIT_NULL
;
5615 fra
.me
.closure_ctx
= closctx_param
;
5616 fra
.me
.closure_funs
= CREG
;
5618 CREG
[0] = clos_fun0
;
5619 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], closctx
->REG
[2]);
5620 stack_frame_head
= fra
.me
.prev
;
5623 void syntax___typing___ANullExpr___after_typing(val_t p0
, val_t p1
){
5624 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5627 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5628 fra
.me
.file
= LOCATE_syntax___typing
;
5630 fra
.me
.meth
= LOCATE_syntax___typing___ANullExpr___after_typing
;
5631 fra
.me
.has_broke
= 0;
5632 fra
.me
.REG_size
= 2;
5633 fra
.me
.REG
[0] = NIT_NULL
;
5634 fra
.me
.REG
[1] = NIT_NULL
;
5637 /* ./syntax//typing.nit:1064 */
5638 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5639 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5640 /* ./syntax//typing.nit:1065 */
5641 REGB0
= TAG_Bool(true);
5642 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5643 stack_frame_head
= fra
.me
.prev
;
5646 void syntax___typing___AArrayExpr___after_typing(val_t p0
, val_t p1
){
5647 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5651 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5652 fra
.me
.file
= LOCATE_syntax___typing
;
5654 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___after_typing
;
5655 fra
.me
.has_broke
= 0;
5656 fra
.me
.REG_size
= 3;
5657 fra
.me
.REG
[0] = NIT_NULL
;
5658 fra
.me
.REG
[1] = NIT_NULL
;
5659 fra
.me
.REG
[2] = NIT_NULL
;
5662 /* ./syntax//typing.nit:1072 */
5663 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5664 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]);
5665 /* ./syntax//typing.nit:1073 */
5666 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5667 if (UNTAG_Bool(REGB0
)) {
5669 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5670 if (UNTAG_Bool(REGB1
)) {
5671 REGB1
= TAG_Bool(false);
5674 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5678 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5679 if (UNTAG_Bool(REGB0
)) {
5680 CALL_syntax___typing___AArrayExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
5682 stack_frame_head
= fra
.me
.prev
;
5685 void syntax___typing___AArrayExpr___do_typing(val_t p0
, val_t p1
, val_t p2
){
5686 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5689 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5690 fra
.me
.file
= LOCATE_syntax___typing
;
5692 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___do_typing
;
5693 fra
.me
.has_broke
= 0;
5694 fra
.me
.REG_size
= 3;
5695 fra
.me
.REG
[0] = NIT_NULL
;
5696 fra
.me
.REG
[1] = NIT_NULL
;
5697 fra
.me
.REG
[2] = NIT_NULL
;
5701 /* ./syntax//typing.nit:1078 */
5702 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5703 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5704 /* ./syntax//typing.nit:1079 */
5705 REGB0
= TAG_Bool(true);
5706 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5707 stack_frame_head
= fra
.me
.prev
;
5710 void syntax___typing___ARangeExpr___after_typing(val_t p0
, val_t p1
){
5711 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5715 static val_t once_value_2
; /* Once value */
5716 static val_t once_value_3
; /* Once value */
5717 static val_t once_value_4
; /* Once value */
5718 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5719 fra
.me
.file
= LOCATE_syntax___typing
;
5721 fra
.me
.meth
= LOCATE_syntax___typing___ARangeExpr___after_typing
;
5722 fra
.me
.has_broke
= 0;
5723 fra
.me
.REG_size
= 6;
5724 fra
.me
.REG
[0] = NIT_NULL
;
5725 fra
.me
.REG
[1] = NIT_NULL
;
5726 fra
.me
.REG
[2] = NIT_NULL
;
5727 fra
.me
.REG
[3] = NIT_NULL
;
5728 fra
.me
.REG
[4] = NIT_NULL
;
5729 fra
.me
.REG
[5] = NIT_NULL
;
5732 /* ./syntax//typing.nit:1086 */
5733 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5734 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5735 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5736 if (UNTAG_Bool(REGB0
)) {
5737 REGB0
= TAG_Bool(true);
5739 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5740 REGB1
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5741 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5744 if (UNTAG_Bool(REGB0
)) {
5747 /* ./syntax//typing.nit:1087 */
5748 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5749 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5750 /* ./syntax//typing.nit:1088 */
5751 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5752 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5753 /* ./syntax//typing.nit:1089 */
5754 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5755 if (UNTAG_Bool(REGB0
)) {
5756 /* ./syntax//typing.nit:1090 */
5757 fra
.me
.REG
[2] = fra
.me
.REG
[3];
5759 /* ./syntax//typing.nit:1091 */
5760 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5761 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5762 if (UNTAG_Bool(REGB0
)) {
5763 /* ./syntax//typing.nit:1092 */
5765 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5766 if (!once_value_2
) {
5767 fra
.me
.REG
[5] = BOX_NativeString("Type error: ");
5768 REGB0
= TAG_Int(12);
5769 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5770 once_value_2
= fra
.me
.REG
[5];
5771 register_static_object(&once_value_2
);
5772 } else fra
.me
.REG
[5] = once_value_2
;
5773 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5774 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5775 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5776 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5777 if (!once_value_3
) {
5778 fra
.me
.REG
[5] = BOX_NativeString(" incompatible with ");
5779 REGB0
= TAG_Int(19);
5780 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5781 once_value_3
= fra
.me
.REG
[5];
5782 register_static_object(&once_value_3
);
5783 } else fra
.me
.REG
[5] = once_value_3
;
5784 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5786 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5787 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5788 if (!once_value_4
) {
5789 fra
.me
.REG
[3] = BOX_NativeString(".");
5791 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5792 once_value_4
= fra
.me
.REG
[3];
5793 register_static_object(&once_value_4
);
5794 } else fra
.me
.REG
[3] = once_value_4
;
5795 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5796 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5797 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5798 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
5799 /* ./syntax//typing.nit:1093 */
5803 /* ./syntax//typing.nit:1095 */
5804 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_discrete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5805 /* ./syntax//typing.nit:1096 */
5806 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5807 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]);
5808 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5809 if (UNTAG_Bool(REGB0
)) {
5810 REGB0
= TAG_Bool(true);
5812 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5813 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]);
5814 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5817 if (UNTAG_Bool(REGB0
)) {
5820 /* ./syntax//typing.nit:1097 */
5821 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5822 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5823 /* ./syntax//typing.nit:1098 */
5824 REGB0
= TAG_Bool(true);
5825 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5827 stack_frame_head
= fra
.me
.prev
;
5830 val_t
syntax___typing___ASuperExpr___init_in_superclass(val_t p0
){
5831 struct {struct stack_frame_t me
;} fra
;
5833 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5834 fra
.me
.file
= LOCATE_syntax___typing
;
5836 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___init_in_superclass
;
5837 fra
.me
.has_broke
= 0;
5838 fra
.me
.REG_size
= 1;
5839 fra
.me
.REG
[0] = NIT_NULL
;
5841 /* ./syntax//typing.nit:1103 */
5842 fra
.me
.REG
[0] = ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]);
5843 stack_frame_head
= fra
.me
.prev
;
5844 return fra
.me
.REG
[0];
5846 val_t
syntax___typing___ASuperExpr___compute_raw_arguments(val_t p0
){
5847 struct {struct stack_frame_t me
;} fra
;
5849 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5850 fra
.me
.file
= LOCATE_syntax___typing
;
5852 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments
;
5853 fra
.me
.has_broke
= 0;
5854 fra
.me
.REG_size
= 1;
5855 fra
.me
.REG
[0] = NIT_NULL
;
5857 /* ./syntax//typing.nit:1104 */
5858 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5859 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5862 stack_frame_head
= fra
.me
.prev
;
5863 return fra
.me
.REG
[0];
5865 void syntax___typing___ASuperExpr___after_typing(val_t p0
, val_t p1
){
5866 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
5871 static val_t once_value_1
; /* Once value */
5872 static val_t once_value_2
; /* Once value */
5873 static val_t once_value_3
; /* Once value */
5874 static val_t once_value_5
; /* Once value */
5875 static val_t once_value_6
; /* Once value */
5876 static val_t once_value_8
; /* Once value */
5877 static val_t once_value_9
; /* Once value */
5878 static val_t once_value_10
; /* Once value */
5879 static val_t once_value_11
; /* Once value */
5880 static val_t once_value_12
; /* Once value */
5881 static val_t once_value_13
; /* Once value */
5882 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5883 fra
.me
.file
= LOCATE_syntax___typing
;
5885 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___after_typing
;
5886 fra
.me
.has_broke
= 0;
5887 fra
.me
.REG_size
= 10;
5888 fra
.me
.REG
[0] = NIT_NULL
;
5889 fra
.me
.REG
[1] = NIT_NULL
;
5890 fra
.me
.REG
[2] = NIT_NULL
;
5891 fra
.me
.REG
[3] = NIT_NULL
;
5892 fra
.me
.REG
[4] = NIT_NULL
;
5893 fra
.me
.REG
[5] = NIT_NULL
;
5894 fra
.me
.REG
[6] = NIT_NULL
;
5895 fra
.me
.REG
[7] = NIT_NULL
;
5896 fra
.me
.REG
[8] = NIT_NULL
;
5897 fra
.me
.REG
[9] = NIT_NULL
;
5900 /* ./syntax//typing.nit:1105 */
5901 fra
.me
.REG
[2] = fra
.me
.REG
[0];
5902 /* ./syntax//typing.nit:1107 */
5903 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5904 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5905 fra
.me
.REG
[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5906 /* ./syntax//typing.nit:1108 */
5907 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5908 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5909 if (UNTAG_Bool(REGB0
)) {
5910 /* ./syntax//typing.nit:1109 */
5911 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5912 REGB0
= TAG_Bool(true);
5913 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
5915 /* ./syntax//typing.nit:1110 */
5916 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5917 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5918 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5919 if (UNTAG_Bool(REGB0
)) {
5920 /* ./syntax//typing.nit:1111 */
5921 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5922 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5923 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5924 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5925 /* ./../lib/standard//collection//array.nit:229 */
5926 fra
.me
.REG
[4] = fra
.me
.REG
[5];
5927 /* ./../lib/standard//collection//array.nit:232 */
5929 /* ./../lib/standard//collection//array.nit:233 */
5930 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5931 if (UNTAG_Bool(REGB1
)) {
5933 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
5935 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5936 /* ./../lib/standard//collection//array.nit:234 */
5937 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
5938 /* ./../lib/standard//collection//array.nit:235 */
5940 /* ./../lib/standard//collection//array.nit:23 */
5941 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5942 if (UNTAG_Bool(REGB1
)) {
5944 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
5946 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5947 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
5948 if (UNTAG_Bool(REGB2
)) {
5950 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5952 /* ./../lib/standard//kernel.nit:215 */
5953 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5954 /* ./../lib/standard//collection//array.nit:235 */
5955 if (UNTAG_Bool(REGB1
)) {
5956 /* ./../lib/standard//collection//array.nit:236 */
5957 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5958 if (UNTAG_Bool(REGB1
)) {
5959 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
5961 /* ./../lib/standard//collection//array.nit:652 */
5962 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
5963 /* ./syntax//typing.nit:1113 */
5964 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5965 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
5966 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5967 if (UNTAG_Bool(REGB1
)) {
5968 /* ./syntax//typing.nit:1114 */
5970 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
5971 if (!once_value_1
) {
5972 fra
.me
.REG
[9] = BOX_NativeString("Error: ");
5974 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
5975 once_value_1
= fra
.me
.REG
[9];
5976 register_static_object(&once_value_1
);
5977 } else fra
.me
.REG
[9] = once_value_1
;
5978 fra
.me
.REG
[9] = fra
.me
.REG
[9];
5979 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
5980 fra
.me
.REG
[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5981 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
5982 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
5983 if (!once_value_2
) {
5984 fra
.me
.REG
[9] = BOX_NativeString("::");
5986 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
5987 once_value_2
= fra
.me
.REG
[9];
5988 register_static_object(&once_value_2
);
5989 } else fra
.me
.REG
[9] = once_value_2
;
5990 fra
.me
.REG
[9] = fra
.me
.REG
[9];
5991 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
5992 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5993 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
5994 if (!once_value_3
) {
5995 fra
.me
.REG
[9] = BOX_NativeString(" is not a constructor.");
5996 REGB1
= TAG_Int(22);
5997 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
5998 once_value_3
= fra
.me
.REG
[9];
5999 register_static_object(&once_value_3
);
6000 } else fra
.me
.REG
[9] = once_value_3
;
6001 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6003 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6004 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[8]);
6006 /* ./syntax//typing.nit:1116 */
6007 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6008 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6009 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6010 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6012 /* ./../lib/standard//collection//array.nit:237 */
6014 /* ./../lib/standard//kernel.nit:218 */
6015 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6016 /* ./../lib/standard//collection//array.nit:237 */
6019 /* ./../lib/standard//collection//array.nit:235 */
6024 /* ./syntax//typing.nit:1119 */
6025 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6026 if (UNTAG_Bool(REGB0
)) {
6027 /* ./syntax//typing.nit:1120 */
6029 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6030 if (!once_value_5
) {
6031 fra
.me
.REG
[4] = BOX_NativeString("Error: No contructor named ");
6032 REGB0
= TAG_Int(27);
6033 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6034 once_value_5
= fra
.me
.REG
[4];
6035 register_static_object(&once_value_5
);
6036 } else fra
.me
.REG
[4] = once_value_5
;
6037 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6038 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6039 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6040 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6041 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6042 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6043 if (!once_value_6
) {
6044 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses.");
6045 REGB0
= TAG_Int(17);
6046 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6047 once_value_6
= fra
.me
.REG
[4];
6048 register_static_object(&once_value_6
);
6049 } else fra
.me
.REG
[4] = once_value_6
;
6050 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6051 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6052 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6053 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6054 /* ./syntax//typing.nit:1121 */
6057 /* ./../lib/standard//collection//array.nit:23 */
6058 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6059 if (UNTAG_Bool(REGB0
)) {
6061 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
6063 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6064 /* ./syntax//typing.nit:1122 */
6066 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6067 if (UNTAG_Bool(REGB2
)) {
6069 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6071 /* ./../lib/standard//kernel.nit:217 */
6072 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
6073 /* ./syntax//typing.nit:1122 */
6074 if (UNTAG_Bool(REGB1
)) {
6075 /* ./syntax//typing.nit:1123 */
6077 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6078 if (!once_value_8
) {
6079 fra
.me
.REG
[4] = BOX_NativeString("Error: Conflicting contructors named ");
6080 REGB1
= TAG_Int(37);
6081 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6082 once_value_8
= fra
.me
.REG
[4];
6083 register_static_object(&once_value_8
);
6084 } else fra
.me
.REG
[4] = once_value_8
;
6085 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6086 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6087 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6088 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6089 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6090 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6091 if (!once_value_9
) {
6092 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses: ");
6093 REGB1
= TAG_Int(18);
6094 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6095 once_value_9
= fra
.me
.REG
[4];
6096 register_static_object(&once_value_9
);
6097 } else fra
.me
.REG
[4] = once_value_9
;
6098 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6099 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6100 if (!once_value_10
) {
6101 fra
.me
.REG
[4] = BOX_NativeString(", ");
6103 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6104 once_value_10
= fra
.me
.REG
[4];
6105 register_static_object(&once_value_10
);
6106 } else fra
.me
.REG
[4] = once_value_10
;
6107 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6108 fra
.me
.REG
[4] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6109 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6110 if (!once_value_11
) {
6111 fra
.me
.REG
[4] = BOX_NativeString(".");
6113 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6114 once_value_11
= fra
.me
.REG
[4];
6115 register_static_object(&once_value_11
);
6116 } else fra
.me
.REG
[4] = once_value_11
;
6117 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6118 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6119 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6120 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6121 /* ./syntax//typing.nit:1124 */
6125 /* ./syntax//typing.nit:1126 */
6126 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6127 /* ./syntax//typing.nit:1127 */
6128 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6129 if (UNTAG_Bool(REGB1
)) {
6131 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1127);
6133 /* ./syntax//typing.nit:1128 */
6134 ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6135 /* ./syntax//typing.nit:1129 */
6136 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[5]);
6137 /* ./syntax//typing.nit:1130 */
6138 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6139 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6141 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
6142 if (UNTAG_Bool(REGB2
)) {
6144 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6146 /* ./../lib/standard//kernel.nit:217 */
6147 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB0
));
6148 /* ./syntax//typing.nit:1130 */
6149 if (UNTAG_Bool(REGB0
)) {
6150 /* ./syntax//typing.nit:1131 */
6151 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6152 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6153 REGB0
= TAG_Bool((fra
.me
.REG
[6]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
6154 if (UNTAG_Bool(REGB0
)) {
6156 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1131);
6158 REGB0
= TAG_Bool(true);
6159 fra
.me
.REG
[6] = CALL_syntax___typing___AAbsSendExpr___get_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[5], REGB0
);
6160 /* ./syntax//typing.nit:1132 */
6161 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6162 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6163 CALL_syntax___typing___AAbsAbsSendExpr___process_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[5], fra
.me
.REG
[4]);
6166 /* ./syntax//typing.nit:1135 */
6168 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6169 if (!once_value_12
) {
6170 fra
.me
.REG
[5] = BOX_NativeString("Error: No super method to call for ");
6171 REGB0
= TAG_Int(35);
6172 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6173 once_value_12
= fra
.me
.REG
[5];
6174 register_static_object(&once_value_12
);
6175 } else fra
.me
.REG
[5] = once_value_12
;
6176 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6177 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6178 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6179 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6180 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6181 if (!once_value_13
) {
6182 fra
.me
.REG
[5] = BOX_NativeString(".");
6184 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6185 once_value_13
= fra
.me
.REG
[5];
6186 register_static_object(&once_value_13
);
6187 } else fra
.me
.REG
[5] = once_value_13
;
6188 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6189 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6190 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6191 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
6192 /* ./syntax//typing.nit:1136 */
6196 /* ./syntax//typing.nit:1139 */
6197 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6198 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6199 fra
.me
.REG
[5] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6200 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*/;
6201 if (UNTAG_Bool(REGB0
)) {
6203 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1139);
6205 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6206 if (UNTAG_Bool(REGB0
)) {
6207 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1139);
6209 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6210 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6211 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6212 if (UNTAG_Bool(REGB0
)) {
6214 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6215 if (UNTAG_Bool(REGB1
)) {
6216 REGB1
= TAG_Bool(false);
6219 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6223 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6224 if (UNTAG_Bool(REGB0
)) {
6225 /* ./syntax//typing.nit:1140 */
6226 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___init();
6227 /* ./syntax//typing.nit:1141 */
6228 fra
.me
.REG
[4] = NIT_NULL
;
6229 /* ./../lib/standard//collection//array.nit:232 */
6231 /* ./../lib/standard//collection//array.nit:233 */
6232 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6233 if (UNTAG_Bool(REGB1
)) {
6235 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
6237 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6238 /* ./../lib/standard//collection//array.nit:234 */
6239 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
6240 /* ./../lib/standard//collection//array.nit:235 */
6242 /* ./../lib/standard//collection//array.nit:23 */
6243 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6244 if (UNTAG_Bool(REGB1
)) {
6246 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
6248 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6249 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6250 if (UNTAG_Bool(REGB2
)) {
6252 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6254 /* ./../lib/standard//kernel.nit:215 */
6255 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6256 /* ./../lib/standard//collection//array.nit:235 */
6257 if (UNTAG_Bool(REGB1
)) {
6258 /* ./../lib/standard//collection//array.nit:236 */
6259 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6260 if (UNTAG_Bool(REGB1
)) {
6261 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
6263 /* ./../lib/standard//collection//array.nit:652 */
6264 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6265 /* ./syntax//typing.nit:1143 */
6266 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6267 if (UNTAG_Bool(REGB1
)) {
6269 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1143);
6271 /* ./syntax//typing.nit:1144 */
6272 fra
.me
.REG
[8] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6273 fra
.me
.REG
[8] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6274 REGB1
= TAG_Bool((fra
.me
.REG
[8]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[8], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
6275 if (UNTAG_Bool(REGB1
)) {
6277 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1144);
6279 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6280 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6281 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6282 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6283 if (UNTAG_Bool(REGB1
)) {
6284 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1144);
6286 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6287 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6288 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6289 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6290 if (UNTAG_Bool(REGB1
)) {
6291 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1144);
6293 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6294 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6295 /* ./syntax//typing.nit:1145 */
6296 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8]);
6297 /* ./syntax//typing.nit:1146 */
6298 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6299 if (UNTAG_Bool(REGB1
)) {
6301 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6302 if (UNTAG_Bool(REGB2
)) {
6303 REGB2
= TAG_Bool(false);
6306 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6310 if (UNTAG_Bool(REGB1
)) {
6311 REGB1
= TAG_Bool(true);
6313 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6314 if (UNTAG_Bool(REGB2
)) {
6315 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1146);
6317 REGB2
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[8]);
6320 if (UNTAG_Bool(REGB1
)) {
6321 /* ./syntax//typing.nit:1147 */
6322 fra
.me
.REG
[4] = fra
.me
.REG
[8];
6324 /* ./../lib/standard//collection//array.nit:237 */
6326 /* ./../lib/standard//kernel.nit:218 */
6327 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6328 /* ./../lib/standard//collection//array.nit:237 */
6331 /* ./../lib/standard//collection//array.nit:235 */
6336 /* ./../lib/standard//collection//array.nit:232 */
6338 /* ./../lib/standard//collection//array.nit:233 */
6339 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6340 if (UNTAG_Bool(REGB1
)) {
6342 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
6344 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6345 /* ./../lib/standard//collection//array.nit:234 */
6346 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
6347 /* ./../lib/standard//collection//array.nit:235 */
6349 /* ./../lib/standard//collection//array.nit:23 */
6350 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6351 if (UNTAG_Bool(REGB1
)) {
6353 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
6355 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6356 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6357 if (UNTAG_Bool(REGB2
)) {
6359 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6361 /* ./../lib/standard//kernel.nit:215 */
6362 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6363 /* ./../lib/standard//collection//array.nit:235 */
6364 if (UNTAG_Bool(REGB1
)) {
6365 /* ./../lib/standard//collection//array.nit:236 */
6366 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6367 if (UNTAG_Bool(REGB1
)) {
6368 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
6370 /* ./../lib/standard//collection//array.nit:652 */
6371 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6372 /* ./syntax//typing.nit:1151 */
6373 REGB1
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
6374 if (UNTAG_Bool(REGB1
)) {
6376 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1151);
6378 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[4]);
6379 /* ./../lib/standard//collection//array.nit:237 */
6381 /* ./../lib/standard//kernel.nit:218 */
6382 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6383 /* ./../lib/standard//collection//array.nit:237 */
6386 /* ./../lib/standard//collection//array.nit:235 */
6391 /* ./syntax//typing.nit:1153 */
6392 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
6394 /* ./syntax//typing.nit:1155 */
6395 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6396 /* ./syntax//typing.nit:1156 */
6397 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6398 if (UNTAG_Bool(REGB0
)) {
6400 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1156);
6402 /* ./syntax//typing.nit:1157 */
6403 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
6404 /* ./syntax//typing.nit:1158 */
6405 REGB0
= TAG_Bool(true);
6406 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
6408 stack_frame_head
= fra
.me
.prev
;
6411 val_t
syntax___typing___AAttrFormExpr___prop(val_t p0
){
6412 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6415 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6416 fra
.me
.file
= LOCATE_syntax___typing
;
6418 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___prop
;
6419 fra
.me
.has_broke
= 0;
6420 fra
.me
.REG_size
= 2;
6421 fra
.me
.REG
[0] = NIT_NULL
;
6422 fra
.me
.REG
[1] = NIT_NULL
;
6424 /* ./syntax//typing.nit:1163 */
6425 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6426 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[1]);
6427 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
6428 if (UNTAG_Bool(REGB0
)) {
6430 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1163);
6434 stack_frame_head
= fra
.me
.prev
;
6435 return fra
.me
.REG
[1];
6437 val_t
syntax___typing___AAttrFormExpr___attr_type(val_t p0
){
6438 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6441 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6442 fra
.me
.file
= LOCATE_syntax___typing
;
6444 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___attr_type
;
6445 fra
.me
.has_broke
= 0;
6446 fra
.me
.REG_size
= 2;
6447 fra
.me
.REG
[0] = NIT_NULL
;
6448 fra
.me
.REG
[1] = NIT_NULL
;
6450 /* ./syntax//typing.nit:1166 */
6451 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6452 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[1]);
6453 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
6454 if (UNTAG_Bool(REGB0
)) {
6456 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1166);
6460 stack_frame_head
= fra
.me
.prev
;
6461 return fra
.me
.REG
[1];
6463 void syntax___typing___AAttrFormExpr___do_typing(val_t p0
, val_t p1
){
6464 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6469 static val_t once_value_2
; /* Once value */
6470 static val_t once_value_3
; /* Once value */
6471 static val_t once_value_4
; /* Once value */
6472 static val_t once_value_5
; /* Once value */
6473 static val_t once_value_6
; /* Once value */
6474 static val_t once_value_7
; /* Once value */
6475 static val_t once_value_8
; /* Once value */
6476 static val_t once_value_9
; /* Once value */
6477 static val_t once_value_10
; /* Once value */
6478 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6479 fra
.me
.file
= LOCATE_syntax___typing
;
6481 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___do_typing
;
6482 fra
.me
.has_broke
= 0;
6483 fra
.me
.REG_size
= 7;
6484 fra
.me
.REG
[0] = NIT_NULL
;
6485 fra
.me
.REG
[1] = NIT_NULL
;
6486 fra
.me
.REG
[2] = NIT_NULL
;
6487 fra
.me
.REG
[3] = NIT_NULL
;
6488 fra
.me
.REG
[4] = NIT_NULL
;
6489 fra
.me
.REG
[5] = NIT_NULL
;
6490 fra
.me
.REG
[6] = NIT_NULL
;
6493 /* ./syntax//typing.nit:1172 */
6494 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6495 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6496 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6497 if (UNTAG_Bool(REGB0
)) {
6500 /* ./syntax//typing.nit:1173 */
6501 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6502 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6503 /* ./syntax//typing.nit:1174 */
6504 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6505 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6506 /* ./syntax//typing.nit:1175 */
6507 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
6508 if (UNTAG_Bool(REGB0
)) {
6509 /* ./syntax//typing.nit:1176 */
6511 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6512 if (!once_value_2
) {
6513 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute '");
6514 REGB0
= TAG_Int(18);
6515 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6516 once_value_2
= fra
.me
.REG
[5];
6517 register_static_object(&once_value_2
);
6518 } else fra
.me
.REG
[5] = once_value_2
;
6519 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6520 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6521 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6522 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6523 if (!once_value_3
) {
6524 fra
.me
.REG
[5] = BOX_NativeString("' access on 'null'.");
6525 REGB0
= TAG_Int(19);
6526 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6527 once_value_3
= fra
.me
.REG
[5];
6528 register_static_object(&once_value_3
);
6529 } else fra
.me
.REG
[5] = once_value_3
;
6530 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6531 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6532 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6533 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
6534 /* ./syntax//typing.nit:1177 */
6537 /* ./syntax//typing.nit:1179 */
6538 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6539 /* ./syntax//typing.nit:1180 */
6540 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6541 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6542 if (UNTAG_Bool(REGB0
)) {
6543 /* ./syntax//typing.nit:1181 */
6545 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6546 if (!once_value_4
) {
6547 fra
.me
.REG
[6] = BOX_NativeString("Error: Attribute ");
6548 REGB0
= TAG_Int(17);
6549 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
6550 once_value_4
= fra
.me
.REG
[6];
6551 register_static_object(&once_value_4
);
6552 } else fra
.me
.REG
[6] = once_value_4
;
6553 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6554 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6555 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6556 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6557 if (!once_value_5
) {
6558 fra
.me
.REG
[6] = BOX_NativeString(" doesn't exists in ");
6559 REGB0
= TAG_Int(19);
6560 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
6561 once_value_5
= fra
.me
.REG
[6];
6562 register_static_object(&once_value_5
);
6563 } else fra
.me
.REG
[6] = once_value_5
;
6564 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6565 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6566 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6567 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6568 if (!once_value_6
) {
6569 fra
.me
.REG
[6] = BOX_NativeString(".");
6571 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
6572 once_value_6
= fra
.me
.REG
[6];
6573 register_static_object(&once_value_6
);
6574 } else fra
.me
.REG
[6] = once_value_6
;
6575 fra
.me
.REG
[6] = fra
.me
.REG
[6];
6576 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6577 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6578 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
6579 /* ./syntax//typing.nit:1182 */
6582 /* ./syntax//typing.nit:1184 */
6583 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_attribute(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6584 /* ./syntax//typing.nit:1185 */
6585 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6586 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6587 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6588 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6589 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6591 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6592 if (UNTAG_Bool(REGB2
)) {
6594 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6596 /* ./../lib/standard//kernel.nit:215 */
6597 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6598 /* ./syntax//typing.nit:1185 */
6599 if (UNTAG_Bool(REGB1
)) {
6600 /* ./syntax//typing.nit:1186 */
6602 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6603 if (!once_value_7
) {
6604 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute ");
6605 REGB1
= TAG_Int(17);
6606 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
6607 once_value_7
= fra
.me
.REG
[5];
6608 register_static_object(&once_value_7
);
6609 } else fra
.me
.REG
[5] = once_value_7
;
6610 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6611 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
6612 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6613 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6614 if (!once_value_8
) {
6615 fra
.me
.REG
[3] = BOX_NativeString(" from ");
6617 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
6618 once_value_8
= fra
.me
.REG
[3];
6619 register_static_object(&once_value_8
);
6620 } else fra
.me
.REG
[3] = once_value_8
;
6621 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6623 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6624 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6625 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6626 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6627 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6628 if (!once_value_9
) {
6629 fra
.me
.REG
[3] = BOX_NativeString(" is invisible in ");
6630 REGB1
= TAG_Int(17);
6631 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
6632 once_value_9
= fra
.me
.REG
[3];
6633 register_static_object(&once_value_9
);
6634 } else fra
.me
.REG
[3] = once_value_9
;
6635 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6636 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6637 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6638 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6640 if (!once_value_10
) {
6641 fra
.me
.REG
[3] = BOX_NativeString("");
6643 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
6644 once_value_10
= fra
.me
.REG
[3];
6645 register_static_object(&once_value_10
);
6646 } else fra
.me
.REG
[3] = once_value_10
;
6647 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6648 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6649 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6650 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
6652 /* ./syntax//typing.nit:1188 */
6653 ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
6654 /* ./syntax//typing.nit:1189 */
6655 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6656 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6657 /* ./syntax//typing.nit:1190 */
6658 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6659 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6660 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6661 if (UNTAG_Bool(REGB1
)) {
6662 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6663 if (UNTAG_Bool(REGB1
)) {
6664 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1190);
6666 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6667 fra
.me
.REG
[2] = fra
.me
.REG
[4];
6669 /* ./syntax//typing.nit:1191 */
6670 ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
6672 stack_frame_head
= fra
.me
.prev
;
6675 void syntax___typing___AAttrExpr___after_typing(val_t p0
, val_t p1
){
6676 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6680 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6681 fra
.me
.file
= LOCATE_syntax___typing
;
6683 fra
.me
.meth
= LOCATE_syntax___typing___AAttrExpr___after_typing
;
6684 fra
.me
.has_broke
= 0;
6685 fra
.me
.REG_size
= 2;
6686 fra
.me
.REG
[0] = NIT_NULL
;
6687 fra
.me
.REG
[1] = NIT_NULL
;
6690 /* ./syntax//typing.nit:1198 */
6691 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6692 /* ./syntax//typing.nit:1199 */
6693 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6694 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6695 if (UNTAG_Bool(REGB0
)) {
6697 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6698 if (UNTAG_Bool(REGB1
)) {
6699 REGB1
= TAG_Bool(false);
6702 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
6706 if (UNTAG_Bool(REGB0
)) {
6709 /* ./syntax//typing.nit:1200 */
6710 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6711 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6712 /* ./syntax//typing.nit:1201 */
6713 REGB0
= TAG_Bool(true);
6714 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6716 stack_frame_head
= fra
.me
.prev
;
6719 void syntax___typing___AAttrAssignExpr___after_typing(val_t p0
, val_t p1
){
6720 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6724 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6725 fra
.me
.file
= LOCATE_syntax___typing
;
6727 fra
.me
.meth
= LOCATE_syntax___typing___AAttrAssignExpr___after_typing
;
6728 fra
.me
.has_broke
= 0;
6729 fra
.me
.REG_size
= 4;
6730 fra
.me
.REG
[0] = NIT_NULL
;
6731 fra
.me
.REG
[1] = NIT_NULL
;
6732 fra
.me
.REG
[2] = NIT_NULL
;
6733 fra
.me
.REG
[3] = NIT_NULL
;
6736 /* ./syntax//typing.nit:1208 */
6737 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6738 /* ./syntax//typing.nit:1209 */
6739 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6740 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6741 if (UNTAG_Bool(REGB0
)) {
6743 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6744 if (UNTAG_Bool(REGB1
)) {
6745 REGB1
= TAG_Bool(false);
6748 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6752 if (UNTAG_Bool(REGB0
)) {
6755 /* ./syntax//typing.nit:1210 */
6756 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6757 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6758 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]);
6759 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6760 if (UNTAG_Bool(REGB0
)) {
6763 /* ./syntax//typing.nit:1211 */
6764 REGB0
= TAG_Bool(true);
6765 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6767 stack_frame_head
= fra
.me
.prev
;
6770 void syntax___typing___AAttrReassignExpr___after_typing(val_t p0
, val_t p1
){
6771 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6775 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6776 fra
.me
.file
= LOCATE_syntax___typing
;
6778 fra
.me
.meth
= LOCATE_syntax___typing___AAttrReassignExpr___after_typing
;
6779 fra
.me
.has_broke
= 0;
6780 fra
.me
.REG_size
= 4;
6781 fra
.me
.REG
[0] = NIT_NULL
;
6782 fra
.me
.REG
[1] = NIT_NULL
;
6783 fra
.me
.REG
[2] = NIT_NULL
;
6784 fra
.me
.REG
[3] = NIT_NULL
;
6787 /* ./syntax//typing.nit:1218 */
6788 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6789 /* ./syntax//typing.nit:1219 */
6790 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6791 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6792 if (UNTAG_Bool(REGB0
)) {
6794 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6795 if (UNTAG_Bool(REGB1
)) {
6796 REGB1
= TAG_Bool(false);
6799 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6803 if (UNTAG_Bool(REGB0
)) {
6806 /* ./syntax//typing.nit:1220 */
6807 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6808 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]);
6809 /* ./syntax//typing.nit:1221 */
6810 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6811 if (UNTAG_Bool(REGB0
)) {
6813 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6814 if (UNTAG_Bool(REGB1
)) {
6815 REGB1
= TAG_Bool(false);
6818 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6822 if (UNTAG_Bool(REGB0
)) {
6825 /* ./syntax//typing.nit:1222 */
6826 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6827 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6828 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]);
6829 /* ./syntax//typing.nit:1223 */
6830 REGB0
= TAG_Bool(true);
6831 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6833 stack_frame_head
= fra
.me
.prev
;
6836 void syntax___typing___AIssetAttrExpr___after_typing(val_t p0
, val_t p1
){
6837 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6841 static val_t once_value_2
; /* Once value */
6842 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6843 fra
.me
.file
= LOCATE_syntax___typing
;
6845 fra
.me
.meth
= LOCATE_syntax___typing___AIssetAttrExpr___after_typing
;
6846 fra
.me
.has_broke
= 0;
6847 fra
.me
.REG_size
= 3;
6848 fra
.me
.REG
[0] = NIT_NULL
;
6849 fra
.me
.REG
[1] = NIT_NULL
;
6850 fra
.me
.REG
[2] = NIT_NULL
;
6853 /* ./syntax//typing.nit:1230 */
6854 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
6855 /* ./syntax//typing.nit:1231 */
6856 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
6857 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6858 if (UNTAG_Bool(REGB0
)) {
6860 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6861 if (UNTAG_Bool(REGB1
)) {
6862 REGB1
= TAG_Bool(false);
6865 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6869 if (UNTAG_Bool(REGB0
)) {
6872 /* ./syntax//typing.nit:1232 */
6873 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6874 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6875 if (UNTAG_Bool(REGB0
)) {
6876 /* ./syntax//typing.nit:1233 */
6877 if (!once_value_2
) {
6878 fra
.me
.REG
[2] = BOX_NativeString("Error: isset on a nullable attribute.");
6879 REGB0
= TAG_Int(37);
6880 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
6881 once_value_2
= fra
.me
.REG
[2];
6882 register_static_object(&once_value_2
);
6883 } else fra
.me
.REG
[2] = once_value_2
;
6884 fra
.me
.REG
[2] = fra
.me
.REG
[2];
6885 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6887 /* ./syntax//typing.nit:1235 */
6888 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6889 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6890 /* ./syntax//typing.nit:1236 */
6891 REGB0
= TAG_Bool(true);
6892 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6894 stack_frame_head
= fra
.me
.prev
;
6897 val_t
syntax___typing___AAbsAbsSendExpr___prop_signature(val_t p0
){
6898 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6901 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6902 fra
.me
.file
= LOCATE_syntax___typing
;
6904 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature
;
6905 fra
.me
.has_broke
= 0;
6906 fra
.me
.REG_size
= 2;
6907 fra
.me
.REG
[0] = NIT_NULL
;
6908 fra
.me
.REG
[1] = NIT_NULL
;
6910 /* ./syntax//typing.nit:1241 */
6911 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6912 /* ./syntax//typing.nit:1242 */
6913 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[1]);
6914 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
6915 if (UNTAG_Bool(REGB0
)) {
6917 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1242);
6921 stack_frame_head
= fra
.me
.prev
;
6922 return fra
.me
.REG
[1];
6924 val_t
syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0
){
6925 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6929 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6930 fra
.me
.file
= LOCATE_syntax___typing
;
6932 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments
;
6933 fra
.me
.has_broke
= 0;
6934 fra
.me
.REG_size
= 4;
6935 fra
.me
.REG
[0] = NIT_NULL
;
6936 fra
.me
.REG
[1] = NIT_NULL
;
6937 fra
.me
.REG
[2] = NIT_NULL
;
6938 fra
.me
.REG
[3] = NIT_NULL
;
6940 /* ./syntax//typing.nit:1248 */
6941 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]);
6942 /* ./syntax//typing.nit:1249 */
6943 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6944 if (UNTAG_Bool(REGB0
)) {
6946 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6947 if (UNTAG_Bool(REGB1
)) {
6948 REGB1
= TAG_Bool(false);
6951 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
6955 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6956 if (UNTAG_Bool(REGB0
)) {
6957 /* ./syntax//typing.nit:1250 */
6958 fra
.me
.REG
[2] = fra
.me
.REG
[1];
6961 /* ./syntax//typing.nit:1252 */
6962 fra
.me
.REG
[3] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6963 fra
.me
.REG
[1] = fra
.me
.REG
[3];
6964 /* ./syntax//typing.nit:1253 */
6965 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6966 if (UNTAG_Bool(REGB0
)) {
6968 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
6969 if (UNTAG_Bool(REGB1
)) {
6970 REGB1
= TAG_Bool(false);
6973 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
6977 if (UNTAG_Bool(REGB0
)) {
6978 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6979 fra
.me
.REG
[1] = fra
.me
.REG
[3];
6981 /* ./syntax//typing.nit:1254 */
6982 ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6983 /* ./syntax//typing.nit:1255 */
6984 fra
.me
.REG
[2] = fra
.me
.REG
[1];
6988 stack_frame_head
= fra
.me
.prev
;
6989 return fra
.me
.REG
[2];
6991 val_t
syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0
){
6992 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6995 static val_t once_value_1
; /* Once value */
6996 static val_t once_value_2
; /* Once value */
6997 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6998 fra
.me
.file
= LOCATE_syntax___typing
;
7000 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments
;
7001 fra
.me
.has_broke
= 0;
7002 fra
.me
.REG_size
= 3;
7003 fra
.me
.REG
[0] = NIT_NULL
;
7004 fra
.me
.REG
[1] = NIT_NULL
;
7005 fra
.me
.REG
[2] = NIT_NULL
;
7007 /* ./syntax//typing.nit:1263 */
7009 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7010 if (!once_value_1
) {
7011 fra
.me
.REG
[2] = BOX_NativeString("");
7013 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7014 once_value_1
= fra
.me
.REG
[2];
7015 register_static_object(&once_value_1
);
7016 } else fra
.me
.REG
[2] = once_value_1
;
7017 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7019 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7020 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7021 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7022 if (!once_value_2
) {
7023 fra
.me
.REG
[2] = BOX_NativeString(" no compute_raw_arguments");
7024 REGB0
= TAG_Int(25);
7025 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7026 once_value_2
= fra
.me
.REG
[2];
7027 register_static_object(&once_value_2
);
7028 } else fra
.me
.REG
[2] = once_value_2
;
7029 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7030 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7031 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7032 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7033 /* ./syntax//typing.nit:1264 */
7034 fra
.me
.REG
[1] = NIT_NULL
;
7037 stack_frame_head
= fra
.me
.prev
;
7038 return fra
.me
.REG
[1];
7040 val_t
syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
7041 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7055 static val_t once_value_1
; /* Once value */
7056 static val_t once_value_2
; /* Once value */
7057 static val_t once_value_3
; /* Once value */
7058 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7059 fra
.me
.file
= LOCATE_syntax___typing
;
7061 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature
;
7062 fra
.me
.has_broke
= 0;
7063 fra
.me
.REG_size
= 7;
7064 fra
.me
.REG
[0] = NIT_NULL
;
7065 fra
.me
.REG
[1] = NIT_NULL
;
7066 fra
.me
.REG
[2] = NIT_NULL
;
7067 fra
.me
.REG
[3] = NIT_NULL
;
7068 fra
.me
.REG
[4] = NIT_NULL
;
7069 fra
.me
.REG
[5] = NIT_NULL
;
7070 fra
.me
.REG
[6] = NIT_NULL
;
7076 /* ./syntax//typing.nit:1270 */
7077 REGB0
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7078 /* ./syntax//typing.nit:1271 */
7079 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7080 /* ./syntax//typing.nit:1273 */
7081 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7082 if (UNTAG_Bool(REGB2
)) {
7084 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7085 if (UNTAG_Bool(REGB3
)) {
7086 REGB3
= TAG_Bool(false);
7089 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7093 if (UNTAG_Bool(REGB2
)) {
7096 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7097 if (UNTAG_Bool(REGB3
)) {
7098 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1273);
7100 /* ./../lib/standard//collection//array.nit:23 */
7101 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7102 if (UNTAG_Bool(REGB3
)) {
7104 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
7106 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7107 /* ./syntax//typing.nit:1273 */
7110 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
7111 if (UNTAG_Bool(REGB3
)) {
7113 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7115 /* ./../lib/standard//kernel.nit:217 */
7116 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7117 /* ./syntax//typing.nit:1274 */
7118 if (UNTAG_Bool(REGB3
)) {
7119 REGB3
= TAG_Bool(true);
7121 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
7122 if (UNTAG_Bool(REGB4
)) {
7124 /* ./../lib/standard//kernel.nit:210 */
7125 REGB5
= TAG_Bool((REGB1
)==(REGB2
));
7126 /* ./syntax//typing.nit:1274 */
7129 REGB4
= TAG_Bool(!UNTAG_Bool(REGB4
));
7130 if (UNTAG_Bool(REGB4
)) {
7132 /* ./../lib/standard//kernel.nit:219 */
7133 REGB4
= TAG_Int(-UNTAG_Int(REGB4
));
7134 /* ./syntax//typing.nit:1274 */
7135 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB4
));
7136 if (UNTAG_Bool(REGB5
)) {
7138 /* ./../lib/standard//kernel.nit:210 */
7139 REGB4
= TAG_Bool((REGB0
)==(REGB4
));
7140 /* ./syntax//typing.nit:1274 */
7144 REGB4
= TAG_Bool(false);
7149 if (UNTAG_Bool(REGB3
)) {
7150 /* ./syntax//typing.nit:1275 */
7152 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3
);
7153 if (!once_value_1
) {
7154 fra
.me
.REG
[6] = BOX_NativeString("Error: arity mismatch; prototype is '");
7155 REGB3
= TAG_Int(37);
7156 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB3
);
7157 once_value_1
= fra
.me
.REG
[6];
7158 register_static_object(&once_value_1
);
7159 } else fra
.me
.REG
[6] = once_value_1
;
7160 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7162 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7163 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7164 if (!once_value_2
) {
7165 fra
.me
.REG
[3] = BOX_NativeString("");
7167 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
7168 once_value_2
= fra
.me
.REG
[3];
7169 register_static_object(&once_value_2
);
7170 } else fra
.me
.REG
[3] = once_value_2
;
7171 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7172 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7173 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7174 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7175 if (!once_value_3
) {
7176 fra
.me
.REG
[3] = BOX_NativeString("'.");
7178 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
7179 once_value_3
= fra
.me
.REG
[3];
7180 register_static_object(&once_value_3
);
7181 } else fra
.me
.REG
[3] = once_value_3
;
7182 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7183 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7184 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7185 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7186 /* ./syntax//typing.nit:1276 */
7187 REGB3
= TAG_Bool(false);
7190 /* ./syntax//typing.nit:1278 */
7192 /* ./syntax//typing.nit:1279 */
7194 /* ./../lib/standard//kernel.nit:330 */
7196 /* ./../lib/standard//kernel.nit:335 */
7198 REGB7
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
7199 if (UNTAG_Bool(REGB7
)) {
7201 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7203 /* ./../lib/standard//kernel.nit:215 */
7204 REGB7
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
7205 /* ./../lib/standard//kernel.nit:335 */
7206 if (UNTAG_Bool(REGB7
)) {
7207 /* ./syntax//typing.nit:1279 */
7209 /* ./syntax//typing.nit:1281 */
7210 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB7
);
7211 /* ./syntax//typing.nit:1282 */
7212 REGB8
= TAG_Bool(IS_EQUAL_OO(REGB7
,REGB0
));
7213 if (UNTAG_Bool(REGB8
)) {
7215 /* ./../lib/standard//kernel.nit:210 */
7216 REGB7
= TAG_Bool((REGB7
)==(REGB0
));
7217 /* ./syntax//typing.nit:1282 */
7220 if (UNTAG_Bool(REGB8
)) {
7221 /* ./syntax//typing.nit:1283 */
7223 /* ./../lib/standard//kernel.nit:220 */
7224 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
7225 /* ./../lib/standard//kernel.nit:324 */
7227 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
7228 if (UNTAG_Bool(REGB9
)) {
7230 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7232 /* ./../lib/standard//kernel.nit:214 */
7233 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<=UNTAG_Int(REGB7
));
7234 /* ./../lib/standard//kernel.nit:324 */
7235 if (UNTAG_Bool(REGB9
)) {
7236 /* ./syntax//typing.nit:1284 */
7237 REGB9
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7238 if (UNTAG_Bool(REGB9
)) {
7239 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1284);
7241 /* ./../lib/standard//collection//array.nit:241 */
7242 fra
.me
.REG
[0] = fra
.me
.REG
[4];
7244 /* ./../lib/standard//collection//array.nit:243 */
7245 REGB10
= TAG_Int(0);
7246 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
7247 if (UNTAG_Bool(REGB11
)) {
7249 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7251 /* ./../lib/standard//kernel.nit:216 */
7252 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)>=UNTAG_Int(REGB10
));
7253 /* ./../lib/standard//collection//array.nit:243 */
7254 if (UNTAG_Bool(REGB10
)) {
7255 REGB10
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
7256 if (UNTAG_Bool(REGB10
)) {
7258 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
7260 REGB10
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
7261 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
7262 if (UNTAG_Bool(REGB11
)) {
7264 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7266 /* ./../lib/standard//kernel.nit:215 */
7267 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)<UNTAG_Int(REGB10
));
7269 /* ./../lib/standard//collection//array.nit:243 */
7270 REGB11
= TAG_Bool(false);
7273 if (UNTAG_Bool(REGB10
)) {
7275 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
7277 /* ./../lib/standard//collection//array.nit:244 */
7278 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
7279 REGB10
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
7280 if (UNTAG_Bool(REGB10
)) {
7281 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
7283 /* ./../lib/standard//collection//array.nit:652 */
7284 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB9
)];
7285 /* ./../lib/standard//collection//array.nit:244 */
7288 /* ./syntax//typing.nit:1285 */
7289 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7290 /* ./syntax//typing.nit:1286 */
7292 /* ./../lib/standard//kernel.nit:218 */
7293 REGB9
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB9
));
7294 /* ./syntax//typing.nit:1286 */
7296 /* ./../lib/standard//kernel.nit:326 */
7298 /* ./../lib/standard//kernel.nit:218 */
7299 REGB9
= TAG_Int(UNTAG_Int(REGB8
)+UNTAG_Int(REGB9
));
7300 /* ./../lib/standard//kernel.nit:326 */
7303 /* ./../lib/standard//kernel.nit:324 */
7309 /* ./syntax//typing.nit:1289 */
7310 REGB8
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7311 if (UNTAG_Bool(REGB8
)) {
7312 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1289);
7314 /* ./../lib/standard//collection//array.nit:241 */
7315 fra
.me
.REG
[3] = fra
.me
.REG
[4];
7317 /* ./../lib/standard//collection//array.nit:243 */
7319 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
7320 if (UNTAG_Bool(REGB9
)) {
7322 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7324 /* ./../lib/standard//kernel.nit:216 */
7325 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB7
));
7326 /* ./../lib/standard//collection//array.nit:243 */
7327 if (UNTAG_Bool(REGB7
)) {
7328 REGB7
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
7329 if (UNTAG_Bool(REGB7
)) {
7331 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
7333 REGB7
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
7334 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
7335 if (UNTAG_Bool(REGB9
)) {
7337 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7339 /* ./../lib/standard//kernel.nit:215 */
7340 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB7
));
7342 /* ./../lib/standard//collection//array.nit:243 */
7343 REGB9
= TAG_Bool(false);
7346 if (UNTAG_Bool(REGB7
)) {
7348 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
7350 /* ./../lib/standard//collection//array.nit:244 */
7351 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
7352 REGB7
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7353 if (UNTAG_Bool(REGB7
)) {
7354 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
7356 /* ./../lib/standard//collection//array.nit:652 */
7357 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB8
)];
7358 /* ./../lib/standard//collection//array.nit:244 */
7361 /* ./syntax//typing.nit:1289 */
7362 fra
.me
.REG
[0] = fra
.me
.REG
[3];
7363 /* ./syntax//typing.nit:1290 */
7364 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7365 /* ./syntax//typing.nit:1291 */
7367 /* ./../lib/standard//kernel.nit:218 */
7368 REGB8
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB8
));
7369 /* ./syntax//typing.nit:1291 */
7372 /* ./../lib/standard//kernel.nit:337 */
7374 /* ./../lib/standard//kernel.nit:218 */
7375 REGB8
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB8
));
7376 /* ./../lib/standard//kernel.nit:337 */
7379 /* ./../lib/standard//kernel.nit:335 */
7384 /* ./syntax//typing.nit:1294 */
7385 REGB4
= TAG_Bool(true);
7389 stack_frame_head
= fra
.me
.prev
;
7392 val_t
syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
7393 struct {struct stack_frame_t me
; val_t MORE_REG
[16];} fra
;
7401 static val_t once_value_2
; /* Once value */
7402 static val_t once_value_3
; /* Once value */
7403 static val_t once_value_4
; /* Once value */
7404 static val_t once_value_5
; /* Once value */
7405 static val_t once_value_6
; /* Once value */
7406 static val_t once_value_7
; /* Once value */
7407 static val_t once_value_8
; /* Once value */
7408 static val_t once_value_11
; /* Once value */
7409 static val_t once_value_12
; /* Once value */
7410 static val_t once_value_13
; /* Once value */
7411 static val_t once_value_14
; /* Once value */
7412 static val_t once_value_15
; /* Once value */
7413 static val_t once_value_16
; /* Once value */
7414 static val_t once_value_18
; /* Once value */
7415 static val_t once_value_19
; /* Once value */
7416 static val_t once_value_20
; /* Once value */
7417 static val_t once_value_21
; /* Once value */
7418 static val_t once_value_22
; /* Once value */
7419 static val_t once_value_24
; /* Once value */
7420 static val_t once_value_25
; /* Once value */
7421 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7422 fra
.me
.file
= LOCATE_syntax___typing
;
7424 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures
;
7425 fra
.me
.has_broke
= 0;
7426 fra
.me
.REG_size
= 17;
7427 fra
.me
.REG
[0] = NIT_NULL
;
7428 fra
.me
.REG
[1] = NIT_NULL
;
7429 fra
.me
.REG
[2] = NIT_NULL
;
7430 fra
.me
.REG
[3] = NIT_NULL
;
7431 fra
.me
.REG
[4] = NIT_NULL
;
7432 fra
.me
.REG
[5] = NIT_NULL
;
7433 fra
.me
.REG
[6] = NIT_NULL
;
7434 fra
.me
.REG
[7] = NIT_NULL
;
7435 fra
.me
.REG
[8] = NIT_NULL
;
7436 fra
.me
.REG
[9] = NIT_NULL
;
7437 fra
.me
.REG
[10] = NIT_NULL
;
7438 fra
.me
.REG
[11] = NIT_NULL
;
7439 fra
.me
.REG
[12] = NIT_NULL
;
7440 fra
.me
.REG
[13] = NIT_NULL
;
7441 fra
.me
.REG
[14] = NIT_NULL
;
7442 fra
.me
.REG
[15] = NIT_NULL
;
7443 fra
.me
.REG
[16] = NIT_NULL
;
7449 /* ./syntax//typing.nit:1300 */
7450 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7451 /* ./syntax//typing.nit:1301 */
7452 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7453 /* ./syntax//typing.nit:1302 */
7455 /* ./../lib/standard//collection//array.nit:229 */
7456 fra
.me
.REG
[7] = fra
.me
.REG
[6];
7457 /* ./../lib/standard//collection//array.nit:232 */
7459 /* ./../lib/standard//collection//array.nit:233 */
7460 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
7461 if (UNTAG_Bool(REGB2
)) {
7463 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
7465 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
7466 /* ./../lib/standard//collection//array.nit:234 */
7467 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
7468 /* ./../lib/standard//collection//array.nit:235 */
7470 /* ./../lib/standard//collection//array.nit:23 */
7471 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
7472 if (UNTAG_Bool(REGB2
)) {
7474 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
7476 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
7477 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
7478 if (UNTAG_Bool(REGB3
)) {
7480 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7482 /* ./../lib/standard//kernel.nit:215 */
7483 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
7484 /* ./../lib/standard//collection//array.nit:235 */
7485 if (UNTAG_Bool(REGB2
)) {
7486 /* ./../lib/standard//collection//array.nit:236 */
7487 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
7488 if (UNTAG_Bool(REGB2
)) {
7489 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
7491 /* ./../lib/standard//collection//array.nit:652 */
7492 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
7493 /* ./syntax//typing.nit:1304 */
7494 REGB2
= CALL_metamodel___static_type___MMClosure___is_optional(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
7495 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7496 if (UNTAG_Bool(REGB2
)) {
7498 /* ./../lib/standard//kernel.nit:218 */
7499 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
7500 /* ./syntax//typing.nit:1304 */
7503 /* ./../lib/standard//collection//array.nit:237 */
7505 /* ./../lib/standard//kernel.nit:218 */
7506 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
7507 /* ./../lib/standard//collection//array.nit:237 */
7510 /* ./../lib/standard//collection//array.nit:235 */
7515 /* ./syntax//typing.nit:1306 */
7517 /* ./syntax//typing.nit:1307 */
7518 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7519 if (UNTAG_Bool(REGB2
)) {
7521 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7522 if (UNTAG_Bool(REGB3
)) {
7523 REGB3
= TAG_Bool(false);
7526 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7530 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7531 if (UNTAG_Bool(REGB2
)) {
7532 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7533 if (UNTAG_Bool(REGB2
)) {
7534 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1307);
7536 /* ./../lib/standard//collection//array.nit:23 */
7537 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7538 if (UNTAG_Bool(REGB2
)) {
7540 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
7542 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7543 /* ./syntax//typing.nit:1307 */
7546 /* ./../lib/standard//collection//array.nit:23 */
7547 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7548 if (UNTAG_Bool(REGB2
)) {
7550 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
7552 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7553 /* ./syntax//typing.nit:1308 */
7555 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
7556 if (UNTAG_Bool(REGB4
)) {
7558 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7560 /* ./../lib/standard//kernel.nit:217 */
7561 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
7562 /* ./syntax//typing.nit:1308 */
7563 if (UNTAG_Bool(REGB3
)) {
7564 /* ./syntax//typing.nit:1309 */
7566 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
7567 if (UNTAG_Bool(REGB2
)) {
7569 /* ./../lib/standard//kernel.nit:210 */
7570 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
7571 /* ./syntax//typing.nit:1309 */
7574 if (UNTAG_Bool(REGB2
)) {
7576 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
7577 if (UNTAG_Bool(REGB3
)) {
7579 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7581 /* ./../lib/standard//kernel.nit:217 */
7582 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB2
));
7584 /* ./syntax//typing.nit:1309 */
7585 REGB3
= TAG_Bool(false);
7588 if (UNTAG_Bool(REGB2
)) {
7589 /* ./syntax//typing.nit:1310 */
7591 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
7592 if (!once_value_2
) {
7593 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
7595 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
7596 once_value_2
= fra
.me
.REG
[7];
7597 register_static_object(&once_value_2
);
7598 } else fra
.me
.REG
[7] = once_value_2
;
7599 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7600 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7601 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7603 if (!once_value_3
) {
7604 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
7605 REGB2
= TAG_Int(10);
7606 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
7607 once_value_3
= fra
.me
.REG
[7];
7608 register_static_object(&once_value_3
);
7609 } else fra
.me
.REG
[7] = once_value_3
;
7610 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7611 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7612 /* ./../lib/standard//collection//array.nit:23 */
7613 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7614 if (UNTAG_Bool(REGB2
)) {
7616 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
7618 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7619 /* ./syntax//typing.nit:1310 */
7620 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
7621 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7622 if (!once_value_4
) {
7623 fra
.me
.REG
[7] = BOX_NativeString(" blocks.");
7625 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
7626 once_value_4
= fra
.me
.REG
[7];
7627 register_static_object(&once_value_4
);
7628 } else fra
.me
.REG
[7] = once_value_4
;
7629 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7631 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
7632 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
7634 /* ./../lib/standard//collection//array.nit:23 */
7635 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7636 if (UNTAG_Bool(REGB2
)) {
7638 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
7640 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7641 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
7642 if (UNTAG_Bool(REGB3
)) {
7644 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7646 /* ./../lib/standard//kernel.nit:217 */
7647 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7648 /* ./syntax//typing.nit:1311 */
7649 if (UNTAG_Bool(REGB2
)) {
7650 REGB2
= TAG_Bool(true);
7652 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
7653 if (UNTAG_Bool(REGB3
)) {
7655 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7657 /* ./../lib/standard//kernel.nit:215 */
7658 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
7659 /* ./syntax//typing.nit:1311 */
7662 if (UNTAG_Bool(REGB2
)) {
7663 /* ./syntax//typing.nit:1312 */
7665 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
7666 if (!once_value_5
) {
7667 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
7669 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
7670 once_value_5
= fra
.me
.REG
[7];
7671 register_static_object(&once_value_5
);
7672 } else fra
.me
.REG
[7] = once_value_5
;
7673 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7674 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7675 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7677 if (!once_value_6
) {
7678 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
7679 REGB2
= TAG_Int(10);
7680 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
7681 once_value_6
= fra
.me
.REG
[7];
7682 register_static_object(&once_value_6
);
7683 } else fra
.me
.REG
[7] = once_value_6
;
7684 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7686 /* ./../lib/standard//collection//array.nit:23 */
7687 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7688 if (UNTAG_Bool(REGB2
)) {
7690 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
7692 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7693 /* ./syntax//typing.nit:1312 */
7694 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
7695 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7696 if (!once_value_7
) {
7697 fra
.me
.REG
[7] = BOX_NativeString(" blocks, ");
7699 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
7700 once_value_7
= fra
.me
.REG
[7];
7701 register_static_object(&once_value_7
);
7702 } else fra
.me
.REG
[7] = once_value_7
;
7703 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7704 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7705 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7706 if (UNTAG_Bool(REGB2
)) {
7707 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1312);
7709 /* ./../lib/standard//collection//array.nit:23 */
7710 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7711 if (UNTAG_Bool(REGB2
)) {
7713 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
7715 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7716 /* ./syntax//typing.nit:1312 */
7717 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
7718 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7719 if (!once_value_8
) {
7720 fra
.me
.REG
[7] = BOX_NativeString(" found.");
7722 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
7723 once_value_8
= fra
.me
.REG
[7];
7724 register_static_object(&once_value_8
);
7725 } else fra
.me
.REG
[7] = once_value_8
;
7726 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7727 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
7728 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
7729 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
7731 /* ./syntax//typing.nit:1315 */
7732 fra
.me
.REG
[8] = NIT_NULL
;
7733 /* ./syntax//typing.nit:1316 */
7734 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7735 if (UNTAG_Bool(REGB2
)) {
7737 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
7738 if (UNTAG_Bool(REGB0
)) {
7739 REGB0
= TAG_Bool(false);
7742 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
7746 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7747 if (UNTAG_Bool(REGB2
)) {
7748 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
7749 fra
.me
.REG
[8] = fra
.me
.REG
[7];
7751 /* ./syntax//typing.nit:1319 */
7753 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
7754 if (UNTAG_Bool(REGB0
)) {
7756 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7758 /* ./../lib/standard//kernel.nit:217 */
7759 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7760 /* ./syntax//typing.nit:1319 */
7761 if (UNTAG_Bool(REGB2
)) {
7763 /* ./../lib/standard//kernel.nit:220 */
7764 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
7765 /* ./syntax//typing.nit:1319 */
7766 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7767 if (UNTAG_Bool(REGB0
)) {
7768 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1319);
7770 /* ./../lib/standard//collection//array.nit:241 */
7771 fra
.me
.REG
[7] = fra
.me
.REG
[4];
7772 /* ./../lib/standard//collection//array.nit:243 */
7774 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
7775 if (UNTAG_Bool(REGB3
)) {
7777 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7779 /* ./../lib/standard//kernel.nit:216 */
7780 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
7781 /* ./../lib/standard//collection//array.nit:243 */
7782 if (UNTAG_Bool(REGB0
)) {
7783 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
7784 if (UNTAG_Bool(REGB0
)) {
7786 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
7788 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
7789 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
7790 if (UNTAG_Bool(REGB3
)) {
7792 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7794 /* ./../lib/standard//kernel.nit:215 */
7795 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
7797 /* ./../lib/standard//collection//array.nit:243 */
7798 REGB3
= TAG_Bool(false);
7801 if (UNTAG_Bool(REGB0
)) {
7803 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
7805 /* ./../lib/standard//collection//array.nit:244 */
7806 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
7807 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
7808 if (UNTAG_Bool(REGB0
)) {
7809 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
7811 /* ./../lib/standard//collection//array.nit:652 */
7812 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB2
)];
7813 /* ./../lib/standard//collection//array.nit:244 */
7816 /* ./syntax//typing.nit:1319 */
7817 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
7818 if (UNTAG_Bool(REGB2
)) {
7819 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1319);
7821 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
7823 fra
.me
.REG
[7] = NIT_NULL
;
7825 /* ./syntax//typing.nit:1322 */
7827 /* ./../lib/standard//kernel.nit:330 */
7829 /* ./../lib/standard//kernel.nit:335 */
7831 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
7832 if (UNTAG_Bool(REGB3
)) {
7834 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7836 /* ./../lib/standard//kernel.nit:215 */
7837 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
7838 /* ./../lib/standard//kernel.nit:335 */
7839 if (UNTAG_Bool(REGB3
)) {
7840 /* ./syntax//typing.nit:1322 */
7842 /* ./syntax//typing.nit:1323 */
7843 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7844 if (UNTAG_Bool(REGB4
)) {
7845 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1323);
7847 /* ./../lib/standard//collection//array.nit:241 */
7848 fra
.me
.REG
[9] = fra
.me
.REG
[4];
7849 /* ./../lib/standard//collection//array.nit:243 */
7851 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
7852 if (UNTAG_Bool(REGB5
)) {
7854 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7856 /* ./../lib/standard//kernel.nit:216 */
7857 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
7858 /* ./../lib/standard//collection//array.nit:243 */
7859 if (UNTAG_Bool(REGB4
)) {
7860 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
7861 if (UNTAG_Bool(REGB4
)) {
7863 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 243);
7865 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
7866 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
7867 if (UNTAG_Bool(REGB5
)) {
7869 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7871 /* ./../lib/standard//kernel.nit:215 */
7872 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
7874 /* ./../lib/standard//collection//array.nit:243 */
7875 REGB5
= TAG_Bool(false);
7878 if (UNTAG_Bool(REGB4
)) {
7880 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 243);
7882 /* ./../lib/standard//collection//array.nit:244 */
7883 fra
.me
.REG
[9] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
7884 REGB4
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
7885 if (UNTAG_Bool(REGB4
)) {
7886 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 244);
7888 /* ./../lib/standard//collection//array.nit:652 */
7889 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB3
)];
7890 /* ./../lib/standard//collection//array.nit:244 */
7893 /* ./syntax//typing.nit:1324 */
7894 fra
.me
.REG
[10] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
7895 fra
.me
.REG
[10] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
7896 /* ./syntax//typing.nit:1325 */
7897 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMSignature___closure_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[10]);
7898 /* ./syntax//typing.nit:1326 */
7899 REGB3
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
7900 if (UNTAG_Bool(REGB3
)) {
7902 REGB4
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
7903 if (UNTAG_Bool(REGB4
)) {
7904 REGB4
= TAG_Bool(false);
7907 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[11])(fra
.me
.REG
[11], NIT_NULL
);
7911 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
7912 if (UNTAG_Bool(REGB3
)) {
7913 /* ./syntax//typing.nit:1327 */
7914 fra
.me
.REG
[11] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[9], fra
.me
.REG
[11], fra
.me
.REG
[8]);
7915 /* ./syntax//typing.nit:1328 */
7916 fra
.me
.REG
[12] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7917 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[11], fra
.me
.REG
[7]);
7918 /* ./syntax//typing.nit:1329 */
7919 CALL_syntax___typing___AClosureDef___accept_typing2(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[1], fra
.me
.REG
[11]);
7920 /* ./syntax//typing.nit:1330 */
7921 fra
.me
.REG
[11] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7922 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
7924 /* ./../lib/standard//collection//array.nit:23 */
7925 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
7926 if (UNTAG_Bool(REGB3
)) {
7928 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
7930 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
7931 /* ./syntax//typing.nit:1331 */
7933 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB3
,REGB4
));
7934 if (UNTAG_Bool(REGB5
)) {
7936 /* ./../lib/standard//kernel.nit:210 */
7937 REGB4
= TAG_Bool((REGB3
)==(REGB4
));
7938 /* ./syntax//typing.nit:1331 */
7941 if (UNTAG_Bool(REGB5
)) {
7942 /* ./syntax//typing.nit:1332 */
7943 fra
.me
.REG
[11] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
7945 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
7946 if (!once_value_11
) {
7947 fra
.me
.REG
[13] = BOX_NativeString("Error: no closure named '!");
7948 REGB5
= TAG_Int(26);
7949 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
7950 once_value_11
= fra
.me
.REG
[13];
7951 register_static_object(&once_value_11
);
7952 } else fra
.me
.REG
[13] = once_value_11
;
7953 fra
.me
.REG
[13] = fra
.me
.REG
[13];
7954 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7955 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
7956 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7957 if (!once_value_12
) {
7958 fra
.me
.REG
[13] = BOX_NativeString("' in ");
7960 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
7961 once_value_12
= fra
.me
.REG
[13];
7962 register_static_object(&once_value_12
);
7963 } else fra
.me
.REG
[13] = once_value_12
;
7964 fra
.me
.REG
[13] = fra
.me
.REG
[13];
7965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7966 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7968 if (!once_value_13
) {
7969 fra
.me
.REG
[13] = BOX_NativeString("; only closure is !");
7970 REGB5
= TAG_Int(19);
7971 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
7972 once_value_13
= fra
.me
.REG
[13];
7973 register_static_object(&once_value_13
);
7974 } else fra
.me
.REG
[13] = once_value_13
;
7975 fra
.me
.REG
[13] = fra
.me
.REG
[13];
7976 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7977 fra
.me
.REG
[13] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7978 REGB5
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
7979 if (UNTAG_Bool(REGB5
)) {
7980 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1332);
7982 fra
.me
.REG
[13] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
7983 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
7984 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7985 if (!once_value_14
) {
7986 fra
.me
.REG
[13] = BOX_NativeString(".");
7988 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
7989 once_value_14
= fra
.me
.REG
[13];
7990 register_static_object(&once_value_14
);
7991 } else fra
.me
.REG
[13] = once_value_14
;
7992 fra
.me
.REG
[13] = fra
.me
.REG
[13];
7993 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
7994 fra
.me
.REG
[12] = CALL_standard___string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
7995 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[11], fra
.me
.REG
[12]);
7997 /* ./syntax//typing.nit:1334 */
7998 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___init();
7999 /* ./../lib/standard//collection//array.nit:229 */
8000 fra
.me
.REG
[11] = fra
.me
.REG
[6];
8001 /* ./../lib/standard//collection//array.nit:232 */
8003 /* ./../lib/standard//collection//array.nit:233 */
8004 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
8005 if (UNTAG_Bool(REGB4
)) {
8007 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
8009 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
8010 /* ./../lib/standard//collection//array.nit:234 */
8011 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[11]);
8012 /* ./../lib/standard//collection//array.nit:235 */
8014 /* ./../lib/standard//collection//array.nit:23 */
8015 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
8016 if (UNTAG_Bool(REGB4
)) {
8018 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8020 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
8021 REGB3
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5
), VTID_standard___kernel___Comparable___OTHER(REGB5
))) /*cast OTHER*/;
8022 if (UNTAG_Bool(REGB3
)) {
8024 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8026 /* ./../lib/standard//kernel.nit:215 */
8027 REGB4
= TAG_Bool(UNTAG_Int(REGB5
)<UNTAG_Int(REGB4
));
8028 /* ./../lib/standard//collection//array.nit:235 */
8029 if (UNTAG_Bool(REGB4
)) {
8030 /* ./../lib/standard//collection//array.nit:236 */
8031 REGB4
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
8032 if (UNTAG_Bool(REGB4
)) {
8033 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
8035 /* ./../lib/standard//collection//array.nit:652 */
8036 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB5
)];
8037 /* ./syntax//typing.nit:1336 */
8039 fra
.me
.REG
[15] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4
);
8040 if (!once_value_15
) {
8041 fra
.me
.REG
[16] = BOX_NativeString("!");
8043 fra
.me
.REG
[16] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[16], REGB4
);
8044 once_value_15
= fra
.me
.REG
[16];
8045 register_static_object(&once_value_15
);
8046 } else fra
.me
.REG
[16] = once_value_15
;
8047 fra
.me
.REG
[16] = fra
.me
.REG
[16];
8048 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[16]);
8049 fra
.me
.REG
[14] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
8050 fra
.me
.REG
[14] = CALL_standard___string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
8051 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
8052 if (!once_value_16
) {
8053 fra
.me
.REG
[14] = BOX_NativeString("");
8055 fra
.me
.REG
[14] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[14], REGB4
);
8056 once_value_16
= fra
.me
.REG
[14];
8057 register_static_object(&once_value_16
);
8058 } else fra
.me
.REG
[14] = once_value_16
;
8059 fra
.me
.REG
[14] = fra
.me
.REG
[14];
8060 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
8061 fra
.me
.REG
[15] = CALL_standard___string___Object___to_s(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
8062 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[15]);
8063 /* ./../lib/standard//collection//array.nit:237 */
8065 /* ./../lib/standard//kernel.nit:218 */
8066 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
8067 /* ./../lib/standard//collection//array.nit:237 */
8070 /* ./../lib/standard//collection//array.nit:235 */
8075 /* ./syntax//typing.nit:1338 */
8076 fra
.me
.REG
[9] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8078 fra
.me
.REG
[13] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
8079 if (!once_value_18
) {
8080 fra
.me
.REG
[11] = BOX_NativeString("Error: no closure named '!");
8081 REGB5
= TAG_Int(26);
8082 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB5
);
8083 once_value_18
= fra
.me
.REG
[11];
8084 register_static_object(&once_value_18
);
8085 } else fra
.me
.REG
[11] = once_value_18
;
8086 fra
.me
.REG
[11] = fra
.me
.REG
[11];
8087 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[11]);
8088 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8089 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8090 if (!once_value_19
) {
8091 fra
.me
.REG
[10] = BOX_NativeString("' in ");
8093 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8094 once_value_19
= fra
.me
.REG
[10];
8095 register_static_object(&once_value_19
);
8096 } else fra
.me
.REG
[10] = once_value_19
;
8097 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8099 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8100 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8101 if (!once_value_20
) {
8102 fra
.me
.REG
[10] = BOX_NativeString("; only closures are ");
8103 REGB5
= TAG_Int(20);
8104 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8105 once_value_20
= fra
.me
.REG
[10];
8106 register_static_object(&once_value_20
);
8107 } else fra
.me
.REG
[10] = once_value_20
;
8108 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8109 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8110 if (!once_value_21
) {
8111 fra
.me
.REG
[10] = BOX_NativeString(",");
8113 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8114 once_value_21
= fra
.me
.REG
[10];
8115 register_static_object(&once_value_21
);
8116 } else fra
.me
.REG
[10] = once_value_21
;
8117 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8118 fra
.me
.REG
[10] = CALL_standard___string___Collection___join(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[10]);
8119 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8120 if (!once_value_22
) {
8121 fra
.me
.REG
[10] = BOX_NativeString(".");
8123 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8124 once_value_22
= fra
.me
.REG
[10];
8125 register_static_object(&once_value_22
);
8126 } else fra
.me
.REG
[10] = once_value_22
;
8127 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8128 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8129 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8130 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[13]);
8133 /* ./../lib/standard//kernel.nit:337 */
8135 /* ./../lib/standard//kernel.nit:218 */
8136 REGB5
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB5
));
8137 /* ./../lib/standard//kernel.nit:337 */
8140 /* ./../lib/standard//kernel.nit:335 */
8145 /* ./syntax//typing.nit:1343 */
8146 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8147 if (UNTAG_Bool(REGB2
)) {
8149 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8150 if (UNTAG_Bool(REGB0
)) {
8151 REGB0
= TAG_Bool(false);
8154 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
8158 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8159 if (UNTAG_Bool(REGB2
)) {
8160 /* ./syntax//typing.nit:1344 */
8161 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]);
8162 fra
.me
.REG
[5] = fra
.me
.REG
[8];
8167 /* ./syntax//typing.nit:1347 */
8169 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
8170 if (UNTAG_Bool(REGB0
)) {
8172 /* ./../lib/standard//kernel.nit:210 */
8173 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
8174 /* ./syntax//typing.nit:1347 */
8177 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8178 if (UNTAG_Bool(REGB0
)) {
8179 /* ./syntax//typing.nit:1348 */
8181 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8182 if (!once_value_24
) {
8183 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
8185 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
8186 once_value_24
= fra
.me
.REG
[6];
8187 register_static_object(&once_value_24
);
8188 } else fra
.me
.REG
[6] = once_value_24
;
8189 fra
.me
.REG
[6] = fra
.me
.REG
[6];
8190 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
8191 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8192 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
8193 if (!once_value_25
) {
8194 fra
.me
.REG
[3] = BOX_NativeString(" does not require blocks.");
8195 REGB0
= TAG_Int(25);
8196 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
8197 once_value_25
= fra
.me
.REG
[3];
8198 register_static_object(&once_value_25
);
8199 } else fra
.me
.REG
[3] = once_value_25
;
8200 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8201 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
8202 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8203 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8206 /* ./syntax//typing.nit:1350 */
8209 stack_frame_head
= fra
.me
.prev
;
8210 return fra
.me
.REG
[5];
8212 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
){
8213 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8218 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8219 fra
.me
.file
= LOCATE_syntax___typing
;
8221 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___do_typing
;
8222 fra
.me
.has_broke
= 0;
8223 fra
.me
.REG_size
= 7;
8224 fra
.me
.REG
[0] = NIT_NULL
;
8225 fra
.me
.REG
[1] = NIT_NULL
;
8226 fra
.me
.REG
[2] = NIT_NULL
;
8227 fra
.me
.REG
[3] = NIT_NULL
;
8228 fra
.me
.REG
[4] = NIT_NULL
;
8229 fra
.me
.REG
[5] = NIT_NULL
;
8230 fra
.me
.REG
[6] = NIT_NULL
;
8239 /* ./syntax//typing.nit:1358 */
8240 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]);
8241 /* ./syntax//typing.nit:1359 */
8242 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8243 if (UNTAG_Bool(REGB0
)) {
8245 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8246 if (UNTAG_Bool(REGB2
)) {
8247 REGB2
= TAG_Bool(false);
8250 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
8254 if (UNTAG_Bool(REGB0
)) {
8257 /* ./syntax//typing.nit:1360 */
8258 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
);
8259 /* ./syntax//typing.nit:1361 */
8260 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8261 if (UNTAG_Bool(REGB1
)) {
8262 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1361);
8264 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8265 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]);
8266 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8267 if (UNTAG_Bool(REGB1
)) {
8270 /* ./syntax//typing.nit:1362 */
8271 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8272 if (UNTAG_Bool(REGB1
)) {
8273 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1362);
8275 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8276 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]);
8277 /* ./syntax//typing.nit:1363 */
8278 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8279 if (UNTAG_Bool(REGB1
)) {
8281 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8282 if (UNTAG_Bool(REGB0
)) {
8283 REGB0
= TAG_Bool(false);
8286 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8290 if (UNTAG_Bool(REGB1
)) {
8291 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8292 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8293 if (UNTAG_Bool(REGB1
)) {
8295 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8296 if (UNTAG_Bool(REGB0
)) {
8297 REGB0
= TAG_Bool(false);
8300 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8304 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8306 REGB0
= TAG_Bool(false);
8309 if (UNTAG_Bool(REGB1
)) {
8312 /* ./syntax//typing.nit:1364 */
8313 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
8314 /* ./syntax//typing.nit:1365 */
8315 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
8316 /* ./syntax//typing.nit:1366 */
8317 ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
8319 stack_frame_head
= fra
.me
.prev
;
8322 val_t
syntax___typing___AAbsSendExpr___get_property(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8323 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
8329 static val_t once_value_1
; /* Once value */
8330 static val_t once_value_2
; /* Once value */
8331 static val_t once_value_3
; /* Once value */
8332 static val_t once_value_4
; /* Once value */
8333 static val_t once_value_5
; /* Once value */
8334 static val_t once_value_6
; /* Once value */
8335 static val_t once_value_8
; /* Once value */
8336 static val_t once_value_9
; /* Once value */
8337 static val_t once_value_10
; /* Once value */
8338 static val_t once_value_11
; /* Once value */
8339 static val_t once_value_12
; /* Once value */
8340 static val_t once_value_13
; /* Once value */
8341 static val_t once_value_14
; /* Once value */
8342 static val_t once_value_15
; /* Once value */
8343 static val_t once_value_16
; /* Once value */
8344 static val_t once_value_17
; /* Once value */
8345 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8346 fra
.me
.file
= LOCATE_syntax___typing
;
8348 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_property
;
8349 fra
.me
.has_broke
= 0;
8350 fra
.me
.REG_size
= 10;
8351 fra
.me
.REG
[0] = NIT_NULL
;
8352 fra
.me
.REG
[1] = NIT_NULL
;
8353 fra
.me
.REG
[2] = NIT_NULL
;
8354 fra
.me
.REG
[3] = NIT_NULL
;
8355 fra
.me
.REG
[4] = NIT_NULL
;
8356 fra
.me
.REG
[5] = NIT_NULL
;
8357 fra
.me
.REG
[6] = NIT_NULL
;
8358 fra
.me
.REG
[7] = NIT_NULL
;
8359 fra
.me
.REG
[8] = NIT_NULL
;
8360 fra
.me
.REG
[9] = NIT_NULL
;
8366 /* ./syntax//typing.nit:1371 */
8367 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
8368 if (UNTAG_Bool(REGB1
)) {
8369 /* ./syntax//typing.nit:1372 */
8370 if (!once_value_1
) {
8371 if (!once_value_2
) {
8372 fra
.me
.REG
[4] = BOX_NativeString("==");
8374 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
8375 once_value_2
= fra
.me
.REG
[4];
8376 register_static_object(&once_value_2
);
8377 } else fra
.me
.REG
[4] = once_value_2
;
8378 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8379 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8380 once_value_1
= fra
.me
.REG
[4];
8381 register_static_object(&once_value_1
);
8382 } else fra
.me
.REG
[4] = once_value_1
;
8383 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8384 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
8385 if (UNTAG_Bool(REGB1
)) {
8387 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8390 if (UNTAG_Bool(REGB1
)) {
8391 REGB1
= TAG_Bool(true);
8393 if (!once_value_3
) {
8394 if (!once_value_4
) {
8395 fra
.me
.REG
[4] = BOX_NativeString("!=");
8397 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB2
);
8398 once_value_4
= fra
.me
.REG
[4];
8399 register_static_object(&once_value_4
);
8400 } else fra
.me
.REG
[4] = once_value_4
;
8401 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8402 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8403 once_value_3
= fra
.me
.REG
[4];
8404 register_static_object(&once_value_3
);
8405 } else fra
.me
.REG
[4] = once_value_3
;
8406 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8407 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
8408 if (UNTAG_Bool(REGB2
)) {
8410 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
8415 if (UNTAG_Bool(REGB1
)) {
8416 /* ./syntax//typing.nit:1374 */
8417 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8418 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8419 fra
.me
.REG
[2] = fra
.me
.REG
[4];
8421 /* ./syntax//typing.nit:1376 */
8423 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
8424 if (!once_value_5
) {
8425 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
8426 REGB1
= TAG_Int(15);
8427 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
8428 once_value_5
= fra
.me
.REG
[5];
8429 register_static_object(&once_value_5
);
8430 } else fra
.me
.REG
[5] = once_value_5
;
8431 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8432 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
8433 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8434 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
8435 if (!once_value_6
) {
8436 fra
.me
.REG
[5] = BOX_NativeString("' call on 'null'.");
8437 REGB1
= TAG_Int(17);
8438 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
8439 once_value_6
= fra
.me
.REG
[5];
8440 register_static_object(&once_value_6
);
8441 } else fra
.me
.REG
[5] = once_value_6
;
8442 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8443 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
8444 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8445 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
8446 /* ./syntax//typing.nit:1377 */
8447 fra
.me
.REG
[4] = NIT_NULL
;
8451 /* ./syntax//typing.nit:1380 */
8452 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8453 /* ./syntax//typing.nit:1381 */
8454 fra
.me
.REG
[6] = NIT_NULL
;
8455 /* ./syntax//typing.nit:1382 */
8456 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8457 if (UNTAG_Bool(REGB1
)) {
8458 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8459 fra
.me
.REG
[6] = fra
.me
.REG
[7];
8461 /* ./syntax//typing.nit:1383 */
8462 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8463 if (UNTAG_Bool(REGB1
)) {
8465 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8466 if (UNTAG_Bool(REGB2
)) {
8467 REGB2
= TAG_Bool(false);
8470 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
8474 if (UNTAG_Bool(REGB1
)) {
8475 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8476 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8477 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8479 REGB2
= TAG_Bool(false);
8482 if (UNTAG_Bool(REGB1
)) {
8483 /* ./syntax//typing.nit:1384 */
8484 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8485 /* ./../lib/standard//collection//array.nit:23 */
8486 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8487 if (UNTAG_Bool(REGB1
)) {
8489 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8491 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8492 /* ./syntax//typing.nit:1385 */
8494 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8495 if (UNTAG_Bool(REGB3
)) {
8497 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8499 /* ./../lib/standard//kernel.nit:217 */
8500 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8501 /* ./syntax//typing.nit:1385 */
8502 if (UNTAG_Bool(REGB2
)) {
8503 /* ./syntax//typing.nit:1386 */
8505 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8506 if (!once_value_8
) {
8507 fra
.me
.REG
[9] = BOX_NativeString("Error: Ambigous method name '");
8508 REGB2
= TAG_Int(29);
8509 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
8510 once_value_8
= fra
.me
.REG
[9];
8511 register_static_object(&once_value_8
);
8512 } else fra
.me
.REG
[9] = once_value_8
;
8513 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8514 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8515 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8516 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8517 if (!once_value_9
) {
8518 fra
.me
.REG
[9] = BOX_NativeString("' for ");
8520 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
8521 once_value_9
= fra
.me
.REG
[9];
8522 register_static_object(&once_value_9
);
8523 } else fra
.me
.REG
[9] = once_value_9
;
8524 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8525 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8526 if (!once_value_10
) {
8527 fra
.me
.REG
[9] = BOX_NativeString(", ");
8529 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
8530 once_value_10
= fra
.me
.REG
[9];
8531 register_static_object(&once_value_10
);
8532 } else fra
.me
.REG
[9] = once_value_10
;
8533 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8534 fra
.me
.REG
[9] = CALL_standard___string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
8535 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8536 if (!once_value_11
) {
8537 fra
.me
.REG
[9] = BOX_NativeString(". Use explicit designation.");
8538 REGB2
= TAG_Int(27);
8539 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
8540 once_value_11
= fra
.me
.REG
[9];
8541 register_static_object(&once_value_11
);
8542 } else fra
.me
.REG
[9] = once_value_11
;
8543 fra
.me
.REG
[9] = fra
.me
.REG
[9];
8544 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
8545 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8546 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8547 /* ./syntax//typing.nit:1387 */
8548 fra
.me
.REG
[4] = NIT_NULL
;
8551 /* ./../lib/standard//collection//array.nit:23 */
8552 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8553 if (UNTAG_Bool(REGB2
)) {
8555 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
8557 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8558 /* ./syntax//typing.nit:1388 */
8560 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
8561 if (UNTAG_Bool(REGB3
)) {
8563 /* ./../lib/standard//kernel.nit:210 */
8564 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
8565 /* ./syntax//typing.nit:1388 */
8568 if (UNTAG_Bool(REGB3
)) {
8569 /* ./syntax//typing.nit:1389 */
8570 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8571 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8572 if (UNTAG_Bool(REGB3
)) {
8573 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1389);
8575 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8576 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
8577 /* ./syntax//typing.nit:1390 */
8578 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
8579 if (UNTAG_Bool(REGB3
)) {
8581 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1390);
8583 /* ./syntax//typing.nit:1391 */
8584 fra
.me
.REG
[6] = fra
.me
.REG
[7];
8588 /* ./syntax//typing.nit:1395 */
8589 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8590 if (UNTAG_Bool(REGB3
)) {
8592 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8593 if (UNTAG_Bool(REGB1
)) {
8594 REGB1
= TAG_Bool(false);
8597 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
8601 if (UNTAG_Bool(REGB3
)) {
8602 /* ./syntax//typing.nit:1396 */
8603 if (UNTAG_Bool(REGB0
)) {
8604 /* ./syntax//typing.nit:1397 */
8606 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8607 if (!once_value_12
) {
8608 fra
.me
.REG
[5] = BOX_NativeString("Error: Method or variable '");
8609 REGB0
= TAG_Int(27);
8610 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
8611 once_value_12
= fra
.me
.REG
[5];
8612 register_static_object(&once_value_12
);
8613 } else fra
.me
.REG
[5] = once_value_12
;
8614 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8615 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8616 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8617 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8618 if (!once_value_13
) {
8619 fra
.me
.REG
[5] = BOX_NativeString("' unknown in ");
8620 REGB0
= TAG_Int(13);
8621 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
8622 once_value_13
= fra
.me
.REG
[5];
8623 register_static_object(&once_value_13
);
8624 } else fra
.me
.REG
[5] = once_value_13
;
8625 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8626 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8627 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8628 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8629 if (!once_value_14
) {
8630 fra
.me
.REG
[5] = BOX_NativeString(".");
8632 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
8633 once_value_14
= fra
.me
.REG
[5];
8634 register_static_object(&once_value_14
);
8635 } else fra
.me
.REG
[5] = once_value_14
;
8636 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8637 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8638 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8639 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
8641 /* ./syntax//typing.nit:1399 */
8643 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8644 if (!once_value_15
) {
8645 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
8646 REGB0
= TAG_Int(15);
8647 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
8648 once_value_15
= fra
.me
.REG
[5];
8649 register_static_object(&once_value_15
);
8650 } else fra
.me
.REG
[5] = once_value_15
;
8651 fra
.me
.REG
[5] = fra
.me
.REG
[5];
8652 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
8653 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8654 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
8655 if (!once_value_16
) {
8656 fra
.me
.REG
[3] = BOX_NativeString("' doesn't exists in ");
8657 REGB0
= TAG_Int(20);
8658 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
8659 once_value_16
= fra
.me
.REG
[3];
8660 register_static_object(&once_value_16
);
8661 } else fra
.me
.REG
[3] = once_value_16
;
8662 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8663 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
8664 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8665 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
8666 if (!once_value_17
) {
8667 fra
.me
.REG
[2] = BOX_NativeString(".");
8669 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
8670 once_value_17
= fra
.me
.REG
[2];
8671 register_static_object(&once_value_17
);
8672 } else fra
.me
.REG
[2] = once_value_17
;
8673 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8674 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
8675 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8676 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
8678 /* ./syntax//typing.nit:1401 */
8679 fra
.me
.REG
[4] = NIT_NULL
;
8682 /* ./syntax//typing.nit:1403 */
8683 fra
.me
.REG
[4] = fra
.me
.REG
[6];
8686 stack_frame_head
= fra
.me
.prev
;
8687 return fra
.me
.REG
[4];
8689 val_t
syntax___typing___AAbsSendExpr___get_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8690 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
8693 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8694 fra
.me
.file
= LOCATE_syntax___typing
;
8696 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_signature
;
8697 fra
.me
.has_broke
= 0;
8698 fra
.me
.REG_size
= 6;
8699 fra
.me
.REG
[0] = NIT_NULL
;
8700 fra
.me
.REG
[1] = NIT_NULL
;
8701 fra
.me
.REG
[2] = NIT_NULL
;
8702 fra
.me
.REG
[3] = NIT_NULL
;
8703 fra
.me
.REG
[4] = NIT_NULL
;
8704 fra
.me
.REG
[5] = NIT_NULL
;
8710 /* ./syntax//typing.nit:1409 */
8711 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8712 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8713 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
);
8714 /* ./syntax//typing.nit:1410 */
8715 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
8716 /* ./syntax//typing.nit:1411 */
8717 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8718 if (UNTAG_Bool(REGB0
)) {
8719 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8720 fra
.me
.REG
[2] = fra
.me
.REG
[3];
8722 /* ./syntax//typing.nit:1412 */
8725 stack_frame_head
= fra
.me
.prev
;
8726 return fra
.me
.REG
[2];
8728 val_t
syntax___typing___AAbsSendExpr___prop(val_t p0
){
8729 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
8732 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8733 fra
.me
.file
= LOCATE_syntax___typing
;
8735 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___prop
;
8736 fra
.me
.has_broke
= 0;
8737 fra
.me
.REG_size
= 2;
8738 fra
.me
.REG
[0] = NIT_NULL
;
8739 fra
.me
.REG
[1] = NIT_NULL
;
8741 /* ./syntax//typing.nit:1415 */
8742 fra
.me
.REG
[1] = fra
.me
.REG
[0];
8743 /* ./syntax//typing.nit:1416 */
8744 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[1]);
8745 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
8746 if (UNTAG_Bool(REGB0
)) {
8748 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1416);
8752 stack_frame_head
= fra
.me
.prev
;
8753 return fra
.me
.REG
[1];
8755 val_t
syntax___typing___AAbsSendExpr___return_type(val_t p0
){
8756 struct {struct stack_frame_t me
;} fra
;
8758 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8759 fra
.me
.file
= LOCATE_syntax___typing
;
8761 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___return_type
;
8762 fra
.me
.has_broke
= 0;
8763 fra
.me
.REG_size
= 1;
8764 fra
.me
.REG
[0] = NIT_NULL
;
8766 /* ./syntax//typing.nit:1419 */
8767 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]);
8768 stack_frame_head
= fra
.me
.prev
;
8769 return fra
.me
.REG
[0];
8771 void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0
, val_t p1
, val_t p2
){
8772 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
8777 static val_t once_value_1
; /* Once value */
8778 static val_t once_value_2
; /* Once value */
8779 static val_t once_value_3
; /* Once value */
8780 static val_t once_value_4
; /* Once value */
8781 static val_t once_value_5
; /* Once value */
8782 static val_t once_value_6
; /* Once value */
8783 static val_t once_value_7
; /* Once value */
8784 static val_t once_value_8
; /* Once value */
8785 static val_t once_value_9
; /* Once value */
8786 static val_t once_value_10
; /* Once value */
8787 static val_t once_value_11
; /* Once value */
8788 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8789 fra
.me
.file
= LOCATE_syntax___typing
;
8791 fra
.me
.meth
= LOCATE_syntax___typing___ASuperInitCall___register_super_init_call
;
8792 fra
.me
.has_broke
= 0;
8793 fra
.me
.REG_size
= 11;
8794 fra
.me
.REG
[0] = NIT_NULL
;
8795 fra
.me
.REG
[1] = NIT_NULL
;
8796 fra
.me
.REG
[2] = NIT_NULL
;
8797 fra
.me
.REG
[3] = NIT_NULL
;
8798 fra
.me
.REG
[4] = NIT_NULL
;
8799 fra
.me
.REG
[5] = NIT_NULL
;
8800 fra
.me
.REG
[6] = NIT_NULL
;
8801 fra
.me
.REG
[7] = NIT_NULL
;
8802 fra
.me
.REG
[8] = NIT_NULL
;
8803 fra
.me
.REG
[9] = NIT_NULL
;
8804 fra
.me
.REG
[10] = NIT_NULL
;
8808 /* ./syntax//typing.nit:1426 */
8809 fra
.me
.REG
[3] = fra
.me
.REG
[0];
8810 /* ./syntax//typing.nit:1428 */
8811 fra
.me
.REG
[4] = CALL_parser___parser_prod___ANode___parent(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8812 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8813 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[4],fra
.me
.REG
[5]));
8814 if (UNTAG_Bool(REGB0
)) {
8816 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8817 if (UNTAG_Bool(REGB1
)) {
8818 REGB1
= TAG_Bool(false);
8821 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
8825 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8826 if (UNTAG_Bool(REGB0
)) {
8827 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8828 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[5]));
8829 if (UNTAG_Bool(REGB0
)) {
8831 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8834 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8836 REGB1
= TAG_Bool(false);
8839 if (UNTAG_Bool(REGB0
)) {
8840 /* ./syntax//typing.nit:1429 */
8842 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8843 if (!once_value_1
) {
8844 fra
.me
.REG
[4] = BOX_NativeString("Error: Constructor invocation ");
8845 REGB0
= TAG_Int(30);
8846 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
8847 once_value_1
= fra
.me
.REG
[4];
8848 register_static_object(&once_value_1
);
8849 } else fra
.me
.REG
[4] = once_value_1
;
8850 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
8852 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8853 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
8854 if (!once_value_2
) {
8855 fra
.me
.REG
[4] = BOX_NativeString(" must not be in nested block.");
8856 REGB0
= TAG_Int(29);
8857 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
8858 once_value_2
= fra
.me
.REG
[4];
8859 register_static_object(&once_value_2
);
8860 } else fra
.me
.REG
[4] = once_value_2
;
8861 fra
.me
.REG
[4] = fra
.me
.REG
[4];
8862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
8863 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8864 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
8866 /* ./syntax//typing.nit:1431 */
8867 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8868 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8869 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8870 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8871 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8872 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
8873 /* ./syntax//typing.nit:1432 */
8874 fra
.me
.REG
[5] = NIT_NULL
;
8875 /* ./syntax//typing.nit:1433 */
8876 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___explicit_super_init_calls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8877 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
8878 if (UNTAG_Bool(REGB0
)) {
8880 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1433);
8882 /* ./syntax//typing.nit:1434 */
8883 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8884 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8885 if (UNTAG_Bool(REGB0
)) {
8886 /* ./syntax//typing.nit:1435 */
8887 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8888 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
8889 if (UNTAG_Bool(REGB0
)) {
8890 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1435);
8892 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8893 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8894 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8895 fra
.me
.REG
[5] = fra
.me
.REG
[0];
8897 /* ./syntax//typing.nit:1437 */
8898 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8899 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8900 fra
.me
.REG
[0] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8901 /* ./syntax//typing.nit:1438 */
8902 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8903 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
8904 if (UNTAG_Bool(REGB0
)) {
8906 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
8909 if (UNTAG_Bool(REGB0
)) {
8910 /* ./syntax//typing.nit:1439 */
8911 REGB0
= TAG_Bool(true);
8912 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
8914 /* ./syntax//typing.nit:1440 */
8915 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
8916 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8917 if (UNTAG_Bool(REGB0
)) {
8918 /* ./syntax//typing.nit:1441 */
8920 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8921 if (!once_value_3
) {
8922 fra
.me
.REG
[8] = BOX_NativeString("Error: Constructor of class ");
8923 REGB0
= TAG_Int(28);
8924 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
8925 once_value_3
= fra
.me
.REG
[8];
8926 register_static_object(&once_value_3
);
8927 } else fra
.me
.REG
[8] = once_value_3
;
8928 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8929 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8930 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8931 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8932 if (!once_value_4
) {
8933 fra
.me
.REG
[8] = BOX_NativeString(" must be one in ");
8934 REGB0
= TAG_Int(16);
8935 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
8936 once_value_4
= fra
.me
.REG
[8];
8937 register_static_object(&once_value_4
);
8938 } else fra
.me
.REG
[8] = once_value_4
;
8939 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8940 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8941 if (!once_value_5
) {
8942 fra
.me
.REG
[8] = BOX_NativeString(", ");
8944 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
8945 once_value_5
= fra
.me
.REG
[8];
8946 register_static_object(&once_value_5
);
8947 } else fra
.me
.REG
[8] = once_value_5
;
8948 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8949 fra
.me
.REG
[8] = CALL_standard___string___Collection___join(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[8]);
8950 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8951 if (!once_value_6
) {
8952 fra
.me
.REG
[8] = BOX_NativeString(".");
8954 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
8955 once_value_6
= fra
.me
.REG
[8];
8956 register_static_object(&once_value_6
);
8957 } else fra
.me
.REG
[8] = once_value_6
;
8958 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8960 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8961 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
8963 /* ./syntax//typing.nit:1442 */
8964 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[4],fra
.me
.REG
[5]));
8965 if (UNTAG_Bool(REGB0
)) {
8967 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
8970 if (UNTAG_Bool(REGB0
)) {
8971 /* ./syntax//typing.nit:1443 */
8973 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8974 if (!once_value_7
) {
8975 fra
.me
.REG
[8] = BOX_NativeString("Error: Only one super constructor invocation of class ");
8976 REGB0
= TAG_Int(54);
8977 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
8978 once_value_7
= fra
.me
.REG
[8];
8979 register_static_object(&once_value_7
);
8980 } else fra
.me
.REG
[8] = once_value_7
;
8981 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8982 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8983 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8984 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8985 if (!once_value_8
) {
8986 fra
.me
.REG
[8] = BOX_NativeString(" is allowed.");
8987 REGB0
= TAG_Int(12);
8988 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
8989 once_value_8
= fra
.me
.REG
[8];
8990 register_static_object(&once_value_8
);
8991 } else fra
.me
.REG
[8] = once_value_8
;
8992 fra
.me
.REG
[8] = fra
.me
.REG
[8];
8993 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
8994 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8995 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
8997 /* ./../lib/standard//collection//array.nit:232 */
8999 /* ./../lib/standard//collection//array.nit:233 */
9000 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
9001 if (UNTAG_Bool(REGB1
)) {
9003 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
9005 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
9006 /* ./../lib/standard//collection//array.nit:234 */
9007 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
9008 /* ./../lib/standard//collection//array.nit:235 */
9010 /* ./../lib/standard//collection//array.nit:23 */
9011 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
9012 if (UNTAG_Bool(REGB1
)) {
9014 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
9016 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
9017 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
9018 if (UNTAG_Bool(REGB2
)) {
9020 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9022 /* ./../lib/standard//kernel.nit:215 */
9023 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
9024 /* ./../lib/standard//collection//array.nit:235 */
9025 if (UNTAG_Bool(REGB1
)) {
9026 /* ./../lib/standard//collection//array.nit:236 */
9027 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9028 if (UNTAG_Bool(REGB1
)) {
9029 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
9031 /* ./../lib/standard//collection//array.nit:652 */
9032 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
9033 /* ./syntax//typing.nit:1446 */
9034 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[8],fra
.me
.REG
[5]));
9035 if (UNTAG_Bool(REGB1
)) {
9037 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[5]);
9040 if (UNTAG_Bool(REGB1
)) {
9041 /* ./syntax//typing.nit:1447 */
9042 fra
.me
.REG
[5] = NIT_NULL
;
9044 /* ./syntax//typing.nit:1448 */
9045 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[8],fra
.me
.REG
[4]));
9046 if (UNTAG_Bool(REGB1
)) {
9048 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[4]);
9051 if (UNTAG_Bool(REGB1
)) {
9052 /* ./syntax//typing.nit:1449 */
9053 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9054 if (UNTAG_Bool(REGB1
)) {
9056 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9057 if (UNTAG_Bool(REGB2
)) {
9058 REGB2
= TAG_Bool(false);
9061 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9065 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9066 if (UNTAG_Bool(REGB1
)) {
9067 /* ./syntax//typing.nit:1450 */
9069 fra
.me
.REG
[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9070 if (!once_value_9
) {
9071 fra
.me
.REG
[10] = BOX_NativeString("Error: Constructor of ");
9072 REGB1
= TAG_Int(22);
9073 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB1
);
9074 once_value_9
= fra
.me
.REG
[10];
9075 register_static_object(&once_value_9
);
9076 } else fra
.me
.REG
[10] = once_value_9
;
9077 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
9079 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9080 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9081 if (!once_value_10
) {
9082 fra
.me
.REG
[8] = BOX_NativeString(" must be invoked before constructor of ");
9083 REGB1
= TAG_Int(39);
9084 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
9085 once_value_10
= fra
.me
.REG
[8];
9086 register_static_object(&once_value_10
);
9087 } else fra
.me
.REG
[8] = once_value_10
;
9088 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9089 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9090 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9091 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9092 if (!once_value_11
) {
9093 fra
.me
.REG
[8] = BOX_NativeString("");
9095 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
9096 once_value_11
= fra
.me
.REG
[8];
9097 register_static_object(&once_value_11
);
9098 } else fra
.me
.REG
[8] = once_value_11
;
9099 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9100 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9101 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9102 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[9]);
9104 /* ./syntax//typing.nit:1452 */
9105 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
9106 /* ./syntax//typing.nit:1453 */
9110 /* ./../lib/standard//collection//array.nit:237 */
9112 /* ./../lib/standard//kernel.nit:218 */
9113 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
9114 /* ./../lib/standard//collection//array.nit:237 */
9117 /* ./../lib/standard//collection//array.nit:235 */
9126 stack_frame_head
= fra
.me
.prev
;
9129 val_t
syntax___typing___ANewExpr___compute_raw_arguments(val_t p0
){
9130 struct {struct stack_frame_t me
;} fra
;
9132 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9133 fra
.me
.file
= LOCATE_syntax___typing
;
9135 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___compute_raw_arguments
;
9136 fra
.me
.has_broke
= 0;
9137 fra
.me
.REG_size
= 1;
9138 fra
.me
.REG
[0] = NIT_NULL
;
9140 /* ./syntax//typing.nit:1462 */
9141 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ANewExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9142 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9145 stack_frame_head
= fra
.me
.prev
;
9146 return fra
.me
.REG
[0];
9148 void syntax___typing___ANewExpr___after_typing(val_t p0
, val_t p1
){
9149 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
9153 static val_t once_value_2
; /* Once value */
9154 static val_t once_value_3
; /* Once value */
9155 static val_t once_value_4
; /* Once value */
9156 static val_t once_value_5
; /* Once value */
9157 static val_t once_value_6
; /* Once value */
9158 static val_t once_value_7
; /* Once value */
9159 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9160 fra
.me
.file
= LOCATE_syntax___typing
;
9162 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___after_typing
;
9163 fra
.me
.has_broke
= 0;
9164 fra
.me
.REG_size
= 5;
9165 fra
.me
.REG
[0] = NIT_NULL
;
9166 fra
.me
.REG
[1] = NIT_NULL
;
9167 fra
.me
.REG
[2] = NIT_NULL
;
9168 fra
.me
.REG
[3] = NIT_NULL
;
9169 fra
.me
.REG
[4] = NIT_NULL
;
9172 /* ./syntax//typing.nit:1465 */
9173 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9174 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9175 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9176 if (UNTAG_Bool(REGB0
)) {
9179 /* ./syntax//typing.nit:1466 */
9180 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9181 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9182 /* ./syntax//typing.nit:1467 */
9183 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9184 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9185 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9186 if (UNTAG_Bool(REGB0
)) {
9187 /* ./syntax//typing.nit:1468 */
9189 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9190 if (!once_value_2
) {
9191 fra
.me
.REG
[4] = BOX_NativeString("Error: try to instantiate abstract class ");
9192 REGB0
= TAG_Int(41);
9193 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9194 once_value_2
= fra
.me
.REG
[4];
9195 register_static_object(&once_value_2
);
9196 } else fra
.me
.REG
[4] = once_value_2
;
9197 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9198 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9199 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9200 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9201 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9202 if (!once_value_3
) {
9203 fra
.me
.REG
[4] = BOX_NativeString(".");
9205 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9206 once_value_3
= fra
.me
.REG
[4];
9207 register_static_object(&once_value_3
);
9208 } else fra
.me
.REG
[4] = once_value_3
;
9209 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9210 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9211 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9212 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
9213 /* ./syntax//typing.nit:1469 */
9216 /* ./syntax//typing.nit:1472 */
9217 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9218 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9219 if (UNTAG_Bool(REGB0
)) {
9221 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9222 if (UNTAG_Bool(REGB1
)) {
9223 REGB1
= TAG_Bool(false);
9226 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9230 if (UNTAG_Bool(REGB0
)) {
9231 /* ./syntax//typing.nit:1473 */
9232 if (!once_value_4
) {
9233 if (!once_value_5
) {
9234 fra
.me
.REG
[3] = BOX_NativeString("init");
9236 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9237 once_value_5
= fra
.me
.REG
[3];
9238 register_static_object(&once_value_5
);
9239 } else fra
.me
.REG
[3] = once_value_5
;
9240 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9241 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9242 once_value_4
= fra
.me
.REG
[3];
9243 register_static_object(&once_value_4
);
9244 } else fra
.me
.REG
[3] = once_value_4
;
9245 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9247 /* ./syntax//typing.nit:1475 */
9248 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9249 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9250 if (UNTAG_Bool(REGB0
)) {
9251 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1475);
9253 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9254 fra
.me
.REG
[3] = fra
.me
.REG
[4];
9256 /* ./syntax//typing.nit:1478 */
9257 REGB0
= TAG_Bool(false);
9258 REGB1
= TAG_Bool(false);
9259 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9260 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
);
9261 /* ./syntax//typing.nit:1479 */
9262 fra
.me
.REG
[4] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
9263 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9264 if (UNTAG_Bool(REGB1
)) {
9266 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9267 if (UNTAG_Bool(REGB0
)) {
9268 REGB0
= TAG_Bool(false);
9271 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9275 if (UNTAG_Bool(REGB1
)) {
9278 /* ./syntax//typing.nit:1481 */
9279 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9280 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9281 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9282 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9283 if (UNTAG_Bool(REGB1
)) {
9284 /* ./syntax//typing.nit:1482 */
9286 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9287 if (!once_value_6
) {
9288 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
9290 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
9291 once_value_6
= fra
.me
.REG
[3];
9292 register_static_object(&once_value_6
);
9293 } else fra
.me
.REG
[3] = once_value_6
;
9294 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9295 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9296 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9297 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9298 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9299 if (!once_value_7
) {
9300 fra
.me
.REG
[3] = BOX_NativeString(" is not a constructor.");
9301 REGB1
= TAG_Int(22);
9302 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
9303 once_value_7
= fra
.me
.REG
[3];
9304 register_static_object(&once_value_7
);
9305 } else fra
.me
.REG
[3] = once_value_7
;
9306 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9307 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9308 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9309 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9310 /* ./syntax//typing.nit:1483 */
9313 /* ./syntax//typing.nit:1485 */
9314 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9315 /* ./syntax//typing.nit:1486 */
9316 REGB1
= TAG_Bool(true);
9317 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
9319 stack_frame_head
= fra
.me
.prev
;
9322 val_t
syntax___typing___ASendExpr___name(val_t p0
){
9323 struct {struct stack_frame_t me
;} fra
;
9325 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9326 fra
.me
.file
= LOCATE_syntax___typing
;
9328 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___name
;
9329 fra
.me
.has_broke
= 0;
9330 fra
.me
.REG_size
= 0;
9331 /* ./syntax//typing.nit:1492 */
9332 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1492);
9333 stack_frame_head
= fra
.me
.prev
;
9336 val_t
syntax___typing___ASendExpr___closure_defs(val_t p0
){
9337 struct {struct stack_frame_t me
;} fra
;
9339 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9340 fra
.me
.file
= LOCATE_syntax___typing
;
9342 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___closure_defs
;
9343 fra
.me
.has_broke
= 0;
9344 fra
.me
.REG_size
= 1;
9345 fra
.me
.REG
[0] = NIT_NULL
;
9347 /* ./syntax//typing.nit:1496 */
9348 fra
.me
.REG
[0] = NIT_NULL
;
9351 stack_frame_head
= fra
.me
.prev
;
9352 return fra
.me
.REG
[0];
9354 void syntax___typing___ASendExpr___after_typing(val_t p0
, val_t p1
){
9355 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9357 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9358 fra
.me
.file
= LOCATE_syntax___typing
;
9360 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___after_typing
;
9361 fra
.me
.has_broke
= 0;
9362 fra
.me
.REG_size
= 2;
9363 fra
.me
.REG
[0] = NIT_NULL
;
9364 fra
.me
.REG
[1] = NIT_NULL
;
9367 /* ./syntax//typing.nit:1500 */
9368 CALL_syntax___typing___ASendExpr___do_all_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
9369 stack_frame_head
= fra
.me
.prev
;
9372 void syntax___typing___ASendExpr___do_all_typing(val_t p0
, val_t p1
){
9373 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
9377 static val_t once_value_2
; /* Once value */
9378 static val_t once_value_3
; /* Once value */
9379 static val_t once_value_4
; /* Once value */
9380 static val_t once_value_5
; /* Once value */
9381 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9382 fra
.me
.file
= LOCATE_syntax___typing
;
9384 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___do_all_typing
;
9385 fra
.me
.has_broke
= 0;
9386 fra
.me
.REG_size
= 7;
9387 fra
.me
.REG
[0] = NIT_NULL
;
9388 fra
.me
.REG
[1] = NIT_NULL
;
9389 fra
.me
.REG
[2] = NIT_NULL
;
9390 fra
.me
.REG
[3] = NIT_NULL
;
9391 fra
.me
.REG
[4] = NIT_NULL
;
9392 fra
.me
.REG
[5] = NIT_NULL
;
9393 fra
.me
.REG
[6] = NIT_NULL
;
9396 /* ./syntax//typing.nit:1503 */
9397 fra
.me
.REG
[2] = fra
.me
.REG
[0];
9398 /* ./syntax//typing.nit:1505 */
9399 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9400 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
9401 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9402 if (UNTAG_Bool(REGB0
)) {
9405 /* ./syntax//typing.nit:1506 */
9406 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9407 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9408 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9409 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9410 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9411 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9412 fra
.me
.REG
[4] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9413 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9414 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9415 CALL_syntax___typing___AAbsSendExpr___do_typing(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[3], REGB0
, REGB1
, fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
9416 /* ./syntax//typing.nit:1507 */
9417 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
9418 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9419 if (UNTAG_Bool(REGB1
)) {
9421 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9422 if (UNTAG_Bool(REGB0
)) {
9423 REGB0
= TAG_Bool(false);
9426 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9430 if (UNTAG_Bool(REGB1
)) {
9433 /* ./syntax//typing.nit:1508 */
9434 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
9435 REGB1
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
9436 if (UNTAG_Bool(REGB1
)) {
9438 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1508);
9440 /* ./syntax//typing.nit:1510 */
9441 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9442 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9443 if (UNTAG_Bool(REGB1
)) {
9444 /* ./syntax//typing.nit:1511 */
9445 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9446 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9447 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9448 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9449 if (UNTAG_Bool(REGB1
)) {
9450 /* ./syntax//typing.nit:1512 */
9452 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9453 if (!once_value_2
) {
9454 fra
.me
.REG
[5] = BOX_NativeString("Error: try to invoke constructor ");
9455 REGB1
= TAG_Int(33);
9456 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9457 once_value_2
= fra
.me
.REG
[5];
9458 register_static_object(&once_value_2
);
9459 } else fra
.me
.REG
[5] = once_value_2
;
9460 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9461 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
9462 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9463 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
9464 if (!once_value_3
) {
9465 fra
.me
.REG
[5] = BOX_NativeString(" in a method.");
9466 REGB1
= TAG_Int(13);
9467 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9468 once_value_3
= fra
.me
.REG
[5];
9469 register_static_object(&once_value_3
);
9470 } else fra
.me
.REG
[5] = once_value_3
;
9471 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
9473 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9474 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
9476 /* ./syntax//typing.nit:1513 */
9477 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9478 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9479 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9480 if (UNTAG_Bool(REGB1
)) {
9481 /* ./syntax//typing.nit:1514 */
9483 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9484 if (!once_value_4
) {
9485 fra
.me
.REG
[5] = BOX_NativeString("Error: constructor ");
9486 REGB1
= TAG_Int(19);
9487 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9488 once_value_4
= fra
.me
.REG
[5];
9489 register_static_object(&once_value_4
);
9490 } else fra
.me
.REG
[5] = once_value_4
;
9491 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9492 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
9493 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9494 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
9495 if (!once_value_5
) {
9496 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
9497 REGB1
= TAG_Int(26);
9498 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9499 once_value_5
= fra
.me
.REG
[5];
9500 register_static_object(&once_value_5
);
9501 } else fra
.me
.REG
[5] = once_value_5
;
9502 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9503 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
9504 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9505 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
9507 /* ./syntax//typing.nit:1516 */
9508 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[6]);
9512 /* ./syntax//typing.nit:1520 */
9513 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AAbsSendExpr___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9514 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
9515 /* ./syntax//typing.nit:1521 */
9516 REGB1
= TAG_Bool(true);
9517 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB1
;
9519 stack_frame_head
= fra
.me
.prev
;
9522 val_t
syntax___typing___ASendReassignExpr___read_prop(val_t p0
){
9523 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9526 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9527 fra
.me
.file
= LOCATE_syntax___typing
;
9529 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___read_prop
;
9530 fra
.me
.has_broke
= 0;
9531 fra
.me
.REG_size
= 2;
9532 fra
.me
.REG
[0] = NIT_NULL
;
9533 fra
.me
.REG
[1] = NIT_NULL
;
9535 /* ./syntax//typing.nit:1526 */
9536 fra
.me
.REG
[1] = fra
.me
.REG
[0];
9537 fra
.me
.REG
[1] = ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[1]);
9538 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
9539 if (UNTAG_Bool(REGB0
)) {
9541 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1526);
9545 stack_frame_head
= fra
.me
.prev
;
9546 return fra
.me
.REG
[1];
9548 void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0
, val_t p1
){
9549 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
9554 static val_t once_value_2
; /* Once value */
9555 static val_t once_value_3
; /* Once value */
9556 static val_t once_value_4
; /* Once value */
9557 static val_t once_value_5
; /* Once value */
9558 static val_t once_value_6
; /* Once value */
9559 static val_t once_value_7
; /* Once value */
9560 static val_t once_value_8
; /* Once value */
9561 static val_t once_value_9
; /* Once value */
9562 static val_t once_value_10
; /* Once value */
9563 static val_t once_value_11
; /* Once value */
9564 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9565 fra
.me
.file
= LOCATE_syntax___typing
;
9567 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___do_all_typing
;
9568 fra
.me
.has_broke
= 0;
9569 fra
.me
.REG_size
= 7;
9570 fra
.me
.REG
[0] = NIT_NULL
;
9571 fra
.me
.REG
[1] = NIT_NULL
;
9572 fra
.me
.REG
[2] = NIT_NULL
;
9573 fra
.me
.REG
[3] = NIT_NULL
;
9574 fra
.me
.REG
[4] = NIT_NULL
;
9575 fra
.me
.REG
[5] = NIT_NULL
;
9576 fra
.me
.REG
[6] = NIT_NULL
;
9579 /* ./syntax//typing.nit:1528 */
9580 fra
.me
.REG
[2] = fra
.me
.REG
[0];
9581 /* ./syntax//typing.nit:1530 */
9582 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9583 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
9584 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9585 if (UNTAG_Bool(REGB0
)) {
9588 /* ./syntax//typing.nit:1531 */
9589 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9590 /* ./syntax//typing.nit:1532 */
9591 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9592 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9593 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9594 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9595 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9596 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9597 fra
.me
.REG
[5] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9598 CALL_syntax___typing___AAbsSendExpr___do_typing(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[4], REGB0
, REGB1
, fra
.me
.REG
[5], fra
.me
.REG
[3], NIT_NULL
);
9599 /* ./syntax//typing.nit:1533 */
9600 fra
.me
.REG
[5] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
9601 /* ./syntax//typing.nit:1534 */
9602 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9603 if (UNTAG_Bool(REGB1
)) {
9605 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9606 if (UNTAG_Bool(REGB0
)) {
9607 REGB0
= TAG_Bool(false);
9610 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9614 if (UNTAG_Bool(REGB1
)) {
9617 /* ./syntax//typing.nit:1535 */
9618 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9619 if (UNTAG_Bool(REGB1
)) {
9620 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1535);
9622 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9623 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9624 if (UNTAG_Bool(REGB1
)) {
9625 /* ./syntax//typing.nit:1536 */
9626 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9627 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9628 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9629 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9630 if (UNTAG_Bool(REGB1
)) {
9631 /* ./syntax//typing.nit:1537 */
9633 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9634 if (!once_value_2
) {
9635 fra
.me
.REG
[6] = BOX_NativeString("Error: try to invoke constructor ");
9636 REGB1
= TAG_Int(33);
9637 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
9638 once_value_2
= fra
.me
.REG
[6];
9639 register_static_object(&once_value_2
);
9640 } else fra
.me
.REG
[6] = once_value_2
;
9641 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9642 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
9643 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9644 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
9645 if (!once_value_3
) {
9646 fra
.me
.REG
[6] = BOX_NativeString(" in a method.");
9647 REGB1
= TAG_Int(13);
9648 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
9649 once_value_3
= fra
.me
.REG
[6];
9650 register_static_object(&once_value_3
);
9651 } else fra
.me
.REG
[6] = once_value_3
;
9652 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
9654 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9655 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
9657 /* ./syntax//typing.nit:1538 */
9658 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9659 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9660 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9661 if (UNTAG_Bool(REGB1
)) {
9662 /* ./syntax//typing.nit:1539 */
9664 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9665 if (!once_value_4
) {
9666 fra
.me
.REG
[6] = BOX_NativeString("Error: constructor ");
9667 REGB1
= TAG_Int(19);
9668 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
9669 once_value_4
= fra
.me
.REG
[6];
9670 register_static_object(&once_value_4
);
9671 } else fra
.me
.REG
[6] = once_value_4
;
9672 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9673 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
9674 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9675 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
9676 if (!once_value_5
) {
9677 fra
.me
.REG
[6] = BOX_NativeString(" is not invoken on 'self'.");
9678 REGB1
= TAG_Int(26);
9679 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
9680 once_value_5
= fra
.me
.REG
[6];
9681 register_static_object(&once_value_5
);
9682 } else fra
.me
.REG
[6] = once_value_5
;
9683 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9684 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
9685 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9686 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
9690 /* ./syntax//typing.nit:1542 */
9691 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9692 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9693 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9694 if (UNTAG_Bool(REGB1
)) {
9695 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1542);
9697 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9698 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9699 REGB1
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
9700 if (UNTAG_Bool(REGB1
)) {
9702 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1542);
9704 /* ./syntax//typing.nit:1543 */
9705 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9706 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9707 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9708 if (UNTAG_Bool(REGB1
)) {
9709 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9710 fra
.me
.REG
[4] = fra
.me
.REG
[0];
9712 /* ./syntax//typing.nit:1545 */
9713 fra
.me
.REG
[4] = CALL_syntax___typing___AReassignFormExpr___do_rvalue_typing(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[4]);
9714 /* ./syntax//typing.nit:1546 */
9715 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9716 if (UNTAG_Bool(REGB1
)) {
9718 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9719 if (UNTAG_Bool(REGB0
)) {
9720 REGB0
= TAG_Bool(false);
9723 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9727 if (UNTAG_Bool(REGB1
)) {
9730 /* ./syntax//typing.nit:1547 */
9731 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9732 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9733 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4], fra
.me
.REG
[0]);
9734 /* ./syntax//typing.nit:1549 */
9735 ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
9736 /* ./syntax//typing.nit:1550 */
9737 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9738 fra
.me
.REG
[3] = fra
.me
.REG
[0];
9739 /* ./syntax//typing.nit:1551 */
9740 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9741 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
9742 /* ./syntax//typing.nit:1553 */
9743 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9744 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9745 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9746 REGB1
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9747 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9748 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9750 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
9751 if (!once_value_6
) {
9752 fra
.me
.REG
[6] = BOX_NativeString("");
9754 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
9755 once_value_6
= fra
.me
.REG
[6];
9756 register_static_object(&once_value_6
);
9757 } else fra
.me
.REG
[6] = once_value_6
;
9758 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9759 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
9760 fra
.me
.REG
[6] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9761 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9762 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
9763 if (!once_value_7
) {
9764 fra
.me
.REG
[6] = BOX_NativeString("=");
9766 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
9767 once_value_7
= fra
.me
.REG
[6];
9768 register_static_object(&once_value_7
);
9769 } else fra
.me
.REG
[6] = once_value_7
;
9770 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9771 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
9772 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9773 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9774 CALL_syntax___typing___AAbsSendExpr___do_typing(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[0], REGB1
, REGB0
, fra
.me
.REG
[4], fra
.me
.REG
[3], NIT_NULL
);
9775 /* ./syntax//typing.nit:1554 */
9776 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9777 if (UNTAG_Bool(REGB0
)) {
9778 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1554);
9780 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9781 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9782 if (UNTAG_Bool(REGB0
)) {
9783 /* ./syntax//typing.nit:1555 */
9784 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9785 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9786 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9787 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9788 if (UNTAG_Bool(REGB0
)) {
9789 /* ./syntax//typing.nit:1556 */
9791 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9792 if (!once_value_8
) {
9793 fra
.me
.REG
[4] = BOX_NativeString("Error: try to invoke constructor ");
9794 REGB0
= TAG_Int(33);
9795 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9796 once_value_8
= fra
.me
.REG
[4];
9797 register_static_object(&once_value_8
);
9798 } else fra
.me
.REG
[4] = once_value_8
;
9799 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9801 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9802 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9803 if (!once_value_9
) {
9804 fra
.me
.REG
[4] = BOX_NativeString(" in a method.");
9805 REGB0
= TAG_Int(13);
9806 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9807 once_value_9
= fra
.me
.REG
[4];
9808 register_static_object(&once_value_9
);
9809 } else fra
.me
.REG
[4] = once_value_9
;
9810 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9811 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9812 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9813 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
9815 /* ./syntax//typing.nit:1557 */
9816 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9817 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9818 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9819 if (UNTAG_Bool(REGB0
)) {
9820 /* ./syntax//typing.nit:1558 */
9822 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9823 if (!once_value_10
) {
9824 fra
.me
.REG
[4] = BOX_NativeString("Error: constructor ");
9825 REGB0
= TAG_Int(19);
9826 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9827 once_value_10
= fra
.me
.REG
[4];
9828 register_static_object(&once_value_10
);
9829 } else fra
.me
.REG
[4] = once_value_10
;
9830 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9831 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9832 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9833 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9834 if (!once_value_11
) {
9835 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
9836 REGB0
= TAG_Int(26);
9837 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9838 once_value_11
= fra
.me
.REG
[5];
9839 register_static_object(&once_value_11
);
9840 } else fra
.me
.REG
[5] = once_value_11
;
9841 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9842 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9843 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9844 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
9848 /* ./syntax//typing.nit:1562 */
9849 REGB0
= TAG_Bool(true);
9850 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
9852 stack_frame_head
= fra
.me
.prev
;
9855 val_t
syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0
){
9856 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9859 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9860 fra
.me
.file
= LOCATE_syntax___typing
;
9862 fra
.me
.meth
= LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments
;
9863 fra
.me
.has_broke
= 0;
9864 fra
.me
.REG_size
= 2;
9865 fra
.me
.REG
[0] = NIT_NULL
;
9866 fra
.me
.REG
[1] = NIT_NULL
;
9868 /* ./syntax//typing.nit:1567 */
9870 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9871 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9872 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
9875 stack_frame_head
= fra
.me
.prev
;
9876 return fra
.me
.REG
[1];
9878 val_t
syntax___typing___AEqExpr___name(val_t p0
){
9879 struct {struct stack_frame_t me
;} fra
;
9882 static val_t once_value_1
; /* Once value */
9883 static val_t once_value_2
; /* Once value */
9884 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9885 fra
.me
.file
= LOCATE_syntax___typing
;
9887 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___name
;
9888 fra
.me
.has_broke
= 0;
9889 fra
.me
.REG_size
= 1;
9890 fra
.me
.REG
[0] = NIT_NULL
;
9892 /* ./syntax//typing.nit:1570 */
9893 if (!once_value_1
) {
9894 if (!once_value_2
) {
9895 fra
.me
.REG
[0] = BOX_NativeString("==");
9897 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
9898 once_value_2
= fra
.me
.REG
[0];
9899 register_static_object(&once_value_2
);
9900 } else fra
.me
.REG
[0] = once_value_2
;
9901 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9902 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9903 once_value_1
= fra
.me
.REG
[0];
9904 register_static_object(&once_value_1
);
9905 } else fra
.me
.REG
[0] = once_value_1
;
9906 fra
.me
.REG
[0] = fra
.me
.REG
[0];
9909 stack_frame_head
= fra
.me
.prev
;
9910 return fra
.me
.REG
[0];
9912 void syntax___typing___AEqExpr___after_typing(val_t p0
, val_t p1
){
9913 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
9917 static val_t once_value_2
; /* Once value */
9918 static val_t once_value_3
; /* Once value */
9919 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9920 fra
.me
.file
= LOCATE_syntax___typing
;
9922 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___after_typing
;
9923 fra
.me
.has_broke
= 0;
9924 fra
.me
.REG_size
= 4;
9925 fra
.me
.REG
[0] = NIT_NULL
;
9926 fra
.me
.REG
[1] = NIT_NULL
;
9927 fra
.me
.REG
[2] = NIT_NULL
;
9928 fra
.me
.REG
[3] = NIT_NULL
;
9931 /* ./syntax//typing.nit:1571 */
9932 fra
.me
.REG
[2] = fra
.me
.REG
[0];
9933 fra
.me
.REG
[3] = fra
.me
.REG
[1];
9934 /* ./syntax//typing.nit:1573 */
9935 CALL_SUPER_syntax___typing___AEqExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
9936 /* ./syntax//typing.nit:1574 */
9937 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9938 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9939 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9940 if (UNTAG_Bool(REGB0
)) {
9941 REGB0
= TAG_Bool(true);
9943 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9944 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9945 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9948 if (UNTAG_Bool(REGB0
)) {
9951 /* ./syntax//typing.nit:1575 */
9952 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9953 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9954 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
9955 if (UNTAG_Bool(REGB0
)) {
9956 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9957 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9958 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9959 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9961 REGB1
= TAG_Bool(false);
9964 if (UNTAG_Bool(REGB0
)) {
9965 REGB0
= TAG_Bool(true);
9967 /* ./syntax//typing.nit:1576 */
9968 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9969 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9970 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
9971 /* ./syntax//typing.nit:1575 */
9974 if (UNTAG_Bool(REGB0
)) {
9975 /* ./syntax//typing.nit:1576 */
9976 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9977 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9978 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9979 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9981 /* ./syntax//typing.nit:1575 */
9982 REGB1
= TAG_Bool(false);
9985 if (UNTAG_Bool(REGB0
)) {
9986 /* ./syntax//typing.nit:1577 */
9987 if (!once_value_2
) {
9988 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
9989 REGB0
= TAG_Int(59);
9990 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
9991 once_value_2
= fra
.me
.REG
[1];
9992 register_static_object(&once_value_2
);
9993 } else fra
.me
.REG
[1] = once_value_2
;
9994 fra
.me
.REG
[1] = fra
.me
.REG
[1];
9995 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
9997 /* ./syntax//typing.nit:1580 */
9998 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9999 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10000 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10001 if (UNTAG_Bool(REGB0
)) {
10002 /* ./syntax//typing.nit:1581 */
10003 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10004 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10005 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10006 if (UNTAG_Bool(REGB0
)) {
10007 /* ./syntax//typing.nit:1582 */
10008 if (!once_value_3
) {
10009 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
10010 REGB0
= TAG_Int(43);
10011 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10012 once_value_3
= fra
.me
.REG
[1];
10013 register_static_object(&once_value_3
);
10014 } else fra
.me
.REG
[1] = once_value_3
;
10015 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10016 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10018 /* ./syntax//typing.nit:1584 */
10019 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10020 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10023 /* ./syntax//typing.nit:1586 */
10024 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10025 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10026 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10027 if (UNTAG_Bool(REGB0
)) {
10028 /* ./syntax//typing.nit:1587 */
10029 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10030 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10034 stack_frame_head
= fra
.me
.prev
;
10037 void syntax___typing___AEqExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
10038 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10042 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10043 fra
.me
.file
= LOCATE_syntax___typing
;
10044 fra
.me
.line
= 1591;
10045 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___try_to_isa
;
10046 fra
.me
.has_broke
= 0;
10047 fra
.me
.REG_size
= 5;
10048 fra
.me
.REG
[0] = NIT_NULL
;
10049 fra
.me
.REG
[1] = NIT_NULL
;
10050 fra
.me
.REG
[2] = NIT_NULL
;
10051 fra
.me
.REG
[3] = NIT_NULL
;
10052 fra
.me
.REG
[4] = NIT_NULL
;
10053 fra
.me
.REG
[0] = p0
;
10054 fra
.me
.REG
[1] = p1
;
10055 fra
.me
.REG
[2] = p2
;
10056 /* ./syntax//typing.nit:1593 */
10057 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10058 /* ./syntax//typing.nit:1594 */
10059 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10060 if (UNTAG_Bool(REGB0
)) {
10062 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10063 if (UNTAG_Bool(REGB1
)) {
10064 REGB1
= TAG_Bool(false);
10067 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10071 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10072 if (UNTAG_Bool(REGB0
)) {
10073 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10074 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
10076 REGB1
= TAG_Bool(false);
10079 if (UNTAG_Bool(REGB0
)) {
10080 /* ./syntax//typing.nit:1595 */
10081 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10082 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10083 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10084 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]);
10085 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10086 /* ./syntax//typing.nit:1596 */
10087 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10088 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10089 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]);
10090 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
10092 stack_frame_head
= fra
.me
.prev
;
10095 val_t
syntax___typing___ANeExpr___name(val_t p0
){
10096 struct {struct stack_frame_t me
;} fra
;
10099 static val_t once_value_1
; /* Once value */
10100 static val_t once_value_2
; /* Once value */
10101 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10102 fra
.me
.file
= LOCATE_syntax___typing
;
10103 fra
.me
.line
= 1601;
10104 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___name
;
10105 fra
.me
.has_broke
= 0;
10106 fra
.me
.REG_size
= 1;
10107 fra
.me
.REG
[0] = NIT_NULL
;
10108 fra
.me
.REG
[0] = p0
;
10109 /* ./syntax//typing.nit:1601 */
10110 if (!once_value_1
) {
10111 if (!once_value_2
) {
10112 fra
.me
.REG
[0] = BOX_NativeString("!=");
10113 REGB0
= TAG_Int(2);
10114 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10115 once_value_2
= fra
.me
.REG
[0];
10116 register_static_object(&once_value_2
);
10117 } else fra
.me
.REG
[0] = once_value_2
;
10118 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10119 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10120 once_value_1
= fra
.me
.REG
[0];
10121 register_static_object(&once_value_1
);
10122 } else fra
.me
.REG
[0] = once_value_1
;
10123 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10126 stack_frame_head
= fra
.me
.prev
;
10127 return fra
.me
.REG
[0];
10129 void syntax___typing___ANeExpr___after_typing(val_t p0
, val_t p1
){
10130 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
10134 static val_t once_value_2
; /* Once value */
10135 static val_t once_value_3
; /* Once value */
10136 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10137 fra
.me
.file
= LOCATE_syntax___typing
;
10138 fra
.me
.line
= 1602;
10139 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___after_typing
;
10140 fra
.me
.has_broke
= 0;
10141 fra
.me
.REG_size
= 4;
10142 fra
.me
.REG
[0] = NIT_NULL
;
10143 fra
.me
.REG
[1] = NIT_NULL
;
10144 fra
.me
.REG
[2] = NIT_NULL
;
10145 fra
.me
.REG
[3] = NIT_NULL
;
10146 fra
.me
.REG
[0] = p0
;
10147 fra
.me
.REG
[1] = p1
;
10148 /* ./syntax//typing.nit:1602 */
10149 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10150 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10151 /* ./syntax//typing.nit:1604 */
10152 CALL_SUPER_syntax___typing___ANeExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10153 /* ./syntax//typing.nit:1605 */
10154 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10155 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10156 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10157 if (UNTAG_Bool(REGB0
)) {
10158 REGB0
= TAG_Bool(true);
10160 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10161 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10162 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10165 if (UNTAG_Bool(REGB0
)) {
10168 /* ./syntax//typing.nit:1606 */
10169 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10170 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10171 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10172 if (UNTAG_Bool(REGB0
)) {
10173 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10174 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10175 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10176 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10178 REGB1
= TAG_Bool(false);
10181 if (UNTAG_Bool(REGB0
)) {
10182 REGB0
= TAG_Bool(true);
10184 /* ./syntax//typing.nit:1607 */
10185 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10186 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10187 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10188 /* ./syntax//typing.nit:1606 */
10191 if (UNTAG_Bool(REGB0
)) {
10192 /* ./syntax//typing.nit:1607 */
10193 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10194 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10195 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10196 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10198 /* ./syntax//typing.nit:1606 */
10199 REGB1
= TAG_Bool(false);
10202 if (UNTAG_Bool(REGB0
)) {
10203 /* ./syntax//typing.nit:1608 */
10204 if (!once_value_2
) {
10205 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
10206 REGB0
= TAG_Int(59);
10207 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10208 once_value_2
= fra
.me
.REG
[1];
10209 register_static_object(&once_value_2
);
10210 } else fra
.me
.REG
[1] = once_value_2
;
10211 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10212 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10214 /* ./syntax//typing.nit:1611 */
10215 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10216 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10217 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10218 if (UNTAG_Bool(REGB0
)) {
10219 /* ./syntax//typing.nit:1612 */
10220 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10221 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10222 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10223 if (UNTAG_Bool(REGB0
)) {
10224 /* ./syntax//typing.nit:1613 */
10225 if (!once_value_3
) {
10226 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
10227 REGB0
= TAG_Int(43);
10228 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10229 once_value_3
= fra
.me
.REG
[1];
10230 register_static_object(&once_value_3
);
10231 } else fra
.me
.REG
[1] = once_value_3
;
10232 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10233 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10235 /* ./syntax//typing.nit:1615 */
10236 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10237 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10240 /* ./syntax//typing.nit:1617 */
10241 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10242 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10243 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10244 if (UNTAG_Bool(REGB0
)) {
10245 /* ./syntax//typing.nit:1618 */
10246 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10247 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10251 stack_frame_head
= fra
.me
.prev
;
10254 void syntax___typing___ANeExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
10255 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10259 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10260 fra
.me
.file
= LOCATE_syntax___typing
;
10261 fra
.me
.line
= 1622;
10262 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___try_to_isa
;
10263 fra
.me
.has_broke
= 0;
10264 fra
.me
.REG_size
= 5;
10265 fra
.me
.REG
[0] = NIT_NULL
;
10266 fra
.me
.REG
[1] = NIT_NULL
;
10267 fra
.me
.REG
[2] = NIT_NULL
;
10268 fra
.me
.REG
[3] = NIT_NULL
;
10269 fra
.me
.REG
[4] = NIT_NULL
;
10270 fra
.me
.REG
[0] = p0
;
10271 fra
.me
.REG
[1] = p1
;
10272 fra
.me
.REG
[2] = p2
;
10273 /* ./syntax//typing.nit:1624 */
10274 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10275 /* ./syntax//typing.nit:1625 */
10276 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10277 if (UNTAG_Bool(REGB0
)) {
10279 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10280 if (UNTAG_Bool(REGB1
)) {
10281 REGB1
= TAG_Bool(false);
10284 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10288 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10289 if (UNTAG_Bool(REGB0
)) {
10290 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10291 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
10293 REGB1
= TAG_Bool(false);
10296 if (UNTAG_Bool(REGB0
)) {
10297 /* ./syntax//typing.nit:1626 */
10298 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10299 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10300 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10301 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]);
10302 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10303 /* ./syntax//typing.nit:1627 */
10304 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10305 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10306 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]);
10307 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
10309 stack_frame_head
= fra
.me
.prev
;
10312 val_t
syntax___typing___ALtExpr___name(val_t p0
){
10313 struct {struct stack_frame_t me
;} fra
;
10316 static val_t once_value_1
; /* Once value */
10317 static val_t once_value_2
; /* Once value */
10318 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10319 fra
.me
.file
= LOCATE_syntax___typing
;
10320 fra
.me
.line
= 1632;
10321 fra
.me
.meth
= LOCATE_syntax___typing___ALtExpr___name
;
10322 fra
.me
.has_broke
= 0;
10323 fra
.me
.REG_size
= 1;
10324 fra
.me
.REG
[0] = NIT_NULL
;
10325 fra
.me
.REG
[0] = p0
;
10326 /* ./syntax//typing.nit:1632 */
10327 if (!once_value_1
) {
10328 if (!once_value_2
) {
10329 fra
.me
.REG
[0] = BOX_NativeString("<");
10330 REGB0
= TAG_Int(1);
10331 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10332 once_value_2
= fra
.me
.REG
[0];
10333 register_static_object(&once_value_2
);
10334 } else fra
.me
.REG
[0] = once_value_2
;
10335 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10336 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10337 once_value_1
= fra
.me
.REG
[0];
10338 register_static_object(&once_value_1
);
10339 } else fra
.me
.REG
[0] = once_value_1
;
10340 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10343 stack_frame_head
= fra
.me
.prev
;
10344 return fra
.me
.REG
[0];
10346 val_t
syntax___typing___ALeExpr___name(val_t p0
){
10347 struct {struct stack_frame_t me
;} fra
;
10350 static val_t once_value_1
; /* Once value */
10351 static val_t once_value_2
; /* Once value */
10352 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10353 fra
.me
.file
= LOCATE_syntax___typing
;
10354 fra
.me
.line
= 1635;
10355 fra
.me
.meth
= LOCATE_syntax___typing___ALeExpr___name
;
10356 fra
.me
.has_broke
= 0;
10357 fra
.me
.REG_size
= 1;
10358 fra
.me
.REG
[0] = NIT_NULL
;
10359 fra
.me
.REG
[0] = p0
;
10360 /* ./syntax//typing.nit:1635 */
10361 if (!once_value_1
) {
10362 if (!once_value_2
) {
10363 fra
.me
.REG
[0] = BOX_NativeString("<=");
10364 REGB0
= TAG_Int(2);
10365 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10366 once_value_2
= fra
.me
.REG
[0];
10367 register_static_object(&once_value_2
);
10368 } else fra
.me
.REG
[0] = once_value_2
;
10369 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10370 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10371 once_value_1
= fra
.me
.REG
[0];
10372 register_static_object(&once_value_1
);
10373 } else fra
.me
.REG
[0] = once_value_1
;
10374 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10377 stack_frame_head
= fra
.me
.prev
;
10378 return fra
.me
.REG
[0];
10380 val_t
syntax___typing___ALlExpr___name(val_t p0
){
10381 struct {struct stack_frame_t me
;} fra
;
10384 static val_t once_value_1
; /* Once value */
10385 static val_t once_value_2
; /* Once value */
10386 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10387 fra
.me
.file
= LOCATE_syntax___typing
;
10388 fra
.me
.line
= 1638;
10389 fra
.me
.meth
= LOCATE_syntax___typing___ALlExpr___name
;
10390 fra
.me
.has_broke
= 0;
10391 fra
.me
.REG_size
= 1;
10392 fra
.me
.REG
[0] = NIT_NULL
;
10393 fra
.me
.REG
[0] = p0
;
10394 /* ./syntax//typing.nit:1638 */
10395 if (!once_value_1
) {
10396 if (!once_value_2
) {
10397 fra
.me
.REG
[0] = BOX_NativeString("<<");
10398 REGB0
= TAG_Int(2);
10399 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10400 once_value_2
= fra
.me
.REG
[0];
10401 register_static_object(&once_value_2
);
10402 } else fra
.me
.REG
[0] = once_value_2
;
10403 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10404 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10405 once_value_1
= fra
.me
.REG
[0];
10406 register_static_object(&once_value_1
);
10407 } else fra
.me
.REG
[0] = once_value_1
;
10408 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10411 stack_frame_head
= fra
.me
.prev
;
10412 return fra
.me
.REG
[0];
10414 val_t
syntax___typing___AGtExpr___name(val_t p0
){
10415 struct {struct stack_frame_t me
;} fra
;
10418 static val_t once_value_1
; /* Once value */
10419 static val_t once_value_2
; /* Once value */
10420 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10421 fra
.me
.file
= LOCATE_syntax___typing
;
10422 fra
.me
.line
= 1641;
10423 fra
.me
.meth
= LOCATE_syntax___typing___AGtExpr___name
;
10424 fra
.me
.has_broke
= 0;
10425 fra
.me
.REG_size
= 1;
10426 fra
.me
.REG
[0] = NIT_NULL
;
10427 fra
.me
.REG
[0] = p0
;
10428 /* ./syntax//typing.nit:1641 */
10429 if (!once_value_1
) {
10430 if (!once_value_2
) {
10431 fra
.me
.REG
[0] = BOX_NativeString(">");
10432 REGB0
= TAG_Int(1);
10433 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10434 once_value_2
= fra
.me
.REG
[0];
10435 register_static_object(&once_value_2
);
10436 } else fra
.me
.REG
[0] = once_value_2
;
10437 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10438 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10439 once_value_1
= fra
.me
.REG
[0];
10440 register_static_object(&once_value_1
);
10441 } else fra
.me
.REG
[0] = once_value_1
;
10442 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10445 stack_frame_head
= fra
.me
.prev
;
10446 return fra
.me
.REG
[0];
10448 val_t
syntax___typing___AGeExpr___name(val_t p0
){
10449 struct {struct stack_frame_t me
;} fra
;
10452 static val_t once_value_1
; /* Once value */
10453 static val_t once_value_2
; /* Once value */
10454 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10455 fra
.me
.file
= LOCATE_syntax___typing
;
10456 fra
.me
.line
= 1644;
10457 fra
.me
.meth
= LOCATE_syntax___typing___AGeExpr___name
;
10458 fra
.me
.has_broke
= 0;
10459 fra
.me
.REG_size
= 1;
10460 fra
.me
.REG
[0] = NIT_NULL
;
10461 fra
.me
.REG
[0] = p0
;
10462 /* ./syntax//typing.nit:1644 */
10463 if (!once_value_1
) {
10464 if (!once_value_2
) {
10465 fra
.me
.REG
[0] = BOX_NativeString(">=");
10466 REGB0
= TAG_Int(2);
10467 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10468 once_value_2
= fra
.me
.REG
[0];
10469 register_static_object(&once_value_2
);
10470 } else fra
.me
.REG
[0] = once_value_2
;
10471 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10472 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10473 once_value_1
= fra
.me
.REG
[0];
10474 register_static_object(&once_value_1
);
10475 } else fra
.me
.REG
[0] = once_value_1
;
10476 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10479 stack_frame_head
= fra
.me
.prev
;
10480 return fra
.me
.REG
[0];
10482 val_t
syntax___typing___AGgExpr___name(val_t p0
){
10483 struct {struct stack_frame_t me
;} fra
;
10486 static val_t once_value_1
; /* Once value */
10487 static val_t once_value_2
; /* Once value */
10488 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10489 fra
.me
.file
= LOCATE_syntax___typing
;
10490 fra
.me
.line
= 1647;
10491 fra
.me
.meth
= LOCATE_syntax___typing___AGgExpr___name
;
10492 fra
.me
.has_broke
= 0;
10493 fra
.me
.REG_size
= 1;
10494 fra
.me
.REG
[0] = NIT_NULL
;
10495 fra
.me
.REG
[0] = p0
;
10496 /* ./syntax//typing.nit:1647 */
10497 if (!once_value_1
) {
10498 if (!once_value_2
) {
10499 fra
.me
.REG
[0] = BOX_NativeString(">>");
10500 REGB0
= TAG_Int(2);
10501 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10502 once_value_2
= fra
.me
.REG
[0];
10503 register_static_object(&once_value_2
);
10504 } else fra
.me
.REG
[0] = once_value_2
;
10505 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10506 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10507 once_value_1
= fra
.me
.REG
[0];
10508 register_static_object(&once_value_1
);
10509 } else fra
.me
.REG
[0] = once_value_1
;
10510 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10513 stack_frame_head
= fra
.me
.prev
;
10514 return fra
.me
.REG
[0];
10516 val_t
syntax___typing___APlusExpr___name(val_t p0
){
10517 struct {struct stack_frame_t me
;} fra
;
10520 static val_t once_value_1
; /* Once value */
10521 static val_t once_value_2
; /* Once value */
10522 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10523 fra
.me
.file
= LOCATE_syntax___typing
;
10524 fra
.me
.line
= 1650;
10525 fra
.me
.meth
= LOCATE_syntax___typing___APlusExpr___name
;
10526 fra
.me
.has_broke
= 0;
10527 fra
.me
.REG_size
= 1;
10528 fra
.me
.REG
[0] = NIT_NULL
;
10529 fra
.me
.REG
[0] = p0
;
10530 /* ./syntax//typing.nit:1650 */
10531 if (!once_value_1
) {
10532 if (!once_value_2
) {
10533 fra
.me
.REG
[0] = BOX_NativeString("+");
10534 REGB0
= TAG_Int(1);
10535 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10536 once_value_2
= fra
.me
.REG
[0];
10537 register_static_object(&once_value_2
);
10538 } else fra
.me
.REG
[0] = once_value_2
;
10539 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10540 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10541 once_value_1
= fra
.me
.REG
[0];
10542 register_static_object(&once_value_1
);
10543 } else fra
.me
.REG
[0] = once_value_1
;
10544 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10547 stack_frame_head
= fra
.me
.prev
;
10548 return fra
.me
.REG
[0];
10550 val_t
syntax___typing___AMinusExpr___name(val_t p0
){
10551 struct {struct stack_frame_t me
;} fra
;
10554 static val_t once_value_1
; /* Once value */
10555 static val_t once_value_2
; /* Once value */
10556 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10557 fra
.me
.file
= LOCATE_syntax___typing
;
10558 fra
.me
.line
= 1653;
10559 fra
.me
.meth
= LOCATE_syntax___typing___AMinusExpr___name
;
10560 fra
.me
.has_broke
= 0;
10561 fra
.me
.REG_size
= 1;
10562 fra
.me
.REG
[0] = NIT_NULL
;
10563 fra
.me
.REG
[0] = p0
;
10564 /* ./syntax//typing.nit:1653 */
10565 if (!once_value_1
) {
10566 if (!once_value_2
) {
10567 fra
.me
.REG
[0] = BOX_NativeString("-");
10568 REGB0
= TAG_Int(1);
10569 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10570 once_value_2
= fra
.me
.REG
[0];
10571 register_static_object(&once_value_2
);
10572 } else fra
.me
.REG
[0] = once_value_2
;
10573 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10574 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10575 once_value_1
= fra
.me
.REG
[0];
10576 register_static_object(&once_value_1
);
10577 } else fra
.me
.REG
[0] = once_value_1
;
10578 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10581 stack_frame_head
= fra
.me
.prev
;
10582 return fra
.me
.REG
[0];
10584 val_t
syntax___typing___AStarshipExpr___name(val_t p0
){
10585 struct {struct stack_frame_t me
;} fra
;
10588 static val_t once_value_1
; /* Once value */
10589 static val_t once_value_2
; /* Once value */
10590 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10591 fra
.me
.file
= LOCATE_syntax___typing
;
10592 fra
.me
.line
= 1656;
10593 fra
.me
.meth
= LOCATE_syntax___typing___AStarshipExpr___name
;
10594 fra
.me
.has_broke
= 0;
10595 fra
.me
.REG_size
= 1;
10596 fra
.me
.REG
[0] = NIT_NULL
;
10597 fra
.me
.REG
[0] = p0
;
10598 /* ./syntax//typing.nit:1656 */
10599 if (!once_value_1
) {
10600 if (!once_value_2
) {
10601 fra
.me
.REG
[0] = BOX_NativeString("<=>");
10602 REGB0
= TAG_Int(3);
10603 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10604 once_value_2
= fra
.me
.REG
[0];
10605 register_static_object(&once_value_2
);
10606 } else fra
.me
.REG
[0] = once_value_2
;
10607 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10608 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10609 once_value_1
= fra
.me
.REG
[0];
10610 register_static_object(&once_value_1
);
10611 } else fra
.me
.REG
[0] = once_value_1
;
10612 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10615 stack_frame_head
= fra
.me
.prev
;
10616 return fra
.me
.REG
[0];
10618 val_t
syntax___typing___AStarExpr___name(val_t p0
){
10619 struct {struct stack_frame_t me
;} fra
;
10622 static val_t once_value_1
; /* Once value */
10623 static val_t once_value_2
; /* Once value */
10624 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10625 fra
.me
.file
= LOCATE_syntax___typing
;
10626 fra
.me
.line
= 1659;
10627 fra
.me
.meth
= LOCATE_syntax___typing___AStarExpr___name
;
10628 fra
.me
.has_broke
= 0;
10629 fra
.me
.REG_size
= 1;
10630 fra
.me
.REG
[0] = NIT_NULL
;
10631 fra
.me
.REG
[0] = p0
;
10632 /* ./syntax//typing.nit:1659 */
10633 if (!once_value_1
) {
10634 if (!once_value_2
) {
10635 fra
.me
.REG
[0] = BOX_NativeString("*");
10636 REGB0
= TAG_Int(1);
10637 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10638 once_value_2
= fra
.me
.REG
[0];
10639 register_static_object(&once_value_2
);
10640 } else fra
.me
.REG
[0] = once_value_2
;
10641 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10642 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10643 once_value_1
= fra
.me
.REG
[0];
10644 register_static_object(&once_value_1
);
10645 } else fra
.me
.REG
[0] = once_value_1
;
10646 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10649 stack_frame_head
= fra
.me
.prev
;
10650 return fra
.me
.REG
[0];
10652 val_t
syntax___typing___ASlashExpr___name(val_t p0
){
10653 struct {struct stack_frame_t me
;} fra
;
10656 static val_t once_value_1
; /* Once value */
10657 static val_t once_value_2
; /* Once value */
10658 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10659 fra
.me
.file
= LOCATE_syntax___typing
;
10660 fra
.me
.line
= 1662;
10661 fra
.me
.meth
= LOCATE_syntax___typing___ASlashExpr___name
;
10662 fra
.me
.has_broke
= 0;
10663 fra
.me
.REG_size
= 1;
10664 fra
.me
.REG
[0] = NIT_NULL
;
10665 fra
.me
.REG
[0] = p0
;
10666 /* ./syntax//typing.nit:1662 */
10667 if (!once_value_1
) {
10668 if (!once_value_2
) {
10669 fra
.me
.REG
[0] = BOX_NativeString("/");
10670 REGB0
= TAG_Int(1);
10671 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10672 once_value_2
= fra
.me
.REG
[0];
10673 register_static_object(&once_value_2
);
10674 } else fra
.me
.REG
[0] = once_value_2
;
10675 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10676 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10677 once_value_1
= fra
.me
.REG
[0];
10678 register_static_object(&once_value_1
);
10679 } else fra
.me
.REG
[0] = once_value_1
;
10680 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10683 stack_frame_head
= fra
.me
.prev
;
10684 return fra
.me
.REG
[0];
10686 val_t
syntax___typing___APercentExpr___name(val_t p0
){
10687 struct {struct stack_frame_t me
;} fra
;
10690 static val_t once_value_1
; /* Once value */
10691 static val_t once_value_2
; /* Once value */
10692 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10693 fra
.me
.file
= LOCATE_syntax___typing
;
10694 fra
.me
.line
= 1665;
10695 fra
.me
.meth
= LOCATE_syntax___typing___APercentExpr___name
;
10696 fra
.me
.has_broke
= 0;
10697 fra
.me
.REG_size
= 1;
10698 fra
.me
.REG
[0] = NIT_NULL
;
10699 fra
.me
.REG
[0] = p0
;
10700 /* ./syntax//typing.nit:1665 */
10701 if (!once_value_1
) {
10702 if (!once_value_2
) {
10703 fra
.me
.REG
[0] = BOX_NativeString("%");
10704 REGB0
= TAG_Int(1);
10705 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10706 once_value_2
= fra
.me
.REG
[0];
10707 register_static_object(&once_value_2
);
10708 } else fra
.me
.REG
[0] = once_value_2
;
10709 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10710 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10711 once_value_1
= fra
.me
.REG
[0];
10712 register_static_object(&once_value_1
);
10713 } else fra
.me
.REG
[0] = once_value_1
;
10714 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10717 stack_frame_head
= fra
.me
.prev
;
10718 return fra
.me
.REG
[0];
10720 val_t
syntax___typing___AUminusExpr___name(val_t p0
){
10721 struct {struct stack_frame_t me
;} fra
;
10724 static val_t once_value_1
; /* Once value */
10725 static val_t once_value_2
; /* Once value */
10726 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10727 fra
.me
.file
= LOCATE_syntax___typing
;
10728 fra
.me
.line
= 1669;
10729 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___name
;
10730 fra
.me
.has_broke
= 0;
10731 fra
.me
.REG_size
= 1;
10732 fra
.me
.REG
[0] = NIT_NULL
;
10733 fra
.me
.REG
[0] = p0
;
10734 /* ./syntax//typing.nit:1669 */
10735 if (!once_value_1
) {
10736 if (!once_value_2
) {
10737 fra
.me
.REG
[0] = BOX_NativeString("unary -");
10738 REGB0
= TAG_Int(7);
10739 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10740 once_value_2
= fra
.me
.REG
[0];
10741 register_static_object(&once_value_2
);
10742 } else fra
.me
.REG
[0] = once_value_2
;
10743 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10744 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10745 once_value_1
= fra
.me
.REG
[0];
10746 register_static_object(&once_value_1
);
10747 } else fra
.me
.REG
[0] = once_value_1
;
10748 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10751 stack_frame_head
= fra
.me
.prev
;
10752 return fra
.me
.REG
[0];
10754 val_t
syntax___typing___AUminusExpr___compute_raw_arguments(val_t p0
){
10755 struct {struct stack_frame_t me
;} fra
;
10757 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10758 fra
.me
.file
= LOCATE_syntax___typing
;
10759 fra
.me
.line
= 1670;
10760 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments
;
10761 fra
.me
.has_broke
= 0;
10762 fra
.me
.REG_size
= 1;
10763 fra
.me
.REG
[0] = NIT_NULL
;
10764 fra
.me
.REG
[0] = p0
;
10765 /* ./syntax//typing.nit:1670 */
10766 fra
.me
.REG
[0] = NIT_NULL
;
10769 stack_frame_head
= fra
.me
.prev
;
10770 return fra
.me
.REG
[0];
10772 void syntax___typing___ACallFormExpr___after_typing(val_t p0
, val_t p1
){
10773 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
10777 static val_t once_value_1
; /* Once value */
10778 static val_t once_value_2
; /* Once value */
10779 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10780 fra
.me
.file
= LOCATE_syntax___typing
;
10781 fra
.me
.line
= 1674;
10782 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___after_typing
;
10783 fra
.me
.has_broke
= 0;
10784 fra
.me
.REG_size
= 9;
10785 fra
.me
.REG
[0] = NIT_NULL
;
10786 fra
.me
.REG
[1] = NIT_NULL
;
10787 fra
.me
.REG
[2] = NIT_NULL
;
10788 fra
.me
.REG
[3] = NIT_NULL
;
10789 fra
.me
.REG
[4] = NIT_NULL
;
10790 fra
.me
.REG
[5] = NIT_NULL
;
10791 fra
.me
.REG
[6] = NIT_NULL
;
10792 fra
.me
.REG
[7] = NIT_NULL
;
10793 fra
.me
.REG
[8] = NIT_NULL
;
10794 fra
.me
.REG
[0] = p0
;
10795 fra
.me
.REG
[1] = p1
;
10796 /* ./syntax//typing.nit:1674 */
10797 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10798 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10799 /* ./syntax//typing.nit:1676 */
10800 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10801 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10802 if (UNTAG_Bool(REGB0
)) {
10803 /* ./syntax//typing.nit:1677 */
10804 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10805 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10806 /* ./syntax//typing.nit:1678 */
10807 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10808 fra
.me
.REG
[5] = CALL_syntax___scope___ScopeContext_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10809 /* ./syntax//typing.nit:1679 */
10810 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10811 if (UNTAG_Bool(REGB0
)) {
10813 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10814 if (UNTAG_Bool(REGB1
)) {
10815 REGB1
= TAG_Bool(false);
10818 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
10822 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10823 if (UNTAG_Bool(REGB0
)) {
10824 /* ./syntax//typing.nit:1681 */
10825 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*/;
10826 if (UNTAG_Bool(REGB0
)) {
10827 /* ./syntax//typing.nit:1682 */
10828 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10829 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10830 fra
.me
.REG
[8] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10831 fra
.me
.REG
[8] = NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
10832 /* ./syntax//typing.nit:1683 */
10833 ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
10835 /* ./syntax//typing.nit:1685 */
10836 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10837 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10838 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10839 if (UNTAG_Bool(REGB0
)) {
10840 /* ./syntax//typing.nit:1686 */
10841 REGB0
= TAG_Int(3);
10842 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10843 if (!once_value_1
) {
10844 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
10845 REGB0
= TAG_Int(7);
10846 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
10847 once_value_1
= fra
.me
.REG
[6];
10848 register_static_object(&once_value_1
);
10849 } else fra
.me
.REG
[6] = once_value_1
;
10850 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
10852 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10853 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
10854 if (!once_value_2
) {
10855 fra
.me
.REG
[4] = BOX_NativeString(" is variable, not a function.");
10856 REGB0
= TAG_Int(29);
10857 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10858 once_value_2
= fra
.me
.REG
[4];
10859 register_static_object(&once_value_2
);
10860 } else fra
.me
.REG
[4] = once_value_2
;
10861 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
10863 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10864 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
10865 /* ./syntax//typing.nit:1687 */
10868 /* ./syntax//typing.nit:1689 */
10869 fra
.me
.REG
[7] = CALL_syntax___typing___ACallFormExpr___variable_create(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
10870 fra
.me
.REG
[8] = fra
.me
.REG
[7];
10871 /* ./syntax//typing.nit:1690 */
10872 ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
10874 /* ./syntax//typing.nit:1692 */
10875 CALL_parser___parser_prod___ANode___replace_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
10876 /* ./syntax//typing.nit:1693 */
10877 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
10878 /* ./syntax//typing.nit:1694 */
10882 /* ./syntax//typing.nit:1698 */
10883 CALL_SUPER_syntax___typing___ACallFormExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10885 stack_frame_head
= fra
.me
.prev
;
10888 val_t
syntax___typing___ACallFormExpr___closure_defs(val_t p0
){
10889 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10892 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10893 fra
.me
.file
= LOCATE_syntax___typing
;
10894 fra
.me
.line
= 1701;
10895 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___closure_defs
;
10896 fra
.me
.has_broke
= 0;
10897 fra
.me
.REG_size
= 2;
10898 fra
.me
.REG
[0] = NIT_NULL
;
10899 fra
.me
.REG
[1] = NIT_NULL
;
10900 fra
.me
.REG
[0] = p0
;
10901 /* ./syntax//typing.nit:1703 */
10902 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10903 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10904 if (UNTAG_Bool(REGB0
)) {
10905 /* ./syntax//typing.nit:1704 */
10906 fra
.me
.REG
[1] = NIT_NULL
;
10909 /* ./syntax//typing.nit:1706 */
10910 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10911 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10912 fra
.me
.REG
[1] = fra
.me
.REG
[0];
10916 stack_frame_head
= fra
.me
.prev
;
10917 return fra
.me
.REG
[1];
10919 val_t
syntax___typing___ACallFormExpr___variable_create(val_t p0
, val_t p1
){
10920 struct {struct stack_frame_t me
;} fra
;
10922 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10923 fra
.me
.file
= LOCATE_syntax___typing
;
10924 fra
.me
.line
= 1710;
10925 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___variable_create
;
10926 fra
.me
.has_broke
= 0;
10927 fra
.me
.REG_size
= 0;
10928 /* ./syntax//typing.nit:1710 */
10929 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1710);
10930 stack_frame_head
= fra
.me
.prev
;
10933 val_t
syntax___typing___ACallExpr___variable_create(val_t p0
, val_t p1
){
10934 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10936 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10937 fra
.me
.file
= LOCATE_syntax___typing
;
10938 fra
.me
.line
= 1715;
10939 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___variable_create
;
10940 fra
.me
.has_broke
= 0;
10941 fra
.me
.REG_size
= 2;
10942 fra
.me
.REG
[0] = NIT_NULL
;
10943 fra
.me
.REG
[1] = NIT_NULL
;
10944 fra
.me
.REG
[0] = p0
;
10945 fra
.me
.REG
[1] = p1
;
10946 /* ./syntax//typing.nit:1717 */
10947 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10948 fra
.me
.REG
[0] = NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(fra
.me
.REG
[0]);
10951 stack_frame_head
= fra
.me
.prev
;
10952 return fra
.me
.REG
[0];
10954 val_t
syntax___typing___ACallExpr___name(val_t p0
){
10955 struct {struct stack_frame_t me
;} fra
;
10957 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10958 fra
.me
.file
= LOCATE_syntax___typing
;
10959 fra
.me
.line
= 1720;
10960 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___name
;
10961 fra
.me
.has_broke
= 0;
10962 fra
.me
.REG_size
= 1;
10963 fra
.me
.REG
[0] = NIT_NULL
;
10964 fra
.me
.REG
[0] = p0
;
10965 /* ./syntax//typing.nit:1720 */
10966 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10967 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10970 stack_frame_head
= fra
.me
.prev
;
10971 return fra
.me
.REG
[0];
10973 val_t
syntax___typing___ACallExpr___compute_raw_arguments(val_t p0
){
10974 struct {struct stack_frame_t me
;} fra
;
10976 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10977 fra
.me
.file
= LOCATE_syntax___typing
;
10978 fra
.me
.line
= 1721;
10979 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___compute_raw_arguments
;
10980 fra
.me
.has_broke
= 0;
10981 fra
.me
.REG_size
= 1;
10982 fra
.me
.REG
[0] = NIT_NULL
;
10983 fra
.me
.REG
[0] = p0
;
10984 /* ./syntax//typing.nit:1721 */
10985 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10986 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10989 stack_frame_head
= fra
.me
.prev
;
10990 return fra
.me
.REG
[0];
10992 val_t
syntax___typing___ACallAssignExpr___variable_create(val_t p0
, val_t p1
){
10993 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
10995 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10996 fra
.me
.file
= LOCATE_syntax___typing
;
10997 fra
.me
.line
= 1725;
10998 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___variable_create
;
10999 fra
.me
.has_broke
= 0;
11000 fra
.me
.REG_size
= 3;
11001 fra
.me
.REG
[0] = NIT_NULL
;
11002 fra
.me
.REG
[1] = NIT_NULL
;
11003 fra
.me
.REG
[2] = NIT_NULL
;
11004 fra
.me
.REG
[0] = p0
;
11005 fra
.me
.REG
[1] = p1
;
11006 /* ./syntax//typing.nit:1727 */
11007 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11008 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_assign(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11009 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11010 fra
.me
.REG
[0] = NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
11013 stack_frame_head
= fra
.me
.prev
;
11014 return fra
.me
.REG
[0];
11016 val_t
syntax___typing___ACallAssignExpr___name(val_t p0
){
11017 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11020 static val_t once_value_1
; /* Once value */
11021 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11022 fra
.me
.file
= LOCATE_syntax___typing
;
11023 fra
.me
.line
= 1730;
11024 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___name
;
11025 fra
.me
.has_broke
= 0;
11026 fra
.me
.REG_size
= 2;
11027 fra
.me
.REG
[0] = NIT_NULL
;
11028 fra
.me
.REG
[1] = NIT_NULL
;
11029 fra
.me
.REG
[0] = p0
;
11030 /* ./syntax//typing.nit:1730 */
11031 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11032 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11033 if (!once_value_1
) {
11034 fra
.me
.REG
[1] = BOX_NativeString("=");
11035 REGB0
= TAG_Int(1);
11036 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11037 once_value_1
= fra
.me
.REG
[1];
11038 register_static_object(&once_value_1
);
11039 } else fra
.me
.REG
[1] = once_value_1
;
11040 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11041 fra
.me
.REG
[1] = CALL_standard___string___String_____plus(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11042 fra
.me
.REG
[1] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11045 stack_frame_head
= fra
.me
.prev
;
11046 return fra
.me
.REG
[1];
11048 val_t
syntax___typing___ACallAssignExpr___compute_raw_arguments(val_t p0
){
11049 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11051 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11052 fra
.me
.file
= LOCATE_syntax___typing
;
11053 fra
.me
.line
= 1731;
11054 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments
;
11055 fra
.me
.has_broke
= 0;
11056 fra
.me
.REG_size
= 2;
11057 fra
.me
.REG
[0] = NIT_NULL
;
11058 fra
.me
.REG
[1] = NIT_NULL
;
11059 fra
.me
.REG
[0] = p0
;
11060 /* ./syntax//typing.nit:1732 */
11061 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11062 fra
.me
.REG
[1] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11063 /* ./syntax//typing.nit:1733 */
11064 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11065 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11066 /* ./syntax//typing.nit:1734 */
11069 stack_frame_head
= fra
.me
.prev
;
11070 return fra
.me
.REG
[1];
11072 val_t
syntax___typing___ACallReassignExpr___variable_create(val_t p0
, val_t p1
){
11073 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
11075 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11076 fra
.me
.file
= LOCATE_syntax___typing
;
11077 fra
.me
.line
= 1739;
11078 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___variable_create
;
11079 fra
.me
.has_broke
= 0;
11080 fra
.me
.REG_size
= 3;
11081 fra
.me
.REG
[0] = NIT_NULL
;
11082 fra
.me
.REG
[1] = NIT_NULL
;
11083 fra
.me
.REG
[2] = NIT_NULL
;
11084 fra
.me
.REG
[0] = p0
;
11085 fra
.me
.REG
[1] = p1
;
11086 /* ./syntax//typing.nit:1741 */
11087 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11088 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11089 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11090 fra
.me
.REG
[0] = NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
11093 stack_frame_head
= fra
.me
.prev
;
11094 return fra
.me
.REG
[0];
11096 val_t
syntax___typing___ACallReassignExpr___name(val_t p0
){
11097 struct {struct stack_frame_t me
;} fra
;
11099 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11100 fra
.me
.file
= LOCATE_syntax___typing
;
11101 fra
.me
.line
= 1744;
11102 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___name
;
11103 fra
.me
.has_broke
= 0;
11104 fra
.me
.REG_size
= 1;
11105 fra
.me
.REG
[0] = NIT_NULL
;
11106 fra
.me
.REG
[0] = p0
;
11107 /* ./syntax//typing.nit:1744 */
11108 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11109 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11112 stack_frame_head
= fra
.me
.prev
;
11113 return fra
.me
.REG
[0];
11115 val_t
syntax___typing___ACallReassignExpr___compute_raw_arguments(val_t p0
){
11116 struct {struct stack_frame_t me
;} fra
;
11118 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11119 fra
.me
.file
= LOCATE_syntax___typing
;
11120 fra
.me
.line
= 1745;
11121 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments
;
11122 fra
.me
.has_broke
= 0;
11123 fra
.me
.REG_size
= 1;
11124 fra
.me
.REG
[0] = NIT_NULL
;
11125 fra
.me
.REG
[0] = p0
;
11126 /* ./syntax//typing.nit:1745 */
11127 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11128 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11131 stack_frame_head
= fra
.me
.prev
;
11132 return fra
.me
.REG
[0];
11134 val_t
syntax___typing___ABraExpr___name(val_t p0
){
11135 struct {struct stack_frame_t me
;} fra
;
11138 static val_t once_value_1
; /* Once value */
11139 static val_t once_value_2
; /* Once value */
11140 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11141 fra
.me
.file
= LOCATE_syntax___typing
;
11142 fra
.me
.line
= 1749;
11143 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___name
;
11144 fra
.me
.has_broke
= 0;
11145 fra
.me
.REG_size
= 1;
11146 fra
.me
.REG
[0] = NIT_NULL
;
11147 fra
.me
.REG
[0] = p0
;
11148 /* ./syntax//typing.nit:1749 */
11149 if (!once_value_1
) {
11150 if (!once_value_2
) {
11151 fra
.me
.REG
[0] = BOX_NativeString("[]");
11152 REGB0
= TAG_Int(2);
11153 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11154 once_value_2
= fra
.me
.REG
[0];
11155 register_static_object(&once_value_2
);
11156 } else fra
.me
.REG
[0] = once_value_2
;
11157 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11158 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11159 once_value_1
= fra
.me
.REG
[0];
11160 register_static_object(&once_value_1
);
11161 } else fra
.me
.REG
[0] = once_value_1
;
11162 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11165 stack_frame_head
= fra
.me
.prev
;
11166 return fra
.me
.REG
[0];
11168 val_t
syntax___typing___ABraExpr___compute_raw_arguments(val_t p0
){
11169 struct {struct stack_frame_t me
;} fra
;
11171 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11172 fra
.me
.file
= LOCATE_syntax___typing
;
11173 fra
.me
.line
= 1750;
11174 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___compute_raw_arguments
;
11175 fra
.me
.has_broke
= 0;
11176 fra
.me
.REG_size
= 1;
11177 fra
.me
.REG
[0] = NIT_NULL
;
11178 fra
.me
.REG
[0] = p0
;
11179 /* ./syntax//typing.nit:1750 */
11180 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11181 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11184 stack_frame_head
= fra
.me
.prev
;
11185 return fra
.me
.REG
[0];
11187 val_t
syntax___typing___ABraExpr___closure_defs(val_t p0
){
11188 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11191 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11192 fra
.me
.file
= LOCATE_syntax___typing
;
11193 fra
.me
.line
= 1751;
11194 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___closure_defs
;
11195 fra
.me
.has_broke
= 0;
11196 fra
.me
.REG_size
= 2;
11197 fra
.me
.REG
[0] = NIT_NULL
;
11198 fra
.me
.REG
[1] = NIT_NULL
;
11199 fra
.me
.REG
[0] = p0
;
11200 /* ./syntax//typing.nit:1753 */
11201 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11202 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11203 if (UNTAG_Bool(REGB0
)) {
11204 /* ./syntax//typing.nit:1754 */
11205 fra
.me
.REG
[1] = NIT_NULL
;
11208 /* ./syntax//typing.nit:1756 */
11209 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11210 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11211 fra
.me
.REG
[1] = fra
.me
.REG
[0];
11215 stack_frame_head
= fra
.me
.prev
;
11216 return fra
.me
.REG
[1];
11218 val_t
syntax___typing___ABraAssignExpr___name(val_t p0
){
11219 struct {struct stack_frame_t me
;} fra
;
11222 static val_t once_value_1
; /* Once value */
11223 static val_t once_value_2
; /* Once value */
11224 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11225 fra
.me
.file
= LOCATE_syntax___typing
;
11226 fra
.me
.line
= 1762;
11227 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___name
;
11228 fra
.me
.has_broke
= 0;
11229 fra
.me
.REG_size
= 1;
11230 fra
.me
.REG
[0] = NIT_NULL
;
11231 fra
.me
.REG
[0] = p0
;
11232 /* ./syntax//typing.nit:1762 */
11233 if (!once_value_1
) {
11234 if (!once_value_2
) {
11235 fra
.me
.REG
[0] = BOX_NativeString("[]=");
11236 REGB0
= TAG_Int(3);
11237 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11238 once_value_2
= fra
.me
.REG
[0];
11239 register_static_object(&once_value_2
);
11240 } else fra
.me
.REG
[0] = once_value_2
;
11241 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11242 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11243 once_value_1
= fra
.me
.REG
[0];
11244 register_static_object(&once_value_1
);
11245 } else fra
.me
.REG
[0] = once_value_1
;
11246 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11249 stack_frame_head
= fra
.me
.prev
;
11250 return fra
.me
.REG
[0];
11252 val_t
syntax___typing___ABraAssignExpr___compute_raw_arguments(val_t p0
){
11253 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11255 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11256 fra
.me
.file
= LOCATE_syntax___typing
;
11257 fra
.me
.line
= 1763;
11258 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments
;
11259 fra
.me
.has_broke
= 0;
11260 fra
.me
.REG_size
= 2;
11261 fra
.me
.REG
[0] = NIT_NULL
;
11262 fra
.me
.REG
[1] = NIT_NULL
;
11263 fra
.me
.REG
[0] = p0
;
11264 /* ./syntax//typing.nit:1764 */
11265 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11266 fra
.me
.REG
[1] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11267 /* ./syntax//typing.nit:1765 */
11268 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11269 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11270 /* ./syntax//typing.nit:1766 */
11273 stack_frame_head
= fra
.me
.prev
;
11274 return fra
.me
.REG
[1];
11276 val_t
syntax___typing___ABraReassignExpr___name(val_t p0
){
11277 struct {struct stack_frame_t me
;} fra
;
11280 static val_t once_value_1
; /* Once value */
11281 static val_t once_value_2
; /* Once value */
11282 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11283 fra
.me
.file
= LOCATE_syntax___typing
;
11284 fra
.me
.line
= 1771;
11285 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___name
;
11286 fra
.me
.has_broke
= 0;
11287 fra
.me
.REG_size
= 1;
11288 fra
.me
.REG
[0] = NIT_NULL
;
11289 fra
.me
.REG
[0] = p0
;
11290 /* ./syntax//typing.nit:1771 */
11291 if (!once_value_1
) {
11292 if (!once_value_2
) {
11293 fra
.me
.REG
[0] = BOX_NativeString("[]");
11294 REGB0
= TAG_Int(2);
11295 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11296 once_value_2
= fra
.me
.REG
[0];
11297 register_static_object(&once_value_2
);
11298 } else fra
.me
.REG
[0] = once_value_2
;
11299 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11300 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11301 once_value_1
= fra
.me
.REG
[0];
11302 register_static_object(&once_value_1
);
11303 } else fra
.me
.REG
[0] = once_value_1
;
11304 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11307 stack_frame_head
= fra
.me
.prev
;
11308 return fra
.me
.REG
[0];
11310 val_t
syntax___typing___ABraReassignExpr___compute_raw_arguments(val_t p0
){
11311 struct {struct stack_frame_t me
;} fra
;
11313 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11314 fra
.me
.file
= LOCATE_syntax___typing
;
11315 fra
.me
.line
= 1772;
11316 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments
;
11317 fra
.me
.has_broke
= 0;
11318 fra
.me
.REG_size
= 1;
11319 fra
.me
.REG
[0] = NIT_NULL
;
11320 fra
.me
.REG
[0] = p0
;
11321 /* ./syntax//typing.nit:1772 */
11322 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11323 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11326 stack_frame_head
= fra
.me
.prev
;
11327 return fra
.me
.REG
[0];
11329 val_t
syntax___typing___AInitExpr___name(val_t p0
){
11330 struct {struct stack_frame_t me
;} fra
;
11333 static val_t once_value_1
; /* Once value */
11334 static val_t once_value_2
; /* Once value */
11335 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11336 fra
.me
.file
= LOCATE_syntax___typing
;
11337 fra
.me
.line
= 1776;
11338 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___name
;
11339 fra
.me
.has_broke
= 0;
11340 fra
.me
.REG_size
= 1;
11341 fra
.me
.REG
[0] = NIT_NULL
;
11342 fra
.me
.REG
[0] = p0
;
11343 /* ./syntax//typing.nit:1776 */
11344 if (!once_value_1
) {
11345 if (!once_value_2
) {
11346 fra
.me
.REG
[0] = BOX_NativeString("init");
11347 REGB0
= TAG_Int(4);
11348 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11349 once_value_2
= fra
.me
.REG
[0];
11350 register_static_object(&once_value_2
);
11351 } else fra
.me
.REG
[0] = once_value_2
;
11352 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11353 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11354 once_value_1
= fra
.me
.REG
[0];
11355 register_static_object(&once_value_1
);
11356 } else fra
.me
.REG
[0] = once_value_1
;
11357 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___AInitExpr___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
= 1777;
11369 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___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:1777 */
11375 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitExpr___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___AClosureCallExpr___variable(val_t p0
){
11383 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11386 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11387 fra
.me
.file
= LOCATE_syntax___typing
;
11388 fra
.me
.line
= 1782;
11389 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___variable
;
11390 fra
.me
.has_broke
= 0;
11391 fra
.me
.REG_size
= 2;
11392 fra
.me
.REG
[0] = NIT_NULL
;
11393 fra
.me
.REG
[1] = NIT_NULL
;
11394 fra
.me
.REG
[0] = p0
;
11395 /* ./syntax//typing.nit:1782 */
11396 fra
.me
.REG
[1] = fra
.me
.REG
[0];
11397 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[1]);
11398 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
11399 if (UNTAG_Bool(REGB0
)) {
11401 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1782);
11405 stack_frame_head
= fra
.me
.prev
;
11406 return fra
.me
.REG
[1];
11408 val_t
syntax___typing___AClosureCallExpr___compute_raw_arguments(val_t p0
){
11409 struct {struct stack_frame_t me
;} fra
;
11411 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11412 fra
.me
.file
= LOCATE_syntax___typing
;
11413 fra
.me
.line
= 1783;
11414 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments
;
11415 fra
.me
.has_broke
= 0;
11416 fra
.me
.REG_size
= 1;
11417 fra
.me
.REG
[0] = NIT_NULL
;
11418 fra
.me
.REG
[0] = p0
;
11419 /* ./syntax//typing.nit:1783 */
11420 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AClosureCallExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11421 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11424 stack_frame_head
= fra
.me
.prev
;
11425 return fra
.me
.REG
[0];
11427 void syntax___typing___AClosureCallExpr___after_typing(val_t p0
, val_t p1
){
11428 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11432 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11433 fra
.me
.file
= LOCATE_syntax___typing
;
11434 fra
.me
.line
= 1785;
11435 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___after_typing
;
11436 fra
.me
.has_broke
= 0;
11437 fra
.me
.REG_size
= 5;
11438 fra
.me
.REG
[0] = NIT_NULL
;
11439 fra
.me
.REG
[1] = NIT_NULL
;
11440 fra
.me
.REG
[2] = NIT_NULL
;
11441 fra
.me
.REG
[3] = NIT_NULL
;
11442 fra
.me
.REG
[4] = NIT_NULL
;
11443 fra
.me
.REG
[0] = p0
;
11444 fra
.me
.REG
[1] = p1
;
11445 /* ./syntax//typing.nit:1787 */
11446 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11447 /* ./syntax//typing.nit:1788 */
11448 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11449 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11450 if (UNTAG_Bool(REGB0
)) {
11451 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11453 /* ./syntax//typing.nit:1789 */
11454 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11455 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11456 /* ./syntax//typing.nit:1790 */
11457 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11458 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11459 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11460 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]);
11461 /* ./syntax//typing.nit:1791 */
11462 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11463 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11464 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
11465 if (UNTAG_Bool(REGB1
)) {
11466 /* ./syntax//typing.nit:1792 */
11467 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11468 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11469 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11470 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11471 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]);
11473 /* ./syntax//typing.nit:1794 */
11474 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11475 if (UNTAG_Bool(REGB0
)) {
11478 /* ./syntax//typing.nit:1795 */
11479 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11480 /* ./syntax//typing.nit:1796 */
11481 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11482 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11483 /* ./syntax//typing.nit:1797 */
11484 REGB0
= TAG_Bool(true);
11485 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
11487 stack_frame_head
= fra
.me
.prev
;
11490 val_t
syntax___typing___AClosureId___to_symbol(val_t p0
){
11491 struct {struct stack_frame_t me
;} fra
;
11493 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11494 fra
.me
.file
= LOCATE_syntax___typing
;
11495 fra
.me
.line
= 1802;
11496 fra
.me
.meth
= LOCATE_syntax___typing___AClosureId___to_symbol
;
11497 fra
.me
.has_broke
= 0;
11498 fra
.me
.REG_size
= 0;
11499 /* ./syntax//typing.nit:1802 */
11500 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1802);
11501 stack_frame_head
= fra
.me
.prev
;
11504 val_t
syntax___typing___ASimpleClosureId___to_symbol(val_t p0
){
11505 struct {struct stack_frame_t me
;} fra
;
11507 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11508 fra
.me
.file
= LOCATE_syntax___typing
;
11509 fra
.me
.line
= 1805;
11510 fra
.me
.meth
= LOCATE_syntax___typing___ASimpleClosureId___to_symbol
;
11511 fra
.me
.has_broke
= 0;
11512 fra
.me
.REG_size
= 1;
11513 fra
.me
.REG
[0] = NIT_NULL
;
11514 fra
.me
.REG
[0] = p0
;
11515 /* ./syntax//typing.nit:1805 */
11516 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASimpleClosureId___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11517 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11520 stack_frame_head
= fra
.me
.prev
;
11521 return fra
.me
.REG
[0];
11523 val_t
syntax___typing___ABreakClosureId___to_symbol(val_t p0
){
11524 struct {struct stack_frame_t me
;} fra
;
11526 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11527 fra
.me
.file
= LOCATE_syntax___typing
;
11528 fra
.me
.line
= 1808;
11529 fra
.me
.meth
= LOCATE_syntax___typing___ABreakClosureId___to_symbol
;
11530 fra
.me
.has_broke
= 0;
11531 fra
.me
.REG_size
= 1;
11532 fra
.me
.REG
[0] = NIT_NULL
;
11533 fra
.me
.REG
[0] = p0
;
11534 /* ./syntax//typing.nit:1808 */
11535 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11536 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11539 stack_frame_head
= fra
.me
.prev
;
11540 return fra
.me
.REG
[0];
11542 val_t
syntax___typing___AClosureDef___closure(val_t p0
){
11543 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11546 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11547 fra
.me
.file
= LOCATE_syntax___typing
;
11548 fra
.me
.line
= 1813;
11549 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___closure
;
11550 fra
.me
.has_broke
= 0;
11551 fra
.me
.REG_size
= 2;
11552 fra
.me
.REG
[0] = NIT_NULL
;
11553 fra
.me
.REG
[1] = NIT_NULL
;
11554 fra
.me
.REG
[0] = p0
;
11555 /* ./syntax//typing.nit:1813 */
11556 fra
.me
.REG
[1] = fra
.me
.REG
[0];
11557 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[1]);
11558 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
11559 if (UNTAG_Bool(REGB0
)) {
11561 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1813);
11565 stack_frame_head
= fra
.me
.prev
;
11566 return fra
.me
.REG
[1];
11568 val_t
syntax___typing___AClosureDef___escapable(val_t p0
){
11569 struct {struct stack_frame_t me
;} fra
;
11571 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11572 fra
.me
.file
= LOCATE_syntax___typing
;
11573 fra
.me
.line
= 1815;
11574 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___escapable
;
11575 fra
.me
.has_broke
= 0;
11576 fra
.me
.REG_size
= 1;
11577 fra
.me
.REG
[0] = NIT_NULL
;
11578 fra
.me
.REG
[0] = p0
;
11579 /* ./syntax//typing.nit:1815 */
11580 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]);
11581 stack_frame_head
= fra
.me
.prev
;
11582 return fra
.me
.REG
[0];
11584 void syntax___typing___AClosureDef___accept_typing(val_t p0
, val_t p1
){
11585 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
11588 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11589 fra
.me
.file
= LOCATE_syntax___typing
;
11590 fra
.me
.line
= 1819;
11591 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing
;
11592 fra
.me
.has_broke
= 0;
11593 fra
.me
.REG_size
= 3;
11594 fra
.me
.REG
[0] = NIT_NULL
;
11595 fra
.me
.REG
[1] = NIT_NULL
;
11596 fra
.me
.REG
[2] = NIT_NULL
;
11597 fra
.me
.REG
[0] = p0
;
11598 fra
.me
.REG
[1] = p1
;
11599 /* ./syntax//typing.nit:1819 */
11600 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11601 /* ./syntax//typing.nit:1822 */
11602 REGB0
= TAG_Bool(ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2])!=NIT_NULL
);
11603 if (UNTAG_Bool(REGB0
)) {
11605 nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_syntax___typing
, 1822);
11607 REGB0
= ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2]);
11608 if (UNTAG_Bool(REGB0
)) {
11609 CALL_SUPER_syntax___typing___AClosureDef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11611 stack_frame_head
= fra
.me
.prev
;
11614 void syntax___typing___AClosureDef___accept_typing2(val_t p0
, val_t p1
, val_t p2
){
11615 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
11621 static val_t once_value_1
; /* Once value */
11622 static val_t once_value_2
; /* Once value */
11623 static val_t once_value_3
; /* Once value */
11624 static val_t once_value_6
; /* Once value */
11625 static val_t once_value_7
; /* Once value */
11626 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11627 fra
.me
.file
= LOCATE_syntax___typing
;
11628 fra
.me
.line
= 1825;
11629 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing2
;
11630 fra
.me
.has_broke
= 0;
11631 fra
.me
.REG_size
= 8;
11632 fra
.me
.REG
[0] = NIT_NULL
;
11633 fra
.me
.REG
[1] = NIT_NULL
;
11634 fra
.me
.REG
[2] = NIT_NULL
;
11635 fra
.me
.REG
[3] = NIT_NULL
;
11636 fra
.me
.REG
[4] = NIT_NULL
;
11637 fra
.me
.REG
[5] = NIT_NULL
;
11638 fra
.me
.REG
[6] = NIT_NULL
;
11639 fra
.me
.REG
[7] = NIT_NULL
;
11640 fra
.me
.REG
[0] = p0
;
11641 fra
.me
.REG
[1] = p1
;
11642 fra
.me
.REG
[2] = p2
;
11643 /* ./syntax//typing.nit:1827 */
11644 ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11645 /* ./syntax//typing.nit:1829 */
11646 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11647 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11648 /* ./syntax//typing.nit:1830 */
11649 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11650 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11651 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11652 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
11653 if (UNTAG_Bool(REGB2
)) {
11655 /* ./../lib/standard//kernel.nit:210 */
11656 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
11657 /* ./syntax//typing.nit:1830 */
11660 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
11661 if (UNTAG_Bool(REGB2
)) {
11662 /* ./syntax//typing.nit:1831 */
11663 REGB2
= TAG_Int(5);
11664 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
11665 if (!once_value_1
) {
11666 fra
.me
.REG
[5] = BOX_NativeString("Error: ");
11667 REGB2
= TAG_Int(7);
11668 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
11669 once_value_1
= fra
.me
.REG
[5];
11670 register_static_object(&once_value_1
);
11671 } else fra
.me
.REG
[5] = once_value_1
;
11672 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11673 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11674 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11675 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
11676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11677 if (!once_value_2
) {
11678 fra
.me
.REG
[5] = BOX_NativeString(" automatic variable names expected, ");
11679 REGB2
= TAG_Int(36);
11680 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
11681 once_value_2
= fra
.me
.REG
[5];
11682 register_static_object(&once_value_2
);
11683 } else fra
.me
.REG
[5] = once_value_2
;
11684 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11686 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11687 REGB2
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
11688 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
11689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11690 if (!once_value_3
) {
11691 fra
.me
.REG
[5] = BOX_NativeString(" found.");
11692 REGB2
= TAG_Int(7);
11693 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
11694 once_value_3
= fra
.me
.REG
[5];
11695 register_static_object(&once_value_3
);
11696 } else fra
.me
.REG
[5] = once_value_3
;
11697 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11699 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11700 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
11701 /* ./syntax//typing.nit:1832 */
11704 /* ./syntax//typing.nit:1835 */
11705 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11706 ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
11707 /* ./syntax//typing.nit:1837 */
11708 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11709 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
11710 /* ./syntax//typing.nit:1838 */
11711 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11712 /* ./syntax//typing.nit:1839 */
11713 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11714 /* ./syntax//typing.nit:1840 */
11715 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11716 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
11717 /* ./syntax//typing.nit:1841 */
11718 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
11719 CALL_syntax___syntax_base___AClosureDef___variables__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
11720 /* ./syntax//typing.nit:1842 */
11721 REGB2
= TAG_Int(0);
11722 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11723 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
11724 /* ./../lib/standard//kernel.nit:335 */
11726 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
11727 if (UNTAG_Bool(REGB0
)) {
11729 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
11731 /* ./../lib/standard//kernel.nit:215 */
11732 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
11733 /* ./../lib/standard//kernel.nit:335 */
11734 if (UNTAG_Bool(REGB0
)) {
11735 /* ./syntax//typing.nit:1842 */
11737 /* ./syntax//typing.nit:1843 */
11738 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11739 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
11740 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
11741 if (UNTAG_Bool(REGB3
)) {
11742 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1843);
11744 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
11745 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11746 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
11747 fra
.me
.REG
[7] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
11748 /* ./syntax//typing.nit:1844 */
11749 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11750 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
11751 if (UNTAG_Bool(REGB3
)) {
11752 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1844);
11754 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
11755 /* ./syntax//typing.nit:1845 */
11756 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
11757 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
11758 /* ./syntax//typing.nit:1846 */
11759 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11760 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
11761 /* ./../lib/standard//kernel.nit:337 */
11762 REGB0
= TAG_Int(1);
11763 /* ./../lib/standard//kernel.nit:218 */
11764 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
11765 /* ./../lib/standard//kernel.nit:337 */
11768 /* ./../lib/standard//kernel.nit:335 */
11773 /* ./syntax//typing.nit:1849 */
11774 REGB2
= TAG_Bool(true);
11775 ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[0]) = REGB2
;
11776 /* ./syntax//typing.nit:1850 */
11777 CALL_syntax___typing___ANode___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11778 /* ./syntax//typing.nit:1852 */
11779 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11780 REGB2
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11781 REGB1
= TAG_Bool(false);
11782 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
11783 if (UNTAG_Bool(REGB0
)) {
11785 /* ./../lib/standard//kernel.nit:178 */
11786 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
11787 /* ./syntax//typing.nit:1852 */
11790 if (UNTAG_Bool(REGB0
)) {
11791 /* ./syntax//typing.nit:1853 */
11792 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11793 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11794 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11795 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11796 if (UNTAG_Bool(REGB0
)) {
11798 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11799 if (UNTAG_Bool(REGB1
)) {
11800 REGB1
= TAG_Bool(false);
11803 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11807 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11808 if (UNTAG_Bool(REGB0
)) {
11809 /* ./syntax//typing.nit:1854 */
11810 if (!once_value_6
) {
11811 fra
.me
.REG
[3] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
11812 REGB0
= TAG_Int(77);
11813 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
11814 once_value_6
= fra
.me
.REG
[3];
11815 register_static_object(&once_value_6
);
11816 } else fra
.me
.REG
[3] = once_value_6
;
11817 fra
.me
.REG
[3] = fra
.me
.REG
[3];
11818 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
11820 /* ./syntax//typing.nit:1855 */
11821 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11822 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11823 if (UNTAG_Bool(REGB0
)) {
11824 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11825 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
11826 if (UNTAG_Bool(REGB0
)) {
11828 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
11829 if (UNTAG_Bool(REGB1
)) {
11830 REGB1
= TAG_Bool(false);
11833 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
11837 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11839 REGB1
= TAG_Bool(false);
11842 if (UNTAG_Bool(REGB0
)) {
11843 /* ./syntax//typing.nit:1856 */
11844 if (!once_value_7
) {
11845 fra
.me
.REG
[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
11846 REGB0
= TAG_Int(80);
11847 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
11848 once_value_7
= fra
.me
.REG
[2];
11849 register_static_object(&once_value_7
);
11850 } else fra
.me
.REG
[2] = once_value_7
;
11851 fra
.me
.REG
[2] = fra
.me
.REG
[2];
11852 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
11856 /* ./syntax//typing.nit:1859 */
11857 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
11858 /* ./syntax//typing.nit:1860 */
11859 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
11860 /* ./syntax//typing.nit:1861 */
11861 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11862 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11864 stack_frame_head
= fra
.me
.prev
;
11867 void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
11868 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
11872 static val_t once_value_2
; /* Once value */
11873 static val_t once_value_3
; /* Once value */
11874 static val_t once_value_4
; /* Once value */
11875 static val_t once_value_5
; /* Once value */
11876 static val_t once_value_6
; /* Once value */
11877 static val_t once_value_7
; /* Once value */
11878 static val_t once_value_8
; /* Once value */
11879 static val_t once_value_9
; /* Once value */
11880 static val_t once_value_10
; /* Once value */
11881 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11882 fra
.me
.file
= LOCATE_syntax___typing
;
11883 fra
.me
.line
= 1867;
11884 fra
.me
.meth
= LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast
;
11885 fra
.me
.has_broke
= 0;
11886 fra
.me
.REG_size
= 6;
11887 fra
.me
.REG
[0] = NIT_NULL
;
11888 fra
.me
.REG
[1] = NIT_NULL
;
11889 fra
.me
.REG
[2] = NIT_NULL
;
11890 fra
.me
.REG
[3] = NIT_NULL
;
11891 fra
.me
.REG
[4] = NIT_NULL
;
11892 fra
.me
.REG
[5] = NIT_NULL
;
11893 fra
.me
.REG
[0] = p0
;
11894 fra
.me
.REG
[1] = p1
;
11895 fra
.me
.REG
[2] = p2
;
11896 fra
.me
.REG
[3] = p3
;
11897 /* ./syntax//typing.nit:1869 */
11898 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
11899 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11900 if (UNTAG_Bool(REGB0
)) {
11903 /* ./syntax//typing.nit:1870 */
11904 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11905 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11906 if (UNTAG_Bool(REGB0
)) {
11909 /* ./syntax//typing.nit:1871 */
11910 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11911 /* ./syntax//typing.nit:1872 */
11912 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11913 /* ./syntax//typing.nit:1873 */
11914 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
11915 if (UNTAG_Bool(REGB0
)) {
11917 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
11920 if (UNTAG_Bool(REGB0
)) {
11921 /* ./syntax//typing.nit:1874 */
11922 REGB0
= TAG_Int(3);
11923 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11924 if (!once_value_2
) {
11925 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
11926 REGB0
= TAG_Int(33);
11927 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
11928 once_value_2
= fra
.me
.REG
[5];
11929 register_static_object(&once_value_2
);
11930 } else fra
.me
.REG
[5] = once_value_2
;
11931 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11932 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11933 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11935 if (!once_value_3
) {
11936 fra
.me
.REG
[5] = BOX_NativeString(".");
11937 REGB0
= TAG_Int(1);
11938 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
11939 once_value_3
= fra
.me
.REG
[5];
11940 register_static_object(&once_value_3
);
11941 } else fra
.me
.REG
[5] = once_value_3
;
11942 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11943 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11944 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11945 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
11947 /* ./syntax//typing.nit:1875 */
11948 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
11949 if (UNTAG_Bool(REGB0
)) {
11950 /* ./syntax//typing.nit:1876 */
11951 REGB0
= TAG_Int(5);
11952 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11953 if (!once_value_4
) {
11954 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
11955 REGB0
= TAG_Int(33);
11956 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
11957 once_value_4
= fra
.me
.REG
[5];
11958 register_static_object(&once_value_4
);
11959 } else fra
.me
.REG
[5] = once_value_4
;
11960 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11961 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11962 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11963 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11964 if (!once_value_5
) {
11965 fra
.me
.REG
[5] = BOX_NativeString(" since it is a ");
11966 REGB0
= TAG_Int(15);
11967 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
11968 once_value_5
= fra
.me
.REG
[5];
11969 register_static_object(&once_value_5
);
11970 } else fra
.me
.REG
[5] = once_value_5
;
11971 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11972 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11973 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11974 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11975 if (!once_value_6
) {
11976 fra
.me
.REG
[5] = BOX_NativeString(".");
11977 REGB0
= TAG_Int(1);
11978 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
11979 once_value_6
= fra
.me
.REG
[5];
11980 register_static_object(&once_value_6
);
11981 } else fra
.me
.REG
[5] = once_value_6
;
11982 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11983 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
11984 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11985 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
11987 /* ./syntax//typing.nit:1877 */
11988 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11989 if (UNTAG_Bool(REGB0
)) {
11990 /* ./syntax//typing.nit:1879 */
11991 REGB0
= TAG_Int(3);
11992 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11993 if (!once_value_7
) {
11994 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is null therefore cannot be a ");
11995 REGB0
= TAG_Int(50);
11996 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
11997 once_value_7
= fra
.me
.REG
[5];
11998 register_static_object(&once_value_7
);
11999 } else fra
.me
.REG
[5] = once_value_7
;
12000 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12001 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12002 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12003 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12004 if (!once_value_8
) {
12005 fra
.me
.REG
[5] = BOX_NativeString(".");
12006 REGB0
= TAG_Int(1);
12007 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12008 once_value_8
= fra
.me
.REG
[5];
12009 register_static_object(&once_value_8
);
12010 } else fra
.me
.REG
[5] = once_value_8
;
12011 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12012 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12013 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12014 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12016 /* ./syntax//typing.nit:1880 */
12017 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12018 if (UNTAG_Bool(REGB0
)) {
12019 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12020 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
12021 if (UNTAG_Bool(REGB0
)) {
12023 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
12027 REGB1
= TAG_Bool(false);
12030 if (UNTAG_Bool(REGB0
)) {
12031 /* ./syntax//typing.nit:1881 */
12032 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___type_formal___MMTypeFormal
, ID_metamodel___type_formal___MMTypeFormal
)) /*cast MMTypeFormal*/;
12033 if (UNTAG_Bool(REGB0
)) {
12034 fra
.me
.REG
[3] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12035 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12037 REGB1
= TAG_Bool(false);
12040 if (UNTAG_Bool(REGB0
)) {
12042 /* ./syntax//typing.nit:1887 */
12043 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AIsaExpr
, ID_parser___parser_nodes___AIsaExpr
)) /*cast AIsaExpr*/;
12044 if (UNTAG_Bool(REGB0
)) {
12045 /* ./syntax//typing.nit:1888 */
12046 if (!once_value_9
) {
12047 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '!= null'.");
12048 REGB0
= TAG_Int(26);
12049 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12050 once_value_9
= fra
.me
.REG
[3];
12051 register_static_object(&once_value_9
);
12052 } else fra
.me
.REG
[3] = once_value_9
;
12053 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12054 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12056 /* ./syntax//typing.nit:1890 */
12057 if (!once_value_10
) {
12058 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
12059 REGB0
= TAG_Int(32);
12060 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12061 once_value_10
= fra
.me
.REG
[3];
12062 register_static_object(&once_value_10
);
12063 } else fra
.me
.REG
[3] = once_value_10
;
12064 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12065 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12073 stack_frame_head
= fra
.me
.prev
;
12076 void syntax___typing___AIsaExpr___after_typing(val_t p0
, val_t p1
){
12077 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12081 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12082 fra
.me
.file
= LOCATE_syntax___typing
;
12083 fra
.me
.line
= 1898;
12084 fra
.me
.meth
= LOCATE_syntax___typing___AIsaExpr___after_typing
;
12085 fra
.me
.has_broke
= 0;
12086 fra
.me
.REG_size
= 5;
12087 fra
.me
.REG
[0] = NIT_NULL
;
12088 fra
.me
.REG
[1] = NIT_NULL
;
12089 fra
.me
.REG
[2] = NIT_NULL
;
12090 fra
.me
.REG
[3] = NIT_NULL
;
12091 fra
.me
.REG
[4] = NIT_NULL
;
12092 fra
.me
.REG
[0] = p0
;
12093 fra
.me
.REG
[1] = p1
;
12094 /* ./syntax//typing.nit:1900 */
12095 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12096 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12097 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]);
12098 /* ./syntax//typing.nit:1901 */
12099 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12100 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12101 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12102 if (UNTAG_Bool(REGB0
)) {
12105 /* ./syntax//typing.nit:1902 */
12106 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12107 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12108 /* ./syntax//typing.nit:1903 */
12109 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12110 if (UNTAG_Bool(REGB0
)) {
12112 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12113 if (UNTAG_Bool(REGB1
)) {
12114 REGB1
= TAG_Bool(false);
12117 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12121 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12122 if (UNTAG_Bool(REGB0
)) {
12123 /* ./syntax//typing.nit:1904 */
12124 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12125 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12126 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12127 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]);
12128 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12130 /* ./syntax//typing.nit:1906 */
12131 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12132 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
12133 /* ./syntax//typing.nit:1907 */
12134 REGB0
= TAG_Bool(true);
12135 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12137 stack_frame_head
= fra
.me
.prev
;
12140 void syntax___typing___AAsCastExpr___after_typing(val_t p0
, val_t p1
){
12141 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
12145 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12146 fra
.me
.file
= LOCATE_syntax___typing
;
12147 fra
.me
.line
= 1913;
12148 fra
.me
.meth
= LOCATE_syntax___typing___AAsCastExpr___after_typing
;
12149 fra
.me
.has_broke
= 0;
12150 fra
.me
.REG_size
= 4;
12151 fra
.me
.REG
[0] = NIT_NULL
;
12152 fra
.me
.REG
[1] = NIT_NULL
;
12153 fra
.me
.REG
[2] = NIT_NULL
;
12154 fra
.me
.REG
[3] = NIT_NULL
;
12155 fra
.me
.REG
[0] = p0
;
12156 fra
.me
.REG
[1] = p1
;
12157 /* ./syntax//typing.nit:1915 */
12158 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12159 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12160 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]);
12161 /* ./syntax//typing.nit:1916 */
12162 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12163 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12164 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12165 if (UNTAG_Bool(REGB0
)) {
12168 /* ./syntax//typing.nit:1917 */
12169 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12170 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12171 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
12172 /* ./syntax//typing.nit:1918 */
12173 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
12174 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12175 if (UNTAG_Bool(REGB0
)) {
12177 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12178 if (UNTAG_Bool(REGB1
)) {
12179 REGB1
= TAG_Bool(false);
12182 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12186 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12187 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12189 stack_frame_head
= fra
.me
.prev
;
12192 void syntax___typing___AAsNotnullExpr___after_typing(val_t p0
, val_t p1
){
12193 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12196 static val_t once_value_2
; /* Once value */
12197 static val_t once_value_3
; /* Once value */
12198 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12199 fra
.me
.file
= LOCATE_syntax___typing
;
12200 fra
.me
.line
= 1923;
12201 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotnullExpr___after_typing
;
12202 fra
.me
.has_broke
= 0;
12203 fra
.me
.REG_size
= 5;
12204 fra
.me
.REG
[0] = NIT_NULL
;
12205 fra
.me
.REG
[1] = NIT_NULL
;
12206 fra
.me
.REG
[2] = NIT_NULL
;
12207 fra
.me
.REG
[3] = NIT_NULL
;
12208 fra
.me
.REG
[4] = NIT_NULL
;
12209 fra
.me
.REG
[0] = p0
;
12210 fra
.me
.REG
[1] = p1
;
12211 /* ./syntax//typing.nit:1925 */
12212 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12213 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
12214 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12215 if (UNTAG_Bool(REGB0
)) {
12218 /* ./syntax//typing.nit:1926 */
12219 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12220 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12221 /* ./syntax//typing.nit:1927 */
12222 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
12223 if (UNTAG_Bool(REGB0
)) {
12224 /* ./syntax//typing.nit:1928 */
12225 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12226 if (!once_value_2
) {
12227 fra
.me
.REG
[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
12228 REGB0
= TAG_Int(43);
12229 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
12230 once_value_2
= fra
.me
.REG
[4];
12231 register_static_object(&once_value_2
);
12232 } else fra
.me
.REG
[4] = once_value_2
;
12233 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12234 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
12235 /* ./syntax//typing.nit:1929 */
12238 /* ./syntax//typing.nit:1930 */
12239 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12240 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12241 if (UNTAG_Bool(REGB0
)) {
12242 /* ./syntax//typing.nit:1931 */
12243 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12244 if (!once_value_3
) {
12245 fra
.me
.REG
[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
12246 REGB0
= TAG_Int(45);
12247 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
12248 once_value_3
= fra
.me
.REG
[4];
12249 register_static_object(&once_value_3
);
12250 } else fra
.me
.REG
[4] = once_value_3
;
12251 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12252 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
12255 /* ./syntax//typing.nit:1933 */
12256 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12257 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12258 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12259 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12260 /* ./syntax//typing.nit:1934 */
12261 REGB0
= TAG_Bool(true);
12262 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12264 stack_frame_head
= fra
.me
.prev
;
12267 void syntax___typing___AProxyExpr___after_typing(val_t p0
, val_t p1
){
12268 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12271 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12272 fra
.me
.file
= LOCATE_syntax___typing
;
12273 fra
.me
.line
= 1939;
12274 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___after_typing
;
12275 fra
.me
.has_broke
= 0;
12276 fra
.me
.REG_size
= 2;
12277 fra
.me
.REG
[0] = NIT_NULL
;
12278 fra
.me
.REG
[1] = NIT_NULL
;
12279 fra
.me
.REG
[0] = p0
;
12280 fra
.me
.REG
[1] = p1
;
12281 /* ./syntax//typing.nit:1941 */
12282 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12283 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12284 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12285 if (UNTAG_Bool(REGB0
)) {
12288 /* ./syntax//typing.nit:1942 */
12289 REGB0
= TAG_Bool(true);
12290 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12291 /* ./syntax//typing.nit:1943 */
12292 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12293 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12294 if (UNTAG_Bool(REGB0
)) {
12297 /* ./syntax//typing.nit:1944 */
12298 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12299 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12300 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
12302 stack_frame_head
= fra
.me
.prev
;
12305 void syntax___typing___AOnceExpr___accept_typing(val_t p0
, val_t p1
){
12306 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12311 static val_t once_value_1
; /* Once value */
12312 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12313 fra
.me
.file
= LOCATE_syntax___typing
;
12314 fra
.me
.line
= 1949;
12315 fra
.me
.meth
= LOCATE_syntax___typing___AOnceExpr___accept_typing
;
12316 fra
.me
.has_broke
= 0;
12317 fra
.me
.REG_size
= 5;
12318 fra
.me
.REG
[0] = NIT_NULL
;
12319 fra
.me
.REG
[1] = NIT_NULL
;
12320 fra
.me
.REG
[2] = NIT_NULL
;
12321 fra
.me
.REG
[3] = NIT_NULL
;
12322 fra
.me
.REG
[4] = NIT_NULL
;
12323 fra
.me
.REG
[0] = p0
;
12324 fra
.me
.REG
[1] = p1
;
12325 /* ./syntax//typing.nit:1949 */
12326 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12327 fra
.me
.REG
[3] = fra
.me
.REG
[1];
12328 /* ./syntax//typing.nit:1951 */
12329 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12330 REGB1
= TAG_Int(0);
12331 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
12332 if (UNTAG_Bool(REGB2
)) {
12334 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
12336 /* ./../lib/standard//kernel.nit:217 */
12337 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
12338 /* ./syntax//typing.nit:1951 */
12339 if (UNTAG_Bool(REGB1
)) {
12340 /* ./syntax//typing.nit:1952 */
12341 if (!once_value_1
) {
12342 fra
.me
.REG
[4] = BOX_NativeString("Useless once in a once expression.");
12343 REGB1
= TAG_Int(34);
12344 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
12345 once_value_1
= fra
.me
.REG
[4];
12346 register_static_object(&once_value_1
);
12347 } else fra
.me
.REG
[4] = once_value_1
;
12348 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12349 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
12351 /* ./syntax//typing.nit:1954 */
12352 REGB1
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12353 REGB0
= TAG_Int(1);
12354 /* ./../lib/standard//kernel.nit:218 */
12355 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
12356 /* ./syntax//typing.nit:1954 */
12357 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
12358 /* ./syntax//typing.nit:1956 */
12359 CALL_SUPER_syntax___typing___AOnceExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12360 /* ./syntax//typing.nit:1958 */
12361 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12362 REGB1
= TAG_Int(1);
12363 /* ./../lib/standard//kernel.nit:220 */
12364 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
12365 /* ./syntax//typing.nit:1958 */
12366 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
12367 stack_frame_head
= fra
.me
.prev
;