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:24 */
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
, 24);
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:227 */
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:24 */
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
, 24);
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:234 */
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:269 */
711 /* ./../lib/standard//collection//array.nit:270 */
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
, 270);
717 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
718 /* ./../lib/standard//collection//array.nit:271 */
719 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
720 /* ./../lib/standard//collection//array.nit:272 */
722 /* ./../lib/standard//collection//array.nit:24 */
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
, 24);
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:232 */
735 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
736 /* ./../lib/standard//collection//array.nit:272 */
737 if (UNTAG_Bool(REGB2
)) {
738 /* ./../lib/standard//collection//array.nit:273 */
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
, 273);
743 /* ./../lib/standard//collection//array.nit:718 */
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:274 */
789 /* ./../lib/standard//kernel.nit:235 */
790 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
791 /* ./../lib/standard//collection//array.nit:274 */
794 /* ./../lib/standard//collection//array.nit:272 */
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:24 */
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
, 24);
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:234 */
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:269 */
869 /* ./../lib/standard//collection//array.nit:270 */
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
, 270);
875 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
876 /* ./../lib/standard//collection//array.nit:271 */
877 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
878 /* ./../lib/standard//collection//array.nit:272 */
880 /* ./../lib/standard//collection//array.nit:24 */
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
, 24);
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:232 */
893 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
894 /* ./../lib/standard//collection//array.nit:272 */
895 if (UNTAG_Bool(REGB1
)) {
896 /* ./../lib/standard//collection//array.nit:273 */
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
, 273);
901 /* ./../lib/standard//collection//array.nit:718 */
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:274 */
947 /* ./../lib/standard//kernel.nit:235 */
948 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
949 /* ./../lib/standard//collection//array.nit:274 */
952 /* ./../lib/standard//collection//array.nit:272 */
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:227 */
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:227 */
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:227 */
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:24 */
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
, 24);
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:232 */
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:278 */
1588 /* ./../lib/standard//collection//array.nit:280 */
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:233 */
1596 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
1597 /* ./../lib/standard//collection//array.nit:280 */
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
, 280);
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:232 */
1611 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1613 /* ./../lib/standard//collection//array.nit:280 */
1614 REGB4
= TAG_Bool(false);
1617 if (UNTAG_Bool(REGB3
)) {
1619 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
1621 /* ./../lib/standard//collection//array.nit:281 */
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
, 281);
1627 /* ./../lib/standard//collection//array.nit:718 */
1628 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB2
)];
1629 /* ./../lib/standard//collection//array.nit:281 */
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:24 */
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
, 24);
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:232 */
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:278 */
1675 /* ./../lib/standard//collection//array.nit:280 */
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:233 */
1683 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1684 /* ./../lib/standard//collection//array.nit:280 */
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
, 280);
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:232 */
1698 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1700 /* ./../lib/standard//collection//array.nit:280 */
1701 REGB5
= TAG_Bool(false);
1704 if (UNTAG_Bool(REGB4
)) {
1706 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
1708 /* ./../lib/standard//collection//array.nit:281 */
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
, 281);
1714 /* ./../lib/standard//collection//array.nit:718 */
1715 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB3
)];
1716 /* ./../lib/standard//collection//array.nit:281 */
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_extern(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1736 if (UNTAG_Bool(REGB3
)) {
1737 REGB3
= TAG_Bool(true);
1739 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1740 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1743 if (UNTAG_Bool(REGB3
)) {
1744 /* ./syntax//typing.nit:256 */
1746 /* ./../lib/standard//kernel.nit:235 */
1747 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1748 /* ./syntax//typing.nit:256 */
1751 /* ./syntax//typing.nit:257 */
1752 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1753 if (UNTAG_Bool(REGB3
)) {
1755 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1756 if (UNTAG_Bool(REGB4
)) {
1757 REGB4
= TAG_Bool(false);
1760 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1764 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1765 if (UNTAG_Bool(REGB3
)) {
1766 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1767 REGB3
= CALL_metamodel___partial_order___PartialOrderElement_____leq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
1768 if (UNTAG_Bool(REGB3
)) {
1769 REGB3
= TAG_Bool(true);
1771 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1772 if (UNTAG_Bool(REGB4
)) {
1773 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 257);
1775 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1776 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1780 REGB4
= TAG_Bool(false);
1783 if (UNTAG_Bool(REGB3
)) {
1784 /* ./syntax//typing.nit:258 */
1785 REGB3
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[1]));
1786 if (UNTAG_Bool(REGB3
)) {
1788 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
1791 if (UNTAG_Bool(REGB3
)) {
1793 /* ./../lib/standard//kernel.nit:235 */
1794 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1795 /* ./syntax//typing.nit:258 */
1798 /* ./syntax//typing.nit:259 */
1799 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1800 REGB3
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
1801 if (UNTAG_Bool(REGB3
)) {
1803 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 259);
1805 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
1806 /* ./syntax//typing.nit:260 */
1808 /* ./../lib/standard//kernel.nit:235 */
1809 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1810 /* ./syntax//typing.nit:260 */
1812 REGB3
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1813 if (UNTAG_Bool(REGB3
)) {
1815 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1817 /* ./../lib/standard//kernel.nit:232 */
1818 REGB3
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1819 /* ./syntax//typing.nit:261 */
1820 if (UNTAG_Bool(REGB3
)) {
1821 /* ./syntax//typing.nit:262 */
1822 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1823 /* ./../lib/standard//collection//array.nit:278 */
1825 /* ./../lib/standard//collection//array.nit:280 */
1827 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1828 if (UNTAG_Bool(REGB5
)) {
1830 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1832 /* ./../lib/standard//kernel.nit:233 */
1833 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1834 /* ./../lib/standard//collection//array.nit:280 */
1835 if (UNTAG_Bool(REGB4
)) {
1836 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1837 if (UNTAG_Bool(REGB4
)) {
1839 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1841 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1842 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1843 if (UNTAG_Bool(REGB5
)) {
1845 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1847 /* ./../lib/standard//kernel.nit:232 */
1848 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1850 /* ./../lib/standard//collection//array.nit:280 */
1851 REGB5
= TAG_Bool(false);
1854 if (UNTAG_Bool(REGB4
)) {
1856 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
1858 /* ./../lib/standard//collection//array.nit:281 */
1859 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1860 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1861 if (UNTAG_Bool(REGB4
)) {
1862 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1864 /* ./../lib/standard//collection//array.nit:718 */
1865 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
1866 /* ./../lib/standard//collection//array.nit:281 */
1869 /* ./syntax//typing.nit:262 */
1870 fra
.me
.REG
[4] = fra
.me
.REG
[5];
1871 /* ./syntax//typing.nit:263 */
1872 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1873 if (UNTAG_Bool(REGB3
)) {
1874 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 263);
1876 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1877 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1878 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1879 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1880 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
1881 fra
.me
.REG
[1] = fra
.me
.REG
[7];
1883 /* ./syntax//typing.nit:265 */
1884 fra
.me
.REG
[4] = NIT_NULL
;
1885 /* ./syntax//typing.nit:266 */
1886 fra
.me
.REG
[1] = NIT_NULL
;
1889 /* ./syntax//typing.nit:269 */
1890 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1891 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]);
1892 /* ./syntax//typing.nit:270 */
1893 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1894 if (UNTAG_Bool(REGB3
)) {
1896 REGB4
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1897 if (UNTAG_Bool(REGB4
)) {
1898 REGB4
= TAG_Bool(false);
1901 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
1905 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1906 if (UNTAG_Bool(REGB3
)) {
1907 /* ./syntax//typing.nit:271 */
1908 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1909 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1911 /* ./syntax//typing.nit:273 */
1913 /* ./../lib/standard//kernel.nit:235 */
1914 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1915 /* ./syntax//typing.nit:273 */
1920 /* ./syntax//typing.nit:253 */
1926 stack_frame_head
= fra
.me
.prev
;
1929 void syntax___typing___AExternInitPropdef___accept_typing(val_t p0
, val_t p1
){
1930 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1933 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1934 fra
.me
.file
= LOCATE_syntax___typing
;
1936 fra
.me
.meth
= LOCATE_syntax___typing___AExternInitPropdef___accept_typing
;
1937 fra
.me
.has_broke
= 0;
1938 fra
.me
.REG_size
= 3;
1939 fra
.me
.REG
[0] = NIT_NULL
;
1940 fra
.me
.REG
[1] = NIT_NULL
;
1941 fra
.me
.REG
[2] = NIT_NULL
;
1944 /* ./syntax//typing.nit:281 */
1945 fra
.me
.REG
[2] = fra
.me
.REG
[1];
1946 /* ./syntax//typing.nit:283 */
1947 REGB0
= TAG_Bool(false);
1948 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1949 /* ./syntax//typing.nit:284 */
1950 CALL_SUPER_syntax___typing___AExternInitPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1951 stack_frame_head
= fra
.me
.prev
;
1954 void syntax___typing___AExternInitPropdef___after_typing(val_t p0
, val_t p1
){
1955 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1957 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1958 fra
.me
.file
= LOCATE_syntax___typing
;
1960 fra
.me
.meth
= LOCATE_syntax___typing___AExternInitPropdef___after_typing
;
1961 fra
.me
.has_broke
= 0;
1962 fra
.me
.REG_size
= 2;
1963 fra
.me
.REG
[0] = NIT_NULL
;
1964 fra
.me
.REG
[1] = NIT_NULL
;
1967 /* ./syntax//typing.nit:288 */
1968 CALL_SUPER_syntax___typing___AExternInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1969 stack_frame_head
= fra
.me
.prev
;
1972 void syntax___typing___AParam___after_typing(val_t p0
, val_t p1
){
1973 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1975 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1976 fra
.me
.file
= LOCATE_syntax___typing
;
1978 fra
.me
.meth
= LOCATE_syntax___typing___AParam___after_typing
;
1979 fra
.me
.has_broke
= 0;
1980 fra
.me
.REG_size
= 2;
1981 fra
.me
.REG
[0] = NIT_NULL
;
1982 fra
.me
.REG
[1] = NIT_NULL
;
1985 /* ./syntax//typing.nit:295 */
1986 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1987 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1988 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1989 stack_frame_head
= fra
.me
.prev
;
1992 val_t
syntax___typing___AClosureDecl___escapable(val_t p0
){
1993 struct {struct stack_frame_t me
;} fra
;
1995 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1996 fra
.me
.file
= LOCATE_syntax___typing
;
1998 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___escapable
;
1999 fra
.me
.has_broke
= 0;
2000 fra
.me
.REG_size
= 1;
2001 fra
.me
.REG
[0] = NIT_NULL
;
2003 /* ./syntax//typing.nit:300 */
2004 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[0]);
2005 stack_frame_head
= fra
.me
.prev
;
2006 return fra
.me
.REG
[0];
2008 void syntax___typing___AClosureDecl___accept_typing(val_t p0
, val_t p1
){
2009 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
2014 static val_t once_value_1
; /* Once value */
2015 static val_t once_value_2
; /* Once value */
2016 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2017 fra
.me
.file
= LOCATE_syntax___typing
;
2019 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___accept_typing
;
2020 fra
.me
.has_broke
= 0;
2021 fra
.me
.REG_size
= 10;
2022 fra
.me
.REG
[0] = NIT_NULL
;
2023 fra
.me
.REG
[1] = NIT_NULL
;
2024 fra
.me
.REG
[2] = NIT_NULL
;
2025 fra
.me
.REG
[3] = NIT_NULL
;
2026 fra
.me
.REG
[4] = NIT_NULL
;
2027 fra
.me
.REG
[5] = NIT_NULL
;
2028 fra
.me
.REG
[6] = NIT_NULL
;
2029 fra
.me
.REG
[7] = NIT_NULL
;
2030 fra
.me
.REG
[8] = NIT_NULL
;
2031 fra
.me
.REG
[9] = NIT_NULL
;
2034 /* ./syntax//typing.nit:303 */
2035 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2036 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2037 /* ./syntax//typing.nit:306 */
2038 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2039 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2040 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2041 /* ./syntax//typing.nit:308 */
2042 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2043 /* ./syntax//typing.nit:309 */
2044 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2045 /* ./syntax//typing.nit:310 */
2046 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2047 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
2048 /* ./syntax//typing.nit:312 */
2049 fra
.me
.REG
[6] = NIT_NULL
;
2050 /* ./syntax//typing.nit:313 */
2051 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2052 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2053 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2054 if (UNTAG_Bool(REGB0
)) {
2055 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 313);
2057 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2058 /* ./syntax//typing.nit:314 */
2059 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2060 if (UNTAG_Bool(REGB0
)) {
2062 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2063 if (UNTAG_Bool(REGB1
)) {
2064 REGB1
= TAG_Bool(false);
2067 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
2071 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2072 if (UNTAG_Bool(REGB0
)) {
2073 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
2074 fra
.me
.REG
[6] = fra
.me
.REG
[8];
2076 /* ./syntax//typing.nit:315 */
2077 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2078 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2079 fra
.me
.REG
[8] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[2], fra
.me
.REG
[8], fra
.me
.REG
[6]);
2080 /* ./syntax//typing.nit:316 */
2081 ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[2]) = fra
.me
.REG
[8];
2082 /* ./syntax//typing.nit:317 */
2083 fra
.me
.REG
[9] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2084 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8], NIT_NULL
);
2085 /* ./syntax//typing.nit:319 */
2086 REGB0
= TAG_Bool(true);
2087 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2088 /* ./syntax//typing.nit:321 */
2089 CALL_SUPER_syntax___typing___AClosureDecl___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2090 /* ./syntax//typing.nit:323 */
2091 REGB0
= TAG_Bool(false);
2092 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2093 /* ./syntax//typing.nit:325 */
2094 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2095 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2096 if (UNTAG_Bool(REGB0
)) {
2098 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2099 if (UNTAG_Bool(REGB1
)) {
2100 REGB1
= TAG_Bool(false);
2103 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2107 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2108 if (UNTAG_Bool(REGB0
)) {
2109 /* ./syntax//typing.nit:326 */
2110 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2111 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2112 REGB1
= TAG_Bool(false);
2113 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
2114 if (UNTAG_Bool(REGB2
)) {
2116 /* ./../lib/standard//kernel.nit:195 */
2117 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
2118 /* ./syntax//typing.nit:326 */
2121 if (UNTAG_Bool(REGB2
)) {
2122 /* ./syntax//typing.nit:327 */
2123 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2124 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2125 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2126 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2127 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2128 if (UNTAG_Bool(REGB2
)) {
2130 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2131 if (UNTAG_Bool(REGB1
)) {
2132 REGB1
= TAG_Bool(false);
2135 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2139 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2140 if (UNTAG_Bool(REGB2
)) {
2141 /* ./syntax//typing.nit:328 */
2142 if (!once_value_1
) {
2143 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
2144 REGB2
= TAG_Int(77);
2145 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB2
);
2146 once_value_1
= fra
.me
.REG
[1];
2147 register_static_object(&once_value_1
);
2148 } else fra
.me
.REG
[1] = once_value_1
;
2149 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2150 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
2152 /* ./syntax//typing.nit:329 */
2153 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2154 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2155 REGB2
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2156 if (UNTAG_Bool(REGB2
)) {
2157 fra
.me
.REG
[8] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2158 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2159 if (UNTAG_Bool(REGB2
)) {
2161 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2162 if (UNTAG_Bool(REGB1
)) {
2163 REGB1
= TAG_Bool(false);
2166 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
2170 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2172 REGB1
= TAG_Bool(false);
2175 if (UNTAG_Bool(REGB2
)) {
2176 /* ./syntax//typing.nit:330 */
2177 if (!once_value_2
) {
2178 fra
.me
.REG
[8] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
2179 REGB2
= TAG_Int(80);
2180 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB2
);
2181 once_value_2
= fra
.me
.REG
[8];
2182 register_static_object(&once_value_2
);
2183 } else fra
.me
.REG
[8] = once_value_2
;
2184 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2185 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[8]);
2190 /* ./syntax//typing.nit:334 */
2191 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2192 if (UNTAG_Bool(REGB2
)) {
2194 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2195 if (UNTAG_Bool(REGB1
)) {
2196 REGB1
= TAG_Bool(false);
2199 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2203 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2204 if (UNTAG_Bool(REGB2
)) {
2205 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2206 if (UNTAG_Bool(REGB2
)) {
2207 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 334);
2209 /* ./../lib/standard//collection//array.nit:269 */
2211 /* ./../lib/standard//collection//array.nit:270 */
2212 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2213 if (UNTAG_Bool(REGB1
)) {
2215 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2217 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2218 /* ./../lib/standard//collection//array.nit:271 */
2219 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
2220 /* ./../lib/standard//collection//array.nit:272 */
2222 /* ./../lib/standard//collection//array.nit:24 */
2223 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2224 if (UNTAG_Bool(REGB1
)) {
2226 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2228 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2229 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
2230 if (UNTAG_Bool(REGB0
)) {
2232 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2234 /* ./../lib/standard//kernel.nit:232 */
2235 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
2236 /* ./../lib/standard//collection//array.nit:272 */
2237 if (UNTAG_Bool(REGB1
)) {
2238 /* ./../lib/standard//collection//array.nit:273 */
2239 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2240 if (UNTAG_Bool(REGB1
)) {
2241 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2243 /* ./../lib/standard//collection//array.nit:718 */
2244 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB2
)];
2245 /* ./syntax//typing.nit:335 */
2246 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
2247 /* ./../lib/standard//collection//array.nit:274 */
2249 /* ./../lib/standard//kernel.nit:235 */
2250 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
2251 /* ./../lib/standard//collection//array.nit:274 */
2254 /* ./../lib/standard//collection//array.nit:272 */
2260 /* ./syntax//typing.nit:338 */
2261 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2262 /* ./syntax//typing.nit:339 */
2263 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2264 /* ./syntax//typing.nit:340 */
2265 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2266 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2267 stack_frame_head
= fra
.me
.prev
;
2270 val_t
syntax___typing___AType___stype(val_t p0
){
2271 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2274 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2275 fra
.me
.file
= LOCATE_syntax___typing
;
2277 fra
.me
.meth
= LOCATE_syntax___typing___AType___stype
;
2278 fra
.me
.has_broke
= 0;
2279 fra
.me
.REG_size
= 2;
2280 fra
.me
.REG
[0] = NIT_NULL
;
2281 fra
.me
.REG
[1] = NIT_NULL
;
2283 /* ./syntax//typing.nit:345 */
2284 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2285 fra
.me
.REG
[1] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[1]);
2286 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2287 if (UNTAG_Bool(REGB0
)) {
2289 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 345);
2293 stack_frame_head
= fra
.me
.prev
;
2294 return fra
.me
.REG
[1];
2296 val_t
syntax___typing___AType___is_typed(val_t p0
){
2297 struct {struct stack_frame_t me
;} fra
;
2301 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2302 fra
.me
.file
= LOCATE_syntax___typing
;
2304 fra
.me
.meth
= LOCATE_syntax___typing___AType___is_typed
;
2305 fra
.me
.has_broke
= 0;
2306 fra
.me
.REG_size
= 1;
2307 fra
.me
.REG
[0] = NIT_NULL
;
2309 /* ./syntax//typing.nit:346 */
2310 fra
.me
.REG
[0] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]);
2311 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2312 if (UNTAG_Bool(REGB0
)) {
2314 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2315 if (UNTAG_Bool(REGB1
)) {
2316 REGB1
= TAG_Bool(false);
2319 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2323 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2326 stack_frame_head
= fra
.me
.prev
;
2329 void syntax___typing___AType___after_typing(val_t p0
, val_t p1
){
2330 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2332 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2333 fra
.me
.file
= LOCATE_syntax___typing
;
2335 fra
.me
.meth
= LOCATE_syntax___typing___AType___after_typing
;
2336 fra
.me
.has_broke
= 0;
2337 fra
.me
.REG_size
= 2;
2338 fra
.me
.REG
[0] = NIT_NULL
;
2339 fra
.me
.REG
[1] = NIT_NULL
;
2342 /* ./syntax//typing.nit:351 */
2343 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AType___get_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2344 ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2345 stack_frame_head
= fra
.me
.prev
;
2348 val_t
syntax___typing___AExpr___is_typed(val_t p0
){
2349 struct {struct stack_frame_t me
;} fra
;
2352 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2353 fra
.me
.file
= LOCATE_syntax___typing
;
2355 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_typed
;
2356 fra
.me
.has_broke
= 0;
2357 fra
.me
.REG_size
= 1;
2358 fra
.me
.REG
[0] = NIT_NULL
;
2360 /* ./syntax//typing.nit:356 */
2361 REGB0
= TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0])!=NIT_NULL
);
2362 if (UNTAG_Bool(REGB0
)) {
2364 nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_syntax___typing
, 356);
2366 REGB0
= ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]);
2367 stack_frame_head
= fra
.me
.prev
;
2370 val_t
syntax___typing___AExpr___is_statement(val_t p0
){
2371 struct {struct stack_frame_t me
;} fra
;
2375 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2376 fra
.me
.file
= LOCATE_syntax___typing
;
2378 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_statement
;
2379 fra
.me
.has_broke
= 0;
2380 fra
.me
.REG_size
= 1;
2381 fra
.me
.REG
[0] = NIT_NULL
;
2383 /* ./syntax//typing.nit:357 */
2384 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
2385 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2386 if (UNTAG_Bool(REGB0
)) {
2388 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2389 if (UNTAG_Bool(REGB1
)) {
2390 REGB1
= TAG_Bool(false);
2393 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2399 stack_frame_head
= fra
.me
.prev
;
2402 val_t
syntax___typing___AExpr___stype(val_t p0
){
2403 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2406 static val_t once_value_1
; /* Once value */
2407 static val_t once_value_2
; /* Once value */
2408 static val_t once_value_3
; /* Once value */
2409 static val_t once_value_4
; /* Once value */
2410 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2411 fra
.me
.file
= LOCATE_syntax___typing
;
2413 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___stype
;
2414 fra
.me
.has_broke
= 0;
2415 fra
.me
.REG_size
= 4;
2416 fra
.me
.REG
[0] = NIT_NULL
;
2417 fra
.me
.REG
[1] = NIT_NULL
;
2418 fra
.me
.REG
[2] = NIT_NULL
;
2419 fra
.me
.REG
[3] = NIT_NULL
;
2421 /* ./syntax//typing.nit:358 */
2422 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2423 /* ./syntax//typing.nit:360 */
2424 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2425 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2426 if (UNTAG_Bool(REGB0
)) {
2427 /* ./syntax//typing.nit:361 */
2429 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2430 if (!once_value_1
) {
2431 fra
.me
.REG
[3] = BOX_NativeString("");
2433 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2434 once_value_1
= fra
.me
.REG
[3];
2435 register_static_object(&once_value_1
);
2436 } else fra
.me
.REG
[3] = once_value_1
;
2437 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2439 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2440 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2442 if (!once_value_2
) {
2443 fra
.me
.REG
[3] = BOX_NativeString(": not is_typed");
2444 REGB0
= TAG_Int(14);
2445 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2446 once_value_2
= fra
.me
.REG
[3];
2447 register_static_object(&once_value_2
);
2448 } else fra
.me
.REG
[3] = once_value_2
;
2449 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2451 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2452 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2453 /* ./syntax//typing.nit:362 */
2454 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 362);
2456 /* ./syntax//typing.nit:364 */
2457 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2458 if (UNTAG_Bool(REGB0
)) {
2459 /* ./syntax//typing.nit:365 */
2461 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2462 if (!once_value_3
) {
2463 fra
.me
.REG
[3] = BOX_NativeString("");
2465 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2466 once_value_3
= fra
.me
.REG
[3];
2467 register_static_object(&once_value_3
);
2468 } else fra
.me
.REG
[3] = once_value_3
;
2469 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2471 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2472 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2473 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2474 if (!once_value_4
) {
2475 fra
.me
.REG
[3] = BOX_NativeString(": is_statement");
2476 REGB0
= TAG_Int(14);
2477 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2478 once_value_4
= fra
.me
.REG
[3];
2479 register_static_object(&once_value_4
);
2480 } else fra
.me
.REG
[3] = once_value_4
;
2481 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2482 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2483 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2484 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2485 /* ./syntax//typing.nit:366 */
2486 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 366);
2488 /* ./syntax//typing.nit:368 */
2489 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[1]);
2490 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2491 if (UNTAG_Bool(REGB0
)) {
2493 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 368);
2497 stack_frame_head
= fra
.me
.prev
;
2498 return fra
.me
.REG
[1];
2500 void syntax___typing___AExpr___after_typing(val_t p0
, val_t p1
){
2501 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2504 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2505 fra
.me
.file
= LOCATE_syntax___typing
;
2507 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___after_typing
;
2508 fra
.me
.has_broke
= 0;
2509 fra
.me
.REG_size
= 2;
2510 fra
.me
.REG
[0] = NIT_NULL
;
2511 fra
.me
.REG
[1] = NIT_NULL
;
2514 /* ./syntax//typing.nit:375 */
2515 REGB0
= TAG_Bool(true);
2516 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2517 stack_frame_head
= fra
.me
.prev
;
2520 val_t
syntax___typing___AExpr___is_implicit_self(val_t p0
){
2521 struct {struct stack_frame_t me
;} fra
;
2524 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2525 fra
.me
.file
= LOCATE_syntax___typing
;
2527 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_implicit_self
;
2528 fra
.me
.has_broke
= 0;
2529 fra
.me
.REG_size
= 1;
2530 fra
.me
.REG
[0] = NIT_NULL
;
2532 /* ./syntax//typing.nit:379 */
2533 REGB0
= TAG_Bool(false);
2536 stack_frame_head
= fra
.me
.prev
;
2539 val_t
syntax___typing___AExpr___is_self(val_t p0
){
2540 struct {struct stack_frame_t me
;} fra
;
2543 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2544 fra
.me
.file
= LOCATE_syntax___typing
;
2546 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_self
;
2547 fra
.me
.has_broke
= 0;
2548 fra
.me
.REG_size
= 1;
2549 fra
.me
.REG
[0] = NIT_NULL
;
2551 /* ./syntax//typing.nit:382 */
2552 REGB0
= TAG_Bool(false);
2555 stack_frame_head
= fra
.me
.prev
;
2558 val_t
syntax___typing___AExpr___its_variable(val_t p0
){
2559 struct {struct stack_frame_t me
;} fra
;
2561 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2562 fra
.me
.file
= LOCATE_syntax___typing
;
2564 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___its_variable
;
2565 fra
.me
.has_broke
= 0;
2566 fra
.me
.REG_size
= 1;
2567 fra
.me
.REG
[0] = NIT_NULL
;
2569 /* ./syntax//typing.nit:385 */
2570 fra
.me
.REG
[0] = NIT_NULL
;
2573 stack_frame_head
= fra
.me
.prev
;
2574 return fra
.me
.REG
[0];
2576 val_t
syntax___typing___AExpr___if_true_flow_ctx(val_t p0
){
2577 struct {struct stack_frame_t me
;} fra
;
2579 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2580 fra
.me
.file
= LOCATE_syntax___typing
;
2582 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___if_true_flow_ctx
;
2583 fra
.me
.has_broke
= 0;
2584 fra
.me
.REG_size
= 1;
2585 fra
.me
.REG
[0] = NIT_NULL
;
2587 /* ./syntax//typing.nit:387 */
2588 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]);
2589 stack_frame_head
= fra
.me
.prev
;
2590 return fra
.me
.REG
[0];
2592 val_t
syntax___typing___AExpr___if_false_flow_ctx(val_t p0
){
2593 struct {struct stack_frame_t me
;} fra
;
2595 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2596 fra
.me
.file
= LOCATE_syntax___typing
;
2598 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___if_false_flow_ctx
;
2599 fra
.me
.has_broke
= 0;
2600 fra
.me
.REG_size
= 1;
2601 fra
.me
.REG
[0] = NIT_NULL
;
2603 /* ./syntax//typing.nit:390 */
2604 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]);
2605 stack_frame_head
= fra
.me
.prev
;
2606 return fra
.me
.REG
[0];
2608 val_t
syntax___typing___AVardeclExpr___variable(val_t p0
){
2609 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2612 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2613 fra
.me
.file
= LOCATE_syntax___typing
;
2615 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___variable
;
2616 fra
.me
.has_broke
= 0;
2617 fra
.me
.REG_size
= 2;
2618 fra
.me
.REG
[0] = NIT_NULL
;
2619 fra
.me
.REG
[1] = NIT_NULL
;
2621 /* ./syntax//typing.nit:396 */
2622 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2623 fra
.me
.REG
[1] = ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[1]);
2624 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2625 if (UNTAG_Bool(REGB0
)) {
2627 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 396);
2631 stack_frame_head
= fra
.me
.prev
;
2632 return fra
.me
.REG
[1];
2634 void syntax___typing___AVardeclExpr___after_typing(val_t p0
, val_t p1
){
2635 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2639 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2640 fra
.me
.file
= LOCATE_syntax___typing
;
2642 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___after_typing
;
2643 fra
.me
.has_broke
= 0;
2644 fra
.me
.REG_size
= 5;
2645 fra
.me
.REG
[0] = NIT_NULL
;
2646 fra
.me
.REG
[1] = NIT_NULL
;
2647 fra
.me
.REG
[2] = NIT_NULL
;
2648 fra
.me
.REG
[3] = NIT_NULL
;
2649 fra
.me
.REG
[4] = NIT_NULL
;
2652 /* ./syntax//typing.nit:400 */
2653 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2654 fra
.me
.REG
[2] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2655 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2656 fra
.me
.REG
[3] = NEW_VarVariable_syntax___syntax_base___VarVariable___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2657 /* ./syntax//typing.nit:401 */
2658 ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
2659 /* ./syntax//typing.nit:402 */
2660 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2661 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2662 /* ./syntax//typing.nit:403 */
2663 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2664 /* ./syntax//typing.nit:404 */
2665 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2666 if (UNTAG_Bool(REGB0
)) {
2668 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2669 if (UNTAG_Bool(REGB1
)) {
2670 REGB1
= TAG_Bool(false);
2673 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2677 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2678 if (UNTAG_Bool(REGB0
)) {
2679 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2681 /* ./syntax//typing.nit:406 */
2682 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2683 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2684 if (UNTAG_Bool(REGB0
)) {
2686 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2687 if (UNTAG_Bool(REGB1
)) {
2688 REGB1
= TAG_Bool(false);
2691 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2695 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2696 if (UNTAG_Bool(REGB0
)) {
2697 /* ./syntax//typing.nit:407 */
2698 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2699 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2700 if (UNTAG_Bool(REGB0
)) {
2701 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 407);
2703 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2704 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2705 if (UNTAG_Bool(REGB0
)) {
2708 /* ./syntax//typing.nit:408 */
2709 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2710 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2711 if (UNTAG_Bool(REGB0
)) {
2712 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 408);
2714 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2715 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2716 /* ./syntax//typing.nit:409 */
2717 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2718 if (UNTAG_Bool(REGB0
)) {
2720 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2721 if (UNTAG_Bool(REGB1
)) {
2722 REGB1
= TAG_Bool(false);
2725 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2729 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2730 if (UNTAG_Bool(REGB0
)) {
2731 /* ./syntax//typing.nit:410 */
2732 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2733 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
2736 /* ./syntax//typing.nit:412 */
2737 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2738 if (UNTAG_Bool(REGB0
)) {
2740 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2741 if (UNTAG_Bool(REGB1
)) {
2742 REGB1
= TAG_Bool(false);
2745 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2749 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2750 if (UNTAG_Bool(REGB0
)) {
2751 /* ./syntax//typing.nit:413 */
2752 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2753 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2754 if (UNTAG_Bool(REGB0
)) {
2757 /* ./syntax//typing.nit:414 */
2758 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2759 if (UNTAG_Bool(REGB0
)) {
2760 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 414);
2762 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2763 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2765 /* ./syntax//typing.nit:416 */
2766 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2767 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2768 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2771 /* ./syntax//typing.nit:418 */
2772 REGB0
= TAG_Bool(true);
2773 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2775 stack_frame_head
= fra
.me
.prev
;
2778 void syntax___typing___ABlockExpr___accept_typing(val_t p0
, val_t p1
){
2779 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2782 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2783 fra
.me
.file
= LOCATE_syntax___typing
;
2785 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
2786 fra
.me
.has_broke
= 0;
2787 fra
.me
.REG_size
= 3;
2788 fra
.me
.REG
[0] = NIT_NULL
;
2789 fra
.me
.REG
[1] = NIT_NULL
;
2790 fra
.me
.REG
[2] = NIT_NULL
;
2793 /* ./syntax//typing.nit:425 */
2794 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2795 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
));
2796 /* ./syntax//typing.nit:434 */
2797 REGB0
= TAG_Bool(true);
2798 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2799 stack_frame_head
= fra
.me
.prev
;
2802 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
){
2803 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2807 static val_t once_value_2
; /* Once value */
2808 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2809 fra
.me
.file
= LOCATE_syntax___typing
;
2811 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
2812 fra
.me
.has_broke
= 0;
2813 fra
.me
.REG_size
= 2;
2814 fra
.me
.REG
[0] = NIT_NULL
;
2815 fra
.me
.REG
[1] = NIT_NULL
;
2816 fra
.me
.closure_ctx
= closctx_param
;
2817 fra
.me
.closure_funs
= CREG
;
2819 CREG
[0] = clos_fun0
;
2820 /* ./syntax//typing.nit:426 */
2821 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2822 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2823 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2824 if (UNTAG_Bool(REGB0
)) {
2825 /* ./syntax//typing.nit:427 */
2826 CALL_parser___parser_prod___Visitor___enter_visit(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2828 /* ./syntax//typing.nit:428 */
2829 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2830 REGB0
= CALL_syntax___flow___FlowContext___already_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2831 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2832 if (UNTAG_Bool(REGB0
)) {
2833 /* ./syntax//typing.nit:429 */
2834 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
2835 REGB0
= TAG_Bool(true);
2836 CALL_syntax___flow___FlowContext___already_unreash__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
2837 /* ./syntax//typing.nit:430 */
2838 if (!once_value_2
) {
2839 fra
.me
.REG
[1] = BOX_NativeString("Error: unreachable statement.");
2840 REGB0
= TAG_Int(29);
2841 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
2842 once_value_2
= fra
.me
.REG
[1];
2843 register_static_object(&once_value_2
);
2844 } else fra
.me
.REG
[1] = once_value_2
;
2845 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2846 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[1]);
2849 stack_frame_head
= fra
.me
.prev
;
2852 void syntax___typing___AReturnExpr___after_typing(val_t p0
, val_t p1
){
2853 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2857 static val_t once_value_1
; /* Once value */
2858 static val_t once_value_3
; /* Once value */
2859 static val_t once_value_4
; /* Once value */
2860 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2861 fra
.me
.file
= LOCATE_syntax___typing
;
2863 fra
.me
.meth
= LOCATE_syntax___typing___AReturnExpr___after_typing
;
2864 fra
.me
.has_broke
= 0;
2865 fra
.me
.REG_size
= 5;
2866 fra
.me
.REG
[0] = NIT_NULL
;
2867 fra
.me
.REG
[1] = NIT_NULL
;
2868 fra
.me
.REG
[2] = NIT_NULL
;
2869 fra
.me
.REG
[3] = NIT_NULL
;
2870 fra
.me
.REG
[4] = NIT_NULL
;
2873 /* ./syntax//typing.nit:441 */
2874 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2875 /* ./syntax//typing.nit:442 */
2876 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2877 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2878 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2879 if (UNTAG_Bool(REGB0
)) {
2880 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 442);
2882 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2883 /* ./syntax//typing.nit:444 */
2884 REGB0
= CALL_syntax___typing___TypingVisitor___is_default_closure_definition(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2885 if (UNTAG_Bool(REGB0
)) {
2886 /* ./syntax//typing.nit:445 */
2887 if (!once_value_1
) {
2888 fra
.me
.REG
[3] = BOX_NativeString("Error: 'return' invalid in default closure definitions. Use 'continue' or 'break'.");
2889 REGB0
= TAG_Int(82);
2890 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2891 once_value_1
= fra
.me
.REG
[3];
2892 register_static_object(&once_value_1
);
2893 } else fra
.me
.REG
[3] = once_value_1
;
2894 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2895 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
2896 /* ./syntax//typing.nit:446 */
2899 /* ./syntax//typing.nit:449 */
2900 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2901 /* ./syntax//typing.nit:450 */
2902 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2903 if (UNTAG_Bool(REGB0
)) {
2905 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2906 if (UNTAG_Bool(REGB1
)) {
2907 REGB1
= TAG_Bool(false);
2910 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2914 if (UNTAG_Bool(REGB0
)) {
2915 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2916 if (UNTAG_Bool(REGB0
)) {
2918 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2919 if (UNTAG_Bool(REGB1
)) {
2920 REGB1
= TAG_Bool(false);
2923 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2927 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2929 REGB1
= TAG_Bool(false);
2932 if (UNTAG_Bool(REGB0
)) {
2933 /* ./syntax//typing.nit:451 */
2934 if (!once_value_3
) {
2935 fra
.me
.REG
[4] = BOX_NativeString("Error: Return without value in a function.");
2936 REGB0
= TAG_Int(42);
2937 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2938 once_value_3
= fra
.me
.REG
[4];
2939 register_static_object(&once_value_3
);
2940 } else fra
.me
.REG
[4] = once_value_3
;
2941 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2942 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
2944 /* ./syntax//typing.nit:452 */
2945 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2946 if (UNTAG_Bool(REGB0
)) {
2948 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2949 if (UNTAG_Bool(REGB1
)) {
2950 REGB1
= TAG_Bool(false);
2953 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2957 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2958 if (UNTAG_Bool(REGB0
)) {
2959 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2960 if (UNTAG_Bool(REGB0
)) {
2962 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2963 if (UNTAG_Bool(REGB1
)) {
2964 REGB1
= TAG_Bool(false);
2967 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2972 REGB1
= TAG_Bool(false);
2975 if (UNTAG_Bool(REGB0
)) {
2976 /* ./syntax//typing.nit:453 */
2977 if (!once_value_4
) {
2978 fra
.me
.REG
[4] = BOX_NativeString("Error: Return with value in a procedure.");
2979 REGB0
= TAG_Int(40);
2980 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
2981 once_value_4
= fra
.me
.REG
[4];
2982 register_static_object(&once_value_4
);
2983 } else fra
.me
.REG
[4] = once_value_4
;
2984 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2985 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
2987 /* ./syntax//typing.nit:454 */
2988 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2989 if (UNTAG_Bool(REGB0
)) {
2991 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2992 if (UNTAG_Bool(REGB1
)) {
2993 REGB1
= TAG_Bool(false);
2996 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3000 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3001 if (UNTAG_Bool(REGB0
)) {
3002 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3003 if (UNTAG_Bool(REGB0
)) {
3005 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3006 if (UNTAG_Bool(REGB1
)) {
3007 REGB1
= TAG_Bool(false);
3010 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3014 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3016 REGB1
= TAG_Bool(false);
3019 if (UNTAG_Bool(REGB0
)) {
3020 /* ./syntax//typing.nit:455 */
3021 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3025 /* ./syntax//typing.nit:457 */
3026 REGB0
= TAG_Bool(true);
3027 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3029 stack_frame_head
= fra
.me
.prev
;
3032 void syntax___typing___AContinueExpr___after_typing(val_t p0
, val_t p1
){
3033 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3037 static val_t once_value_2
; /* Once value */
3038 static val_t once_value_3
; /* Once value */
3039 static val_t once_value_4
; /* Once value */
3040 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3041 fra
.me
.file
= LOCATE_syntax___typing
;
3043 fra
.me
.meth
= LOCATE_syntax___typing___AContinueExpr___after_typing
;
3044 fra
.me
.has_broke
= 0;
3045 fra
.me
.REG_size
= 5;
3046 fra
.me
.REG
[0] = NIT_NULL
;
3047 fra
.me
.REG
[1] = NIT_NULL
;
3048 fra
.me
.REG
[2] = NIT_NULL
;
3049 fra
.me
.REG
[3] = NIT_NULL
;
3050 fra
.me
.REG
[4] = NIT_NULL
;
3053 /* ./syntax//typing.nit:462 */
3054 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3055 /* ./syntax//typing.nit:464 */
3056 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3057 /* ./syntax//typing.nit:465 */
3058 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3059 fra
.me
.REG
[3] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
3060 /* ./syntax//typing.nit:466 */
3061 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3062 if (UNTAG_Bool(REGB0
)) {
3064 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3065 if (UNTAG_Bool(REGB1
)) {
3066 REGB1
= TAG_Bool(false);
3069 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3073 if (UNTAG_Bool(REGB0
)) {
3076 /* ./syntax//typing.nit:468 */
3077 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3078 if (UNTAG_Bool(REGB0
)) {
3079 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 468);
3081 REGB0
= CALL_syntax___scope___EscapableBlock___is_break_block(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3082 if (UNTAG_Bool(REGB0
)) {
3083 /* ./syntax//typing.nit:469 */
3084 if (!once_value_2
) {
3085 fra
.me
.REG
[4] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
3086 REGB0
= TAG_Int(39);
3087 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3088 once_value_2
= fra
.me
.REG
[4];
3089 register_static_object(&once_value_2
);
3090 } else fra
.me
.REG
[4] = once_value_2
;
3091 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3092 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3093 /* ./syntax//typing.nit:470 */
3096 /* ./syntax//typing.nit:473 */
3097 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3098 if (UNTAG_Bool(REGB0
)) {
3099 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 473);
3101 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableBlock___continue_stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3102 /* ./syntax//typing.nit:474 */
3103 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3104 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3105 if (UNTAG_Bool(REGB0
)) {
3107 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3108 if (UNTAG_Bool(REGB1
)) {
3109 REGB1
= TAG_Bool(false);
3112 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3116 if (UNTAG_Bool(REGB0
)) {
3117 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3118 if (UNTAG_Bool(REGB0
)) {
3120 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3121 if (UNTAG_Bool(REGB1
)) {
3122 REGB1
= TAG_Bool(false);
3125 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3129 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3131 REGB1
= TAG_Bool(false);
3134 if (UNTAG_Bool(REGB0
)) {
3135 /* ./syntax//typing.nit:475 */
3136 if (!once_value_3
) {
3137 fra
.me
.REG
[4] = BOX_NativeString("Error: continue with a value required in this block.");
3138 REGB0
= TAG_Int(52);
3139 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3140 once_value_3
= fra
.me
.REG
[4];
3141 register_static_object(&once_value_3
);
3142 } else fra
.me
.REG
[4] = once_value_3
;
3143 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3144 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3146 /* ./syntax//typing.nit:476 */
3147 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3148 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3149 if (UNTAG_Bool(REGB0
)) {
3151 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3152 if (UNTAG_Bool(REGB1
)) {
3153 REGB1
= TAG_Bool(false);
3156 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3160 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3161 if (UNTAG_Bool(REGB0
)) {
3162 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3163 if (UNTAG_Bool(REGB0
)) {
3165 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3166 if (UNTAG_Bool(REGB1
)) {
3167 REGB1
= TAG_Bool(false);
3170 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3175 REGB1
= TAG_Bool(false);
3178 if (UNTAG_Bool(REGB0
)) {
3179 /* ./syntax//typing.nit:477 */
3180 if (!once_value_4
) {
3181 fra
.me
.REG
[4] = BOX_NativeString("Error: continue without value required in this block.");
3182 REGB0
= TAG_Int(53);
3183 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3184 once_value_4
= fra
.me
.REG
[4];
3185 register_static_object(&once_value_4
);
3186 } else fra
.me
.REG
[4] = once_value_4
;
3187 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3188 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
3190 /* ./syntax//typing.nit:478 */
3191 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3192 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3193 if (UNTAG_Bool(REGB0
)) {
3195 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3196 if (UNTAG_Bool(REGB1
)) {
3197 REGB1
= TAG_Bool(false);
3200 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3204 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3205 if (UNTAG_Bool(REGB0
)) {
3206 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3207 if (UNTAG_Bool(REGB0
)) {
3209 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3210 if (UNTAG_Bool(REGB1
)) {
3211 REGB1
= TAG_Bool(false);
3214 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3218 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3220 REGB1
= TAG_Bool(false);
3223 if (UNTAG_Bool(REGB0
)) {
3224 /* ./syntax//typing.nit:479 */
3225 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3226 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*/;
3227 if (UNTAG_Bool(REGB0
)) {
3229 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 479);
3231 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3235 /* ./syntax//typing.nit:481 */
3236 REGB0
= TAG_Bool(true);
3237 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
3239 stack_frame_head
= fra
.me
.prev
;
3242 void syntax___typing___ABreakExpr___after_typing(val_t p0
, val_t p1
){
3243 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3247 static val_t once_value_2
; /* Once value */
3248 static val_t once_value_3
; /* Once value */
3249 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3250 fra
.me
.file
= LOCATE_syntax___typing
;
3252 fra
.me
.meth
= LOCATE_syntax___typing___ABreakExpr___after_typing
;
3253 fra
.me
.has_broke
= 0;
3254 fra
.me
.REG_size
= 6;
3255 fra
.me
.REG
[0] = NIT_NULL
;
3256 fra
.me
.REG
[1] = NIT_NULL
;
3257 fra
.me
.REG
[2] = NIT_NULL
;
3258 fra
.me
.REG
[3] = NIT_NULL
;
3259 fra
.me
.REG
[4] = NIT_NULL
;
3260 fra
.me
.REG
[5] = NIT_NULL
;
3263 /* ./syntax//typing.nit:486 */
3264 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3265 /* ./syntax//typing.nit:488 */
3266 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3267 /* ./syntax//typing.nit:489 */
3268 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3269 /* ./syntax//typing.nit:490 */
3270 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3271 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3272 /* ./syntax//typing.nit:491 */
3273 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3274 if (UNTAG_Bool(REGB0
)) {
3276 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3277 if (UNTAG_Bool(REGB1
)) {
3278 REGB1
= TAG_Bool(false);
3281 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3285 if (UNTAG_Bool(REGB0
)) {
3288 /* ./syntax//typing.nit:493 */
3289 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3290 if (UNTAG_Bool(REGB0
)) {
3291 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 493);
3293 fra
.me
.REG
[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3294 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
3295 /* ./syntax//typing.nit:495 */
3296 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3297 if (UNTAG_Bool(REGB0
)) {
3298 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 495);
3300 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3301 /* ./syntax//typing.nit:496 */
3302 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3303 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3304 if (UNTAG_Bool(REGB0
)) {
3306 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3307 if (UNTAG_Bool(REGB1
)) {
3308 REGB1
= TAG_Bool(false);
3311 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3315 if (UNTAG_Bool(REGB0
)) {
3316 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3317 if (UNTAG_Bool(REGB0
)) {
3319 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3320 if (UNTAG_Bool(REGB1
)) {
3321 REGB1
= TAG_Bool(false);
3324 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3328 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3330 REGB1
= TAG_Bool(false);
3333 if (UNTAG_Bool(REGB0
)) {
3334 /* ./syntax//typing.nit:497 */
3335 if (!once_value_2
) {
3336 fra
.me
.REG
[3] = BOX_NativeString("Error: break with a value required in this block.");
3337 REGB0
= TAG_Int(49);
3338 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3339 once_value_2
= fra
.me
.REG
[3];
3340 register_static_object(&once_value_2
);
3341 } else fra
.me
.REG
[3] = once_value_2
;
3342 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3343 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3345 /* ./syntax//typing.nit:498 */
3346 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3347 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3348 if (UNTAG_Bool(REGB0
)) {
3350 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3351 if (UNTAG_Bool(REGB1
)) {
3352 REGB1
= TAG_Bool(false);
3355 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3359 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3360 if (UNTAG_Bool(REGB0
)) {
3361 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3362 if (UNTAG_Bool(REGB0
)) {
3364 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3365 if (UNTAG_Bool(REGB1
)) {
3366 REGB1
= TAG_Bool(false);
3369 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3374 REGB1
= TAG_Bool(false);
3377 if (UNTAG_Bool(REGB0
)) {
3378 /* ./syntax//typing.nit:499 */
3379 if (!once_value_3
) {
3380 fra
.me
.REG
[3] = BOX_NativeString("Error: break without value required in this block.");
3381 REGB0
= TAG_Int(50);
3382 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3383 once_value_3
= fra
.me
.REG
[3];
3384 register_static_object(&once_value_3
);
3385 } else fra
.me
.REG
[3] = once_value_3
;
3386 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3387 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3389 /* ./syntax//typing.nit:500 */
3390 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3391 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3392 if (UNTAG_Bool(REGB0
)) {
3394 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3395 if (UNTAG_Bool(REGB1
)) {
3396 REGB1
= TAG_Bool(false);
3399 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3403 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3404 if (UNTAG_Bool(REGB0
)) {
3405 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3406 if (UNTAG_Bool(REGB0
)) {
3408 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3409 if (UNTAG_Bool(REGB1
)) {
3410 REGB1
= TAG_Bool(false);
3413 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3417 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3419 REGB1
= TAG_Bool(false);
3422 if (UNTAG_Bool(REGB0
)) {
3423 /* ./syntax//typing.nit:502 */
3424 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3425 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*/;
3426 if (UNTAG_Bool(REGB0
)) {
3428 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 502);
3430 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3431 if (UNTAG_Bool(REGB0
)) {
3432 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 502);
3434 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3438 /* ./syntax//typing.nit:504 */
3439 REGB0
= TAG_Bool(true);
3440 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
3442 stack_frame_head
= fra
.me
.prev
;
3445 void syntax___typing___AAbortExpr___after_typing(val_t p0
, val_t p1
){
3446 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3449 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3450 fra
.me
.file
= LOCATE_syntax___typing
;
3452 fra
.me
.meth
= LOCATE_syntax___typing___AAbortExpr___after_typing
;
3453 fra
.me
.has_broke
= 0;
3454 fra
.me
.REG_size
= 2;
3455 fra
.me
.REG
[0] = NIT_NULL
;
3456 fra
.me
.REG
[1] = NIT_NULL
;
3459 /* ./syntax//typing.nit:511 */
3460 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3461 /* ./syntax//typing.nit:512 */
3462 REGB0
= TAG_Bool(true);
3463 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3464 stack_frame_head
= fra
.me
.prev
;
3467 val_t
syntax___typing___AAbsControl___escapable(val_t p0
){
3468 struct {struct stack_frame_t me
;} fra
;
3470 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3471 fra
.me
.file
= LOCATE_syntax___typing
;
3473 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___escapable
;
3474 fra
.me
.has_broke
= 0;
3475 fra
.me
.REG_size
= 1;
3476 fra
.me
.REG
[0] = NIT_NULL
;
3478 /* ./syntax//typing.nit:519 */
3479 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]);
3480 stack_frame_head
= fra
.me
.prev
;
3481 return fra
.me
.REG
[0];
3483 void syntax___typing___AAbsControl___process_control(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
3484 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3488 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3489 fra
.me
.file
= LOCATE_syntax___typing
;
3491 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control
;
3492 fra
.me
.has_broke
= 0;
3493 fra
.me
.REG_size
= 7;
3494 fra
.me
.REG
[0] = NIT_NULL
;
3495 fra
.me
.REG
[1] = NIT_NULL
;
3496 fra
.me
.REG
[2] = NIT_NULL
;
3497 fra
.me
.REG
[3] = NIT_NULL
;
3498 fra
.me
.REG
[4] = NIT_NULL
;
3499 fra
.me
.REG
[5] = NIT_NULL
;
3500 fra
.me
.REG
[6] = NIT_NULL
;
3506 /* ./syntax//typing.nit:526 */
3507 ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3508 /* ./syntax//typing.nit:527 */
3509 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3510 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3511 /* ./syntax//typing.nit:530 */
3512 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3513 /* ./syntax//typing.nit:531 */
3514 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3515 /* ./syntax//typing.nit:532 */
3516 if (UNTAG_Bool(REGB0
)) {
3517 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3518 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3520 /* ./syntax//typing.nit:535 */
3521 CALL_syntax___typing___AAbsControl___process_control_inside(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3522 /* ./syntax//typing.nit:538 */
3523 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3524 REGB1
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3525 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
3526 if (UNTAG_Bool(REGB1
)) {
3527 /* ./syntax//typing.nit:539 */
3528 fra
.me
.REG
[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3529 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3530 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3532 /* ./syntax//typing.nit:543 */
3533 fra
.me
.REG
[6] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3534 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3535 if (UNTAG_Bool(REGB1
)) {
3536 /* ./syntax//typing.nit:544 */
3537 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3538 /* ./syntax//typing.nit:545 */
3539 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3541 /* ./syntax//typing.nit:547 */
3542 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3543 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]);
3544 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3546 /* ./syntax//typing.nit:550 */
3547 if (UNTAG_Bool(REGB0
)) {
3548 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3550 /* ./syntax//typing.nit:551 */
3551 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3552 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3553 /* ./syntax//typing.nit:552 */
3554 REGB0
= TAG_Bool(true);
3555 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3556 stack_frame_head
= fra
.me
.prev
;
3559 void syntax___typing___AAbsControl___process_control_inside(val_t p0
, val_t p1
){
3560 struct {struct stack_frame_t me
;} fra
;
3562 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3563 fra
.me
.file
= LOCATE_syntax___typing
;
3565 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control_inside
;
3566 fra
.me
.has_broke
= 0;
3567 fra
.me
.REG_size
= 0;
3568 /* ./syntax//typing.nit:555 */
3569 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 555);
3570 stack_frame_head
= fra
.me
.prev
;
3573 void syntax___typing___ADoExpr___accept_typing(val_t p0
, val_t p1
){
3574 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3577 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3578 fra
.me
.file
= LOCATE_syntax___typing
;
3580 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___accept_typing
;
3581 fra
.me
.has_broke
= 0;
3582 fra
.me
.REG_size
= 4;
3583 fra
.me
.REG
[0] = NIT_NULL
;
3584 fra
.me
.REG
[1] = NIT_NULL
;
3585 fra
.me
.REG
[2] = NIT_NULL
;
3586 fra
.me
.REG
[3] = NIT_NULL
;
3589 /* ./syntax//typing.nit:563 */
3590 fra
.me
.REG
[2] = NEW_BreakOnlyEscapableBlock_syntax___scope___BreakOnlyEscapableBlock___init(fra
.me
.REG
[0]);
3591 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3592 REGB0
= TAG_Bool(false);
3593 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
);
3594 stack_frame_head
= fra
.me
.prev
;
3597 void syntax___typing___ADoExpr___process_control_inside(val_t p0
, val_t p1
){
3598 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3600 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3601 fra
.me
.file
= LOCATE_syntax___typing
;
3603 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___process_control_inside
;
3604 fra
.me
.has_broke
= 0;
3605 fra
.me
.REG_size
= 2;
3606 fra
.me
.REG
[0] = NIT_NULL
;
3607 fra
.me
.REG
[1] = NIT_NULL
;
3610 /* ./syntax//typing.nit:568 */
3611 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3612 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3613 stack_frame_head
= fra
.me
.prev
;
3616 void syntax___typing___AIfExpr___accept_typing(val_t p0
, val_t p1
){
3617 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3620 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3621 fra
.me
.file
= LOCATE_syntax___typing
;
3623 fra
.me
.meth
= LOCATE_syntax___typing___AIfExpr___accept_typing
;
3624 fra
.me
.has_broke
= 0;
3625 fra
.me
.REG_size
= 5;
3626 fra
.me
.REG
[0] = NIT_NULL
;
3627 fra
.me
.REG
[1] = NIT_NULL
;
3628 fra
.me
.REG
[2] = NIT_NULL
;
3629 fra
.me
.REG
[3] = NIT_NULL
;
3630 fra
.me
.REG
[4] = NIT_NULL
;
3633 /* ./syntax//typing.nit:575 */
3634 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3635 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3636 /* ./syntax//typing.nit:576 */
3637 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3638 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3639 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3640 /* ./syntax//typing.nit:579 */
3641 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3642 /* ./syntax//typing.nit:580 */
3643 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3644 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3645 /* ./syntax//typing.nit:583 */
3646 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3647 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3648 /* ./syntax//typing.nit:586 */
3649 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3650 /* ./syntax//typing.nit:589 */
3651 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3652 /* ./syntax//typing.nit:590 */
3653 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3654 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3655 /* ./syntax//typing.nit:593 */
3656 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3657 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3658 /* ./syntax//typing.nit:596 */
3659 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3660 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3661 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]);
3662 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3663 /* ./syntax//typing.nit:597 */
3664 REGB0
= TAG_Bool(true);
3665 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3666 stack_frame_head
= fra
.me
.prev
;
3669 void syntax___typing___AWhileExpr___accept_typing(val_t p0
, val_t p1
){
3670 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3673 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3674 fra
.me
.file
= LOCATE_syntax___typing
;
3676 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___accept_typing
;
3677 fra
.me
.has_broke
= 0;
3678 fra
.me
.REG_size
= 4;
3679 fra
.me
.REG
[0] = NIT_NULL
;
3680 fra
.me
.REG
[1] = NIT_NULL
;
3681 fra
.me
.REG
[2] = NIT_NULL
;
3682 fra
.me
.REG
[3] = NIT_NULL
;
3685 /* ./syntax//typing.nit:605 */
3686 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3687 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3688 REGB0
= TAG_Bool(true);
3689 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
);
3690 stack_frame_head
= fra
.me
.prev
;
3693 void syntax___typing___AWhileExpr___process_control_inside(val_t p0
, val_t p1
){
3694 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3697 static val_t once_value_1
; /* Once value */
3698 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3699 fra
.me
.file
= LOCATE_syntax___typing
;
3701 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___process_control_inside
;
3702 fra
.me
.has_broke
= 0;
3703 fra
.me
.REG_size
= 5;
3704 fra
.me
.REG
[0] = NIT_NULL
;
3705 fra
.me
.REG
[1] = NIT_NULL
;
3706 fra
.me
.REG
[2] = NIT_NULL
;
3707 fra
.me
.REG
[3] = NIT_NULL
;
3708 fra
.me
.REG
[4] = NIT_NULL
;
3711 /* ./syntax//typing.nit:610 */
3712 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3713 /* ./syntax//typing.nit:613 */
3714 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3715 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3716 /* ./syntax//typing.nit:614 */
3717 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3718 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3719 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
3720 /* ./syntax//typing.nit:616 */
3721 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3722 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_parser___parser_nodes___ATrueExpr
, ID_parser___parser_nodes___ATrueExpr
)) /*cast ATrueExpr*/;
3723 if (UNTAG_Bool(REGB0
)) {
3724 /* ./syntax//typing.nit:617 */
3725 if (!once_value_1
) {
3726 fra
.me
.REG
[4] = BOX_NativeString("Warning: use 'loop' instead of 'while true do'.");
3727 REGB0
= TAG_Int(47);
3728 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3729 once_value_1
= fra
.me
.REG
[4];
3730 register_static_object(&once_value_1
);
3731 } else fra
.me
.REG
[4] = once_value_1
;
3732 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3733 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3735 /* ./syntax//typing.nit:621 */
3736 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3737 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3738 /* ./syntax//typing.nit:624 */
3739 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3740 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3741 /* ./syntax//typing.nit:627 */
3742 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3743 /* ./syntax//typing.nit:628 */
3744 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3745 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3746 /* ./syntax//typing.nit:629 */
3747 fra
.me
.REG
[0] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3748 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3749 if (UNTAG_Bool(REGB0
)) {
3750 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 629);
3752 fra
.me
.REG
[0] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3753 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3754 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3755 stack_frame_head
= fra
.me
.prev
;
3758 void syntax___typing___ALoopExpr___accept_typing(val_t p0
, val_t p1
){
3759 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3762 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3763 fra
.me
.file
= LOCATE_syntax___typing
;
3765 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___accept_typing
;
3766 fra
.me
.has_broke
= 0;
3767 fra
.me
.REG_size
= 4;
3768 fra
.me
.REG
[0] = NIT_NULL
;
3769 fra
.me
.REG
[1] = NIT_NULL
;
3770 fra
.me
.REG
[2] = NIT_NULL
;
3771 fra
.me
.REG
[3] = NIT_NULL
;
3774 /* ./syntax//typing.nit:637 */
3775 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3776 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3777 REGB0
= TAG_Bool(true);
3778 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
);
3779 stack_frame_head
= fra
.me
.prev
;
3782 void syntax___typing___ALoopExpr___process_control_inside(val_t p0
, val_t p1
){
3783 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3785 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3786 fra
.me
.file
= LOCATE_syntax___typing
;
3788 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___process_control_inside
;
3789 fra
.me
.has_broke
= 0;
3790 fra
.me
.REG_size
= 3;
3791 fra
.me
.REG
[0] = NIT_NULL
;
3792 fra
.me
.REG
[1] = NIT_NULL
;
3793 fra
.me
.REG
[2] = NIT_NULL
;
3796 /* ./syntax//typing.nit:643 */
3797 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3798 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3799 /* ./syntax//typing.nit:646 */
3800 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3801 stack_frame_head
= fra
.me
.prev
;
3804 val_t
syntax___typing___AForExpr___variables(val_t p0
){
3805 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3808 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3809 fra
.me
.file
= LOCATE_syntax___typing
;
3811 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___variables
;
3812 fra
.me
.has_broke
= 0;
3813 fra
.me
.REG_size
= 2;
3814 fra
.me
.REG
[0] = NIT_NULL
;
3815 fra
.me
.REG
[1] = NIT_NULL
;
3817 /* ./syntax//typing.nit:653 */
3818 fra
.me
.REG
[1] = fra
.me
.REG
[0];
3819 fra
.me
.REG
[1] = ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[1]);
3820 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
3821 if (UNTAG_Bool(REGB0
)) {
3823 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 653);
3827 stack_frame_head
= fra
.me
.prev
;
3828 return fra
.me
.REG
[1];
3830 void syntax___typing___AForExpr___accept_typing(val_t p0
, val_t p1
){
3831 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3834 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3835 fra
.me
.file
= LOCATE_syntax___typing
;
3837 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___accept_typing
;
3838 fra
.me
.has_broke
= 0;
3839 fra
.me
.REG_size
= 4;
3840 fra
.me
.REG
[0] = NIT_NULL
;
3841 fra
.me
.REG
[1] = NIT_NULL
;
3842 fra
.me
.REG
[2] = NIT_NULL
;
3843 fra
.me
.REG
[3] = NIT_NULL
;
3846 /* ./syntax//typing.nit:657 */
3847 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
3848 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3849 REGB0
= TAG_Bool(true);
3850 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
);
3851 stack_frame_head
= fra
.me
.prev
;
3854 void syntax___typing___AForExpr___process_control_inside(val_t p0
, val_t p1
){
3855 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3857 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3858 fra
.me
.file
= LOCATE_syntax___typing
;
3860 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___process_control_inside
;
3861 fra
.me
.has_broke
= 0;
3862 fra
.me
.REG_size
= 3;
3863 fra
.me
.REG
[0] = NIT_NULL
;
3864 fra
.me
.REG
[1] = NIT_NULL
;
3865 fra
.me
.REG
[2] = NIT_NULL
;
3868 /* ./syntax//typing.nit:662 */
3869 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3870 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3871 /* ./syntax//typing.nit:663 */
3872 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3873 /* ./syntax//typing.nit:665 */
3874 CALL_syntax___typing___AForExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3875 /* ./syntax//typing.nit:668 */
3876 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3877 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3878 /* ./syntax//typing.nit:671 */
3879 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3880 /* ./syntax//typing.nit:672 */
3881 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3882 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3883 stack_frame_head
= fra
.me
.prev
;
3886 void syntax___typing___AForExpr___do_typing(val_t p0
, val_t p1
){
3887 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
3895 static val_t once_value_3
; /* Once value */
3896 static val_t once_value_4
; /* Once value */
3897 static val_t once_value_5
; /* Once value */
3898 static val_t once_value_6
; /* Once value */
3899 static val_t once_value_7
; /* Once value */
3900 static val_t once_value_8
; /* Once value */
3901 static val_t once_value_9
; /* Once value */
3902 static val_t once_value_10
; /* Once value */
3903 static val_t once_value_11
; /* Once value */
3904 static val_t once_value_12
; /* Once value */
3905 static val_t once_value_13
; /* Once value */
3906 static val_t once_value_14
; /* Once value */
3907 static val_t once_value_15
; /* Once value */
3908 static val_t once_value_16
; /* Once value */
3909 static val_t once_value_17
; /* Once value */
3910 static val_t once_value_18
; /* Once value */
3911 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3912 fra
.me
.file
= LOCATE_syntax___typing
;
3914 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
3915 fra
.me
.has_broke
= 0;
3916 fra
.me
.REG_size
= 8;
3917 fra
.me
.REG
[0] = NIT_NULL
;
3918 fra
.me
.REG
[1] = NIT_NULL
;
3919 fra
.me
.REG
[2] = NIT_NULL
;
3920 fra
.me
.REG
[3] = NIT_NULL
;
3921 fra
.me
.REG
[4] = NIT_NULL
;
3922 fra
.me
.REG
[5] = NIT_NULL
;
3923 fra
.me
.REG
[6] = NIT_NULL
;
3924 fra
.me
.REG
[7] = NIT_NULL
;
3927 /* ./syntax//typing.nit:678 */
3928 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
3929 /* ./syntax//typing.nit:679 */
3930 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3931 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
));
3932 /* ./syntax//typing.nit:684 */
3933 ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3934 /* ./syntax//typing.nit:687 */
3935 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3936 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3937 /* ./syntax//typing.nit:688 */
3938 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3939 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3940 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3941 if (UNTAG_Bool(REGB0
)) {
3944 /* ./syntax//typing.nit:689 */
3945 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3946 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3947 /* ./syntax//typing.nit:691 */
3948 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3949 if (UNTAG_Bool(REGB0
)) {
3950 /* ./syntax//typing.nit:692 */
3951 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3952 if (!once_value_3
) {
3953 fra
.me
.REG
[5] = BOX_NativeString("Type error: 'for' on a nullable expression.");
3954 REGB0
= TAG_Int(43);
3955 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3956 once_value_3
= fra
.me
.REG
[5];
3957 register_static_object(&once_value_3
);
3958 } else fra
.me
.REG
[5] = once_value_3
;
3959 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3960 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
3961 /* ./syntax//typing.nit:693 */
3964 /* ./syntax//typing.nit:697 */
3965 if (!once_value_4
) {
3966 if (!once_value_5
) {
3967 fra
.me
.REG
[5] = BOX_NativeString("iterate");
3969 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
3970 once_value_5
= fra
.me
.REG
[5];
3971 register_static_object(&once_value_5
);
3972 } else fra
.me
.REG
[5] = once_value_5
;
3973 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3974 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3975 once_value_4
= fra
.me
.REG
[5];
3976 register_static_object(&once_value_4
);
3977 } else fra
.me
.REG
[5] = once_value_4
;
3978 fra
.me
.REG
[5] = fra
.me
.REG
[5];
3979 /* ./syntax//typing.nit:698 */
3980 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3981 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
3982 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3983 if (UNTAG_Bool(REGB0
)) {
3984 /* ./syntax//typing.nit:699 */
3985 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3987 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3988 if (!once_value_6
) {
3989 fra
.me
.REG
[7] = BOX_NativeString("Type error: Expected a type with an 'iterate' method. Found ");
3990 REGB0
= TAG_Int(60);
3991 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3992 once_value_6
= fra
.me
.REG
[7];
3993 register_static_object(&once_value_6
);
3994 } else fra
.me
.REG
[7] = once_value_6
;
3995 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3996 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3997 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
3999 if (!once_value_7
) {
4000 fra
.me
.REG
[7] = BOX_NativeString(".");
4002 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4003 once_value_7
= fra
.me
.REG
[7];
4004 register_static_object(&once_value_7
);
4005 } else fra
.me
.REG
[7] = once_value_7
;
4006 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4007 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4008 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4009 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
4010 /* ./syntax//typing.nit:700 */
4013 /* ./syntax//typing.nit:702 */
4014 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4015 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
4016 /* ./syntax//typing.nit:703 */
4017 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4018 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4019 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4020 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4021 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
);
4022 /* ./syntax//typing.nit:704 */
4023 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4024 /* ./syntax//typing.nit:705 */
4025 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4026 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4027 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4028 if (UNTAG_Bool(REGB0
)) {
4029 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4030 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4032 /* ./syntax//typing.nit:706 */
4033 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4035 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4036 if (UNTAG_Bool(REGB2
)) {
4038 /* ./../lib/standard//kernel.nit:227 */
4039 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4040 /* ./syntax//typing.nit:706 */
4043 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4044 if (UNTAG_Bool(REGB2
)) {
4045 /* ./syntax//typing.nit:707 */
4046 if (!once_value_8
) {
4047 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require no arguments.");
4048 REGB2
= TAG_Int(63);
4049 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
4050 once_value_8
= fra
.me
.REG
[5];
4051 register_static_object(&once_value_8
);
4052 } else fra
.me
.REG
[5] = once_value_8
;
4053 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4054 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4055 /* ./syntax//typing.nit:708 */
4058 /* ./syntax//typing.nit:709 */
4059 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4060 /* ./../lib/standard//collection//array.nit:24 */
4061 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4062 if (UNTAG_Bool(REGB2
)) {
4064 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4066 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4067 /* ./syntax//typing.nit:709 */
4069 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4070 if (UNTAG_Bool(REGB0
)) {
4072 /* ./../lib/standard//kernel.nit:227 */
4073 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4074 /* ./syntax//typing.nit:709 */
4077 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4078 if (UNTAG_Bool(REGB0
)) {
4079 /* ./syntax//typing.nit:710 */
4080 if (!once_value_9
) {
4081 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one closure.");
4082 REGB0
= TAG_Int(62);
4083 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4084 once_value_9
= fra
.me
.REG
[5];
4085 register_static_object(&once_value_9
);
4086 } else fra
.me
.REG
[5] = once_value_9
;
4087 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4088 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4089 /* ./syntax//typing.nit:711 */
4093 /* ./syntax//typing.nit:713 */
4094 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4095 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4096 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4097 if (UNTAG_Bool(REGB0
)) {
4098 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 713);
4100 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4101 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4102 /* ./syntax//typing.nit:714 */
4103 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4104 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4105 if (UNTAG_Bool(REGB0
)) {
4107 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4108 if (UNTAG_Bool(REGB1
)) {
4109 REGB1
= TAG_Bool(false);
4112 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
4116 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4117 if (UNTAG_Bool(REGB0
)) {
4118 /* ./syntax//typing.nit:715 */
4119 if (!once_value_10
) {
4120 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one procedural closure.");
4121 REGB0
= TAG_Int(73);
4122 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4123 once_value_10
= fra
.me
.REG
[5];
4124 register_static_object(&once_value_10
);
4125 } else fra
.me
.REG
[5] = once_value_10
;
4126 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4127 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4128 /* ./syntax//typing.nit:716 */
4131 /* ./../lib/standard//collection//array.nit:24 */
4132 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4133 if (UNTAG_Bool(REGB0
)) {
4135 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4137 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4138 /* ./syntax//typing.nit:718 */
4139 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4140 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4141 if (UNTAG_Bool(REGB2
)) {
4143 /* ./../lib/standard//kernel.nit:227 */
4144 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4145 /* ./syntax//typing.nit:718 */
4148 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4149 if (UNTAG_Bool(REGB2
)) {
4150 /* ./syntax//typing.nit:719 */
4151 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4153 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4154 if (UNTAG_Bool(REGB0
)) {
4156 /* ./../lib/standard//kernel.nit:227 */
4157 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4158 /* ./syntax//typing.nit:719 */
4161 if (UNTAG_Bool(REGB0
)) {
4162 /* ./syntax//typing.nit:720 */
4164 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4165 if (!once_value_11
) {
4166 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4167 REGB0
= TAG_Int(16);
4168 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4169 once_value_11
= fra
.me
.REG
[4];
4170 register_static_object(&once_value_11
);
4171 } else fra
.me
.REG
[4] = once_value_11
;
4172 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4173 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4174 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4175 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4176 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4177 if (!once_value_12
) {
4178 fra
.me
.REG
[4] = BOX_NativeString(" variable ");
4179 REGB0
= TAG_Int(10);
4180 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4181 once_value_12
= fra
.me
.REG
[4];
4182 register_static_object(&once_value_12
);
4183 } else fra
.me
.REG
[4] = once_value_12
;
4184 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4185 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4186 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4187 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4188 if (!once_value_13
) {
4189 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4191 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4192 once_value_13
= fra
.me
.REG
[4];
4193 register_static_object(&once_value_13
);
4194 } else fra
.me
.REG
[4] = once_value_13
;
4195 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4196 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4197 /* ./../lib/standard//collection//array.nit:24 */
4198 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4199 if (UNTAG_Bool(REGB0
)) {
4201 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4203 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4204 /* ./syntax//typing.nit:720 */
4205 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4206 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4207 if (!once_value_14
) {
4208 fra
.me
.REG
[4] = BOX_NativeString(".");
4210 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4211 once_value_14
= fra
.me
.REG
[4];
4212 register_static_object(&once_value_14
);
4213 } else fra
.me
.REG
[4] = once_value_14
;
4214 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4215 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4216 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4217 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4219 /* ./syntax//typing.nit:722 */
4221 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4222 if (!once_value_15
) {
4223 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4224 REGB0
= TAG_Int(16);
4225 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4226 once_value_15
= fra
.me
.REG
[4];
4227 register_static_object(&once_value_15
);
4228 } else fra
.me
.REG
[4] = once_value_15
;
4229 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4230 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4231 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4232 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4233 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4234 if (!once_value_16
) {
4235 fra
.me
.REG
[4] = BOX_NativeString(" variables ");
4236 REGB0
= TAG_Int(11);
4237 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4238 once_value_16
= fra
.me
.REG
[4];
4239 register_static_object(&once_value_16
);
4240 } else fra
.me
.REG
[4] = once_value_16
;
4241 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4242 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4243 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4244 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4245 if (!once_value_17
) {
4246 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4248 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4249 once_value_17
= fra
.me
.REG
[4];
4250 register_static_object(&once_value_17
);
4251 } else fra
.me
.REG
[4] = once_value_17
;
4252 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4253 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4254 /* ./../lib/standard//collection//array.nit:24 */
4255 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4256 if (UNTAG_Bool(REGB0
)) {
4258 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4260 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4261 /* ./syntax//typing.nit:722 */
4262 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4263 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4264 if (!once_value_18
) {
4265 fra
.me
.REG
[4] = BOX_NativeString(".");
4267 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4268 once_value_18
= fra
.me
.REG
[4];
4269 register_static_object(&once_value_18
);
4270 } else fra
.me
.REG
[4] = once_value_18
;
4271 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4272 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4273 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4274 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4276 /* ./syntax//typing.nit:724 */
4279 /* ./syntax//typing.nit:728 */
4281 /* ./../lib/standard//collection//array.nit:24 */
4282 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4283 if (UNTAG_Bool(REGB1
)) {
4285 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4287 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4288 /* ./../lib/standard//kernel.nit:352 */
4290 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
4291 if (UNTAG_Bool(REGB2
)) {
4293 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4295 /* ./../lib/standard//kernel.nit:232 */
4296 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
4297 /* ./../lib/standard//kernel.nit:352 */
4298 if (UNTAG_Bool(REGB2
)) {
4299 /* ./syntax//typing.nit:728 */
4301 /* ./../lib/standard//collection//array.nit:278 */
4302 fra
.me
.REG
[5] = fra
.me
.REG
[2];
4304 /* ./../lib/standard//collection//array.nit:280 */
4306 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4307 if (UNTAG_Bool(REGB5
)) {
4309 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4311 /* ./../lib/standard//kernel.nit:233 */
4312 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
4313 /* ./../lib/standard//collection//array.nit:280 */
4314 if (UNTAG_Bool(REGB4
)) {
4315 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4316 if (UNTAG_Bool(REGB4
)) {
4318 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
4320 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4321 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4322 if (UNTAG_Bool(REGB5
)) {
4324 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4326 /* ./../lib/standard//kernel.nit:232 */
4327 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
4329 /* ./../lib/standard//collection//array.nit:280 */
4330 REGB5
= TAG_Bool(false);
4333 if (UNTAG_Bool(REGB4
)) {
4335 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
4337 /* ./../lib/standard//collection//array.nit:281 */
4338 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
4339 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4340 if (UNTAG_Bool(REGB4
)) {
4341 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
4343 /* ./../lib/standard//collection//array.nit:718 */
4344 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
4345 /* ./../lib/standard//collection//array.nit:281 */
4348 /* ./syntax//typing.nit:729 */
4349 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
4350 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4351 if (UNTAG_Bool(REGB2
)) {
4352 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 729);
4354 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4355 /* ./../lib/standard//kernel.nit:354 */
4357 /* ./../lib/standard//kernel.nit:235 */
4358 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
4359 /* ./../lib/standard//kernel.nit:354 */
4362 /* ./../lib/standard//kernel.nit:352 */
4368 stack_frame_head
= fra
.me
.prev
;
4371 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
){
4372 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4375 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4376 fra
.me
.file
= LOCATE_syntax___typing
;
4378 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4379 fra
.me
.has_broke
= 0;
4380 fra
.me
.REG_size
= 2;
4381 fra
.me
.REG
[0] = NIT_NULL
;
4382 fra
.me
.REG
[1] = NIT_NULL
;
4383 fra
.me
.closure_ctx
= closctx_param
;
4384 fra
.me
.closure_funs
= CREG
;
4386 CREG
[0] = clos_fun0
;
4387 /* ./syntax//typing.nit:680 */
4388 fra
.me
.REG
[1] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4389 fra
.me
.REG
[0] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4390 /* ./syntax//typing.nit:681 */
4391 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
4392 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4393 /* ./syntax//typing.nit:682 */
4394 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
4395 stack_frame_head
= fra
.me
.prev
;
4398 void syntax___typing___AAssertExpr___accept_typing(val_t p0
, val_t p1
){
4399 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4403 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4404 fra
.me
.file
= LOCATE_syntax___typing
;
4406 fra
.me
.meth
= LOCATE_syntax___typing___AAssertExpr___accept_typing
;
4407 fra
.me
.has_broke
= 0;
4408 fra
.me
.REG_size
= 4;
4409 fra
.me
.REG
[0] = NIT_NULL
;
4410 fra
.me
.REG
[1] = NIT_NULL
;
4411 fra
.me
.REG
[2] = NIT_NULL
;
4412 fra
.me
.REG
[3] = NIT_NULL
;
4415 /* ./syntax//typing.nit:738 */
4416 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4417 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4418 /* ./syntax//typing.nit:739 */
4419 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4420 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4421 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4422 /* ./syntax//typing.nit:742 */
4423 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4424 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4425 if (UNTAG_Bool(REGB0
)) {
4427 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4428 if (UNTAG_Bool(REGB1
)) {
4429 REGB1
= TAG_Bool(false);
4432 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4436 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4437 if (UNTAG_Bool(REGB0
)) {
4438 /* ./syntax//typing.nit:743 */
4439 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4440 /* ./syntax//typing.nit:744 */
4441 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4442 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4443 /* ./syntax//typing.nit:745 */
4444 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4445 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4446 /* ./syntax//typing.nit:746 */
4447 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4449 /* ./syntax//typing.nit:750 */
4450 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4451 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4452 /* ./syntax//typing.nit:751 */
4453 REGB0
= TAG_Bool(true);
4454 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4455 stack_frame_head
= fra
.me
.prev
;
4458 val_t
syntax___typing___AVarFormExpr___variable(val_t p0
){
4459 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4462 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4463 fra
.me
.file
= LOCATE_syntax___typing
;
4465 fra
.me
.meth
= LOCATE_syntax___typing___AVarFormExpr___variable
;
4466 fra
.me
.has_broke
= 0;
4467 fra
.me
.REG_size
= 2;
4468 fra
.me
.REG
[0] = NIT_NULL
;
4469 fra
.me
.REG
[1] = NIT_NULL
;
4471 /* ./syntax//typing.nit:757 */
4472 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4473 fra
.me
.REG
[1] = ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[1]);
4474 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4475 if (UNTAG_Bool(REGB0
)) {
4477 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 757);
4481 stack_frame_head
= fra
.me
.prev
;
4482 return fra
.me
.REG
[1];
4484 val_t
syntax___typing___AVarExpr___its_variable(val_t p0
){
4485 struct {struct stack_frame_t me
;} fra
;
4487 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4488 fra
.me
.file
= LOCATE_syntax___typing
;
4490 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___its_variable
;
4491 fra
.me
.has_broke
= 0;
4492 fra
.me
.REG_size
= 1;
4493 fra
.me
.REG
[0] = NIT_NULL
;
4495 /* ./syntax//typing.nit:761 */
4496 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4499 stack_frame_head
= fra
.me
.prev
;
4500 return fra
.me
.REG
[0];
4502 void syntax___typing___AVarExpr___after_typing(val_t p0
, val_t p1
){
4503 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4507 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4508 fra
.me
.file
= LOCATE_syntax___typing
;
4510 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___after_typing
;
4511 fra
.me
.has_broke
= 0;
4512 fra
.me
.REG_size
= 4;
4513 fra
.me
.REG
[0] = NIT_NULL
;
4514 fra
.me
.REG
[1] = NIT_NULL
;
4515 fra
.me
.REG
[2] = NIT_NULL
;
4516 fra
.me
.REG
[3] = NIT_NULL
;
4519 /* ./syntax//typing.nit:765 */
4520 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4521 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4522 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4523 /* ./syntax//typing.nit:766 */
4524 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4525 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4526 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4527 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4528 /* ./syntax//typing.nit:767 */
4529 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
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 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4544 stack_frame_head
= fra
.me
.prev
;
4547 void syntax___typing___AVarAssignExpr___after_typing(val_t p0
, val_t p1
){
4548 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4552 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4553 fra
.me
.file
= LOCATE_syntax___typing
;
4555 fra
.me
.meth
= LOCATE_syntax___typing___AVarAssignExpr___after_typing
;
4556 fra
.me
.has_broke
= 0;
4557 fra
.me
.REG_size
= 5;
4558 fra
.me
.REG
[0] = NIT_NULL
;
4559 fra
.me
.REG
[1] = NIT_NULL
;
4560 fra
.me
.REG
[2] = NIT_NULL
;
4561 fra
.me
.REG
[3] = NIT_NULL
;
4562 fra
.me
.REG
[4] = NIT_NULL
;
4565 /* ./syntax//typing.nit:774 */
4566 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4567 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4568 /* ./syntax//typing.nit:777 */
4569 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4570 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4571 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4572 /* ./syntax//typing.nit:778 */
4573 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4574 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4575 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4576 if (UNTAG_Bool(REGB0
)) {
4579 /* ./syntax//typing.nit:779 */
4580 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4581 if (UNTAG_Bool(REGB0
)) {
4583 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4584 if (UNTAG_Bool(REGB1
)) {
4585 REGB1
= TAG_Bool(false);
4588 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4592 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4593 if (UNTAG_Bool(REGB0
)) {
4594 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4595 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]);
4596 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4598 REGB1
= TAG_Bool(false);
4601 if (UNTAG_Bool(REGB0
)) {
4604 /* ./syntax//typing.nit:782 */
4605 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4606 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4607 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4608 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4609 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]);
4610 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4611 /* ./syntax//typing.nit:784 */
4612 REGB0
= TAG_Bool(true);
4613 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4615 stack_frame_head
= fra
.me
.prev
;
4618 val_t
syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0
, val_t p1
, val_t p2
){
4619 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4623 static val_t once_value_2
; /* Once value */
4624 static val_t once_value_3
; /* Once value */
4625 static val_t once_value_4
; /* Once value */
4626 static val_t once_value_5
; /* Once value */
4627 static val_t once_value_6
; /* Once value */
4628 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4629 fra
.me
.file
= LOCATE_syntax___typing
;
4631 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing
;
4632 fra
.me
.has_broke
= 0;
4633 fra
.me
.REG_size
= 8;
4634 fra
.me
.REG
[0] = NIT_NULL
;
4635 fra
.me
.REG
[1] = NIT_NULL
;
4636 fra
.me
.REG
[2] = NIT_NULL
;
4637 fra
.me
.REG
[3] = NIT_NULL
;
4638 fra
.me
.REG
[4] = NIT_NULL
;
4639 fra
.me
.REG
[5] = NIT_NULL
;
4640 fra
.me
.REG
[6] = NIT_NULL
;
4641 fra
.me
.REG
[7] = NIT_NULL
;
4645 /* ./syntax//typing.nit:794 */
4646 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4647 if (UNTAG_Bool(REGB0
)) {
4649 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4650 if (UNTAG_Bool(REGB1
)) {
4651 REGB1
= TAG_Bool(false);
4654 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4658 if (UNTAG_Bool(REGB0
)) {
4659 /* ./syntax//typing.nit:795 */
4660 fra
.me
.REG
[3] = NIT_NULL
;
4663 /* ./syntax//typing.nit:797 */
4664 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4665 fra
.me
.REG
[4] = CALL_syntax___typing___AAssignOp___method_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4666 /* ./syntax//typing.nit:798 */
4667 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*/;
4668 if (UNTAG_Bool(REGB0
)) {
4669 /* ./syntax//typing.nit:799 */
4671 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4672 if (!once_value_2
) {
4673 fra
.me
.REG
[6] = BOX_NativeString("Error: Method '");
4674 REGB0
= TAG_Int(15);
4675 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4676 once_value_2
= fra
.me
.REG
[6];
4677 register_static_object(&once_value_2
);
4678 } else fra
.me
.REG
[6] = once_value_2
;
4679 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4680 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4681 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4682 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4683 if (!once_value_3
) {
4684 fra
.me
.REG
[6] = BOX_NativeString("' call on 'null'.");
4685 REGB0
= TAG_Int(17);
4686 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
4687 once_value_3
= fra
.me
.REG
[6];
4688 register_static_object(&once_value_3
);
4689 } else fra
.me
.REG
[6] = once_value_3
;
4690 fra
.me
.REG
[6] = fra
.me
.REG
[6];
4691 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
4692 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4693 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4694 /* ./syntax//typing.nit:800 */
4695 fra
.me
.REG
[3] = NIT_NULL
;
4698 /* ./syntax//typing.nit:802 */
4699 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4700 if (UNTAG_Bool(REGB0
)) {
4701 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 802);
4703 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4704 /* ./syntax//typing.nit:803 */
4705 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4706 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4707 if (UNTAG_Bool(REGB0
)) {
4708 /* ./syntax//typing.nit:804 */
4710 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4711 if (!once_value_4
) {
4712 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
4713 REGB0
= TAG_Int(15);
4714 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4715 once_value_4
= fra
.me
.REG
[7];
4716 register_static_object(&once_value_4
);
4717 } else fra
.me
.REG
[7] = once_value_4
;
4718 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4719 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4720 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4721 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4722 if (!once_value_5
) {
4723 fra
.me
.REG
[7] = BOX_NativeString("' doesn't exists in ");
4724 REGB0
= TAG_Int(20);
4725 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4726 once_value_5
= fra
.me
.REG
[7];
4727 register_static_object(&once_value_5
);
4728 } else fra
.me
.REG
[7] = once_value_5
;
4729 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4730 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4731 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4732 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4733 if (!once_value_6
) {
4734 fra
.me
.REG
[7] = BOX_NativeString(".");
4736 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4737 once_value_6
= fra
.me
.REG
[7];
4738 register_static_object(&once_value_6
);
4739 } else fra
.me
.REG
[7] = once_value_6
;
4740 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4741 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4742 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4743 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
4744 /* ./syntax//typing.nit:805 */
4745 fra
.me
.REG
[3] = NIT_NULL
;
4748 /* ./syntax//typing.nit:807 */
4749 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4750 /* ./syntax//typing.nit:808 */
4751 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4752 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4753 REGB0
= TAG_Bool(false);
4754 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
);
4755 /* ./syntax//typing.nit:809 */
4756 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4757 /* ./syntax//typing.nit:810 */
4758 ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
4759 /* ./syntax//typing.nit:811 */
4760 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4762 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
4763 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4764 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]);
4765 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4766 if (UNTAG_Bool(REGB0
)) {
4767 fra
.me
.REG
[3] = NIT_NULL
;
4770 /* ./syntax//typing.nit:812 */
4771 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4772 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4773 if (UNTAG_Bool(REGB0
)) {
4774 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 812);
4776 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4777 fra
.me
.REG
[3] = fra
.me
.REG
[2];
4780 stack_frame_head
= fra
.me
.prev
;
4781 return fra
.me
.REG
[3];
4783 val_t
syntax___typing___AReassignFormExpr___assign_method(val_t p0
){
4784 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4787 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4788 fra
.me
.file
= LOCATE_syntax___typing
;
4790 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___assign_method
;
4791 fra
.me
.has_broke
= 0;
4792 fra
.me
.REG_size
= 2;
4793 fra
.me
.REG
[0] = NIT_NULL
;
4794 fra
.me
.REG
[1] = NIT_NULL
;
4796 /* ./syntax//typing.nit:815 */
4797 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4798 fra
.me
.REG
[1] = ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[1]);
4799 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4800 if (UNTAG_Bool(REGB0
)) {
4802 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 815);
4806 stack_frame_head
= fra
.me
.prev
;
4807 return fra
.me
.REG
[1];
4809 void syntax___typing___AVarReassignExpr___after_typing(val_t p0
, val_t p1
){
4810 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4814 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4815 fra
.me
.file
= LOCATE_syntax___typing
;
4817 fra
.me
.meth
= LOCATE_syntax___typing___AVarReassignExpr___after_typing
;
4818 fra
.me
.has_broke
= 0;
4819 fra
.me
.REG_size
= 5;
4820 fra
.me
.REG
[0] = NIT_NULL
;
4821 fra
.me
.REG
[1] = NIT_NULL
;
4822 fra
.me
.REG
[2] = NIT_NULL
;
4823 fra
.me
.REG
[3] = NIT_NULL
;
4824 fra
.me
.REG
[4] = NIT_NULL
;
4827 /* ./syntax//typing.nit:822 */
4828 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4829 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4830 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4831 /* ./syntax//typing.nit:823 */
4832 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4833 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4834 /* ./syntax//typing.nit:824 */
4835 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4836 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4837 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
4838 /* ./syntax//typing.nit:825 */
4839 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]);
4840 /* ./syntax//typing.nit:826 */
4841 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4842 if (UNTAG_Bool(REGB0
)) {
4844 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
4845 if (UNTAG_Bool(REGB1
)) {
4846 REGB1
= TAG_Bool(false);
4849 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
4853 if (UNTAG_Bool(REGB0
)) {
4856 /* ./syntax//typing.nit:829 */
4857 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4858 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4859 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
4860 /* ./syntax//typing.nit:830 */
4861 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4862 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4863 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4864 if (UNTAG_Bool(REGB0
)) {
4867 /* ./syntax//typing.nit:831 */
4868 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4869 if (UNTAG_Bool(REGB0
)) {
4871 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4872 if (UNTAG_Bool(REGB1
)) {
4873 REGB1
= TAG_Bool(false);
4876 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
4880 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4881 if (UNTAG_Bool(REGB0
)) {
4882 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4883 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]);
4884 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4886 REGB1
= TAG_Bool(false);
4889 if (UNTAG_Bool(REGB0
)) {
4892 /* ./syntax//typing.nit:834 */
4893 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4894 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4895 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]);
4896 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4897 /* ./syntax//typing.nit:836 */
4898 REGB0
= TAG_Bool(true);
4899 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4901 stack_frame_head
= fra
.me
.prev
;
4904 val_t
syntax___typing___AAssignOp___method_name(val_t p0
){
4905 struct {struct stack_frame_t me
;} fra
;
4907 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4908 fra
.me
.file
= LOCATE_syntax___typing
;
4910 fra
.me
.meth
= LOCATE_syntax___typing___AAssignOp___method_name
;
4911 fra
.me
.has_broke
= 0;
4912 fra
.me
.REG_size
= 0;
4913 /* ./syntax//typing.nit:841 */
4914 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 841);
4915 stack_frame_head
= fra
.me
.prev
;
4918 val_t
syntax___typing___APlusAssignOp___method_name(val_t p0
){
4919 struct {struct stack_frame_t me
;} fra
;
4922 static val_t once_value_1
; /* Once value */
4923 static val_t once_value_2
; /* Once value */
4924 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4925 fra
.me
.file
= LOCATE_syntax___typing
;
4927 fra
.me
.meth
= LOCATE_syntax___typing___APlusAssignOp___method_name
;
4928 fra
.me
.has_broke
= 0;
4929 fra
.me
.REG_size
= 1;
4930 fra
.me
.REG
[0] = NIT_NULL
;
4932 /* ./syntax//typing.nit:844 */
4933 if (!once_value_1
) {
4934 if (!once_value_2
) {
4935 fra
.me
.REG
[0] = BOX_NativeString("+");
4937 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4938 once_value_2
= fra
.me
.REG
[0];
4939 register_static_object(&once_value_2
);
4940 } else fra
.me
.REG
[0] = once_value_2
;
4941 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4942 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4943 once_value_1
= fra
.me
.REG
[0];
4944 register_static_object(&once_value_1
);
4945 } else fra
.me
.REG
[0] = once_value_1
;
4946 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4949 stack_frame_head
= fra
.me
.prev
;
4950 return fra
.me
.REG
[0];
4952 val_t
syntax___typing___AMinusAssignOp___method_name(val_t p0
){
4953 struct {struct stack_frame_t me
;} fra
;
4956 static val_t once_value_1
; /* Once value */
4957 static val_t once_value_2
; /* Once value */
4958 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4959 fra
.me
.file
= LOCATE_syntax___typing
;
4961 fra
.me
.meth
= LOCATE_syntax___typing___AMinusAssignOp___method_name
;
4962 fra
.me
.has_broke
= 0;
4963 fra
.me
.REG_size
= 1;
4964 fra
.me
.REG
[0] = NIT_NULL
;
4966 /* ./syntax//typing.nit:847 */
4967 if (!once_value_1
) {
4968 if (!once_value_2
) {
4969 fra
.me
.REG
[0] = BOX_NativeString("-");
4971 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
4972 once_value_2
= fra
.me
.REG
[0];
4973 register_static_object(&once_value_2
);
4974 } else fra
.me
.REG
[0] = once_value_2
;
4975 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4976 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4977 once_value_1
= fra
.me
.REG
[0];
4978 register_static_object(&once_value_1
);
4979 } else fra
.me
.REG
[0] = once_value_1
;
4980 fra
.me
.REG
[0] = fra
.me
.REG
[0];
4983 stack_frame_head
= fra
.me
.prev
;
4984 return fra
.me
.REG
[0];
4986 val_t
syntax___typing___ASelfExpr___variable(val_t p0
){
4987 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4990 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4991 fra
.me
.file
= LOCATE_syntax___typing
;
4993 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___variable
;
4994 fra
.me
.has_broke
= 0;
4995 fra
.me
.REG_size
= 2;
4996 fra
.me
.REG
[0] = NIT_NULL
;
4997 fra
.me
.REG
[1] = NIT_NULL
;
4999 /* ./syntax//typing.nit:852 */
5000 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5001 fra
.me
.REG
[1] = ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[1]);
5002 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5003 if (UNTAG_Bool(REGB0
)) {
5005 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 852);
5009 stack_frame_head
= fra
.me
.prev
;
5010 return fra
.me
.REG
[1];
5012 val_t
syntax___typing___ASelfExpr___its_variable(val_t p0
){
5013 struct {struct stack_frame_t me
;} fra
;
5015 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5016 fra
.me
.file
= LOCATE_syntax___typing
;
5018 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___its_variable
;
5019 fra
.me
.has_broke
= 0;
5020 fra
.me
.REG_size
= 1;
5021 fra
.me
.REG
[0] = NIT_NULL
;
5023 /* ./syntax//typing.nit:854 */
5024 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5027 stack_frame_head
= fra
.me
.prev
;
5028 return fra
.me
.REG
[0];
5030 void syntax___typing___ASelfExpr___after_typing(val_t p0
, val_t p1
){
5031 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5034 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5035 fra
.me
.file
= LOCATE_syntax___typing
;
5037 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___after_typing
;
5038 fra
.me
.has_broke
= 0;
5039 fra
.me
.REG_size
= 3;
5040 fra
.me
.REG
[0] = NIT_NULL
;
5041 fra
.me
.REG
[1] = NIT_NULL
;
5042 fra
.me
.REG
[2] = NIT_NULL
;
5045 /* ./syntax//typing.nit:858 */
5046 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5047 ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5048 /* ./syntax//typing.nit:859 */
5049 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5050 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5051 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5052 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5053 /* ./syntax//typing.nit:860 */
5054 REGB0
= TAG_Bool(true);
5055 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5056 stack_frame_head
= fra
.me
.prev
;
5059 val_t
syntax___typing___ASelfExpr___is_self(val_t p0
){
5060 struct {struct stack_frame_t me
;} fra
;
5063 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5064 fra
.me
.file
= LOCATE_syntax___typing
;
5066 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___is_self
;
5067 fra
.me
.has_broke
= 0;
5068 fra
.me
.REG_size
= 1;
5069 fra
.me
.REG
[0] = NIT_NULL
;
5071 /* ./syntax//typing.nit:863 */
5072 REGB0
= TAG_Bool(true);
5075 stack_frame_head
= fra
.me
.prev
;
5078 val_t
syntax___typing___AImplicitSelfExpr___is_implicit_self(val_t p0
){
5079 struct {struct stack_frame_t me
;} fra
;
5082 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5083 fra
.me
.file
= LOCATE_syntax___typing
;
5085 fra
.me
.meth
= LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self
;
5086 fra
.me
.has_broke
= 0;
5087 fra
.me
.REG_size
= 1;
5088 fra
.me
.REG
[0] = NIT_NULL
;
5090 /* ./syntax//typing.nit:867 */
5091 REGB0
= TAG_Bool(true);
5094 stack_frame_head
= fra
.me
.prev
;
5097 void syntax___typing___AIfexprExpr___accept_typing(val_t p0
, val_t p1
){
5098 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5102 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5103 fra
.me
.file
= LOCATE_syntax___typing
;
5105 fra
.me
.meth
= LOCATE_syntax___typing___AIfexprExpr___accept_typing
;
5106 fra
.me
.has_broke
= 0;
5107 fra
.me
.REG_size
= 5;
5108 fra
.me
.REG
[0] = NIT_NULL
;
5109 fra
.me
.REG
[1] = NIT_NULL
;
5110 fra
.me
.REG
[2] = NIT_NULL
;
5111 fra
.me
.REG
[3] = NIT_NULL
;
5112 fra
.me
.REG
[4] = NIT_NULL
;
5115 /* ./syntax//typing.nit:873 */
5116 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5117 /* ./syntax//typing.nit:876 */
5118 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5119 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5120 /* ./syntax//typing.nit:877 */
5121 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5122 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5123 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5124 /* ./syntax//typing.nit:880 */
5125 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5126 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5127 /* ./syntax//typing.nit:883 */
5128 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5129 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5130 /* ./syntax//typing.nit:886 */
5131 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5132 /* ./syntax//typing.nit:889 */
5133 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5134 /* ./syntax//typing.nit:890 */
5135 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5136 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5137 /* ./syntax//typing.nit:893 */
5138 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5139 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5140 /* ./syntax//typing.nit:896 */
5141 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5142 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5143 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]);
5144 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5145 /* ./syntax//typing.nit:898 */
5147 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5148 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5149 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5150 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5152 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]);
5153 /* ./syntax//typing.nit:899 */
5154 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5155 if (UNTAG_Bool(REGB0
)) {
5157 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5158 if (UNTAG_Bool(REGB1
)) {
5159 REGB1
= TAG_Bool(false);
5162 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5166 if (UNTAG_Bool(REGB0
)) {
5169 /* ./syntax//typing.nit:901 */
5170 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5171 /* ./syntax//typing.nit:902 */
5172 REGB0
= TAG_Bool(true);
5173 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5175 stack_frame_head
= fra
.me
.prev
;
5178 void syntax___typing___ABoolExpr___after_typing(val_t p0
, val_t p1
){
5179 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5182 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5183 fra
.me
.file
= LOCATE_syntax___typing
;
5185 fra
.me
.meth
= LOCATE_syntax___typing___ABoolExpr___after_typing
;
5186 fra
.me
.has_broke
= 0;
5187 fra
.me
.REG_size
= 2;
5188 fra
.me
.REG
[0] = NIT_NULL
;
5189 fra
.me
.REG
[1] = NIT_NULL
;
5192 /* ./syntax//typing.nit:909 */
5193 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5194 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5195 /* ./syntax//typing.nit:910 */
5196 REGB0
= TAG_Bool(true);
5197 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5198 stack_frame_head
= fra
.me
.prev
;
5201 void syntax___typing___AOrExpr___accept_typing(val_t p0
, val_t p1
){
5202 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5206 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5207 fra
.me
.file
= LOCATE_syntax___typing
;
5209 fra
.me
.meth
= LOCATE_syntax___typing___AOrExpr___accept_typing
;
5210 fra
.me
.has_broke
= 0;
5211 fra
.me
.REG_size
= 5;
5212 fra
.me
.REG
[0] = NIT_NULL
;
5213 fra
.me
.REG
[1] = NIT_NULL
;
5214 fra
.me
.REG
[2] = NIT_NULL
;
5215 fra
.me
.REG
[3] = NIT_NULL
;
5216 fra
.me
.REG
[4] = NIT_NULL
;
5219 /* ./syntax//typing.nit:917 */
5220 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5221 /* ./syntax//typing.nit:918 */
5222 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5223 /* ./syntax//typing.nit:919 */
5224 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5225 /* ./syntax//typing.nit:922 */
5226 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5227 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5228 /* ./syntax//typing.nit:925 */
5229 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5230 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5231 /* ./syntax//typing.nit:928 */
5232 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5233 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5234 /* ./syntax//typing.nit:929 */
5235 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5236 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5237 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5238 if (UNTAG_Bool(REGB0
)) {
5240 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5241 if (UNTAG_Bool(REGB1
)) {
5242 REGB1
= TAG_Bool(false);
5245 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5249 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5250 if (UNTAG_Bool(REGB0
)) {
5251 /* ./syntax//typing.nit:930 */
5252 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5253 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5254 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5256 /* ./syntax//typing.nit:932 */
5257 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5258 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5260 /* ./syntax//typing.nit:935 */
5261 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5262 /* ./syntax//typing.nit:937 */
5263 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5264 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5265 /* ./syntax//typing.nit:938 */
5266 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5267 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5268 /* ./syntax//typing.nit:939 */
5269 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5270 /* ./syntax//typing.nit:940 */
5271 REGB0
= TAG_Bool(true);
5272 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5273 stack_frame_head
= fra
.me
.prev
;
5276 void syntax___typing___AAndExpr___accept_typing(val_t p0
, val_t p1
){
5277 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5281 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5282 fra
.me
.file
= LOCATE_syntax___typing
;
5284 fra
.me
.meth
= LOCATE_syntax___typing___AAndExpr___accept_typing
;
5285 fra
.me
.has_broke
= 0;
5286 fra
.me
.REG_size
= 5;
5287 fra
.me
.REG
[0] = NIT_NULL
;
5288 fra
.me
.REG
[1] = NIT_NULL
;
5289 fra
.me
.REG
[2] = NIT_NULL
;
5290 fra
.me
.REG
[3] = NIT_NULL
;
5291 fra
.me
.REG
[4] = NIT_NULL
;
5294 /* ./syntax//typing.nit:947 */
5295 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5296 /* ./syntax//typing.nit:948 */
5297 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5298 /* ./syntax//typing.nit:951 */
5299 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5300 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5301 /* ./syntax//typing.nit:954 */
5302 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5303 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5304 /* ./syntax//typing.nit:957 */
5305 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5306 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5307 /* ./syntax//typing.nit:958 */
5308 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5309 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5310 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5311 if (UNTAG_Bool(REGB0
)) {
5313 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5314 if (UNTAG_Bool(REGB1
)) {
5315 REGB1
= TAG_Bool(false);
5318 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5322 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5323 if (UNTAG_Bool(REGB0
)) {
5324 /* ./syntax//typing.nit:959 */
5325 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5326 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5327 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5329 /* ./syntax//typing.nit:961 */
5330 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5331 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5333 /* ./syntax//typing.nit:964 */
5334 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5335 /* ./syntax//typing.nit:966 */
5336 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5337 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5338 /* ./syntax//typing.nit:967 */
5339 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5340 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5341 /* ./syntax//typing.nit:968 */
5342 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5343 /* ./syntax//typing.nit:969 */
5344 REGB0
= TAG_Bool(true);
5345 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5346 stack_frame_head
= fra
.me
.prev
;
5349 void syntax___typing___ANotExpr___after_typing(val_t p0
, val_t p1
){
5350 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5353 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5354 fra
.me
.file
= LOCATE_syntax___typing
;
5356 fra
.me
.meth
= LOCATE_syntax___typing___ANotExpr___after_typing
;
5357 fra
.me
.has_broke
= 0;
5358 fra
.me
.REG_size
= 4;
5359 fra
.me
.REG
[0] = NIT_NULL
;
5360 fra
.me
.REG
[1] = NIT_NULL
;
5361 fra
.me
.REG
[2] = NIT_NULL
;
5362 fra
.me
.REG
[3] = NIT_NULL
;
5365 /* ./syntax//typing.nit:976 */
5366 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5367 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5368 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5369 /* ./syntax//typing.nit:979 */
5370 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5371 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[3]);
5372 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5373 /* ./syntax//typing.nit:980 */
5374 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5375 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[3]);
5376 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5377 /* ./syntax//typing.nit:982 */
5378 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5379 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5380 /* ./syntax//typing.nit:983 */
5381 REGB0
= TAG_Bool(true);
5382 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5383 stack_frame_head
= fra
.me
.prev
;
5386 void syntax___typing___AOrElseExpr___after_typing(val_t p0
, val_t p1
){
5387 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5391 static val_t once_value_1
; /* Once value */
5392 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5393 fra
.me
.file
= LOCATE_syntax___typing
;
5395 fra
.me
.meth
= LOCATE_syntax___typing___AOrElseExpr___after_typing
;
5396 fra
.me
.has_broke
= 0;
5397 fra
.me
.REG_size
= 7;
5398 fra
.me
.REG
[0] = NIT_NULL
;
5399 fra
.me
.REG
[1] = NIT_NULL
;
5400 fra
.me
.REG
[2] = NIT_NULL
;
5401 fra
.me
.REG
[3] = NIT_NULL
;
5402 fra
.me
.REG
[4] = NIT_NULL
;
5403 fra
.me
.REG
[5] = NIT_NULL
;
5404 fra
.me
.REG
[6] = NIT_NULL
;
5407 /* ./syntax//typing.nit:990 */
5408 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5409 /* ./syntax//typing.nit:993 */
5410 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5411 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5412 /* ./syntax//typing.nit:994 */
5413 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5414 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5415 /* ./syntax//typing.nit:997 */
5416 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5417 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5418 /* ./syntax//typing.nit:998 */
5419 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5420 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5421 if (UNTAG_Bool(REGB0
)) {
5422 /* ./syntax//typing.nit:999 */
5423 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5424 if (!once_value_1
) {
5425 fra
.me
.REG
[5] = BOX_NativeString("Warning: left operant of a 'or else' is not a nullable type.");
5426 REGB0
= TAG_Int(60);
5427 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5428 once_value_1
= fra
.me
.REG
[5];
5429 register_static_object(&once_value_1
);
5430 } else fra
.me
.REG
[5] = once_value_1
;
5431 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5432 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
5434 /* ./syntax//typing.nit:1001 */
5435 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5436 fra
.me
.REG
[3] = fra
.me
.REG
[5];
5438 /* ./syntax//typing.nit:1005 */
5439 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5440 fra
.me
.REG
[5] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5441 /* ./syntax//typing.nit:1006 */
5442 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5443 if (UNTAG_Bool(REGB0
)) {
5445 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5446 if (UNTAG_Bool(REGB1
)) {
5447 REGB1
= TAG_Bool(false);
5450 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5454 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5455 if (UNTAG_Bool(REGB0
)) {
5456 /* ./syntax//typing.nit:1007 */
5457 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5458 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5459 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]);
5461 /* ./syntax//typing.nit:1011 */
5462 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5463 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5464 /* ./syntax//typing.nit:1012 */
5465 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5466 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5467 /* ./syntax//typing.nit:1015 */
5468 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5469 /* ./syntax//typing.nit:1018 */
5471 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5472 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5473 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5474 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]);
5475 /* ./syntax//typing.nit:1019 */
5476 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5477 if (UNTAG_Bool(REGB0
)) {
5479 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5480 if (UNTAG_Bool(REGB1
)) {
5481 REGB1
= TAG_Bool(false);
5484 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5488 if (UNTAG_Bool(REGB0
)) {
5491 /* ./syntax//typing.nit:1021 */
5492 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5493 /* ./syntax//typing.nit:1022 */
5494 REGB0
= TAG_Bool(true);
5495 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5497 stack_frame_head
= fra
.me
.prev
;
5500 void syntax___typing___AIntExpr___after_typing(val_t p0
, val_t p1
){
5501 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5504 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5505 fra
.me
.file
= LOCATE_syntax___typing
;
5507 fra
.me
.meth
= LOCATE_syntax___typing___AIntExpr___after_typing
;
5508 fra
.me
.has_broke
= 0;
5509 fra
.me
.REG_size
= 2;
5510 fra
.me
.REG
[0] = NIT_NULL
;
5511 fra
.me
.REG
[1] = NIT_NULL
;
5514 /* ./syntax//typing.nit:1029 */
5515 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5516 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5517 /* ./syntax//typing.nit:1030 */
5518 REGB0
= TAG_Bool(true);
5519 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5520 stack_frame_head
= fra
.me
.prev
;
5523 void syntax___typing___AFloatExpr___after_typing(val_t p0
, val_t p1
){
5524 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5527 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5528 fra
.me
.file
= LOCATE_syntax___typing
;
5530 fra
.me
.meth
= LOCATE_syntax___typing___AFloatExpr___after_typing
;
5531 fra
.me
.has_broke
= 0;
5532 fra
.me
.REG_size
= 2;
5533 fra
.me
.REG
[0] = NIT_NULL
;
5534 fra
.me
.REG
[1] = NIT_NULL
;
5537 /* ./syntax//typing.nit:1037 */
5538 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5539 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5540 /* ./syntax//typing.nit:1038 */
5541 REGB0
= TAG_Bool(true);
5542 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5543 stack_frame_head
= fra
.me
.prev
;
5546 void syntax___typing___ACharExpr___after_typing(val_t p0
, val_t p1
){
5547 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5550 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5551 fra
.me
.file
= LOCATE_syntax___typing
;
5553 fra
.me
.meth
= LOCATE_syntax___typing___ACharExpr___after_typing
;
5554 fra
.me
.has_broke
= 0;
5555 fra
.me
.REG_size
= 2;
5556 fra
.me
.REG
[0] = NIT_NULL
;
5557 fra
.me
.REG
[1] = NIT_NULL
;
5560 /* ./syntax//typing.nit:1045 */
5561 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5562 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5563 /* ./syntax//typing.nit:1046 */
5564 REGB0
= TAG_Bool(true);
5565 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5566 stack_frame_head
= fra
.me
.prev
;
5569 void syntax___typing___AStringFormExpr___after_typing(val_t p0
, val_t p1
){
5570 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5573 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5574 fra
.me
.file
= LOCATE_syntax___typing
;
5576 fra
.me
.meth
= LOCATE_syntax___typing___AStringFormExpr___after_typing
;
5577 fra
.me
.has_broke
= 0;
5578 fra
.me
.REG_size
= 2;
5579 fra
.me
.REG
[0] = NIT_NULL
;
5580 fra
.me
.REG
[1] = NIT_NULL
;
5583 /* ./syntax//typing.nit:1053 */
5584 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5585 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5586 /* ./syntax//typing.nit:1054 */
5587 REGB0
= TAG_Bool(true);
5588 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5589 stack_frame_head
= fra
.me
.prev
;
5592 val_t
syntax___typing___ASuperstringExpr___atype(val_t p0
){
5593 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5596 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5597 fra
.me
.file
= LOCATE_syntax___typing
;
5599 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___atype
;
5600 fra
.me
.has_broke
= 0;
5601 fra
.me
.REG_size
= 2;
5602 fra
.me
.REG
[0] = NIT_NULL
;
5603 fra
.me
.REG
[1] = NIT_NULL
;
5605 /* ./syntax//typing.nit:1059 */
5606 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5607 fra
.me
.REG
[1] = ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[1]);
5608 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5609 if (UNTAG_Bool(REGB0
)) {
5611 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1059);
5615 stack_frame_head
= fra
.me
.prev
;
5616 return fra
.me
.REG
[1];
5618 void syntax___typing___ASuperstringExpr___after_typing(val_t p0
, val_t p1
){
5619 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5622 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5623 fra
.me
.file
= LOCATE_syntax___typing
;
5625 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
5626 fra
.me
.has_broke
= 0;
5627 fra
.me
.REG_size
= 5;
5628 fra
.me
.REG
[0] = NIT_NULL
;
5629 fra
.me
.REG
[1] = NIT_NULL
;
5630 fra
.me
.REG
[2] = NIT_NULL
;
5631 fra
.me
.REG
[3] = NIT_NULL
;
5632 fra
.me
.REG
[4] = NIT_NULL
;
5635 /* ./syntax//typing.nit:1063 */
5636 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5637 /* ./syntax//typing.nit:1064 */
5638 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5639 /* ./syntax//typing.nit:1065 */
5640 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5641 /* ./syntax//typing.nit:1066 */
5642 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5643 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
));
5644 /* ./syntax//typing.nit:1067 */
5645 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5646 /* ./syntax//typing.nit:1068 */
5647 ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5648 /* ./syntax//typing.nit:1069 */
5649 REGB0
= TAG_Bool(true);
5650 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5651 stack_frame_head
= fra
.me
.prev
;
5654 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
){
5655 struct {struct stack_frame_t me
;} fra
;
5658 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5659 fra
.me
.file
= LOCATE_syntax___typing
;
5661 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
5662 fra
.me
.has_broke
= 0;
5663 fra
.me
.REG_size
= 1;
5664 fra
.me
.REG
[0] = NIT_NULL
;
5665 fra
.me
.closure_ctx
= closctx_param
;
5666 fra
.me
.closure_funs
= CREG
;
5668 CREG
[0] = clos_fun0
;
5669 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], closctx
->REG
[2]);
5670 stack_frame_head
= fra
.me
.prev
;
5673 void syntax___typing___ANullExpr___after_typing(val_t p0
, val_t p1
){
5674 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5677 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5678 fra
.me
.file
= LOCATE_syntax___typing
;
5680 fra
.me
.meth
= LOCATE_syntax___typing___ANullExpr___after_typing
;
5681 fra
.me
.has_broke
= 0;
5682 fra
.me
.REG_size
= 2;
5683 fra
.me
.REG
[0] = NIT_NULL
;
5684 fra
.me
.REG
[1] = NIT_NULL
;
5687 /* ./syntax//typing.nit:1076 */
5688 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5689 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5690 /* ./syntax//typing.nit:1077 */
5691 REGB0
= TAG_Bool(true);
5692 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5693 stack_frame_head
= fra
.me
.prev
;
5696 void syntax___typing___AArrayExpr___after_typing(val_t p0
, val_t p1
){
5697 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5701 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5702 fra
.me
.file
= LOCATE_syntax___typing
;
5704 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___after_typing
;
5705 fra
.me
.has_broke
= 0;
5706 fra
.me
.REG_size
= 3;
5707 fra
.me
.REG
[0] = NIT_NULL
;
5708 fra
.me
.REG
[1] = NIT_NULL
;
5709 fra
.me
.REG
[2] = NIT_NULL
;
5712 /* ./syntax//typing.nit:1084 */
5713 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5714 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]);
5715 /* ./syntax//typing.nit:1085 */
5716 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5717 if (UNTAG_Bool(REGB0
)) {
5719 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5720 if (UNTAG_Bool(REGB1
)) {
5721 REGB1
= TAG_Bool(false);
5724 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5728 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5729 if (UNTAG_Bool(REGB0
)) {
5730 CALL_syntax___typing___AArrayExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
5732 stack_frame_head
= fra
.me
.prev
;
5735 void syntax___typing___AArrayExpr___do_typing(val_t p0
, val_t p1
, val_t p2
){
5736 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5739 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5740 fra
.me
.file
= LOCATE_syntax___typing
;
5742 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___do_typing
;
5743 fra
.me
.has_broke
= 0;
5744 fra
.me
.REG_size
= 3;
5745 fra
.me
.REG
[0] = NIT_NULL
;
5746 fra
.me
.REG
[1] = NIT_NULL
;
5747 fra
.me
.REG
[2] = NIT_NULL
;
5751 /* ./syntax//typing.nit:1090 */
5752 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5753 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5754 /* ./syntax//typing.nit:1091 */
5755 REGB0
= TAG_Bool(true);
5756 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5757 stack_frame_head
= fra
.me
.prev
;
5760 void syntax___typing___ARangeExpr___after_typing(val_t p0
, val_t p1
){
5761 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5765 static val_t once_value_2
; /* Once value */
5766 static val_t once_value_3
; /* Once value */
5767 static val_t once_value_4
; /* Once value */
5768 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5769 fra
.me
.file
= LOCATE_syntax___typing
;
5771 fra
.me
.meth
= LOCATE_syntax___typing___ARangeExpr___after_typing
;
5772 fra
.me
.has_broke
= 0;
5773 fra
.me
.REG_size
= 6;
5774 fra
.me
.REG
[0] = NIT_NULL
;
5775 fra
.me
.REG
[1] = NIT_NULL
;
5776 fra
.me
.REG
[2] = NIT_NULL
;
5777 fra
.me
.REG
[3] = NIT_NULL
;
5778 fra
.me
.REG
[4] = NIT_NULL
;
5779 fra
.me
.REG
[5] = NIT_NULL
;
5782 /* ./syntax//typing.nit:1098 */
5783 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5784 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5785 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5786 if (UNTAG_Bool(REGB0
)) {
5787 REGB0
= TAG_Bool(true);
5789 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5790 REGB1
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5791 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5794 if (UNTAG_Bool(REGB0
)) {
5797 /* ./syntax//typing.nit:1099 */
5798 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5799 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5800 /* ./syntax//typing.nit:1100 */
5801 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5802 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5803 /* ./syntax//typing.nit:1101 */
5804 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5805 if (UNTAG_Bool(REGB0
)) {
5806 /* ./syntax//typing.nit:1102 */
5807 fra
.me
.REG
[2] = fra
.me
.REG
[3];
5809 /* ./syntax//typing.nit:1103 */
5810 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5811 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5812 if (UNTAG_Bool(REGB0
)) {
5813 /* ./syntax//typing.nit:1104 */
5815 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5816 if (!once_value_2
) {
5817 fra
.me
.REG
[5] = BOX_NativeString("Type error: ");
5818 REGB0
= TAG_Int(12);
5819 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5820 once_value_2
= fra
.me
.REG
[5];
5821 register_static_object(&once_value_2
);
5822 } else fra
.me
.REG
[5] = once_value_2
;
5823 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5824 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5825 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5827 if (!once_value_3
) {
5828 fra
.me
.REG
[5] = BOX_NativeString(" incompatible with ");
5829 REGB0
= TAG_Int(19);
5830 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5831 once_value_3
= fra
.me
.REG
[5];
5832 register_static_object(&once_value_3
);
5833 } else fra
.me
.REG
[5] = once_value_3
;
5834 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5835 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5836 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5837 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5838 if (!once_value_4
) {
5839 fra
.me
.REG
[3] = BOX_NativeString(".");
5841 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
5842 once_value_4
= fra
.me
.REG
[3];
5843 register_static_object(&once_value_4
);
5844 } else fra
.me
.REG
[3] = once_value_4
;
5845 fra
.me
.REG
[3] = fra
.me
.REG
[3];
5846 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5847 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5848 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
5849 /* ./syntax//typing.nit:1105 */
5853 /* ./syntax//typing.nit:1107 */
5854 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_discrete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5855 /* ./syntax//typing.nit:1108 */
5856 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5857 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]);
5858 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5859 if (UNTAG_Bool(REGB0
)) {
5860 REGB0
= TAG_Bool(true);
5862 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5863 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]);
5864 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
5867 if (UNTAG_Bool(REGB0
)) {
5870 /* ./syntax//typing.nit:1109 */
5871 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5872 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5873 /* ./syntax//typing.nit:1110 */
5874 REGB0
= TAG_Bool(true);
5875 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5877 stack_frame_head
= fra
.me
.prev
;
5880 val_t
syntax___typing___ASuperExpr___init_in_superclass(val_t p0
){
5881 struct {struct stack_frame_t me
;} fra
;
5883 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5884 fra
.me
.file
= LOCATE_syntax___typing
;
5886 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___init_in_superclass
;
5887 fra
.me
.has_broke
= 0;
5888 fra
.me
.REG_size
= 1;
5889 fra
.me
.REG
[0] = NIT_NULL
;
5891 /* ./syntax//typing.nit:1115 */
5892 fra
.me
.REG
[0] = ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]);
5893 stack_frame_head
= fra
.me
.prev
;
5894 return fra
.me
.REG
[0];
5896 val_t
syntax___typing___ASuperExpr___compute_raw_arguments(val_t p0
){
5897 struct {struct stack_frame_t me
;} fra
;
5899 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5900 fra
.me
.file
= LOCATE_syntax___typing
;
5902 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments
;
5903 fra
.me
.has_broke
= 0;
5904 fra
.me
.REG_size
= 1;
5905 fra
.me
.REG
[0] = NIT_NULL
;
5907 /* ./syntax//typing.nit:1116 */
5908 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5909 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5912 stack_frame_head
= fra
.me
.prev
;
5913 return fra
.me
.REG
[0];
5915 void syntax___typing___ASuperExpr___after_typing(val_t p0
, val_t p1
){
5916 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
5921 static val_t once_value_1
; /* Once value */
5922 static val_t once_value_2
; /* Once value */
5923 static val_t once_value_3
; /* Once value */
5924 static val_t once_value_5
; /* Once value */
5925 static val_t once_value_6
; /* Once value */
5926 static val_t once_value_8
; /* Once value */
5927 static val_t once_value_9
; /* Once value */
5928 static val_t once_value_10
; /* Once value */
5929 static val_t once_value_11
; /* Once value */
5930 static val_t once_value_12
; /* Once value */
5931 static val_t once_value_13
; /* Once value */
5932 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5933 fra
.me
.file
= LOCATE_syntax___typing
;
5935 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___after_typing
;
5936 fra
.me
.has_broke
= 0;
5937 fra
.me
.REG_size
= 10;
5938 fra
.me
.REG
[0] = NIT_NULL
;
5939 fra
.me
.REG
[1] = NIT_NULL
;
5940 fra
.me
.REG
[2] = NIT_NULL
;
5941 fra
.me
.REG
[3] = NIT_NULL
;
5942 fra
.me
.REG
[4] = NIT_NULL
;
5943 fra
.me
.REG
[5] = NIT_NULL
;
5944 fra
.me
.REG
[6] = NIT_NULL
;
5945 fra
.me
.REG
[7] = NIT_NULL
;
5946 fra
.me
.REG
[8] = NIT_NULL
;
5947 fra
.me
.REG
[9] = NIT_NULL
;
5950 /* ./syntax//typing.nit:1117 */
5951 fra
.me
.REG
[2] = fra
.me
.REG
[0];
5952 /* ./syntax//typing.nit:1119 */
5953 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5954 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5955 fra
.me
.REG
[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5956 /* ./syntax//typing.nit:1120 */
5957 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5958 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5959 if (UNTAG_Bool(REGB0
)) {
5960 /* ./syntax//typing.nit:1121 */
5961 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5962 REGB0
= TAG_Bool(true);
5963 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
5965 /* ./syntax//typing.nit:1122 */
5966 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5967 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5968 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5969 if (UNTAG_Bool(REGB0
)) {
5970 /* ./syntax//typing.nit:1123 */
5971 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5972 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5973 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5974 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
5975 /* ./../lib/standard//collection//array.nit:266 */
5976 fra
.me
.REG
[4] = fra
.me
.REG
[5];
5977 /* ./../lib/standard//collection//array.nit:269 */
5979 /* ./../lib/standard//collection//array.nit:270 */
5980 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5981 if (UNTAG_Bool(REGB1
)) {
5983 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
5985 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5986 /* ./../lib/standard//collection//array.nit:271 */
5987 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
5988 /* ./../lib/standard//collection//array.nit:272 */
5990 /* ./../lib/standard//collection//array.nit:24 */
5991 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5992 if (UNTAG_Bool(REGB1
)) {
5994 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5996 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5997 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
5998 if (UNTAG_Bool(REGB2
)) {
6000 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6002 /* ./../lib/standard//kernel.nit:232 */
6003 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6004 /* ./../lib/standard//collection//array.nit:272 */
6005 if (UNTAG_Bool(REGB1
)) {
6006 /* ./../lib/standard//collection//array.nit:273 */
6007 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6008 if (UNTAG_Bool(REGB1
)) {
6009 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6011 /* ./../lib/standard//collection//array.nit:718 */
6012 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6013 /* ./syntax//typing.nit:1125 */
6014 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6015 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6016 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6017 if (UNTAG_Bool(REGB1
)) {
6018 /* ./syntax//typing.nit:1126 */
6020 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6021 if (!once_value_1
) {
6022 fra
.me
.REG
[9] = BOX_NativeString("Error: ");
6024 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6025 once_value_1
= fra
.me
.REG
[9];
6026 register_static_object(&once_value_1
);
6027 } else fra
.me
.REG
[9] = once_value_1
;
6028 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6029 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6030 fra
.me
.REG
[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6031 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6032 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6033 if (!once_value_2
) {
6034 fra
.me
.REG
[9] = BOX_NativeString("::");
6036 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6037 once_value_2
= fra
.me
.REG
[9];
6038 register_static_object(&once_value_2
);
6039 } else fra
.me
.REG
[9] = once_value_2
;
6040 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6041 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6042 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6043 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6044 if (!once_value_3
) {
6045 fra
.me
.REG
[9] = BOX_NativeString(" is not a constructor.");
6046 REGB1
= TAG_Int(22);
6047 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6048 once_value_3
= fra
.me
.REG
[9];
6049 register_static_object(&once_value_3
);
6050 } else fra
.me
.REG
[9] = once_value_3
;
6051 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6052 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6053 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6054 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[8]);
6056 /* ./syntax//typing.nit:1128 */
6057 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6058 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6059 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6060 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6062 /* ./../lib/standard//collection//array.nit:274 */
6064 /* ./../lib/standard//kernel.nit:235 */
6065 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6066 /* ./../lib/standard//collection//array.nit:274 */
6069 /* ./../lib/standard//collection//array.nit:272 */
6074 /* ./syntax//typing.nit:1131 */
6075 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6076 if (UNTAG_Bool(REGB0
)) {
6077 /* ./syntax//typing.nit:1132 */
6079 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6080 if (!once_value_5
) {
6081 fra
.me
.REG
[4] = BOX_NativeString("Error: No contructor named ");
6082 REGB0
= TAG_Int(27);
6083 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6084 once_value_5
= fra
.me
.REG
[4];
6085 register_static_object(&once_value_5
);
6086 } else fra
.me
.REG
[4] = once_value_5
;
6087 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6088 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6089 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6090 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6091 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6092 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6093 if (!once_value_6
) {
6094 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses.");
6095 REGB0
= TAG_Int(17);
6096 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6097 once_value_6
= fra
.me
.REG
[4];
6098 register_static_object(&once_value_6
);
6099 } else fra
.me
.REG
[4] = once_value_6
;
6100 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6101 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6102 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6103 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6104 /* ./syntax//typing.nit:1133 */
6107 /* ./../lib/standard//collection//array.nit:24 */
6108 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6109 if (UNTAG_Bool(REGB0
)) {
6111 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6113 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6114 /* ./syntax//typing.nit:1134 */
6116 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6117 if (UNTAG_Bool(REGB2
)) {
6119 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6121 /* ./../lib/standard//kernel.nit:234 */
6122 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
6123 /* ./syntax//typing.nit:1134 */
6124 if (UNTAG_Bool(REGB1
)) {
6125 /* ./syntax//typing.nit:1135 */
6127 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6128 if (!once_value_8
) {
6129 fra
.me
.REG
[4] = BOX_NativeString("Error: Conflicting contructors named ");
6130 REGB1
= TAG_Int(37);
6131 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6132 once_value_8
= fra
.me
.REG
[4];
6133 register_static_object(&once_value_8
);
6134 } else fra
.me
.REG
[4] = once_value_8
;
6135 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6136 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6137 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6138 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6139 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6140 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6141 if (!once_value_9
) {
6142 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses: ");
6143 REGB1
= TAG_Int(18);
6144 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6145 once_value_9
= fra
.me
.REG
[4];
6146 register_static_object(&once_value_9
);
6147 } else fra
.me
.REG
[4] = once_value_9
;
6148 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6149 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6150 if (!once_value_10
) {
6151 fra
.me
.REG
[4] = BOX_NativeString(", ");
6153 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6154 once_value_10
= fra
.me
.REG
[4];
6155 register_static_object(&once_value_10
);
6156 } else fra
.me
.REG
[4] = once_value_10
;
6157 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6158 fra
.me
.REG
[4] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6159 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6160 if (!once_value_11
) {
6161 fra
.me
.REG
[4] = BOX_NativeString(".");
6163 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6164 once_value_11
= fra
.me
.REG
[4];
6165 register_static_object(&once_value_11
);
6166 } else fra
.me
.REG
[4] = once_value_11
;
6167 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6168 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6169 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6170 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6171 /* ./syntax//typing.nit:1136 */
6175 /* ./syntax//typing.nit:1138 */
6176 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6177 /* ./syntax//typing.nit:1139 */
6178 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6179 if (UNTAG_Bool(REGB1
)) {
6181 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1139);
6183 /* ./syntax//typing.nit:1140 */
6184 ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6185 /* ./syntax//typing.nit:1141 */
6186 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[5]);
6187 /* ./syntax//typing.nit:1142 */
6188 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6189 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6191 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
6192 if (UNTAG_Bool(REGB2
)) {
6194 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6196 /* ./../lib/standard//kernel.nit:234 */
6197 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB0
));
6198 /* ./syntax//typing.nit:1142 */
6199 if (UNTAG_Bool(REGB0
)) {
6200 /* ./syntax//typing.nit:1143 */
6201 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6202 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6203 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*/;
6204 if (UNTAG_Bool(REGB0
)) {
6206 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1143);
6208 REGB0
= TAG_Bool(true);
6209 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
);
6210 /* ./syntax//typing.nit:1144 */
6211 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6212 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6213 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]);
6216 /* ./syntax//typing.nit:1147 */
6218 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6219 if (!once_value_12
) {
6220 fra
.me
.REG
[5] = BOX_NativeString("Error: No super method to call for ");
6221 REGB0
= TAG_Int(35);
6222 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6223 once_value_12
= fra
.me
.REG
[5];
6224 register_static_object(&once_value_12
);
6225 } else fra
.me
.REG
[5] = once_value_12
;
6226 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6228 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6229 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6230 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6231 if (!once_value_13
) {
6232 fra
.me
.REG
[5] = BOX_NativeString(".");
6234 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6235 once_value_13
= fra
.me
.REG
[5];
6236 register_static_object(&once_value_13
);
6237 } else fra
.me
.REG
[5] = once_value_13
;
6238 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6239 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6240 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6241 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
6242 /* ./syntax//typing.nit:1148 */
6246 /* ./syntax//typing.nit:1151 */
6247 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6248 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6249 fra
.me
.REG
[5] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6250 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*/;
6251 if (UNTAG_Bool(REGB0
)) {
6253 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1151);
6255 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6256 if (UNTAG_Bool(REGB0
)) {
6257 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1151);
6259 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6260 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6261 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6262 if (UNTAG_Bool(REGB0
)) {
6264 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6265 if (UNTAG_Bool(REGB1
)) {
6266 REGB1
= TAG_Bool(false);
6269 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6273 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6274 if (UNTAG_Bool(REGB0
)) {
6275 /* ./syntax//typing.nit:1152 */
6276 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___init();
6277 /* ./syntax//typing.nit:1153 */
6278 fra
.me
.REG
[4] = NIT_NULL
;
6279 /* ./../lib/standard//collection//array.nit:269 */
6281 /* ./../lib/standard//collection//array.nit:270 */
6282 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6283 if (UNTAG_Bool(REGB1
)) {
6285 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6287 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6288 /* ./../lib/standard//collection//array.nit:271 */
6289 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
6290 /* ./../lib/standard//collection//array.nit:272 */
6292 /* ./../lib/standard//collection//array.nit:24 */
6293 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6294 if (UNTAG_Bool(REGB1
)) {
6296 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6298 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6299 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6300 if (UNTAG_Bool(REGB2
)) {
6302 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6304 /* ./../lib/standard//kernel.nit:232 */
6305 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6306 /* ./../lib/standard//collection//array.nit:272 */
6307 if (UNTAG_Bool(REGB1
)) {
6308 /* ./../lib/standard//collection//array.nit:273 */
6309 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6310 if (UNTAG_Bool(REGB1
)) {
6311 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6313 /* ./../lib/standard//collection//array.nit:718 */
6314 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6315 /* ./syntax//typing.nit:1155 */
6316 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6317 if (UNTAG_Bool(REGB1
)) {
6319 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1155);
6321 /* ./syntax//typing.nit:1156 */
6322 fra
.me
.REG
[8] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6323 fra
.me
.REG
[8] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6324 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*/;
6325 if (UNTAG_Bool(REGB1
)) {
6327 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1156);
6329 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6330 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6331 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6332 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6333 if (UNTAG_Bool(REGB1
)) {
6334 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1156);
6336 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6337 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6338 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6339 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6340 if (UNTAG_Bool(REGB1
)) {
6341 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1156);
6343 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6344 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6345 /* ./syntax//typing.nit:1157 */
6346 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8]);
6347 /* ./syntax//typing.nit:1158 */
6348 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6349 if (UNTAG_Bool(REGB1
)) {
6351 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6352 if (UNTAG_Bool(REGB2
)) {
6353 REGB2
= TAG_Bool(false);
6356 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6360 if (UNTAG_Bool(REGB1
)) {
6361 REGB1
= TAG_Bool(true);
6363 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6364 if (UNTAG_Bool(REGB2
)) {
6365 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1158);
6367 REGB2
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[8]);
6370 if (UNTAG_Bool(REGB1
)) {
6371 /* ./syntax//typing.nit:1159 */
6372 fra
.me
.REG
[4] = fra
.me
.REG
[8];
6374 /* ./../lib/standard//collection//array.nit:274 */
6376 /* ./../lib/standard//kernel.nit:235 */
6377 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6378 /* ./../lib/standard//collection//array.nit:274 */
6381 /* ./../lib/standard//collection//array.nit:272 */
6386 /* ./../lib/standard//collection//array.nit:269 */
6388 /* ./../lib/standard//collection//array.nit:270 */
6389 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6390 if (UNTAG_Bool(REGB1
)) {
6392 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6394 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6395 /* ./../lib/standard//collection//array.nit:271 */
6396 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
6397 /* ./../lib/standard//collection//array.nit:272 */
6399 /* ./../lib/standard//collection//array.nit:24 */
6400 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6401 if (UNTAG_Bool(REGB1
)) {
6403 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6405 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6406 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6407 if (UNTAG_Bool(REGB2
)) {
6409 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6411 /* ./../lib/standard//kernel.nit:232 */
6412 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6413 /* ./../lib/standard//collection//array.nit:272 */
6414 if (UNTAG_Bool(REGB1
)) {
6415 /* ./../lib/standard//collection//array.nit:273 */
6416 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6417 if (UNTAG_Bool(REGB1
)) {
6418 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6420 /* ./../lib/standard//collection//array.nit:718 */
6421 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6422 /* ./syntax//typing.nit:1163 */
6423 REGB1
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
6424 if (UNTAG_Bool(REGB1
)) {
6426 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1163);
6428 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]);
6429 /* ./../lib/standard//collection//array.nit:274 */
6431 /* ./../lib/standard//kernel.nit:235 */
6432 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6433 /* ./../lib/standard//collection//array.nit:274 */
6436 /* ./../lib/standard//collection//array.nit:272 */
6441 /* ./syntax//typing.nit:1165 */
6442 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
6444 /* ./syntax//typing.nit:1167 */
6445 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6446 /* ./syntax//typing.nit:1168 */
6447 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6448 if (UNTAG_Bool(REGB0
)) {
6450 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1168);
6452 /* ./syntax//typing.nit:1169 */
6453 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
6454 /* ./syntax//typing.nit:1170 */
6455 REGB0
= TAG_Bool(true);
6456 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
6458 stack_frame_head
= fra
.me
.prev
;
6461 val_t
syntax___typing___AExternCall___target_class_name(val_t p0
){
6462 struct {struct stack_frame_t me
;} fra
;
6464 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6465 fra
.me
.file
= LOCATE_syntax___typing
;
6467 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_class_name
;
6468 fra
.me
.has_broke
= 0;
6469 fra
.me
.REG_size
= 1;
6470 fra
.me
.REG
[0] = NIT_NULL
;
6472 /* ./syntax//typing.nit:1175 */
6473 fra
.me
.REG
[0] = NIT_NULL
;
6476 stack_frame_head
= fra
.me
.prev
;
6477 return fra
.me
.REG
[0];
6479 val_t
syntax___typing___AExternCall___target_method_name(val_t p0
){
6480 struct {struct stack_frame_t me
;} fra
;
6482 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6483 fra
.me
.file
= LOCATE_syntax___typing
;
6485 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_method_name
;
6486 fra
.me
.has_broke
= 0;
6487 fra
.me
.REG_size
= 0;
6488 /* ./syntax//typing.nit:1176 */
6489 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1176);
6490 stack_frame_head
= fra
.me
.prev
;
6493 void syntax___typing___AExternCall___after_typing(val_t p0
, val_t p1
){
6494 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
6498 static val_t once_value_1
; /* Once value */
6499 static val_t once_value_2
; /* Once value */
6500 static val_t once_value_4
; /* Once value */
6501 static val_t once_value_5
; /* Once value */
6502 static val_t once_value_6
; /* Once value */
6503 static val_t once_value_7
; /* Once value */
6504 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6505 fra
.me
.file
= LOCATE_syntax___typing
;
6507 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___after_typing
;
6508 fra
.me
.has_broke
= 0;
6509 fra
.me
.REG_size
= 8;
6510 fra
.me
.REG
[0] = NIT_NULL
;
6511 fra
.me
.REG
[1] = NIT_NULL
;
6512 fra
.me
.REG
[2] = NIT_NULL
;
6513 fra
.me
.REG
[3] = NIT_NULL
;
6514 fra
.me
.REG
[4] = NIT_NULL
;
6515 fra
.me
.REG
[5] = NIT_NULL
;
6516 fra
.me
.REG
[6] = NIT_NULL
;
6517 fra
.me
.REG
[7] = NIT_NULL
;
6520 /* ./syntax//typing.nit:1178 */
6521 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6522 /* ./syntax//typing.nit:1180 */
6523 fra
.me
.REG
[3] = CALL_syntax___typing___AExternCall___target_class_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6524 /* ./syntax//typing.nit:1181 */
6525 fra
.me
.REG
[4] = CALL_syntax___typing___AExternCall___target_method_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6526 /* ./syntax//typing.nit:1188 */
6527 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6528 if (UNTAG_Bool(REGB0
)) {
6530 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6531 if (UNTAG_Bool(REGB1
)) {
6532 REGB1
= TAG_Bool(false);
6535 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6539 if (UNTAG_Bool(REGB0
)) {
6540 /* ./syntax//typing.nit:1189 */
6541 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6542 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6544 /* ./syntax//typing.nit:1191 */
6545 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6546 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6547 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6548 if (UNTAG_Bool(REGB0
)) {
6549 /* ./syntax//typing.nit:1192 */
6550 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6551 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6552 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6553 /* ./syntax//typing.nit:1193 */
6554 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6555 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6556 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
6557 fra
.me
.REG
[5] = fra
.me
.REG
[6];
6559 /* ./syntax//typing.nit:1195 */
6561 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6562 if (!once_value_1
) {
6563 fra
.me
.REG
[7] = BOX_NativeString("Error: class ");
6564 REGB0
= TAG_Int(13);
6565 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6566 once_value_1
= fra
.me
.REG
[7];
6567 register_static_object(&once_value_1
);
6568 } else fra
.me
.REG
[7] = once_value_1
;
6569 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6570 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
6571 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6572 if (UNTAG_Bool(REGB0
)) {
6573 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1195);
6575 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6576 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6577 if (!once_value_2
) {
6578 fra
.me
.REG
[3] = BOX_NativeString(", not found.");
6579 REGB0
= TAG_Int(12);
6580 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6581 once_value_2
= fra
.me
.REG
[3];
6582 register_static_object(&once_value_2
);
6583 } else fra
.me
.REG
[3] = once_value_2
;
6584 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6585 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6586 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6587 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6588 /* ./syntax//typing.nit:1196 */
6592 /* ./syntax//typing.nit:1200 */
6593 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
6594 if (UNTAG_Bool(REGB0
)) {
6595 /* ./syntax//typing.nit:1201 */
6596 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
6597 /* ./syntax//typing.nit:1203 */
6598 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6599 /* ./syntax//typing.nit:1205 */
6600 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6601 if (UNTAG_Bool(REGB0
)) {
6603 /* ./syntax//typing.nit:1208 */
6605 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6606 if (!once_value_4
) {
6607 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
6608 REGB0
= TAG_Int(16);
6609 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6610 once_value_4
= fra
.me
.REG
[7];
6611 register_static_object(&once_value_4
);
6612 } else fra
.me
.REG
[7] = once_value_4
;
6613 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6614 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6615 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6616 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6617 if (!once_value_5
) {
6618 fra
.me
.REG
[7] = BOX_NativeString(" is not a method.");
6619 REGB0
= TAG_Int(17);
6620 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6621 once_value_5
= fra
.me
.REG
[7];
6622 register_static_object(&once_value_5
);
6623 } else fra
.me
.REG
[7] = once_value_5
;
6624 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6625 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6626 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6627 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6628 /* ./syntax//typing.nit:1209 */
6632 /* ./syntax//typing.nit:1212 */
6634 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6635 if (!once_value_6
) {
6636 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
6637 REGB0
= TAG_Int(16);
6638 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6639 once_value_6
= fra
.me
.REG
[7];
6640 register_static_object(&once_value_6
);
6641 } else fra
.me
.REG
[7] = once_value_6
;
6642 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6643 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6644 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6645 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6646 if (!once_value_7
) {
6647 fra
.me
.REG
[4] = BOX_NativeString(" not found in target class.");
6648 REGB0
= TAG_Int(27);
6649 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6650 once_value_7
= fra
.me
.REG
[4];
6651 register_static_object(&once_value_7
);
6652 } else fra
.me
.REG
[4] = once_value_7
;
6653 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6654 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6655 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6656 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6657 /* ./syntax//typing.nit:1213 */
6660 /* ./syntax//typing.nit:1216 */
6661 fra
.me
.REG
[6] = NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6662 /* ./syntax//typing.nit:1217 */
6663 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6664 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6665 if (UNTAG_Bool(REGB0
)) {
6667 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1217);
6669 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6670 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6672 stack_frame_head
= fra
.me
.prev
;
6675 val_t
syntax___typing___ALocalPropExternCall___target_class_name(val_t p0
){
6676 struct {struct stack_frame_t me
;} fra
;
6678 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6679 fra
.me
.file
= LOCATE_syntax___typing
;
6681 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_class_name
;
6682 fra
.me
.has_broke
= 0;
6683 fra
.me
.REG_size
= 1;
6684 fra
.me
.REG
[0] = NIT_NULL
;
6686 /* ./syntax//typing.nit:1222 */
6687 fra
.me
.REG
[0] = NIT_NULL
;
6690 stack_frame_head
= fra
.me
.prev
;
6691 return fra
.me
.REG
[0];
6693 val_t
syntax___typing___ALocalPropExternCall___target_method_name(val_t p0
){
6694 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6697 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6698 fra
.me
.file
= LOCATE_syntax___typing
;
6700 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_method_name
;
6701 fra
.me
.has_broke
= 0;
6702 fra
.me
.REG_size
= 2;
6703 fra
.me
.REG
[0] = NIT_NULL
;
6704 fra
.me
.REG
[1] = NIT_NULL
;
6706 /* ./syntax//typing.nit:1223 */
6707 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6708 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ALocalPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6709 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6710 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_standard___symbol___Symbol
, ID_standard___symbol___Symbol
)) /*cast Symbol*/;
6711 if (UNTAG_Bool(REGB0
)) {
6713 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1223);
6717 stack_frame_head
= fra
.me
.prev
;
6718 return fra
.me
.REG
[1];
6720 void syntax___typing___ASuperExternCall___after_typing(val_t p0
, val_t p1
){
6721 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6724 static val_t once_value_1
; /* Once value */
6725 static val_t once_value_2
; /* Once value */
6726 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6727 fra
.me
.file
= LOCATE_syntax___typing
;
6729 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExternCall___after_typing
;
6730 fra
.me
.has_broke
= 0;
6731 fra
.me
.REG_size
= 4;
6732 fra
.me
.REG
[0] = NIT_NULL
;
6733 fra
.me
.REG
[1] = NIT_NULL
;
6734 fra
.me
.REG
[2] = NIT_NULL
;
6735 fra
.me
.REG
[3] = NIT_NULL
;
6738 /* ./syntax//typing.nit:1229 */
6739 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6740 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6741 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6742 /* ./syntax//typing.nit:1230 */
6743 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6744 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6745 if (UNTAG_Bool(REGB0
)) {
6746 /* ./syntax//typing.nit:1231 */
6747 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6748 REGB0
= TAG_Bool(true);
6749 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
6751 /* ./syntax//typing.nit:1233 */
6753 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6754 if (!once_value_1
) {
6755 fra
.me
.REG
[3] = BOX_NativeString("Error: No super method to call for ");
6756 REGB0
= TAG_Int(35);
6757 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6758 once_value_1
= fra
.me
.REG
[3];
6759 register_static_object(&once_value_1
);
6760 } else fra
.me
.REG
[3] = once_value_1
;
6761 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6762 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6763 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6764 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6765 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6766 if (!once_value_2
) {
6767 fra
.me
.REG
[3] = BOX_NativeString(".");
6769 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6770 once_value_2
= fra
.me
.REG
[3];
6771 register_static_object(&once_value_2
);
6772 } else fra
.me
.REG
[3] = once_value_2
;
6773 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6774 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6775 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6776 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6777 /* ./syntax//typing.nit:1234 */
6781 stack_frame_head
= fra
.me
.prev
;
6784 val_t
syntax___typing___AFullPropExternCall___target_class_name(val_t p0
){
6785 struct {struct stack_frame_t me
;} fra
;
6787 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6788 fra
.me
.file
= LOCATE_syntax___typing
;
6790 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_class_name
;
6791 fra
.me
.has_broke
= 0;
6792 fra
.me
.REG_size
= 1;
6793 fra
.me
.REG
[0] = NIT_NULL
;
6795 /* ./syntax//typing.nit:1240 */
6796 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AFullPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6797 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6800 stack_frame_head
= fra
.me
.prev
;
6801 return fra
.me
.REG
[0];
6803 val_t
syntax___typing___AFullPropExternCall___target_method_name(val_t p0
){
6804 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6807 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6808 fra
.me
.file
= LOCATE_syntax___typing
;
6810 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_method_name
;
6811 fra
.me
.has_broke
= 0;
6812 fra
.me
.REG_size
= 2;
6813 fra
.me
.REG
[0] = NIT_NULL
;
6814 fra
.me
.REG
[1] = NIT_NULL
;
6816 /* ./syntax//typing.nit:1241 */
6817 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6818 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AFullPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6819 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6820 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_standard___symbol___Symbol
, ID_standard___symbol___Symbol
)) /*cast Symbol*/;
6821 if (UNTAG_Bool(REGB0
)) {
6823 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1241);
6827 stack_frame_head
= fra
.me
.prev
;
6828 return fra
.me
.REG
[1];
6830 val_t
syntax___typing___AInitPropExternCall___target_class_name(val_t p0
){
6831 struct {struct stack_frame_t me
;} fra
;
6833 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6834 fra
.me
.file
= LOCATE_syntax___typing
;
6836 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_class_name
;
6837 fra
.me
.has_broke
= 0;
6838 fra
.me
.REG_size
= 1;
6839 fra
.me
.REG
[0] = NIT_NULL
;
6841 /* ./syntax//typing.nit:1245 */
6842 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6843 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6846 stack_frame_head
= fra
.me
.prev
;
6847 return fra
.me
.REG
[0];
6849 val_t
syntax___typing___AInitPropExternCall___target_method_name(val_t p0
){
6850 struct {struct stack_frame_t me
;} fra
;
6853 static val_t once_value_1
; /* Once value */
6854 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6855 fra
.me
.file
= LOCATE_syntax___typing
;
6857 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_method_name
;
6858 fra
.me
.has_broke
= 0;
6859 fra
.me
.REG_size
= 1;
6860 fra
.me
.REG
[0] = NIT_NULL
;
6862 /* ./syntax//typing.nit:1246 */
6863 if (!once_value_1
) {
6864 fra
.me
.REG
[0] = BOX_NativeString("init");
6866 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
6867 once_value_1
= fra
.me
.REG
[0];
6868 register_static_object(&once_value_1
);
6869 } else fra
.me
.REG
[0] = once_value_1
;
6870 fra
.me
.REG
[0] = fra
.me
.REG
[0];
6871 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6874 stack_frame_head
= fra
.me
.prev
;
6875 return fra
.me
.REG
[0];
6877 val_t
syntax___typing___ACastExternCall___from_type(val_t p0
){
6878 struct {struct stack_frame_t me
;} fra
;
6880 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6881 fra
.me
.file
= LOCATE_syntax___typing
;
6883 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___from_type
;
6884 fra
.me
.has_broke
= 0;
6885 fra
.me
.REG_size
= 0;
6886 /* ./syntax//typing.nit:1250 */
6887 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1250);
6888 stack_frame_head
= fra
.me
.prev
;
6891 val_t
syntax___typing___ACastExternCall___to_type(val_t p0
){
6892 struct {struct stack_frame_t me
;} fra
;
6894 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6895 fra
.me
.file
= LOCATE_syntax___typing
;
6897 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___to_type
;
6898 fra
.me
.has_broke
= 0;
6899 fra
.me
.REG_size
= 0;
6900 /* ./syntax//typing.nit:1251 */
6901 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1251);
6902 stack_frame_head
= fra
.me
.prev
;
6905 void syntax___typing___ACastExternCall___after_typing(val_t p0
, val_t p1
){
6906 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6910 static val_t once_value_1
; /* Once value */
6911 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6912 fra
.me
.file
= LOCATE_syntax___typing
;
6914 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___after_typing
;
6915 fra
.me
.has_broke
= 0;
6916 fra
.me
.REG_size
= 4;
6917 fra
.me
.REG
[0] = NIT_NULL
;
6918 fra
.me
.REG
[1] = NIT_NULL
;
6919 fra
.me
.REG
[2] = NIT_NULL
;
6920 fra
.me
.REG
[3] = NIT_NULL
;
6923 /* ./syntax//typing.nit:1255 */
6924 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6925 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6926 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
6927 if (UNTAG_Bool(REGB0
)) {
6929 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6932 if (UNTAG_Bool(REGB0
)) {
6933 /* ./syntax//typing.nit:1257 */
6934 if (!once_value_1
) {
6935 fra
.me
.REG
[3] = BOX_NativeString("Attepting to cast from and to the same type.");
6936 REGB0
= TAG_Int(44);
6937 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6938 once_value_1
= fra
.me
.REG
[3];
6939 register_static_object(&once_value_1
);
6940 } else fra
.me
.REG
[3] = once_value_1
;
6941 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6942 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
6944 /* ./syntax//typing.nit:1260 */
6945 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6946 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6947 fra
.me
.REG
[2] = NEW_MMImportedCast_metamodel___static_type___MMImportedCast___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
6948 /* ./syntax//typing.nit:1261 */
6949 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6950 /* ./syntax//typing.nit:1262 */
6951 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6952 if (UNTAG_Bool(REGB0
)) {
6954 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1262);
6956 /* ./syntax//typing.nit:1263 */
6957 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6958 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6959 stack_frame_head
= fra
.me
.prev
;
6962 val_t
syntax___typing___ACastAsExternCall___from_type(val_t p0
){
6963 struct {struct stack_frame_t me
;} fra
;
6965 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6966 fra
.me
.file
= LOCATE_syntax___typing
;
6968 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___from_type
;
6969 fra
.me
.has_broke
= 0;
6970 fra
.me
.REG_size
= 1;
6971 fra
.me
.REG
[0] = NIT_NULL
;
6973 /* ./syntax//typing.nit:1268 */
6974 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6975 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6978 stack_frame_head
= fra
.me
.prev
;
6979 return fra
.me
.REG
[0];
6981 val_t
syntax___typing___ACastAsExternCall___to_type(val_t p0
){
6982 struct {struct stack_frame_t me
;} fra
;
6984 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6985 fra
.me
.file
= LOCATE_syntax___typing
;
6987 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___to_type
;
6988 fra
.me
.has_broke
= 0;
6989 fra
.me
.REG_size
= 1;
6990 fra
.me
.REG
[0] = NIT_NULL
;
6992 /* ./syntax//typing.nit:1269 */
6993 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6994 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6997 stack_frame_head
= fra
.me
.prev
;
6998 return fra
.me
.REG
[0];
7000 val_t
syntax___typing___AAsNullableExternCall___from_type(val_t p0
){
7001 struct {struct stack_frame_t me
;} fra
;
7003 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7004 fra
.me
.file
= LOCATE_syntax___typing
;
7006 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___from_type
;
7007 fra
.me
.has_broke
= 0;
7008 fra
.me
.REG_size
= 1;
7009 fra
.me
.REG
[0] = NIT_NULL
;
7011 /* ./syntax//typing.nit:1273 */
7012 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7013 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7016 stack_frame_head
= fra
.me
.prev
;
7017 return fra
.me
.REG
[0];
7019 val_t
syntax___typing___AAsNullableExternCall___to_type(val_t p0
){
7020 struct {struct stack_frame_t me
;} fra
;
7022 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7023 fra
.me
.file
= LOCATE_syntax___typing
;
7025 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___to_type
;
7026 fra
.me
.has_broke
= 0;
7027 fra
.me
.REG_size
= 1;
7028 fra
.me
.REG
[0] = NIT_NULL
;
7030 /* ./syntax//typing.nit:1274 */
7031 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7032 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7033 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7036 stack_frame_head
= fra
.me
.prev
;
7037 return fra
.me
.REG
[0];
7039 val_t
syntax___typing___AAsNotNullableExternCall___from_type(val_t p0
){
7040 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7043 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7044 fra
.me
.file
= LOCATE_syntax___typing
;
7046 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___from_type
;
7047 fra
.me
.has_broke
= 0;
7048 fra
.me
.REG_size
= 2;
7049 fra
.me
.REG
[0] = NIT_NULL
;
7050 fra
.me
.REG
[1] = NIT_NULL
;
7052 /* ./syntax//typing.nit:1280 */
7053 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7054 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7055 /* ./syntax//typing.nit:1281 */
7056 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7057 if (UNTAG_Bool(REGB0
)) {
7058 /* ./syntax//typing.nit:1283 */
7059 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7062 /* ./syntax//typing.nit:1285 */
7063 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7064 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7068 stack_frame_head
= fra
.me
.prev
;
7069 return fra
.me
.REG
[1];
7071 val_t
syntax___typing___AAsNotNullableExternCall___to_type(val_t p0
){
7072 struct {struct stack_frame_t me
;} fra
;
7074 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7075 fra
.me
.file
= LOCATE_syntax___typing
;
7077 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___to_type
;
7078 fra
.me
.has_broke
= 0;
7079 fra
.me
.REG_size
= 1;
7080 fra
.me
.REG
[0] = NIT_NULL
;
7082 /* ./syntax//typing.nit:1288 */
7083 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7084 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7085 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7088 stack_frame_head
= fra
.me
.prev
;
7089 return fra
.me
.REG
[0];
7091 val_t
syntax___typing___AAttrFormExpr___prop(val_t p0
){
7092 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7095 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7096 fra
.me
.file
= LOCATE_syntax___typing
;
7098 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___prop
;
7099 fra
.me
.has_broke
= 0;
7100 fra
.me
.REG_size
= 2;
7101 fra
.me
.REG
[0] = NIT_NULL
;
7102 fra
.me
.REG
[1] = NIT_NULL
;
7104 /* ./syntax//typing.nit:1292 */
7105 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7106 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[1]);
7107 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7108 if (UNTAG_Bool(REGB0
)) {
7110 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1292);
7114 stack_frame_head
= fra
.me
.prev
;
7115 return fra
.me
.REG
[1];
7117 val_t
syntax___typing___AAttrFormExpr___attr_type(val_t p0
){
7118 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7121 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7122 fra
.me
.file
= LOCATE_syntax___typing
;
7124 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___attr_type
;
7125 fra
.me
.has_broke
= 0;
7126 fra
.me
.REG_size
= 2;
7127 fra
.me
.REG
[0] = NIT_NULL
;
7128 fra
.me
.REG
[1] = NIT_NULL
;
7130 /* ./syntax//typing.nit:1295 */
7131 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7132 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[1]);
7133 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7134 if (UNTAG_Bool(REGB0
)) {
7136 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1295);
7140 stack_frame_head
= fra
.me
.prev
;
7141 return fra
.me
.REG
[1];
7143 void syntax___typing___AAttrFormExpr___do_typing(val_t p0
, val_t p1
){
7144 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7149 static val_t once_value_2
; /* Once value */
7150 static val_t once_value_3
; /* Once value */
7151 static val_t once_value_4
; /* Once value */
7152 static val_t once_value_5
; /* Once value */
7153 static val_t once_value_6
; /* Once value */
7154 static val_t once_value_7
; /* Once value */
7155 static val_t once_value_8
; /* Once value */
7156 static val_t once_value_9
; /* Once value */
7157 static val_t once_value_10
; /* Once value */
7158 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7159 fra
.me
.file
= LOCATE_syntax___typing
;
7161 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___do_typing
;
7162 fra
.me
.has_broke
= 0;
7163 fra
.me
.REG_size
= 7;
7164 fra
.me
.REG
[0] = NIT_NULL
;
7165 fra
.me
.REG
[1] = NIT_NULL
;
7166 fra
.me
.REG
[2] = NIT_NULL
;
7167 fra
.me
.REG
[3] = NIT_NULL
;
7168 fra
.me
.REG
[4] = NIT_NULL
;
7169 fra
.me
.REG
[5] = NIT_NULL
;
7170 fra
.me
.REG
[6] = NIT_NULL
;
7173 /* ./syntax//typing.nit:1301 */
7174 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7175 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7176 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7177 if (UNTAG_Bool(REGB0
)) {
7180 /* ./syntax//typing.nit:1302 */
7181 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7182 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7183 /* ./syntax//typing.nit:1303 */
7184 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7185 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7186 /* ./syntax//typing.nit:1304 */
7187 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
7188 if (UNTAG_Bool(REGB0
)) {
7189 /* ./syntax//typing.nit:1305 */
7191 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7192 if (!once_value_2
) {
7193 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute '");
7194 REGB0
= TAG_Int(18);
7195 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7196 once_value_2
= fra
.me
.REG
[5];
7197 register_static_object(&once_value_2
);
7198 } else fra
.me
.REG
[5] = once_value_2
;
7199 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7201 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7202 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7203 if (!once_value_3
) {
7204 fra
.me
.REG
[5] = BOX_NativeString("' access on 'null'.");
7205 REGB0
= TAG_Int(19);
7206 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7207 once_value_3
= fra
.me
.REG
[5];
7208 register_static_object(&once_value_3
);
7209 } else fra
.me
.REG
[5] = once_value_3
;
7210 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7211 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7212 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7213 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7214 /* ./syntax//typing.nit:1306 */
7217 /* ./syntax//typing.nit:1308 */
7218 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7219 /* ./syntax//typing.nit:1309 */
7220 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7221 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7222 if (UNTAG_Bool(REGB0
)) {
7223 /* ./syntax//typing.nit:1310 */
7225 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7226 if (!once_value_4
) {
7227 fra
.me
.REG
[6] = BOX_NativeString("Error: Attribute ");
7228 REGB0
= TAG_Int(17);
7229 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7230 once_value_4
= fra
.me
.REG
[6];
7231 register_static_object(&once_value_4
);
7232 } else fra
.me
.REG
[6] = once_value_4
;
7233 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7234 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7235 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7236 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7237 if (!once_value_5
) {
7238 fra
.me
.REG
[6] = BOX_NativeString(" doesn't exists in ");
7239 REGB0
= TAG_Int(19);
7240 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7241 once_value_5
= fra
.me
.REG
[6];
7242 register_static_object(&once_value_5
);
7243 } else fra
.me
.REG
[6] = once_value_5
;
7244 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7245 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7246 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7247 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7248 if (!once_value_6
) {
7249 fra
.me
.REG
[6] = BOX_NativeString(".");
7251 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7252 once_value_6
= fra
.me
.REG
[6];
7253 register_static_object(&once_value_6
);
7254 } else fra
.me
.REG
[6] = once_value_6
;
7255 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7257 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7258 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7259 /* ./syntax//typing.nit:1311 */
7262 /* ./syntax//typing.nit:1313 */
7263 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_attribute(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7264 /* ./syntax//typing.nit:1314 */
7265 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7266 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7267 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7268 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7269 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7271 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
7272 if (UNTAG_Bool(REGB2
)) {
7274 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7276 /* ./../lib/standard//kernel.nit:232 */
7277 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
7278 /* ./syntax//typing.nit:1314 */
7279 if (UNTAG_Bool(REGB1
)) {
7280 /* ./syntax//typing.nit:1315 */
7282 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
7283 if (!once_value_7
) {
7284 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute ");
7285 REGB1
= TAG_Int(17);
7286 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
7287 once_value_7
= fra
.me
.REG
[5];
7288 register_static_object(&once_value_7
);
7289 } else fra
.me
.REG
[5] = once_value_7
;
7290 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7291 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
7292 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7293 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7294 if (!once_value_8
) {
7295 fra
.me
.REG
[3] = BOX_NativeString(" from ");
7297 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7298 once_value_8
= fra
.me
.REG
[3];
7299 register_static_object(&once_value_8
);
7300 } else fra
.me
.REG
[3] = once_value_8
;
7301 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7302 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7303 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7304 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7305 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7306 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7307 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7308 if (!once_value_9
) {
7309 fra
.me
.REG
[3] = BOX_NativeString(" is invisible in ");
7310 REGB1
= TAG_Int(17);
7311 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7312 once_value_9
= fra
.me
.REG
[3];
7313 register_static_object(&once_value_9
);
7314 } else fra
.me
.REG
[3] = once_value_9
;
7315 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7316 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7317 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7318 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7319 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7320 if (!once_value_10
) {
7321 fra
.me
.REG
[3] = BOX_NativeString("");
7323 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7324 once_value_10
= fra
.me
.REG
[3];
7325 register_static_object(&once_value_10
);
7326 } else fra
.me
.REG
[3] = once_value_10
;
7327 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7328 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7329 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7330 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
7332 /* ./syntax//typing.nit:1317 */
7333 ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
7334 /* ./syntax//typing.nit:1318 */
7335 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7336 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7337 /* ./syntax//typing.nit:1319 */
7338 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7339 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7340 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7341 if (UNTAG_Bool(REGB1
)) {
7342 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7343 if (UNTAG_Bool(REGB1
)) {
7344 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1319);
7346 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7347 fra
.me
.REG
[2] = fra
.me
.REG
[4];
7349 /* ./syntax//typing.nit:1320 */
7350 ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
7352 stack_frame_head
= fra
.me
.prev
;
7355 void syntax___typing___AAttrExpr___after_typing(val_t p0
, val_t p1
){
7356 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7360 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7361 fra
.me
.file
= LOCATE_syntax___typing
;
7363 fra
.me
.meth
= LOCATE_syntax___typing___AAttrExpr___after_typing
;
7364 fra
.me
.has_broke
= 0;
7365 fra
.me
.REG_size
= 2;
7366 fra
.me
.REG
[0] = NIT_NULL
;
7367 fra
.me
.REG
[1] = NIT_NULL
;
7370 /* ./syntax//typing.nit:1327 */
7371 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7372 /* ./syntax//typing.nit:1328 */
7373 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7374 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7375 if (UNTAG_Bool(REGB0
)) {
7377 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7378 if (UNTAG_Bool(REGB1
)) {
7379 REGB1
= TAG_Bool(false);
7382 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7386 if (UNTAG_Bool(REGB0
)) {
7389 /* ./syntax//typing.nit:1329 */
7390 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7391 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7392 /* ./syntax//typing.nit:1330 */
7393 REGB0
= TAG_Bool(true);
7394 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7396 stack_frame_head
= fra
.me
.prev
;
7399 void syntax___typing___AAttrAssignExpr___after_typing(val_t p0
, val_t p1
){
7400 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7404 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7405 fra
.me
.file
= LOCATE_syntax___typing
;
7407 fra
.me
.meth
= LOCATE_syntax___typing___AAttrAssignExpr___after_typing
;
7408 fra
.me
.has_broke
= 0;
7409 fra
.me
.REG_size
= 4;
7410 fra
.me
.REG
[0] = NIT_NULL
;
7411 fra
.me
.REG
[1] = NIT_NULL
;
7412 fra
.me
.REG
[2] = NIT_NULL
;
7413 fra
.me
.REG
[3] = NIT_NULL
;
7416 /* ./syntax//typing.nit:1337 */
7417 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7418 /* ./syntax//typing.nit:1338 */
7419 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7420 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7421 if (UNTAG_Bool(REGB0
)) {
7423 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7424 if (UNTAG_Bool(REGB1
)) {
7425 REGB1
= TAG_Bool(false);
7428 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7432 if (UNTAG_Bool(REGB0
)) {
7435 /* ./syntax//typing.nit:1339 */
7436 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7437 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7438 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]);
7439 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7440 if (UNTAG_Bool(REGB0
)) {
7443 /* ./syntax//typing.nit:1340 */
7444 REGB0
= TAG_Bool(true);
7445 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7447 stack_frame_head
= fra
.me
.prev
;
7450 void syntax___typing___AAttrReassignExpr___after_typing(val_t p0
, val_t p1
){
7451 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7455 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7456 fra
.me
.file
= LOCATE_syntax___typing
;
7458 fra
.me
.meth
= LOCATE_syntax___typing___AAttrReassignExpr___after_typing
;
7459 fra
.me
.has_broke
= 0;
7460 fra
.me
.REG_size
= 4;
7461 fra
.me
.REG
[0] = NIT_NULL
;
7462 fra
.me
.REG
[1] = NIT_NULL
;
7463 fra
.me
.REG
[2] = NIT_NULL
;
7464 fra
.me
.REG
[3] = NIT_NULL
;
7467 /* ./syntax//typing.nit:1347 */
7468 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7469 /* ./syntax//typing.nit:1348 */
7470 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7471 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7472 if (UNTAG_Bool(REGB0
)) {
7474 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7475 if (UNTAG_Bool(REGB1
)) {
7476 REGB1
= TAG_Bool(false);
7479 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7483 if (UNTAG_Bool(REGB0
)) {
7486 /* ./syntax//typing.nit:1349 */
7487 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7488 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]);
7489 /* ./syntax//typing.nit:1350 */
7490 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7491 if (UNTAG_Bool(REGB0
)) {
7493 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7494 if (UNTAG_Bool(REGB1
)) {
7495 REGB1
= TAG_Bool(false);
7498 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7502 if (UNTAG_Bool(REGB0
)) {
7505 /* ./syntax//typing.nit:1351 */
7506 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7507 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7508 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]);
7509 /* ./syntax//typing.nit:1352 */
7510 REGB0
= TAG_Bool(true);
7511 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7513 stack_frame_head
= fra
.me
.prev
;
7516 void syntax___typing___AIssetAttrExpr___after_typing(val_t p0
, val_t p1
){
7517 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7521 static val_t once_value_2
; /* Once value */
7522 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7523 fra
.me
.file
= LOCATE_syntax___typing
;
7525 fra
.me
.meth
= LOCATE_syntax___typing___AIssetAttrExpr___after_typing
;
7526 fra
.me
.has_broke
= 0;
7527 fra
.me
.REG_size
= 3;
7528 fra
.me
.REG
[0] = NIT_NULL
;
7529 fra
.me
.REG
[1] = NIT_NULL
;
7530 fra
.me
.REG
[2] = NIT_NULL
;
7533 /* ./syntax//typing.nit:1359 */
7534 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7535 /* ./syntax//typing.nit:1360 */
7536 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7537 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7538 if (UNTAG_Bool(REGB0
)) {
7540 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7541 if (UNTAG_Bool(REGB1
)) {
7542 REGB1
= TAG_Bool(false);
7545 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7549 if (UNTAG_Bool(REGB0
)) {
7552 /* ./syntax//typing.nit:1361 */
7553 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7554 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7555 if (UNTAG_Bool(REGB0
)) {
7556 /* ./syntax//typing.nit:1362 */
7557 if (!once_value_2
) {
7558 fra
.me
.REG
[2] = BOX_NativeString("Error: isset on a nullable attribute.");
7559 REGB0
= TAG_Int(37);
7560 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7561 once_value_2
= fra
.me
.REG
[2];
7562 register_static_object(&once_value_2
);
7563 } else fra
.me
.REG
[2] = once_value_2
;
7564 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7565 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
7567 /* ./syntax//typing.nit:1364 */
7568 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7569 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7570 /* ./syntax//typing.nit:1365 */
7571 REGB0
= TAG_Bool(true);
7572 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7574 stack_frame_head
= fra
.me
.prev
;
7577 val_t
syntax___typing___AAbsAbsSendExpr___prop_signature(val_t p0
){
7578 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7581 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7582 fra
.me
.file
= LOCATE_syntax___typing
;
7584 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature
;
7585 fra
.me
.has_broke
= 0;
7586 fra
.me
.REG_size
= 2;
7587 fra
.me
.REG
[0] = NIT_NULL
;
7588 fra
.me
.REG
[1] = NIT_NULL
;
7590 /* ./syntax//typing.nit:1370 */
7591 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7592 /* ./syntax//typing.nit:1371 */
7593 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[1]);
7594 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7595 if (UNTAG_Bool(REGB0
)) {
7597 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1371);
7601 stack_frame_head
= fra
.me
.prev
;
7602 return fra
.me
.REG
[1];
7604 val_t
syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0
){
7605 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7609 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7610 fra
.me
.file
= LOCATE_syntax___typing
;
7612 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments
;
7613 fra
.me
.has_broke
= 0;
7614 fra
.me
.REG_size
= 4;
7615 fra
.me
.REG
[0] = NIT_NULL
;
7616 fra
.me
.REG
[1] = NIT_NULL
;
7617 fra
.me
.REG
[2] = NIT_NULL
;
7618 fra
.me
.REG
[3] = NIT_NULL
;
7620 /* ./syntax//typing.nit:1377 */
7621 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]);
7622 /* ./syntax//typing.nit:1378 */
7623 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7624 if (UNTAG_Bool(REGB0
)) {
7626 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7627 if (UNTAG_Bool(REGB1
)) {
7628 REGB1
= TAG_Bool(false);
7631 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7635 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7636 if (UNTAG_Bool(REGB0
)) {
7637 /* ./syntax//typing.nit:1379 */
7638 fra
.me
.REG
[2] = fra
.me
.REG
[1];
7641 /* ./syntax//typing.nit:1381 */
7642 fra
.me
.REG
[3] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7643 fra
.me
.REG
[1] = fra
.me
.REG
[3];
7644 /* ./syntax//typing.nit:1382 */
7645 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7646 if (UNTAG_Bool(REGB0
)) {
7648 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7649 if (UNTAG_Bool(REGB1
)) {
7650 REGB1
= TAG_Bool(false);
7653 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7657 if (UNTAG_Bool(REGB0
)) {
7658 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
7659 fra
.me
.REG
[1] = fra
.me
.REG
[3];
7661 /* ./syntax//typing.nit:1383 */
7662 ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7663 /* ./syntax//typing.nit:1384 */
7664 fra
.me
.REG
[2] = fra
.me
.REG
[1];
7668 stack_frame_head
= fra
.me
.prev
;
7669 return fra
.me
.REG
[2];
7671 val_t
syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0
){
7672 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7675 static val_t once_value_1
; /* Once value */
7676 static val_t once_value_2
; /* Once value */
7677 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7678 fra
.me
.file
= LOCATE_syntax___typing
;
7680 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments
;
7681 fra
.me
.has_broke
= 0;
7682 fra
.me
.REG_size
= 3;
7683 fra
.me
.REG
[0] = NIT_NULL
;
7684 fra
.me
.REG
[1] = NIT_NULL
;
7685 fra
.me
.REG
[2] = NIT_NULL
;
7687 /* ./syntax//typing.nit:1392 */
7689 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7690 if (!once_value_1
) {
7691 fra
.me
.REG
[2] = BOX_NativeString("");
7693 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7694 once_value_1
= fra
.me
.REG
[2];
7695 register_static_object(&once_value_1
);
7696 } else fra
.me
.REG
[2] = once_value_1
;
7697 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7699 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7700 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7701 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7702 if (!once_value_2
) {
7703 fra
.me
.REG
[2] = BOX_NativeString(" no compute_raw_arguments");
7704 REGB0
= TAG_Int(25);
7705 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
7706 once_value_2
= fra
.me
.REG
[2];
7707 register_static_object(&once_value_2
);
7708 } else fra
.me
.REG
[2] = once_value_2
;
7709 fra
.me
.REG
[2] = fra
.me
.REG
[2];
7710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7711 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7712 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7713 /* ./syntax//typing.nit:1393 */
7714 fra
.me
.REG
[1] = NIT_NULL
;
7717 stack_frame_head
= fra
.me
.prev
;
7718 return fra
.me
.REG
[1];
7720 val_t
syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
7721 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7735 static val_t once_value_1
; /* Once value */
7736 static val_t once_value_2
; /* Once value */
7737 static val_t once_value_3
; /* Once value */
7738 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7739 fra
.me
.file
= LOCATE_syntax___typing
;
7741 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature
;
7742 fra
.me
.has_broke
= 0;
7743 fra
.me
.REG_size
= 7;
7744 fra
.me
.REG
[0] = NIT_NULL
;
7745 fra
.me
.REG
[1] = NIT_NULL
;
7746 fra
.me
.REG
[2] = NIT_NULL
;
7747 fra
.me
.REG
[3] = NIT_NULL
;
7748 fra
.me
.REG
[4] = NIT_NULL
;
7749 fra
.me
.REG
[5] = NIT_NULL
;
7750 fra
.me
.REG
[6] = NIT_NULL
;
7756 /* ./syntax//typing.nit:1399 */
7757 REGB0
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7758 /* ./syntax//typing.nit:1400 */
7759 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7760 /* ./syntax//typing.nit:1402 */
7761 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7762 if (UNTAG_Bool(REGB2
)) {
7764 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7765 if (UNTAG_Bool(REGB3
)) {
7766 REGB3
= TAG_Bool(false);
7769 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
7773 if (UNTAG_Bool(REGB2
)) {
7776 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7777 if (UNTAG_Bool(REGB3
)) {
7778 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1402);
7780 /* ./../lib/standard//collection//array.nit:24 */
7781 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
7782 if (UNTAG_Bool(REGB3
)) {
7784 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
7786 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
7787 /* ./syntax//typing.nit:1402 */
7790 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
7791 if (UNTAG_Bool(REGB3
)) {
7793 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7795 /* ./../lib/standard//kernel.nit:234 */
7796 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
7797 /* ./syntax//typing.nit:1403 */
7798 if (UNTAG_Bool(REGB3
)) {
7799 REGB3
= TAG_Bool(true);
7801 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
7802 if (UNTAG_Bool(REGB4
)) {
7804 /* ./../lib/standard//kernel.nit:227 */
7805 REGB5
= TAG_Bool((REGB1
)==(REGB2
));
7806 /* ./syntax//typing.nit:1403 */
7809 REGB4
= TAG_Bool(!UNTAG_Bool(REGB4
));
7810 if (UNTAG_Bool(REGB4
)) {
7812 /* ./../lib/standard//kernel.nit:236 */
7813 REGB4
= TAG_Int(-UNTAG_Int(REGB4
));
7814 /* ./syntax//typing.nit:1403 */
7815 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB4
));
7816 if (UNTAG_Bool(REGB5
)) {
7818 /* ./../lib/standard//kernel.nit:227 */
7819 REGB4
= TAG_Bool((REGB0
)==(REGB4
));
7820 /* ./syntax//typing.nit:1403 */
7824 REGB4
= TAG_Bool(false);
7829 if (UNTAG_Bool(REGB3
)) {
7830 /* ./syntax//typing.nit:1404 */
7832 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3
);
7833 if (!once_value_1
) {
7834 fra
.me
.REG
[6] = BOX_NativeString("Error: arity mismatch; prototype is '");
7835 REGB3
= TAG_Int(37);
7836 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB3
);
7837 once_value_1
= fra
.me
.REG
[6];
7838 register_static_object(&once_value_1
);
7839 } else fra
.me
.REG
[6] = once_value_1
;
7840 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7842 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7843 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7844 if (!once_value_2
) {
7845 fra
.me
.REG
[3] = BOX_NativeString("");
7847 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
7848 once_value_2
= fra
.me
.REG
[3];
7849 register_static_object(&once_value_2
);
7850 } else fra
.me
.REG
[3] = once_value_2
;
7851 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7852 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7853 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7854 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7855 if (!once_value_3
) {
7856 fra
.me
.REG
[3] = BOX_NativeString("'.");
7858 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
7859 once_value_3
= fra
.me
.REG
[3];
7860 register_static_object(&once_value_3
);
7861 } else fra
.me
.REG
[3] = once_value_3
;
7862 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7863 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
7864 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7865 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7866 /* ./syntax//typing.nit:1405 */
7867 REGB3
= TAG_Bool(false);
7870 /* ./syntax//typing.nit:1407 */
7872 /* ./syntax//typing.nit:1408 */
7874 /* ./../lib/standard//kernel.nit:347 */
7876 /* ./../lib/standard//kernel.nit:352 */
7878 REGB7
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
7879 if (UNTAG_Bool(REGB7
)) {
7881 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7883 /* ./../lib/standard//kernel.nit:232 */
7884 REGB7
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
7885 /* ./../lib/standard//kernel.nit:352 */
7886 if (UNTAG_Bool(REGB7
)) {
7887 /* ./syntax//typing.nit:1408 */
7889 /* ./syntax//typing.nit:1410 */
7890 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB7
);
7891 /* ./syntax//typing.nit:1411 */
7892 REGB8
= TAG_Bool(IS_EQUAL_OO(REGB7
,REGB0
));
7893 if (UNTAG_Bool(REGB8
)) {
7895 /* ./../lib/standard//kernel.nit:227 */
7896 REGB7
= TAG_Bool((REGB7
)==(REGB0
));
7897 /* ./syntax//typing.nit:1411 */
7900 if (UNTAG_Bool(REGB8
)) {
7901 /* ./syntax//typing.nit:1412 */
7903 /* ./../lib/standard//kernel.nit:237 */
7904 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
7905 /* ./../lib/standard//kernel.nit:341 */
7907 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
7908 if (UNTAG_Bool(REGB9
)) {
7910 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7912 /* ./../lib/standard//kernel.nit:231 */
7913 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<=UNTAG_Int(REGB7
));
7914 /* ./../lib/standard//kernel.nit:341 */
7915 if (UNTAG_Bool(REGB9
)) {
7916 /* ./syntax//typing.nit:1413 */
7917 REGB9
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7918 if (UNTAG_Bool(REGB9
)) {
7919 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1413);
7921 /* ./../lib/standard//collection//array.nit:278 */
7922 fra
.me
.REG
[0] = fra
.me
.REG
[4];
7924 /* ./../lib/standard//collection//array.nit:280 */
7925 REGB10
= TAG_Int(0);
7926 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
7927 if (UNTAG_Bool(REGB11
)) {
7929 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7931 /* ./../lib/standard//kernel.nit:233 */
7932 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)>=UNTAG_Int(REGB10
));
7933 /* ./../lib/standard//collection//array.nit:280 */
7934 if (UNTAG_Bool(REGB10
)) {
7935 REGB10
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
7936 if (UNTAG_Bool(REGB10
)) {
7938 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
7940 REGB10
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
7941 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
7942 if (UNTAG_Bool(REGB11
)) {
7944 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7946 /* ./../lib/standard//kernel.nit:232 */
7947 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)<UNTAG_Int(REGB10
));
7949 /* ./../lib/standard//collection//array.nit:280 */
7950 REGB11
= TAG_Bool(false);
7953 if (UNTAG_Bool(REGB10
)) {
7955 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
7957 /* ./../lib/standard//collection//array.nit:281 */
7958 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
7959 REGB10
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
7960 if (UNTAG_Bool(REGB10
)) {
7961 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
7963 /* ./../lib/standard//collection//array.nit:718 */
7964 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB9
)];
7965 /* ./../lib/standard//collection//array.nit:281 */
7968 /* ./syntax//typing.nit:1414 */
7969 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7970 /* ./syntax//typing.nit:1415 */
7972 /* ./../lib/standard//kernel.nit:235 */
7973 REGB9
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB9
));
7974 /* ./syntax//typing.nit:1415 */
7976 /* ./../lib/standard//kernel.nit:343 */
7978 /* ./../lib/standard//kernel.nit:235 */
7979 REGB9
= TAG_Int(UNTAG_Int(REGB8
)+UNTAG_Int(REGB9
));
7980 /* ./../lib/standard//kernel.nit:343 */
7983 /* ./../lib/standard//kernel.nit:341 */
7989 /* ./syntax//typing.nit:1418 */
7990 REGB8
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
7991 if (UNTAG_Bool(REGB8
)) {
7992 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1418);
7994 /* ./../lib/standard//collection//array.nit:278 */
7995 fra
.me
.REG
[3] = fra
.me
.REG
[4];
7997 /* ./../lib/standard//collection//array.nit:280 */
7999 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8000 if (UNTAG_Bool(REGB9
)) {
8002 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8004 /* ./../lib/standard//kernel.nit:233 */
8005 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB7
));
8006 /* ./../lib/standard//collection//array.nit:280 */
8007 if (UNTAG_Bool(REGB7
)) {
8008 REGB7
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
8009 if (UNTAG_Bool(REGB7
)) {
8011 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8013 REGB7
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
8014 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8015 if (UNTAG_Bool(REGB9
)) {
8017 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8019 /* ./../lib/standard//kernel.nit:232 */
8020 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB7
));
8022 /* ./../lib/standard//collection//array.nit:280 */
8023 REGB9
= TAG_Bool(false);
8026 if (UNTAG_Bool(REGB7
)) {
8028 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
8030 /* ./../lib/standard//collection//array.nit:281 */
8031 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
8032 REGB7
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8033 if (UNTAG_Bool(REGB7
)) {
8034 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8036 /* ./../lib/standard//collection//array.nit:718 */
8037 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB8
)];
8038 /* ./../lib/standard//collection//array.nit:281 */
8041 /* ./syntax//typing.nit:1418 */
8042 fra
.me
.REG
[0] = fra
.me
.REG
[3];
8043 /* ./syntax//typing.nit:1419 */
8044 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8045 /* ./syntax//typing.nit:1420 */
8047 /* ./../lib/standard//kernel.nit:235 */
8048 REGB8
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB8
));
8049 /* ./syntax//typing.nit:1420 */
8052 /* ./../lib/standard//kernel.nit:354 */
8054 /* ./../lib/standard//kernel.nit:235 */
8055 REGB8
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB8
));
8056 /* ./../lib/standard//kernel.nit:354 */
8059 /* ./../lib/standard//kernel.nit:352 */
8064 /* ./syntax//typing.nit:1423 */
8065 REGB4
= TAG_Bool(true);
8069 stack_frame_head
= fra
.me
.prev
;
8072 val_t
syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8073 struct {struct stack_frame_t me
; val_t MORE_REG
[16];} fra
;
8081 static val_t once_value_2
; /* Once value */
8082 static val_t once_value_3
; /* Once value */
8083 static val_t once_value_4
; /* Once value */
8084 static val_t once_value_5
; /* Once value */
8085 static val_t once_value_6
; /* Once value */
8086 static val_t once_value_7
; /* Once value */
8087 static val_t once_value_8
; /* Once value */
8088 static val_t once_value_11
; /* Once value */
8089 static val_t once_value_12
; /* Once value */
8090 static val_t once_value_13
; /* Once value */
8091 static val_t once_value_14
; /* Once value */
8092 static val_t once_value_15
; /* Once value */
8093 static val_t once_value_16
; /* Once value */
8094 static val_t once_value_18
; /* Once value */
8095 static val_t once_value_19
; /* Once value */
8096 static val_t once_value_20
; /* Once value */
8097 static val_t once_value_21
; /* Once value */
8098 static val_t once_value_22
; /* Once value */
8099 static val_t once_value_24
; /* Once value */
8100 static val_t once_value_25
; /* Once value */
8101 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8102 fra
.me
.file
= LOCATE_syntax___typing
;
8104 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures
;
8105 fra
.me
.has_broke
= 0;
8106 fra
.me
.REG_size
= 17;
8107 fra
.me
.REG
[0] = NIT_NULL
;
8108 fra
.me
.REG
[1] = NIT_NULL
;
8109 fra
.me
.REG
[2] = NIT_NULL
;
8110 fra
.me
.REG
[3] = NIT_NULL
;
8111 fra
.me
.REG
[4] = NIT_NULL
;
8112 fra
.me
.REG
[5] = NIT_NULL
;
8113 fra
.me
.REG
[6] = NIT_NULL
;
8114 fra
.me
.REG
[7] = NIT_NULL
;
8115 fra
.me
.REG
[8] = NIT_NULL
;
8116 fra
.me
.REG
[9] = NIT_NULL
;
8117 fra
.me
.REG
[10] = NIT_NULL
;
8118 fra
.me
.REG
[11] = NIT_NULL
;
8119 fra
.me
.REG
[12] = NIT_NULL
;
8120 fra
.me
.REG
[13] = NIT_NULL
;
8121 fra
.me
.REG
[14] = NIT_NULL
;
8122 fra
.me
.REG
[15] = NIT_NULL
;
8123 fra
.me
.REG
[16] = NIT_NULL
;
8129 /* ./syntax//typing.nit:1429 */
8130 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8131 /* ./syntax//typing.nit:1430 */
8132 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8133 /* ./syntax//typing.nit:1431 */
8135 /* ./../lib/standard//collection//array.nit:266 */
8136 fra
.me
.REG
[7] = fra
.me
.REG
[6];
8137 /* ./../lib/standard//collection//array.nit:269 */
8139 /* ./../lib/standard//collection//array.nit:270 */
8140 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8141 if (UNTAG_Bool(REGB2
)) {
8143 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
8145 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8146 /* ./../lib/standard//collection//array.nit:271 */
8147 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8148 /* ./../lib/standard//collection//array.nit:272 */
8150 /* ./../lib/standard//collection//array.nit:24 */
8151 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8152 if (UNTAG_Bool(REGB2
)) {
8154 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8156 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8157 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8158 if (UNTAG_Bool(REGB3
)) {
8160 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8162 /* ./../lib/standard//kernel.nit:232 */
8163 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
8164 /* ./../lib/standard//collection//array.nit:272 */
8165 if (UNTAG_Bool(REGB2
)) {
8166 /* ./../lib/standard//collection//array.nit:273 */
8167 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8168 if (UNTAG_Bool(REGB2
)) {
8169 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
8171 /* ./../lib/standard//collection//array.nit:718 */
8172 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
8173 /* ./syntax//typing.nit:1433 */
8174 REGB2
= CALL_metamodel___static_type___MMClosure___is_optional(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8175 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8176 if (UNTAG_Bool(REGB2
)) {
8178 /* ./../lib/standard//kernel.nit:235 */
8179 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
8180 /* ./syntax//typing.nit:1433 */
8183 /* ./../lib/standard//collection//array.nit:274 */
8185 /* ./../lib/standard//kernel.nit:235 */
8186 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
8187 /* ./../lib/standard//collection//array.nit:274 */
8190 /* ./../lib/standard//collection//array.nit:272 */
8195 /* ./syntax//typing.nit:1435 */
8197 /* ./syntax//typing.nit:1436 */
8198 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8199 if (UNTAG_Bool(REGB2
)) {
8201 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8202 if (UNTAG_Bool(REGB3
)) {
8203 REGB3
= TAG_Bool(false);
8206 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8210 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8211 if (UNTAG_Bool(REGB2
)) {
8212 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8213 if (UNTAG_Bool(REGB2
)) {
8214 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1436);
8216 /* ./../lib/standard//collection//array.nit:24 */
8217 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8218 if (UNTAG_Bool(REGB2
)) {
8220 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8222 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8223 /* ./syntax//typing.nit:1436 */
8226 /* ./../lib/standard//collection//array.nit:24 */
8227 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8228 if (UNTAG_Bool(REGB2
)) {
8230 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8232 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8233 /* ./syntax//typing.nit:1437 */
8235 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8236 if (UNTAG_Bool(REGB4
)) {
8238 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8240 /* ./../lib/standard//kernel.nit:234 */
8241 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
8242 /* ./syntax//typing.nit:1437 */
8243 if (UNTAG_Bool(REGB3
)) {
8244 /* ./syntax//typing.nit:1438 */
8246 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
8247 if (UNTAG_Bool(REGB2
)) {
8249 /* ./../lib/standard//kernel.nit:227 */
8250 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
8251 /* ./syntax//typing.nit:1438 */
8254 if (UNTAG_Bool(REGB2
)) {
8256 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
8257 if (UNTAG_Bool(REGB3
)) {
8259 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8261 /* ./../lib/standard//kernel.nit:234 */
8262 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB2
));
8264 /* ./syntax//typing.nit:1438 */
8265 REGB3
= TAG_Bool(false);
8268 if (UNTAG_Bool(REGB2
)) {
8269 /* ./syntax//typing.nit:1439 */
8271 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8272 if (!once_value_2
) {
8273 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8275 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8276 once_value_2
= fra
.me
.REG
[7];
8277 register_static_object(&once_value_2
);
8278 } else fra
.me
.REG
[7] = once_value_2
;
8279 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8280 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8281 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8283 if (!once_value_3
) {
8284 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8285 REGB2
= TAG_Int(10);
8286 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8287 once_value_3
= fra
.me
.REG
[7];
8288 register_static_object(&once_value_3
);
8289 } else fra
.me
.REG
[7] = once_value_3
;
8290 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8291 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8292 /* ./../lib/standard//collection//array.nit:24 */
8293 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8294 if (UNTAG_Bool(REGB2
)) {
8296 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8298 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8299 /* ./syntax//typing.nit:1439 */
8300 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8301 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8302 if (!once_value_4
) {
8303 fra
.me
.REG
[7] = BOX_NativeString(" blocks.");
8305 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8306 once_value_4
= fra
.me
.REG
[7];
8307 register_static_object(&once_value_4
);
8308 } else fra
.me
.REG
[7] = once_value_4
;
8309 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8310 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8311 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8312 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8314 /* ./../lib/standard//collection//array.nit:24 */
8315 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8316 if (UNTAG_Bool(REGB2
)) {
8318 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8320 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8321 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8322 if (UNTAG_Bool(REGB3
)) {
8324 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8326 /* ./../lib/standard//kernel.nit:234 */
8327 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8328 /* ./syntax//typing.nit:1440 */
8329 if (UNTAG_Bool(REGB2
)) {
8330 REGB2
= TAG_Bool(true);
8332 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8333 if (UNTAG_Bool(REGB3
)) {
8335 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8337 /* ./../lib/standard//kernel.nit:232 */
8338 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
8339 /* ./syntax//typing.nit:1440 */
8342 if (UNTAG_Bool(REGB2
)) {
8343 /* ./syntax//typing.nit:1441 */
8345 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8346 if (!once_value_5
) {
8347 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8349 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8350 once_value_5
= fra
.me
.REG
[7];
8351 register_static_object(&once_value_5
);
8352 } else fra
.me
.REG
[7] = once_value_5
;
8353 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8355 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8356 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8357 if (!once_value_6
) {
8358 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8359 REGB2
= TAG_Int(10);
8360 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8361 once_value_6
= fra
.me
.REG
[7];
8362 register_static_object(&once_value_6
);
8363 } else fra
.me
.REG
[7] = once_value_6
;
8364 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8365 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8366 /* ./../lib/standard//collection//array.nit:24 */
8367 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8368 if (UNTAG_Bool(REGB2
)) {
8370 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8372 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8373 /* ./syntax//typing.nit:1441 */
8374 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8375 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8376 if (!once_value_7
) {
8377 fra
.me
.REG
[7] = BOX_NativeString(" blocks, ");
8379 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8380 once_value_7
= fra
.me
.REG
[7];
8381 register_static_object(&once_value_7
);
8382 } else fra
.me
.REG
[7] = once_value_7
;
8383 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8385 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8386 if (UNTAG_Bool(REGB2
)) {
8387 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1441);
8389 /* ./../lib/standard//collection//array.nit:24 */
8390 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8391 if (UNTAG_Bool(REGB2
)) {
8393 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8395 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8396 /* ./syntax//typing.nit:1441 */
8397 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8398 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8399 if (!once_value_8
) {
8400 fra
.me
.REG
[7] = BOX_NativeString(" found.");
8402 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8403 once_value_8
= fra
.me
.REG
[7];
8404 register_static_object(&once_value_8
);
8405 } else fra
.me
.REG
[7] = once_value_8
;
8406 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8407 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8408 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8409 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8411 /* ./syntax//typing.nit:1444 */
8412 fra
.me
.REG
[8] = NIT_NULL
;
8413 /* ./syntax//typing.nit:1445 */
8414 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8415 if (UNTAG_Bool(REGB2
)) {
8417 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8418 if (UNTAG_Bool(REGB0
)) {
8419 REGB0
= TAG_Bool(false);
8422 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8426 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8427 if (UNTAG_Bool(REGB2
)) {
8428 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
8429 fra
.me
.REG
[8] = fra
.me
.REG
[7];
8431 /* ./syntax//typing.nit:1448 */
8433 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8434 if (UNTAG_Bool(REGB0
)) {
8436 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8438 /* ./../lib/standard//kernel.nit:234 */
8439 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8440 /* ./syntax//typing.nit:1448 */
8441 if (UNTAG_Bool(REGB2
)) {
8443 /* ./../lib/standard//kernel.nit:237 */
8444 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
8445 /* ./syntax//typing.nit:1448 */
8446 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8447 if (UNTAG_Bool(REGB0
)) {
8448 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1448);
8450 /* ./../lib/standard//collection//array.nit:278 */
8451 fra
.me
.REG
[7] = fra
.me
.REG
[4];
8452 /* ./../lib/standard//collection//array.nit:280 */
8454 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8455 if (UNTAG_Bool(REGB3
)) {
8457 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8459 /* ./../lib/standard//kernel.nit:233 */
8460 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
8461 /* ./../lib/standard//collection//array.nit:280 */
8462 if (UNTAG_Bool(REGB0
)) {
8463 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8464 if (UNTAG_Bool(REGB0
)) {
8466 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8468 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8469 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8470 if (UNTAG_Bool(REGB3
)) {
8472 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8474 /* ./../lib/standard//kernel.nit:232 */
8475 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8477 /* ./../lib/standard//collection//array.nit:280 */
8478 REGB3
= TAG_Bool(false);
8481 if (UNTAG_Bool(REGB0
)) {
8483 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
8485 /* ./../lib/standard//collection//array.nit:281 */
8486 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8487 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8488 if (UNTAG_Bool(REGB0
)) {
8489 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8491 /* ./../lib/standard//collection//array.nit:718 */
8492 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB2
)];
8493 /* ./../lib/standard//collection//array.nit:281 */
8496 /* ./syntax//typing.nit:1448 */
8497 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8498 if (UNTAG_Bool(REGB2
)) {
8499 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1448);
8501 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8503 fra
.me
.REG
[7] = NIT_NULL
;
8505 /* ./syntax//typing.nit:1451 */
8507 /* ./../lib/standard//kernel.nit:347 */
8509 /* ./../lib/standard//kernel.nit:352 */
8511 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8512 if (UNTAG_Bool(REGB3
)) {
8514 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8516 /* ./../lib/standard//kernel.nit:232 */
8517 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8518 /* ./../lib/standard//kernel.nit:352 */
8519 if (UNTAG_Bool(REGB3
)) {
8520 /* ./syntax//typing.nit:1451 */
8522 /* ./syntax//typing.nit:1452 */
8523 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8524 if (UNTAG_Bool(REGB4
)) {
8525 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1452);
8527 /* ./../lib/standard//collection//array.nit:278 */
8528 fra
.me
.REG
[9] = fra
.me
.REG
[4];
8529 /* ./../lib/standard//collection//array.nit:280 */
8531 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
8532 if (UNTAG_Bool(REGB5
)) {
8534 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8536 /* ./../lib/standard//kernel.nit:233 */
8537 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
8538 /* ./../lib/standard//collection//array.nit:280 */
8539 if (UNTAG_Bool(REGB4
)) {
8540 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
8541 if (UNTAG_Bool(REGB4
)) {
8543 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8545 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
8546 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
8547 if (UNTAG_Bool(REGB5
)) {
8549 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8551 /* ./../lib/standard//kernel.nit:232 */
8552 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
8554 /* ./../lib/standard//collection//array.nit:280 */
8555 REGB5
= TAG_Bool(false);
8558 if (UNTAG_Bool(REGB4
)) {
8560 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array
, 280);
8562 /* ./../lib/standard//collection//array.nit:281 */
8563 fra
.me
.REG
[9] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
8564 REGB4
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
8565 if (UNTAG_Bool(REGB4
)) {
8566 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8568 /* ./../lib/standard//collection//array.nit:718 */
8569 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB3
)];
8570 /* ./../lib/standard//collection//array.nit:281 */
8573 /* ./syntax//typing.nit:1453 */
8574 fra
.me
.REG
[10] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8575 fra
.me
.REG
[10] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8576 /* ./syntax//typing.nit:1454 */
8577 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMSignature___closure_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[10]);
8578 /* ./syntax//typing.nit:1455 */
8579 REGB3
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
8580 if (UNTAG_Bool(REGB3
)) {
8582 REGB4
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
8583 if (UNTAG_Bool(REGB4
)) {
8584 REGB4
= TAG_Bool(false);
8587 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[11])(fra
.me
.REG
[11], NIT_NULL
);
8591 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
8592 if (UNTAG_Bool(REGB3
)) {
8593 /* ./syntax//typing.nit:1456 */
8594 fra
.me
.REG
[11] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[9], fra
.me
.REG
[11], fra
.me
.REG
[8]);
8595 /* ./syntax//typing.nit:1457 */
8596 fra
.me
.REG
[12] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8597 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[11], fra
.me
.REG
[7]);
8598 /* ./syntax//typing.nit:1458 */
8599 CALL_syntax___typing___AClosureDef___accept_typing2(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[1], fra
.me
.REG
[11]);
8600 /* ./syntax//typing.nit:1459 */
8601 fra
.me
.REG
[11] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8602 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
8604 /* ./../lib/standard//collection//array.nit:24 */
8605 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8606 if (UNTAG_Bool(REGB3
)) {
8608 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8610 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8611 /* ./syntax//typing.nit:1460 */
8613 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB3
,REGB4
));
8614 if (UNTAG_Bool(REGB5
)) {
8616 /* ./../lib/standard//kernel.nit:227 */
8617 REGB4
= TAG_Bool((REGB3
)==(REGB4
));
8618 /* ./syntax//typing.nit:1460 */
8621 if (UNTAG_Bool(REGB5
)) {
8622 /* ./syntax//typing.nit:1461 */
8623 fra
.me
.REG
[11] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8625 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
8626 if (!once_value_11
) {
8627 fra
.me
.REG
[13] = BOX_NativeString("Error: no closure named '!");
8628 REGB5
= TAG_Int(26);
8629 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8630 once_value_11
= fra
.me
.REG
[13];
8631 register_static_object(&once_value_11
);
8632 } else fra
.me
.REG
[13] = once_value_11
;
8633 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8634 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8635 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8636 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8637 if (!once_value_12
) {
8638 fra
.me
.REG
[13] = BOX_NativeString("' in ");
8640 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8641 once_value_12
= fra
.me
.REG
[13];
8642 register_static_object(&once_value_12
);
8643 } else fra
.me
.REG
[13] = once_value_12
;
8644 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8645 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8646 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8647 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8648 if (!once_value_13
) {
8649 fra
.me
.REG
[13] = BOX_NativeString("; only closure is !");
8650 REGB5
= TAG_Int(19);
8651 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8652 once_value_13
= fra
.me
.REG
[13];
8653 register_static_object(&once_value_13
);
8654 } else fra
.me
.REG
[13] = once_value_13
;
8655 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8657 fra
.me
.REG
[13] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8658 REGB5
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
8659 if (UNTAG_Bool(REGB5
)) {
8660 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1461);
8662 fra
.me
.REG
[13] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8663 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8664 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8665 if (!once_value_14
) {
8666 fra
.me
.REG
[13] = BOX_NativeString(".");
8668 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
8669 once_value_14
= fra
.me
.REG
[13];
8670 register_static_object(&once_value_14
);
8671 } else fra
.me
.REG
[13] = once_value_14
;
8672 fra
.me
.REG
[13] = fra
.me
.REG
[13];
8673 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
8674 fra
.me
.REG
[12] = CALL_standard___string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
8675 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[11], fra
.me
.REG
[12]);
8677 /* ./syntax//typing.nit:1463 */
8678 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___init();
8679 /* ./../lib/standard//collection//array.nit:266 */
8680 fra
.me
.REG
[11] = fra
.me
.REG
[6];
8681 /* ./../lib/standard//collection//array.nit:269 */
8683 /* ./../lib/standard//collection//array.nit:270 */
8684 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
8685 if (UNTAG_Bool(REGB4
)) {
8687 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
8689 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
8690 /* ./../lib/standard//collection//array.nit:271 */
8691 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[11]);
8692 /* ./../lib/standard//collection//array.nit:272 */
8694 /* ./../lib/standard//collection//array.nit:24 */
8695 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
8696 if (UNTAG_Bool(REGB4
)) {
8698 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8700 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
8701 REGB3
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5
), VTID_standard___kernel___Comparable___OTHER(REGB5
))) /*cast OTHER*/;
8702 if (UNTAG_Bool(REGB3
)) {
8704 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8706 /* ./../lib/standard//kernel.nit:232 */
8707 REGB4
= TAG_Bool(UNTAG_Int(REGB5
)<UNTAG_Int(REGB4
));
8708 /* ./../lib/standard//collection//array.nit:272 */
8709 if (UNTAG_Bool(REGB4
)) {
8710 /* ./../lib/standard//collection//array.nit:273 */
8711 REGB4
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
8712 if (UNTAG_Bool(REGB4
)) {
8713 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
8715 /* ./../lib/standard//collection//array.nit:718 */
8716 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB5
)];
8717 /* ./syntax//typing.nit:1465 */
8719 fra
.me
.REG
[15] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4
);
8720 if (!once_value_15
) {
8721 fra
.me
.REG
[16] = BOX_NativeString("!");
8723 fra
.me
.REG
[16] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[16], REGB4
);
8724 once_value_15
= fra
.me
.REG
[16];
8725 register_static_object(&once_value_15
);
8726 } else fra
.me
.REG
[16] = once_value_15
;
8727 fra
.me
.REG
[16] = fra
.me
.REG
[16];
8728 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[16]);
8729 fra
.me
.REG
[14] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
8730 fra
.me
.REG
[14] = CALL_standard___string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
8731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
8732 if (!once_value_16
) {
8733 fra
.me
.REG
[14] = BOX_NativeString("");
8735 fra
.me
.REG
[14] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[14], REGB4
);
8736 once_value_16
= fra
.me
.REG
[14];
8737 register_static_object(&once_value_16
);
8738 } else fra
.me
.REG
[14] = once_value_16
;
8739 fra
.me
.REG
[14] = fra
.me
.REG
[14];
8740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
8741 fra
.me
.REG
[15] = CALL_standard___string___Object___to_s(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
8742 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[15]);
8743 /* ./../lib/standard//collection//array.nit:274 */
8745 /* ./../lib/standard//kernel.nit:235 */
8746 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
8747 /* ./../lib/standard//collection//array.nit:274 */
8750 /* ./../lib/standard//collection//array.nit:272 */
8755 /* ./syntax//typing.nit:1467 */
8756 fra
.me
.REG
[9] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8758 fra
.me
.REG
[13] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
8759 if (!once_value_18
) {
8760 fra
.me
.REG
[11] = BOX_NativeString("Error: no closure named '!");
8761 REGB5
= TAG_Int(26);
8762 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB5
);
8763 once_value_18
= fra
.me
.REG
[11];
8764 register_static_object(&once_value_18
);
8765 } else fra
.me
.REG
[11] = once_value_18
;
8766 fra
.me
.REG
[11] = fra
.me
.REG
[11];
8767 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[11]);
8768 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8770 if (!once_value_19
) {
8771 fra
.me
.REG
[10] = BOX_NativeString("' in ");
8773 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8774 once_value_19
= fra
.me
.REG
[10];
8775 register_static_object(&once_value_19
);
8776 } else fra
.me
.REG
[10] = once_value_19
;
8777 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8778 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8779 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8780 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8781 if (!once_value_20
) {
8782 fra
.me
.REG
[10] = BOX_NativeString("; only closures are ");
8783 REGB5
= TAG_Int(20);
8784 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8785 once_value_20
= fra
.me
.REG
[10];
8786 register_static_object(&once_value_20
);
8787 } else fra
.me
.REG
[10] = once_value_20
;
8788 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8789 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8790 if (!once_value_21
) {
8791 fra
.me
.REG
[10] = BOX_NativeString(",");
8793 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8794 once_value_21
= fra
.me
.REG
[10];
8795 register_static_object(&once_value_21
);
8796 } else fra
.me
.REG
[10] = once_value_21
;
8797 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8798 fra
.me
.REG
[10] = CALL_standard___string___Collection___join(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[10]);
8799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8800 if (!once_value_22
) {
8801 fra
.me
.REG
[10] = BOX_NativeString(".");
8803 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
8804 once_value_22
= fra
.me
.REG
[10];
8805 register_static_object(&once_value_22
);
8806 } else fra
.me
.REG
[10] = once_value_22
;
8807 fra
.me
.REG
[10] = fra
.me
.REG
[10];
8808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8809 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8810 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[13]);
8813 /* ./../lib/standard//kernel.nit:354 */
8815 /* ./../lib/standard//kernel.nit:235 */
8816 REGB5
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB5
));
8817 /* ./../lib/standard//kernel.nit:354 */
8820 /* ./../lib/standard//kernel.nit:352 */
8825 /* ./syntax//typing.nit:1472 */
8826 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8827 if (UNTAG_Bool(REGB2
)) {
8829 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8830 if (UNTAG_Bool(REGB0
)) {
8831 REGB0
= TAG_Bool(false);
8834 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
8838 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8839 if (UNTAG_Bool(REGB2
)) {
8840 /* ./syntax//typing.nit:1473 */
8841 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]);
8842 fra
.me
.REG
[5] = fra
.me
.REG
[8];
8847 /* ./syntax//typing.nit:1476 */
8849 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
8850 if (UNTAG_Bool(REGB0
)) {
8852 /* ./../lib/standard//kernel.nit:227 */
8853 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
8854 /* ./syntax//typing.nit:1476 */
8857 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8858 if (UNTAG_Bool(REGB0
)) {
8859 /* ./syntax//typing.nit:1477 */
8861 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8862 if (!once_value_24
) {
8863 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
8865 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
8866 once_value_24
= fra
.me
.REG
[6];
8867 register_static_object(&once_value_24
);
8868 } else fra
.me
.REG
[6] = once_value_24
;
8869 fra
.me
.REG
[6] = fra
.me
.REG
[6];
8870 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
8871 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8872 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
8873 if (!once_value_25
) {
8874 fra
.me
.REG
[3] = BOX_NativeString(" does not require blocks.");
8875 REGB0
= TAG_Int(25);
8876 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
8877 once_value_25
= fra
.me
.REG
[3];
8878 register_static_object(&once_value_25
);
8879 } else fra
.me
.REG
[3] = once_value_25
;
8880 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
8882 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8883 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8886 /* ./syntax//typing.nit:1479 */
8889 stack_frame_head
= fra
.me
.prev
;
8890 return fra
.me
.REG
[5];
8892 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
){
8893 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8898 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8899 fra
.me
.file
= LOCATE_syntax___typing
;
8901 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___do_typing
;
8902 fra
.me
.has_broke
= 0;
8903 fra
.me
.REG_size
= 7;
8904 fra
.me
.REG
[0] = NIT_NULL
;
8905 fra
.me
.REG
[1] = NIT_NULL
;
8906 fra
.me
.REG
[2] = NIT_NULL
;
8907 fra
.me
.REG
[3] = NIT_NULL
;
8908 fra
.me
.REG
[4] = NIT_NULL
;
8909 fra
.me
.REG
[5] = NIT_NULL
;
8910 fra
.me
.REG
[6] = NIT_NULL
;
8919 /* ./syntax//typing.nit:1487 */
8920 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]);
8921 /* ./syntax//typing.nit:1488 */
8922 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8923 if (UNTAG_Bool(REGB0
)) {
8925 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8926 if (UNTAG_Bool(REGB2
)) {
8927 REGB2
= TAG_Bool(false);
8930 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
8934 if (UNTAG_Bool(REGB0
)) {
8937 /* ./syntax//typing.nit:1489 */
8938 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
);
8939 /* ./syntax//typing.nit:1490 */
8940 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8941 if (UNTAG_Bool(REGB1
)) {
8942 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1490);
8944 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8945 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]);
8946 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8947 if (UNTAG_Bool(REGB1
)) {
8950 /* ./syntax//typing.nit:1491 */
8951 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8952 if (UNTAG_Bool(REGB1
)) {
8953 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1491);
8955 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8956 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]);
8957 /* ./syntax//typing.nit:1492 */
8958 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8959 if (UNTAG_Bool(REGB1
)) {
8961 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8962 if (UNTAG_Bool(REGB0
)) {
8963 REGB0
= TAG_Bool(false);
8966 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8970 if (UNTAG_Bool(REGB1
)) {
8971 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8972 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8973 if (UNTAG_Bool(REGB1
)) {
8975 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8976 if (UNTAG_Bool(REGB0
)) {
8977 REGB0
= TAG_Bool(false);
8980 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8984 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8986 REGB0
= TAG_Bool(false);
8989 if (UNTAG_Bool(REGB1
)) {
8992 /* ./syntax//typing.nit:1493 */
8993 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
8994 /* ./syntax//typing.nit:1494 */
8995 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
8996 /* ./syntax//typing.nit:1495 */
8997 ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
8999 stack_frame_head
= fra
.me
.prev
;
9002 val_t
syntax___typing___AAbsSendExpr___get_property(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9003 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
9009 static val_t once_value_1
; /* Once value */
9010 static val_t once_value_2
; /* Once value */
9011 static val_t once_value_3
; /* Once value */
9012 static val_t once_value_4
; /* Once value */
9013 static val_t once_value_5
; /* Once value */
9014 static val_t once_value_6
; /* Once value */
9015 static val_t once_value_8
; /* Once value */
9016 static val_t once_value_9
; /* Once value */
9017 static val_t once_value_10
; /* Once value */
9018 static val_t once_value_11
; /* Once value */
9019 static val_t once_value_12
; /* Once value */
9020 static val_t once_value_13
; /* Once value */
9021 static val_t once_value_14
; /* Once value */
9022 static val_t once_value_15
; /* Once value */
9023 static val_t once_value_16
; /* Once value */
9024 static val_t once_value_17
; /* Once value */
9025 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9026 fra
.me
.file
= LOCATE_syntax___typing
;
9028 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_property
;
9029 fra
.me
.has_broke
= 0;
9030 fra
.me
.REG_size
= 10;
9031 fra
.me
.REG
[0] = NIT_NULL
;
9032 fra
.me
.REG
[1] = NIT_NULL
;
9033 fra
.me
.REG
[2] = NIT_NULL
;
9034 fra
.me
.REG
[3] = NIT_NULL
;
9035 fra
.me
.REG
[4] = NIT_NULL
;
9036 fra
.me
.REG
[5] = NIT_NULL
;
9037 fra
.me
.REG
[6] = NIT_NULL
;
9038 fra
.me
.REG
[7] = NIT_NULL
;
9039 fra
.me
.REG
[8] = NIT_NULL
;
9040 fra
.me
.REG
[9] = NIT_NULL
;
9046 /* ./syntax//typing.nit:1500 */
9047 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
9048 if (UNTAG_Bool(REGB1
)) {
9049 /* ./syntax//typing.nit:1501 */
9050 if (!once_value_1
) {
9051 if (!once_value_2
) {
9052 fra
.me
.REG
[4] = BOX_NativeString("==");
9054 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
9055 once_value_2
= fra
.me
.REG
[4];
9056 register_static_object(&once_value_2
);
9057 } else fra
.me
.REG
[4] = once_value_2
;
9058 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9059 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9060 once_value_1
= fra
.me
.REG
[4];
9061 register_static_object(&once_value_1
);
9062 } else fra
.me
.REG
[4] = once_value_1
;
9063 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9064 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9065 if (UNTAG_Bool(REGB1
)) {
9067 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9070 if (UNTAG_Bool(REGB1
)) {
9071 REGB1
= TAG_Bool(true);
9073 if (!once_value_3
) {
9074 if (!once_value_4
) {
9075 fra
.me
.REG
[4] = BOX_NativeString("!=");
9077 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB2
);
9078 once_value_4
= fra
.me
.REG
[4];
9079 register_static_object(&once_value_4
);
9080 } else fra
.me
.REG
[4] = once_value_4
;
9081 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9082 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9083 once_value_3
= fra
.me
.REG
[4];
9084 register_static_object(&once_value_3
);
9085 } else fra
.me
.REG
[4] = once_value_3
;
9086 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9087 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9088 if (UNTAG_Bool(REGB2
)) {
9090 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9095 if (UNTAG_Bool(REGB1
)) {
9096 /* ./syntax//typing.nit:1503 */
9097 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9098 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9099 fra
.me
.REG
[2] = fra
.me
.REG
[4];
9101 /* ./syntax//typing.nit:1505 */
9103 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9104 if (!once_value_5
) {
9105 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9106 REGB1
= TAG_Int(15);
9107 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9108 once_value_5
= fra
.me
.REG
[5];
9109 register_static_object(&once_value_5
);
9110 } else fra
.me
.REG
[5] = once_value_5
;
9111 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9112 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9113 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9114 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9115 if (!once_value_6
) {
9116 fra
.me
.REG
[5] = BOX_NativeString("' call on 'null'.");
9117 REGB1
= TAG_Int(17);
9118 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9119 once_value_6
= fra
.me
.REG
[5];
9120 register_static_object(&once_value_6
);
9121 } else fra
.me
.REG
[5] = once_value_6
;
9122 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9124 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9125 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9126 /* ./syntax//typing.nit:1506 */
9127 fra
.me
.REG
[4] = NIT_NULL
;
9131 /* ./syntax//typing.nit:1509 */
9132 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9133 /* ./syntax//typing.nit:1510 */
9134 fra
.me
.REG
[6] = NIT_NULL
;
9135 /* ./syntax//typing.nit:1511 */
9136 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9137 if (UNTAG_Bool(REGB1
)) {
9138 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9139 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9141 /* ./syntax//typing.nit:1512 */
9142 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9143 if (UNTAG_Bool(REGB1
)) {
9145 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9146 if (UNTAG_Bool(REGB2
)) {
9147 REGB2
= TAG_Bool(false);
9150 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9154 if (UNTAG_Bool(REGB1
)) {
9155 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9156 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9157 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9159 REGB2
= TAG_Bool(false);
9162 if (UNTAG_Bool(REGB1
)) {
9163 /* ./syntax//typing.nit:1513 */
9164 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9165 /* ./../lib/standard//collection//array.nit:24 */
9166 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9167 if (UNTAG_Bool(REGB1
)) {
9169 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9171 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9172 /* ./syntax//typing.nit:1514 */
9174 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
9175 if (UNTAG_Bool(REGB3
)) {
9177 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9179 /* ./../lib/standard//kernel.nit:234 */
9180 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
9181 /* ./syntax//typing.nit:1514 */
9182 if (UNTAG_Bool(REGB2
)) {
9183 /* ./syntax//typing.nit:1515 */
9185 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
9186 if (!once_value_8
) {
9187 fra
.me
.REG
[9] = BOX_NativeString("Error: Ambigous method name '");
9188 REGB2
= TAG_Int(29);
9189 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9190 once_value_8
= fra
.me
.REG
[9];
9191 register_static_object(&once_value_8
);
9192 } else fra
.me
.REG
[9] = once_value_8
;
9193 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9194 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9195 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9196 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9197 if (!once_value_9
) {
9198 fra
.me
.REG
[9] = BOX_NativeString("' for ");
9200 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9201 once_value_9
= fra
.me
.REG
[9];
9202 register_static_object(&once_value_9
);
9203 } else fra
.me
.REG
[9] = once_value_9
;
9204 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9205 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9206 if (!once_value_10
) {
9207 fra
.me
.REG
[9] = BOX_NativeString(", ");
9209 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9210 once_value_10
= fra
.me
.REG
[9];
9211 register_static_object(&once_value_10
);
9212 } else fra
.me
.REG
[9] = once_value_10
;
9213 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9214 fra
.me
.REG
[9] = CALL_standard___string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
9215 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9216 if (!once_value_11
) {
9217 fra
.me
.REG
[9] = BOX_NativeString(". Use explicit designation.");
9218 REGB2
= TAG_Int(27);
9219 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9220 once_value_11
= fra
.me
.REG
[9];
9221 register_static_object(&once_value_11
);
9222 } else fra
.me
.REG
[9] = once_value_11
;
9223 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9224 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9225 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9226 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
9227 /* ./syntax//typing.nit:1516 */
9228 fra
.me
.REG
[4] = NIT_NULL
;
9231 /* ./../lib/standard//collection//array.nit:24 */
9232 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9233 if (UNTAG_Bool(REGB2
)) {
9235 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9237 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9238 /* ./syntax//typing.nit:1517 */
9240 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
9241 if (UNTAG_Bool(REGB3
)) {
9243 /* ./../lib/standard//kernel.nit:227 */
9244 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
9245 /* ./syntax//typing.nit:1517 */
9248 if (UNTAG_Bool(REGB3
)) {
9249 /* ./syntax//typing.nit:1518 */
9250 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9251 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9252 if (UNTAG_Bool(REGB3
)) {
9253 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1518);
9255 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9256 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
9257 /* ./syntax//typing.nit:1519 */
9258 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
9259 if (UNTAG_Bool(REGB3
)) {
9261 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1519);
9263 /* ./syntax//typing.nit:1520 */
9264 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9268 /* ./syntax//typing.nit:1524 */
9269 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9270 if (UNTAG_Bool(REGB3
)) {
9272 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9273 if (UNTAG_Bool(REGB1
)) {
9274 REGB1
= TAG_Bool(false);
9277 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9281 if (UNTAG_Bool(REGB3
)) {
9282 /* ./syntax//typing.nit:1525 */
9283 if (UNTAG_Bool(REGB0
)) {
9284 /* ./syntax//typing.nit:1526 */
9286 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9287 if (!once_value_12
) {
9288 fra
.me
.REG
[5] = BOX_NativeString("Error: Method or variable '");
9289 REGB0
= TAG_Int(27);
9290 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9291 once_value_12
= fra
.me
.REG
[5];
9292 register_static_object(&once_value_12
);
9293 } else fra
.me
.REG
[5] = once_value_12
;
9294 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9295 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9296 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9297 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9298 if (!once_value_13
) {
9299 fra
.me
.REG
[5] = BOX_NativeString("' unknown in ");
9300 REGB0
= TAG_Int(13);
9301 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9302 once_value_13
= fra
.me
.REG
[5];
9303 register_static_object(&once_value_13
);
9304 } else fra
.me
.REG
[5] = once_value_13
;
9305 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9306 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9307 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9308 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9309 if (!once_value_14
) {
9310 fra
.me
.REG
[5] = BOX_NativeString(".");
9312 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9313 once_value_14
= fra
.me
.REG
[5];
9314 register_static_object(&once_value_14
);
9315 } else fra
.me
.REG
[5] = once_value_14
;
9316 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9317 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9318 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9319 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9321 /* ./syntax//typing.nit:1528 */
9323 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9324 if (!once_value_15
) {
9325 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9326 REGB0
= TAG_Int(15);
9327 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9328 once_value_15
= fra
.me
.REG
[5];
9329 register_static_object(&once_value_15
);
9330 } else fra
.me
.REG
[5] = once_value_15
;
9331 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9332 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9333 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9334 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9335 if (!once_value_16
) {
9336 fra
.me
.REG
[3] = BOX_NativeString("' doesn't exists in ");
9337 REGB0
= TAG_Int(20);
9338 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9339 once_value_16
= fra
.me
.REG
[3];
9340 register_static_object(&once_value_16
);
9341 } else fra
.me
.REG
[3] = once_value_16
;
9342 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9343 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9344 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9346 if (!once_value_17
) {
9347 fra
.me
.REG
[2] = BOX_NativeString(".");
9349 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
9350 once_value_17
= fra
.me
.REG
[2];
9351 register_static_object(&once_value_17
);
9352 } else fra
.me
.REG
[2] = once_value_17
;
9353 fra
.me
.REG
[2] = fra
.me
.REG
[2];
9354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9355 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9356 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9358 /* ./syntax//typing.nit:1530 */
9359 fra
.me
.REG
[4] = NIT_NULL
;
9362 /* ./syntax//typing.nit:1532 */
9363 fra
.me
.REG
[4] = fra
.me
.REG
[6];
9366 stack_frame_head
= fra
.me
.prev
;
9367 return fra
.me
.REG
[4];
9369 val_t
syntax___typing___AAbsSendExpr___get_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9370 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
9373 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9374 fra
.me
.file
= LOCATE_syntax___typing
;
9376 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_signature
;
9377 fra
.me
.has_broke
= 0;
9378 fra
.me
.REG_size
= 6;
9379 fra
.me
.REG
[0] = NIT_NULL
;
9380 fra
.me
.REG
[1] = NIT_NULL
;
9381 fra
.me
.REG
[2] = NIT_NULL
;
9382 fra
.me
.REG
[3] = NIT_NULL
;
9383 fra
.me
.REG
[4] = NIT_NULL
;
9384 fra
.me
.REG
[5] = NIT_NULL
;
9390 /* ./syntax//typing.nit:1538 */
9391 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9392 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9393 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
);
9394 /* ./syntax//typing.nit:1539 */
9395 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
9396 /* ./syntax//typing.nit:1540 */
9397 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9398 if (UNTAG_Bool(REGB0
)) {
9399 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9400 fra
.me
.REG
[2] = fra
.me
.REG
[3];
9402 /* ./syntax//typing.nit:1541 */
9405 stack_frame_head
= fra
.me
.prev
;
9406 return fra
.me
.REG
[2];
9408 val_t
syntax___typing___AAbsSendExpr___prop(val_t p0
){
9409 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9412 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9413 fra
.me
.file
= LOCATE_syntax___typing
;
9415 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___prop
;
9416 fra
.me
.has_broke
= 0;
9417 fra
.me
.REG_size
= 2;
9418 fra
.me
.REG
[0] = NIT_NULL
;
9419 fra
.me
.REG
[1] = NIT_NULL
;
9421 /* ./syntax//typing.nit:1544 */
9422 fra
.me
.REG
[1] = fra
.me
.REG
[0];
9423 /* ./syntax//typing.nit:1545 */
9424 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[1]);
9425 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
9426 if (UNTAG_Bool(REGB0
)) {
9428 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1545);
9432 stack_frame_head
= fra
.me
.prev
;
9433 return fra
.me
.REG
[1];
9435 val_t
syntax___typing___AAbsSendExpr___return_type(val_t p0
){
9436 struct {struct stack_frame_t me
;} fra
;
9438 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9439 fra
.me
.file
= LOCATE_syntax___typing
;
9441 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___return_type
;
9442 fra
.me
.has_broke
= 0;
9443 fra
.me
.REG_size
= 1;
9444 fra
.me
.REG
[0] = NIT_NULL
;
9446 /* ./syntax//typing.nit:1548 */
9447 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]);
9448 stack_frame_head
= fra
.me
.prev
;
9449 return fra
.me
.REG
[0];
9451 void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0
, val_t p1
, val_t p2
){
9452 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
9457 static val_t once_value_1
; /* Once value */
9458 static val_t once_value_2
; /* Once value */
9459 static val_t once_value_3
; /* Once value */
9460 static val_t once_value_4
; /* Once value */
9461 static val_t once_value_5
; /* Once value */
9462 static val_t once_value_6
; /* Once value */
9463 static val_t once_value_7
; /* Once value */
9464 static val_t once_value_8
; /* Once value */
9465 static val_t once_value_9
; /* Once value */
9466 static val_t once_value_10
; /* Once value */
9467 static val_t once_value_11
; /* Once value */
9468 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9469 fra
.me
.file
= LOCATE_syntax___typing
;
9471 fra
.me
.meth
= LOCATE_syntax___typing___ASuperInitCall___register_super_init_call
;
9472 fra
.me
.has_broke
= 0;
9473 fra
.me
.REG_size
= 11;
9474 fra
.me
.REG
[0] = NIT_NULL
;
9475 fra
.me
.REG
[1] = NIT_NULL
;
9476 fra
.me
.REG
[2] = NIT_NULL
;
9477 fra
.me
.REG
[3] = NIT_NULL
;
9478 fra
.me
.REG
[4] = NIT_NULL
;
9479 fra
.me
.REG
[5] = NIT_NULL
;
9480 fra
.me
.REG
[6] = NIT_NULL
;
9481 fra
.me
.REG
[7] = NIT_NULL
;
9482 fra
.me
.REG
[8] = NIT_NULL
;
9483 fra
.me
.REG
[9] = NIT_NULL
;
9484 fra
.me
.REG
[10] = NIT_NULL
;
9488 /* ./syntax//typing.nit:1555 */
9489 fra
.me
.REG
[3] = fra
.me
.REG
[0];
9490 /* ./syntax//typing.nit:1557 */
9491 fra
.me
.REG
[4] = CALL_parser___parser_prod___ANode___parent(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9492 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9493 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[4],fra
.me
.REG
[5]));
9494 if (UNTAG_Bool(REGB0
)) {
9496 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9497 if (UNTAG_Bool(REGB1
)) {
9498 REGB1
= TAG_Bool(false);
9501 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9505 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9506 if (UNTAG_Bool(REGB0
)) {
9507 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9508 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[5]));
9509 if (UNTAG_Bool(REGB0
)) {
9511 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9514 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9516 REGB1
= TAG_Bool(false);
9519 if (UNTAG_Bool(REGB0
)) {
9520 /* ./syntax//typing.nit:1558 */
9522 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9523 if (!once_value_1
) {
9524 fra
.me
.REG
[4] = BOX_NativeString("Error: Constructor invocation ");
9525 REGB0
= TAG_Int(30);
9526 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9527 once_value_1
= fra
.me
.REG
[4];
9528 register_static_object(&once_value_1
);
9529 } else fra
.me
.REG
[4] = once_value_1
;
9530 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9531 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9532 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9534 if (!once_value_2
) {
9535 fra
.me
.REG
[4] = BOX_NativeString(" must not be in nested block.");
9536 REGB0
= TAG_Int(29);
9537 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9538 once_value_2
= fra
.me
.REG
[4];
9539 register_static_object(&once_value_2
);
9540 } else fra
.me
.REG
[4] = once_value_2
;
9541 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9543 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9544 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
9546 /* ./syntax//typing.nit:1560 */
9547 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9548 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9549 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9550 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9551 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9552 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
9553 /* ./syntax//typing.nit:1561 */
9554 fra
.me
.REG
[5] = NIT_NULL
;
9555 /* ./syntax//typing.nit:1562 */
9556 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___explicit_super_init_calls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9557 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
9558 if (UNTAG_Bool(REGB0
)) {
9560 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1562);
9562 /* ./syntax//typing.nit:1563 */
9563 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9564 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9565 if (UNTAG_Bool(REGB0
)) {
9566 /* ./syntax//typing.nit:1564 */
9567 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9568 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
9569 if (UNTAG_Bool(REGB0
)) {
9570 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1564);
9572 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9573 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9574 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9575 fra
.me
.REG
[5] = fra
.me
.REG
[0];
9577 /* ./syntax//typing.nit:1566 */
9578 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9579 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9580 fra
.me
.REG
[0] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9581 /* ./syntax//typing.nit:1567 */
9582 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9583 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
9584 if (UNTAG_Bool(REGB0
)) {
9586 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
9589 if (UNTAG_Bool(REGB0
)) {
9590 /* ./syntax//typing.nit:1568 */
9591 REGB0
= TAG_Bool(true);
9592 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
9594 /* ./syntax//typing.nit:1569 */
9595 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
9596 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9597 if (UNTAG_Bool(REGB0
)) {
9598 /* ./syntax//typing.nit:1570 */
9600 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9601 if (!once_value_3
) {
9602 fra
.me
.REG
[8] = BOX_NativeString("Error: Constructor of class ");
9603 REGB0
= TAG_Int(28);
9604 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9605 once_value_3
= fra
.me
.REG
[8];
9606 register_static_object(&once_value_3
);
9607 } else fra
.me
.REG
[8] = once_value_3
;
9608 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9609 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9610 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9611 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9612 if (!once_value_4
) {
9613 fra
.me
.REG
[8] = BOX_NativeString(" must be one in ");
9614 REGB0
= TAG_Int(16);
9615 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9616 once_value_4
= fra
.me
.REG
[8];
9617 register_static_object(&once_value_4
);
9618 } else fra
.me
.REG
[8] = once_value_4
;
9619 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9620 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9621 if (!once_value_5
) {
9622 fra
.me
.REG
[8] = BOX_NativeString(", ");
9624 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9625 once_value_5
= fra
.me
.REG
[8];
9626 register_static_object(&once_value_5
);
9627 } else fra
.me
.REG
[8] = once_value_5
;
9628 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9629 fra
.me
.REG
[8] = CALL_standard___string___Collection___join(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[8]);
9630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9631 if (!once_value_6
) {
9632 fra
.me
.REG
[8] = BOX_NativeString(".");
9634 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9635 once_value_6
= fra
.me
.REG
[8];
9636 register_static_object(&once_value_6
);
9637 } else fra
.me
.REG
[8] = once_value_6
;
9638 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9640 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9641 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
9643 /* ./syntax//typing.nit:1571 */
9644 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[4],fra
.me
.REG
[5]));
9645 if (UNTAG_Bool(REGB0
)) {
9647 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9650 if (UNTAG_Bool(REGB0
)) {
9651 /* ./syntax//typing.nit:1572 */
9653 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9654 if (!once_value_7
) {
9655 fra
.me
.REG
[8] = BOX_NativeString("Error: Only one super constructor invocation of class ");
9656 REGB0
= TAG_Int(54);
9657 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9658 once_value_7
= fra
.me
.REG
[8];
9659 register_static_object(&once_value_7
);
9660 } else fra
.me
.REG
[8] = once_value_7
;
9661 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9663 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9664 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9665 if (!once_value_8
) {
9666 fra
.me
.REG
[8] = BOX_NativeString(" is allowed.");
9667 REGB0
= TAG_Int(12);
9668 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
9669 once_value_8
= fra
.me
.REG
[8];
9670 register_static_object(&once_value_8
);
9671 } else fra
.me
.REG
[8] = once_value_8
;
9672 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9673 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
9674 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9675 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
9677 /* ./../lib/standard//collection//array.nit:269 */
9679 /* ./../lib/standard//collection//array.nit:270 */
9680 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
9681 if (UNTAG_Bool(REGB1
)) {
9683 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
9685 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
9686 /* ./../lib/standard//collection//array.nit:271 */
9687 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
9688 /* ./../lib/standard//collection//array.nit:272 */
9690 /* ./../lib/standard//collection//array.nit:24 */
9691 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
9692 if (UNTAG_Bool(REGB1
)) {
9694 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9696 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
9697 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
9698 if (UNTAG_Bool(REGB2
)) {
9700 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9702 /* ./../lib/standard//kernel.nit:232 */
9703 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
9704 /* ./../lib/standard//collection//array.nit:272 */
9705 if (UNTAG_Bool(REGB1
)) {
9706 /* ./../lib/standard//collection//array.nit:273 */
9707 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9708 if (UNTAG_Bool(REGB1
)) {
9709 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
9711 /* ./../lib/standard//collection//array.nit:718 */
9712 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
9713 /* ./syntax//typing.nit:1575 */
9714 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[8],fra
.me
.REG
[5]));
9715 if (UNTAG_Bool(REGB1
)) {
9717 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[5]);
9720 if (UNTAG_Bool(REGB1
)) {
9721 /* ./syntax//typing.nit:1576 */
9722 fra
.me
.REG
[5] = NIT_NULL
;
9724 /* ./syntax//typing.nit:1577 */
9725 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[8],fra
.me
.REG
[4]));
9726 if (UNTAG_Bool(REGB1
)) {
9728 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[4]);
9731 if (UNTAG_Bool(REGB1
)) {
9732 /* ./syntax//typing.nit:1578 */
9733 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9734 if (UNTAG_Bool(REGB1
)) {
9736 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9737 if (UNTAG_Bool(REGB2
)) {
9738 REGB2
= TAG_Bool(false);
9741 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9745 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9746 if (UNTAG_Bool(REGB1
)) {
9747 /* ./syntax//typing.nit:1579 */
9749 fra
.me
.REG
[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9750 if (!once_value_9
) {
9751 fra
.me
.REG
[10] = BOX_NativeString("Error: Constructor of ");
9752 REGB1
= TAG_Int(22);
9753 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB1
);
9754 once_value_9
= fra
.me
.REG
[10];
9755 register_static_object(&once_value_9
);
9756 } else fra
.me
.REG
[10] = once_value_9
;
9757 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[10]);
9759 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9760 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9761 if (!once_value_10
) {
9762 fra
.me
.REG
[8] = BOX_NativeString(" must be invoked before constructor of ");
9763 REGB1
= TAG_Int(39);
9764 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
9765 once_value_10
= fra
.me
.REG
[8];
9766 register_static_object(&once_value_10
);
9767 } else fra
.me
.REG
[8] = once_value_10
;
9768 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9770 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
9771 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9772 if (!once_value_11
) {
9773 fra
.me
.REG
[8] = BOX_NativeString("");
9775 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB1
);
9776 once_value_11
= fra
.me
.REG
[8];
9777 register_static_object(&once_value_11
);
9778 } else fra
.me
.REG
[8] = once_value_11
;
9779 fra
.me
.REG
[8] = fra
.me
.REG
[8];
9780 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8]);
9781 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9782 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[9]);
9784 /* ./syntax//typing.nit:1581 */
9785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
9786 /* ./syntax//typing.nit:1582 */
9790 /* ./../lib/standard//collection//array.nit:274 */
9792 /* ./../lib/standard//kernel.nit:235 */
9793 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
9794 /* ./../lib/standard//collection//array.nit:274 */
9797 /* ./../lib/standard//collection//array.nit:272 */
9806 stack_frame_head
= fra
.me
.prev
;
9809 val_t
syntax___typing___ANewExpr___compute_raw_arguments(val_t p0
){
9810 struct {struct stack_frame_t me
;} fra
;
9812 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9813 fra
.me
.file
= LOCATE_syntax___typing
;
9815 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___compute_raw_arguments
;
9816 fra
.me
.has_broke
= 0;
9817 fra
.me
.REG_size
= 1;
9818 fra
.me
.REG
[0] = NIT_NULL
;
9820 /* ./syntax//typing.nit:1591 */
9821 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ANewExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9822 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9825 stack_frame_head
= fra
.me
.prev
;
9826 return fra
.me
.REG
[0];
9828 void syntax___typing___ANewExpr___after_typing(val_t p0
, val_t p1
){
9829 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
9833 static val_t once_value_2
; /* Once value */
9834 static val_t once_value_3
; /* Once value */
9835 static val_t once_value_4
; /* Once value */
9836 static val_t once_value_5
; /* Once value */
9837 static val_t once_value_6
; /* Once value */
9838 static val_t once_value_7
; /* Once value */
9839 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9840 fra
.me
.file
= LOCATE_syntax___typing
;
9842 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___after_typing
;
9843 fra
.me
.has_broke
= 0;
9844 fra
.me
.REG_size
= 5;
9845 fra
.me
.REG
[0] = NIT_NULL
;
9846 fra
.me
.REG
[1] = NIT_NULL
;
9847 fra
.me
.REG
[2] = NIT_NULL
;
9848 fra
.me
.REG
[3] = NIT_NULL
;
9849 fra
.me
.REG
[4] = NIT_NULL
;
9852 /* ./syntax//typing.nit:1594 */
9853 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9854 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9855 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9856 if (UNTAG_Bool(REGB0
)) {
9859 /* ./syntax//typing.nit:1595 */
9860 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9861 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9862 /* ./syntax//typing.nit:1596 */
9863 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9864 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9865 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9866 if (UNTAG_Bool(REGB0
)) {
9867 /* ./syntax//typing.nit:1597 */
9869 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9870 if (!once_value_2
) {
9871 fra
.me
.REG
[4] = BOX_NativeString("Error: try to instantiate abstract class ");
9872 REGB0
= TAG_Int(41);
9873 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9874 once_value_2
= fra
.me
.REG
[4];
9875 register_static_object(&once_value_2
);
9876 } else fra
.me
.REG
[4] = once_value_2
;
9877 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9878 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9879 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9880 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9882 if (!once_value_3
) {
9883 fra
.me
.REG
[4] = BOX_NativeString(".");
9885 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
9886 once_value_3
= fra
.me
.REG
[4];
9887 register_static_object(&once_value_3
);
9888 } else fra
.me
.REG
[4] = once_value_3
;
9889 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9890 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9891 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9892 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
9893 /* ./syntax//typing.nit:1598 */
9896 /* ./syntax//typing.nit:1601 */
9897 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9898 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9899 if (UNTAG_Bool(REGB0
)) {
9901 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9902 if (UNTAG_Bool(REGB1
)) {
9903 REGB1
= TAG_Bool(false);
9906 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9910 if (UNTAG_Bool(REGB0
)) {
9911 /* ./syntax//typing.nit:1602 */
9912 if (!once_value_4
) {
9913 if (!once_value_5
) {
9914 fra
.me
.REG
[3] = BOX_NativeString("init");
9916 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9917 once_value_5
= fra
.me
.REG
[3];
9918 register_static_object(&once_value_5
);
9919 } else fra
.me
.REG
[3] = once_value_5
;
9920 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9921 fra
.me
.REG
[3] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9922 once_value_4
= fra
.me
.REG
[3];
9923 register_static_object(&once_value_4
);
9924 } else fra
.me
.REG
[3] = once_value_4
;
9925 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9927 /* ./syntax//typing.nit:1604 */
9928 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9929 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9930 if (UNTAG_Bool(REGB0
)) {
9931 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1604);
9933 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9934 fra
.me
.REG
[3] = fra
.me
.REG
[4];
9936 /* ./syntax//typing.nit:1607 */
9937 REGB0
= TAG_Bool(false);
9938 REGB1
= TAG_Bool(false);
9939 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9940 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
);
9941 /* ./syntax//typing.nit:1608 */
9942 fra
.me
.REG
[4] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
9943 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9944 if (UNTAG_Bool(REGB1
)) {
9946 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9947 if (UNTAG_Bool(REGB0
)) {
9948 REGB0
= TAG_Bool(false);
9951 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9955 if (UNTAG_Bool(REGB1
)) {
9958 /* ./syntax//typing.nit:1610 */
9959 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9960 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9961 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9962 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9963 if (UNTAG_Bool(REGB1
)) {
9964 /* ./syntax//typing.nit:1611 */
9966 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9967 if (!once_value_6
) {
9968 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
9970 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
9971 once_value_6
= fra
.me
.REG
[3];
9972 register_static_object(&once_value_6
);
9973 } else fra
.me
.REG
[3] = once_value_6
;
9974 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9975 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9976 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9977 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9978 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9979 if (!once_value_7
) {
9980 fra
.me
.REG
[3] = BOX_NativeString(" is not a constructor.");
9981 REGB1
= TAG_Int(22);
9982 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
9983 once_value_7
= fra
.me
.REG
[3];
9984 register_static_object(&once_value_7
);
9985 } else fra
.me
.REG
[3] = once_value_7
;
9986 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9987 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
9988 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9989 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9990 /* ./syntax//typing.nit:1612 */
9993 /* ./syntax//typing.nit:1614 */
9994 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9995 /* ./syntax//typing.nit:1615 */
9996 REGB1
= TAG_Bool(true);
9997 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
9999 stack_frame_head
= fra
.me
.prev
;
10002 val_t
syntax___typing___ASendExpr___name(val_t p0
){
10003 struct {struct stack_frame_t me
;} fra
;
10005 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10006 fra
.me
.file
= LOCATE_syntax___typing
;
10007 fra
.me
.line
= 1621;
10008 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___name
;
10009 fra
.me
.has_broke
= 0;
10010 fra
.me
.REG_size
= 0;
10011 /* ./syntax//typing.nit:1621 */
10012 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1621);
10013 stack_frame_head
= fra
.me
.prev
;
10016 val_t
syntax___typing___ASendExpr___closure_defs(val_t p0
){
10017 struct {struct stack_frame_t me
;} fra
;
10019 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10020 fra
.me
.file
= LOCATE_syntax___typing
;
10021 fra
.me
.line
= 1624;
10022 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___closure_defs
;
10023 fra
.me
.has_broke
= 0;
10024 fra
.me
.REG_size
= 1;
10025 fra
.me
.REG
[0] = NIT_NULL
;
10026 fra
.me
.REG
[0] = p0
;
10027 /* ./syntax//typing.nit:1625 */
10028 fra
.me
.REG
[0] = NIT_NULL
;
10031 stack_frame_head
= fra
.me
.prev
;
10032 return fra
.me
.REG
[0];
10034 void syntax___typing___ASendExpr___after_typing(val_t p0
, val_t p1
){
10035 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10037 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10038 fra
.me
.file
= LOCATE_syntax___typing
;
10039 fra
.me
.line
= 1627;
10040 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___after_typing
;
10041 fra
.me
.has_broke
= 0;
10042 fra
.me
.REG_size
= 2;
10043 fra
.me
.REG
[0] = NIT_NULL
;
10044 fra
.me
.REG
[1] = NIT_NULL
;
10045 fra
.me
.REG
[0] = p0
;
10046 fra
.me
.REG
[1] = p1
;
10047 /* ./syntax//typing.nit:1629 */
10048 CALL_syntax___typing___ASendExpr___do_all_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10049 stack_frame_head
= fra
.me
.prev
;
10052 void syntax___typing___ASendExpr___do_all_typing(val_t p0
, val_t p1
){
10053 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10057 static val_t once_value_2
; /* Once value */
10058 static val_t once_value_3
; /* Once value */
10059 static val_t once_value_4
; /* Once value */
10060 static val_t once_value_5
; /* Once value */
10061 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10062 fra
.me
.file
= LOCATE_syntax___typing
;
10063 fra
.me
.line
= 1632;
10064 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___do_all_typing
;
10065 fra
.me
.has_broke
= 0;
10066 fra
.me
.REG_size
= 7;
10067 fra
.me
.REG
[0] = NIT_NULL
;
10068 fra
.me
.REG
[1] = NIT_NULL
;
10069 fra
.me
.REG
[2] = NIT_NULL
;
10070 fra
.me
.REG
[3] = NIT_NULL
;
10071 fra
.me
.REG
[4] = NIT_NULL
;
10072 fra
.me
.REG
[5] = NIT_NULL
;
10073 fra
.me
.REG
[6] = NIT_NULL
;
10074 fra
.me
.REG
[0] = p0
;
10075 fra
.me
.REG
[1] = p1
;
10076 /* ./syntax//typing.nit:1632 */
10077 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10078 /* ./syntax//typing.nit:1634 */
10079 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10080 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10081 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10082 if (UNTAG_Bool(REGB0
)) {
10085 /* ./syntax//typing.nit:1635 */
10086 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10087 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10088 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10089 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10090 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10091 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10092 fra
.me
.REG
[4] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10093 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10094 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10095 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]);
10096 /* ./syntax//typing.nit:1636 */
10097 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10098 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10099 if (UNTAG_Bool(REGB1
)) {
10101 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10102 if (UNTAG_Bool(REGB0
)) {
10103 REGB0
= TAG_Bool(false);
10106 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
10110 if (UNTAG_Bool(REGB1
)) {
10113 /* ./syntax//typing.nit:1637 */
10114 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10115 REGB1
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
10116 if (UNTAG_Bool(REGB1
)) {
10118 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1637);
10120 /* ./syntax//typing.nit:1639 */
10121 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10122 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10123 if (UNTAG_Bool(REGB1
)) {
10124 /* ./syntax//typing.nit:1640 */
10125 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10126 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10127 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10128 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10129 if (UNTAG_Bool(REGB1
)) {
10130 /* ./syntax//typing.nit:1641 */
10131 REGB1
= TAG_Int(3);
10132 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10133 if (!once_value_2
) {
10134 fra
.me
.REG
[5] = BOX_NativeString("Error: try to invoke constructor ");
10135 REGB1
= TAG_Int(33);
10136 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10137 once_value_2
= fra
.me
.REG
[5];
10138 register_static_object(&once_value_2
);
10139 } else fra
.me
.REG
[5] = once_value_2
;
10140 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10141 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10142 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10143 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10144 if (!once_value_3
) {
10145 fra
.me
.REG
[5] = BOX_NativeString(" in a method.");
10146 REGB1
= TAG_Int(13);
10147 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10148 once_value_3
= fra
.me
.REG
[5];
10149 register_static_object(&once_value_3
);
10150 } else fra
.me
.REG
[5] = once_value_3
;
10151 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10152 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10153 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10154 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10156 /* ./syntax//typing.nit:1642 */
10157 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10158 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10159 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10160 if (UNTAG_Bool(REGB1
)) {
10161 /* ./syntax//typing.nit:1643 */
10162 REGB1
= TAG_Int(3);
10163 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10164 if (!once_value_4
) {
10165 fra
.me
.REG
[5] = BOX_NativeString("Error: constructor ");
10166 REGB1
= TAG_Int(19);
10167 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10168 once_value_4
= fra
.me
.REG
[5];
10169 register_static_object(&once_value_4
);
10170 } else fra
.me
.REG
[5] = once_value_4
;
10171 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10172 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10173 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10174 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10175 if (!once_value_5
) {
10176 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
10177 REGB1
= TAG_Int(26);
10178 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10179 once_value_5
= fra
.me
.REG
[5];
10180 register_static_object(&once_value_5
);
10181 } else fra
.me
.REG
[5] = once_value_5
;
10182 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10183 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10184 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10185 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10187 /* ./syntax//typing.nit:1645 */
10188 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[6]);
10192 /* ./syntax//typing.nit:1649 */
10193 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AAbsSendExpr___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10194 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
10195 /* ./syntax//typing.nit:1650 */
10196 REGB1
= TAG_Bool(true);
10197 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB1
;
10199 stack_frame_head
= fra
.me
.prev
;
10202 val_t
syntax___typing___ASendReassignExpr___read_prop(val_t p0
){
10203 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10206 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10207 fra
.me
.file
= LOCATE_syntax___typing
;
10208 fra
.me
.line
= 1655;
10209 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___read_prop
;
10210 fra
.me
.has_broke
= 0;
10211 fra
.me
.REG_size
= 2;
10212 fra
.me
.REG
[0] = NIT_NULL
;
10213 fra
.me
.REG
[1] = NIT_NULL
;
10214 fra
.me
.REG
[0] = p0
;
10215 /* ./syntax//typing.nit:1655 */
10216 fra
.me
.REG
[1] = fra
.me
.REG
[0];
10217 fra
.me
.REG
[1] = ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[1]);
10218 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
10219 if (UNTAG_Bool(REGB0
)) {
10221 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1655);
10225 stack_frame_head
= fra
.me
.prev
;
10226 return fra
.me
.REG
[1];
10228 void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0
, val_t p1
){
10229 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10234 static val_t once_value_2
; /* Once value */
10235 static val_t once_value_3
; /* Once value */
10236 static val_t once_value_4
; /* Once value */
10237 static val_t once_value_5
; /* Once value */
10238 static val_t once_value_6
; /* Once value */
10239 static val_t once_value_7
; /* Once value */
10240 static val_t once_value_8
; /* Once value */
10241 static val_t once_value_9
; /* Once value */
10242 static val_t once_value_10
; /* Once value */
10243 static val_t once_value_11
; /* Once value */
10244 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10245 fra
.me
.file
= LOCATE_syntax___typing
;
10246 fra
.me
.line
= 1657;
10247 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___do_all_typing
;
10248 fra
.me
.has_broke
= 0;
10249 fra
.me
.REG_size
= 7;
10250 fra
.me
.REG
[0] = NIT_NULL
;
10251 fra
.me
.REG
[1] = NIT_NULL
;
10252 fra
.me
.REG
[2] = NIT_NULL
;
10253 fra
.me
.REG
[3] = NIT_NULL
;
10254 fra
.me
.REG
[4] = NIT_NULL
;
10255 fra
.me
.REG
[5] = NIT_NULL
;
10256 fra
.me
.REG
[6] = NIT_NULL
;
10257 fra
.me
.REG
[0] = p0
;
10258 fra
.me
.REG
[1] = p1
;
10259 /* ./syntax//typing.nit:1657 */
10260 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10261 /* ./syntax//typing.nit:1659 */
10262 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10263 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10264 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10265 if (UNTAG_Bool(REGB0
)) {
10268 /* ./syntax//typing.nit:1660 */
10269 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10270 /* ./syntax//typing.nit:1661 */
10271 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10272 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10273 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10274 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10275 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10276 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10277 fra
.me
.REG
[5] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10278 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
);
10279 /* ./syntax//typing.nit:1662 */
10280 fra
.me
.REG
[5] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10281 /* ./syntax//typing.nit:1663 */
10282 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10283 if (UNTAG_Bool(REGB1
)) {
10285 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10286 if (UNTAG_Bool(REGB0
)) {
10287 REGB0
= TAG_Bool(false);
10290 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
10294 if (UNTAG_Bool(REGB1
)) {
10297 /* ./syntax//typing.nit:1664 */
10298 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10299 if (UNTAG_Bool(REGB1
)) {
10300 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1664);
10302 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10303 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10304 if (UNTAG_Bool(REGB1
)) {
10305 /* ./syntax//typing.nit:1665 */
10306 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10307 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10308 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10309 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10310 if (UNTAG_Bool(REGB1
)) {
10311 /* ./syntax//typing.nit:1666 */
10312 REGB1
= TAG_Int(3);
10313 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10314 if (!once_value_2
) {
10315 fra
.me
.REG
[6] = BOX_NativeString("Error: try to invoke constructor ");
10316 REGB1
= TAG_Int(33);
10317 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10318 once_value_2
= fra
.me
.REG
[6];
10319 register_static_object(&once_value_2
);
10320 } else fra
.me
.REG
[6] = once_value_2
;
10321 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10323 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10324 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10325 if (!once_value_3
) {
10326 fra
.me
.REG
[6] = BOX_NativeString(" in a method.");
10327 REGB1
= TAG_Int(13);
10328 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10329 once_value_3
= fra
.me
.REG
[6];
10330 register_static_object(&once_value_3
);
10331 } else fra
.me
.REG
[6] = once_value_3
;
10332 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10334 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10335 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10337 /* ./syntax//typing.nit:1667 */
10338 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10339 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10340 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10341 if (UNTAG_Bool(REGB1
)) {
10342 /* ./syntax//typing.nit:1668 */
10343 REGB1
= TAG_Int(3);
10344 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10345 if (!once_value_4
) {
10346 fra
.me
.REG
[6] = BOX_NativeString("Error: constructor ");
10347 REGB1
= TAG_Int(19);
10348 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10349 once_value_4
= fra
.me
.REG
[6];
10350 register_static_object(&once_value_4
);
10351 } else fra
.me
.REG
[6] = once_value_4
;
10352 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10354 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10356 if (!once_value_5
) {
10357 fra
.me
.REG
[6] = BOX_NativeString(" is not invoken on 'self'.");
10358 REGB1
= TAG_Int(26);
10359 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10360 once_value_5
= fra
.me
.REG
[6];
10361 register_static_object(&once_value_5
);
10362 } else fra
.me
.REG
[6] = once_value_5
;
10363 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10365 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10366 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10370 /* ./syntax//typing.nit:1671 */
10371 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10372 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10373 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10374 if (UNTAG_Bool(REGB1
)) {
10375 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1671);
10377 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10378 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10379 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*/;
10380 if (UNTAG_Bool(REGB1
)) {
10382 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1671);
10384 /* ./syntax//typing.nit:1672 */
10385 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10386 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10387 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10388 if (UNTAG_Bool(REGB1
)) {
10389 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10390 fra
.me
.REG
[4] = fra
.me
.REG
[0];
10392 /* ./syntax//typing.nit:1674 */
10393 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]);
10394 /* ./syntax//typing.nit:1675 */
10395 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10396 if (UNTAG_Bool(REGB1
)) {
10398 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10399 if (UNTAG_Bool(REGB0
)) {
10400 REGB0
= TAG_Bool(false);
10403 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10407 if (UNTAG_Bool(REGB1
)) {
10410 /* ./syntax//typing.nit:1676 */
10411 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10412 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10413 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]);
10414 /* ./syntax//typing.nit:1678 */
10415 ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
10416 /* ./syntax//typing.nit:1679 */
10417 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10418 fra
.me
.REG
[3] = fra
.me
.REG
[0];
10419 /* ./syntax//typing.nit:1680 */
10420 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10421 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
10422 /* ./syntax//typing.nit:1682 */
10423 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10424 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10425 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10426 REGB1
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10427 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10428 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10429 REGB2
= TAG_Int(3);
10430 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
10431 if (!once_value_6
) {
10432 fra
.me
.REG
[6] = BOX_NativeString("");
10433 REGB2
= TAG_Int(0);
10434 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10435 once_value_6
= fra
.me
.REG
[6];
10436 register_static_object(&once_value_6
);
10437 } else fra
.me
.REG
[6] = once_value_6
;
10438 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10439 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10440 fra
.me
.REG
[6] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10441 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10442 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10443 if (!once_value_7
) {
10444 fra
.me
.REG
[6] = BOX_NativeString("=");
10445 REGB2
= TAG_Int(1);
10446 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10447 once_value_7
= fra
.me
.REG
[6];
10448 register_static_object(&once_value_7
);
10449 } else fra
.me
.REG
[6] = once_value_7
;
10450 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10451 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10452 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10453 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10454 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
);
10455 /* ./syntax//typing.nit:1683 */
10456 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10457 if (UNTAG_Bool(REGB0
)) {
10458 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1683);
10460 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10461 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10462 if (UNTAG_Bool(REGB0
)) {
10463 /* ./syntax//typing.nit:1684 */
10464 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10465 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10466 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10467 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10468 if (UNTAG_Bool(REGB0
)) {
10469 /* ./syntax//typing.nit:1685 */
10470 REGB0
= TAG_Int(3);
10471 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10472 if (!once_value_8
) {
10473 fra
.me
.REG
[4] = BOX_NativeString("Error: try to invoke constructor ");
10474 REGB0
= TAG_Int(33);
10475 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10476 once_value_8
= fra
.me
.REG
[4];
10477 register_static_object(&once_value_8
);
10478 } else fra
.me
.REG
[4] = once_value_8
;
10479 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10480 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10481 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10482 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10483 if (!once_value_9
) {
10484 fra
.me
.REG
[4] = BOX_NativeString(" in a method.");
10485 REGB0
= TAG_Int(13);
10486 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10487 once_value_9
= fra
.me
.REG
[4];
10488 register_static_object(&once_value_9
);
10489 } else fra
.me
.REG
[4] = once_value_9
;
10490 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10491 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10492 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10493 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
10495 /* ./syntax//typing.nit:1686 */
10496 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10497 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10498 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10499 if (UNTAG_Bool(REGB0
)) {
10500 /* ./syntax//typing.nit:1687 */
10501 REGB0
= TAG_Int(3);
10502 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10503 if (!once_value_10
) {
10504 fra
.me
.REG
[4] = BOX_NativeString("Error: constructor ");
10505 REGB0
= TAG_Int(19);
10506 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10507 once_value_10
= fra
.me
.REG
[4];
10508 register_static_object(&once_value_10
);
10509 } else fra
.me
.REG
[4] = once_value_10
;
10510 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10511 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10512 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10513 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10514 if (!once_value_11
) {
10515 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
10516 REGB0
= TAG_Int(26);
10517 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
10518 once_value_11
= fra
.me
.REG
[5];
10519 register_static_object(&once_value_11
);
10520 } else fra
.me
.REG
[5] = once_value_11
;
10521 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10522 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10523 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10524 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
10528 /* ./syntax//typing.nit:1691 */
10529 REGB0
= TAG_Bool(true);
10530 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
10532 stack_frame_head
= fra
.me
.prev
;
10535 val_t
syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0
){
10536 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10539 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10540 fra
.me
.file
= LOCATE_syntax___typing
;
10541 fra
.me
.line
= 1696;
10542 fra
.me
.meth
= LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments
;
10543 fra
.me
.has_broke
= 0;
10544 fra
.me
.REG_size
= 2;
10545 fra
.me
.REG
[0] = NIT_NULL
;
10546 fra
.me
.REG
[1] = NIT_NULL
;
10547 fra
.me
.REG
[0] = p0
;
10548 /* ./syntax//typing.nit:1696 */
10549 REGB0
= TAG_Int(1);
10550 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10551 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10552 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
10555 stack_frame_head
= fra
.me
.prev
;
10556 return fra
.me
.REG
[1];
10558 val_t
syntax___typing___AEqExpr___name(val_t p0
){
10559 struct {struct stack_frame_t me
;} fra
;
10562 static val_t once_value_1
; /* Once value */
10563 static val_t once_value_2
; /* Once value */
10564 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10565 fra
.me
.file
= LOCATE_syntax___typing
;
10566 fra
.me
.line
= 1699;
10567 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___name
;
10568 fra
.me
.has_broke
= 0;
10569 fra
.me
.REG_size
= 1;
10570 fra
.me
.REG
[0] = NIT_NULL
;
10571 fra
.me
.REG
[0] = p0
;
10572 /* ./syntax//typing.nit:1699 */
10573 if (!once_value_1
) {
10574 if (!once_value_2
) {
10575 fra
.me
.REG
[0] = BOX_NativeString("==");
10576 REGB0
= TAG_Int(2);
10577 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10578 once_value_2
= fra
.me
.REG
[0];
10579 register_static_object(&once_value_2
);
10580 } else fra
.me
.REG
[0] = once_value_2
;
10581 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10582 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10583 once_value_1
= fra
.me
.REG
[0];
10584 register_static_object(&once_value_1
);
10585 } else fra
.me
.REG
[0] = once_value_1
;
10586 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10589 stack_frame_head
= fra
.me
.prev
;
10590 return fra
.me
.REG
[0];
10592 void syntax___typing___AEqExpr___after_typing(val_t p0
, val_t p1
){
10593 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
10597 static val_t once_value_2
; /* Once value */
10598 static val_t once_value_3
; /* Once value */
10599 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10600 fra
.me
.file
= LOCATE_syntax___typing
;
10601 fra
.me
.line
= 1700;
10602 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___after_typing
;
10603 fra
.me
.has_broke
= 0;
10604 fra
.me
.REG_size
= 4;
10605 fra
.me
.REG
[0] = NIT_NULL
;
10606 fra
.me
.REG
[1] = NIT_NULL
;
10607 fra
.me
.REG
[2] = NIT_NULL
;
10608 fra
.me
.REG
[3] = NIT_NULL
;
10609 fra
.me
.REG
[0] = p0
;
10610 fra
.me
.REG
[1] = p1
;
10611 /* ./syntax//typing.nit:1700 */
10612 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10613 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10614 /* ./syntax//typing.nit:1702 */
10615 CALL_SUPER_syntax___typing___AEqExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10616 /* ./syntax//typing.nit:1703 */
10617 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10618 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10619 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10620 if (UNTAG_Bool(REGB0
)) {
10621 REGB0
= TAG_Bool(true);
10623 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10624 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10625 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10628 if (UNTAG_Bool(REGB0
)) {
10631 /* ./syntax//typing.nit:1704 */
10632 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10633 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10634 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10635 if (UNTAG_Bool(REGB0
)) {
10636 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10637 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10638 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10639 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10641 REGB1
= TAG_Bool(false);
10644 if (UNTAG_Bool(REGB0
)) {
10645 REGB0
= TAG_Bool(true);
10647 /* ./syntax//typing.nit:1705 */
10648 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10649 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10650 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10651 /* ./syntax//typing.nit:1704 */
10654 if (UNTAG_Bool(REGB0
)) {
10655 /* ./syntax//typing.nit:1705 */
10656 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10657 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10658 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10659 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10661 /* ./syntax//typing.nit:1704 */
10662 REGB1
= TAG_Bool(false);
10665 if (UNTAG_Bool(REGB0
)) {
10666 /* ./syntax//typing.nit:1706 */
10667 if (!once_value_2
) {
10668 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
10669 REGB0
= TAG_Int(59);
10670 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10671 once_value_2
= fra
.me
.REG
[1];
10672 register_static_object(&once_value_2
);
10673 } else fra
.me
.REG
[1] = once_value_2
;
10674 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10675 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10677 /* ./syntax//typing.nit:1709 */
10678 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10679 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10680 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10681 if (UNTAG_Bool(REGB0
)) {
10682 /* ./syntax//typing.nit:1710 */
10683 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10684 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10685 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10686 if (UNTAG_Bool(REGB0
)) {
10687 /* ./syntax//typing.nit:1711 */
10688 if (!once_value_3
) {
10689 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
10690 REGB0
= TAG_Int(43);
10691 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10692 once_value_3
= fra
.me
.REG
[1];
10693 register_static_object(&once_value_3
);
10694 } else fra
.me
.REG
[1] = once_value_3
;
10695 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10696 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10698 /* ./syntax//typing.nit:1713 */
10699 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10700 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10703 /* ./syntax//typing.nit:1715 */
10704 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10705 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10706 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10707 if (UNTAG_Bool(REGB0
)) {
10708 /* ./syntax//typing.nit:1716 */
10709 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10710 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10714 stack_frame_head
= fra
.me
.prev
;
10717 void syntax___typing___AEqExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
10718 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10722 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10723 fra
.me
.file
= LOCATE_syntax___typing
;
10724 fra
.me
.line
= 1720;
10725 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___try_to_isa
;
10726 fra
.me
.has_broke
= 0;
10727 fra
.me
.REG_size
= 5;
10728 fra
.me
.REG
[0] = NIT_NULL
;
10729 fra
.me
.REG
[1] = NIT_NULL
;
10730 fra
.me
.REG
[2] = NIT_NULL
;
10731 fra
.me
.REG
[3] = NIT_NULL
;
10732 fra
.me
.REG
[4] = NIT_NULL
;
10733 fra
.me
.REG
[0] = p0
;
10734 fra
.me
.REG
[1] = p1
;
10735 fra
.me
.REG
[2] = p2
;
10736 /* ./syntax//typing.nit:1722 */
10737 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10738 /* ./syntax//typing.nit:1723 */
10739 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10740 if (UNTAG_Bool(REGB0
)) {
10742 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10743 if (UNTAG_Bool(REGB1
)) {
10744 REGB1
= TAG_Bool(false);
10747 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10751 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10752 if (UNTAG_Bool(REGB0
)) {
10753 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10754 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
10756 REGB1
= TAG_Bool(false);
10759 if (UNTAG_Bool(REGB0
)) {
10760 /* ./syntax//typing.nit:1724 */
10761 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10762 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10763 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10764 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]);
10765 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10766 /* ./syntax//typing.nit:1725 */
10767 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10768 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10769 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]);
10770 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
10772 stack_frame_head
= fra
.me
.prev
;
10775 val_t
syntax___typing___ANeExpr___name(val_t p0
){
10776 struct {struct stack_frame_t me
;} fra
;
10779 static val_t once_value_1
; /* Once value */
10780 static val_t once_value_2
; /* Once value */
10781 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10782 fra
.me
.file
= LOCATE_syntax___typing
;
10783 fra
.me
.line
= 1730;
10784 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___name
;
10785 fra
.me
.has_broke
= 0;
10786 fra
.me
.REG_size
= 1;
10787 fra
.me
.REG
[0] = NIT_NULL
;
10788 fra
.me
.REG
[0] = p0
;
10789 /* ./syntax//typing.nit:1730 */
10790 if (!once_value_1
) {
10791 if (!once_value_2
) {
10792 fra
.me
.REG
[0] = BOX_NativeString("!=");
10793 REGB0
= TAG_Int(2);
10794 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
10795 once_value_2
= fra
.me
.REG
[0];
10796 register_static_object(&once_value_2
);
10797 } else fra
.me
.REG
[0] = once_value_2
;
10798 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10799 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10800 once_value_1
= fra
.me
.REG
[0];
10801 register_static_object(&once_value_1
);
10802 } else fra
.me
.REG
[0] = once_value_1
;
10803 fra
.me
.REG
[0] = fra
.me
.REG
[0];
10806 stack_frame_head
= fra
.me
.prev
;
10807 return fra
.me
.REG
[0];
10809 void syntax___typing___ANeExpr___after_typing(val_t p0
, val_t p1
){
10810 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
10814 static val_t once_value_2
; /* Once value */
10815 static val_t once_value_3
; /* Once value */
10816 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10817 fra
.me
.file
= LOCATE_syntax___typing
;
10818 fra
.me
.line
= 1731;
10819 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___after_typing
;
10820 fra
.me
.has_broke
= 0;
10821 fra
.me
.REG_size
= 4;
10822 fra
.me
.REG
[0] = NIT_NULL
;
10823 fra
.me
.REG
[1] = NIT_NULL
;
10824 fra
.me
.REG
[2] = NIT_NULL
;
10825 fra
.me
.REG
[3] = NIT_NULL
;
10826 fra
.me
.REG
[0] = p0
;
10827 fra
.me
.REG
[1] = p1
;
10828 /* ./syntax//typing.nit:1731 */
10829 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10830 fra
.me
.REG
[3] = fra
.me
.REG
[1];
10831 /* ./syntax//typing.nit:1733 */
10832 CALL_SUPER_syntax___typing___ANeExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10833 /* ./syntax//typing.nit:1734 */
10834 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10835 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10836 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10837 if (UNTAG_Bool(REGB0
)) {
10838 REGB0
= TAG_Bool(true);
10840 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10841 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10842 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10845 if (UNTAG_Bool(REGB0
)) {
10848 /* ./syntax//typing.nit:1735 */
10849 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10850 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10851 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10852 if (UNTAG_Bool(REGB0
)) {
10853 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10854 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10855 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10856 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10858 REGB1
= TAG_Bool(false);
10861 if (UNTAG_Bool(REGB0
)) {
10862 REGB0
= TAG_Bool(true);
10864 /* ./syntax//typing.nit:1736 */
10865 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10866 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10867 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10868 /* ./syntax//typing.nit:1735 */
10871 if (UNTAG_Bool(REGB0
)) {
10872 /* ./syntax//typing.nit:1736 */
10873 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10874 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10875 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10876 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10878 /* ./syntax//typing.nit:1735 */
10879 REGB1
= TAG_Bool(false);
10882 if (UNTAG_Bool(REGB0
)) {
10883 /* ./syntax//typing.nit:1737 */
10884 if (!once_value_2
) {
10885 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
10886 REGB0
= TAG_Int(59);
10887 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10888 once_value_2
= fra
.me
.REG
[1];
10889 register_static_object(&once_value_2
);
10890 } else fra
.me
.REG
[1] = once_value_2
;
10891 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10892 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10894 /* ./syntax//typing.nit:1740 */
10895 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10896 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10897 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10898 if (UNTAG_Bool(REGB0
)) {
10899 /* ./syntax//typing.nit:1741 */
10900 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10901 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10902 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10903 if (UNTAG_Bool(REGB0
)) {
10904 /* ./syntax//typing.nit:1742 */
10905 if (!once_value_3
) {
10906 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between 2 null values.");
10907 REGB0
= TAG_Int(43);
10908 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
10909 once_value_3
= fra
.me
.REG
[1];
10910 register_static_object(&once_value_3
);
10911 } else fra
.me
.REG
[1] = once_value_3
;
10912 fra
.me
.REG
[1] = fra
.me
.REG
[1];
10913 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
10915 /* ./syntax//typing.nit:1744 */
10916 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10917 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10920 /* ./syntax//typing.nit:1746 */
10921 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10922 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10923 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
10924 if (UNTAG_Bool(REGB0
)) {
10925 /* ./syntax//typing.nit:1747 */
10926 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10927 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
10931 stack_frame_head
= fra
.me
.prev
;
10934 void syntax___typing___ANeExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
10935 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10939 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10940 fra
.me
.file
= LOCATE_syntax___typing
;
10941 fra
.me
.line
= 1751;
10942 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___try_to_isa
;
10943 fra
.me
.has_broke
= 0;
10944 fra
.me
.REG_size
= 5;
10945 fra
.me
.REG
[0] = NIT_NULL
;
10946 fra
.me
.REG
[1] = NIT_NULL
;
10947 fra
.me
.REG
[2] = NIT_NULL
;
10948 fra
.me
.REG
[3] = NIT_NULL
;
10949 fra
.me
.REG
[4] = NIT_NULL
;
10950 fra
.me
.REG
[0] = p0
;
10951 fra
.me
.REG
[1] = p1
;
10952 fra
.me
.REG
[2] = p2
;
10953 /* ./syntax//typing.nit:1753 */
10954 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10955 /* ./syntax//typing.nit:1754 */
10956 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10957 if (UNTAG_Bool(REGB0
)) {
10959 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10960 if (UNTAG_Bool(REGB1
)) {
10961 REGB1
= TAG_Bool(false);
10964 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10968 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10969 if (UNTAG_Bool(REGB0
)) {
10970 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10971 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
10973 REGB1
= TAG_Bool(false);
10976 if (UNTAG_Bool(REGB0
)) {
10977 /* ./syntax//typing.nit:1755 */
10978 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10979 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10980 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10981 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]);
10982 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10983 /* ./syntax//typing.nit:1756 */
10984 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10985 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10986 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]);
10987 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
10989 stack_frame_head
= fra
.me
.prev
;
10992 val_t
syntax___typing___ALtExpr___name(val_t p0
){
10993 struct {struct stack_frame_t me
;} fra
;
10996 static val_t once_value_1
; /* Once value */
10997 static val_t once_value_2
; /* Once value */
10998 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10999 fra
.me
.file
= LOCATE_syntax___typing
;
11000 fra
.me
.line
= 1761;
11001 fra
.me
.meth
= LOCATE_syntax___typing___ALtExpr___name
;
11002 fra
.me
.has_broke
= 0;
11003 fra
.me
.REG_size
= 1;
11004 fra
.me
.REG
[0] = NIT_NULL
;
11005 fra
.me
.REG
[0] = p0
;
11006 /* ./syntax//typing.nit:1761 */
11007 if (!once_value_1
) {
11008 if (!once_value_2
) {
11009 fra
.me
.REG
[0] = BOX_NativeString("<");
11010 REGB0
= TAG_Int(1);
11011 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11012 once_value_2
= fra
.me
.REG
[0];
11013 register_static_object(&once_value_2
);
11014 } else fra
.me
.REG
[0] = once_value_2
;
11015 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11016 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11017 once_value_1
= fra
.me
.REG
[0];
11018 register_static_object(&once_value_1
);
11019 } else fra
.me
.REG
[0] = once_value_1
;
11020 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11023 stack_frame_head
= fra
.me
.prev
;
11024 return fra
.me
.REG
[0];
11026 val_t
syntax___typing___ALeExpr___name(val_t p0
){
11027 struct {struct stack_frame_t me
;} fra
;
11030 static val_t once_value_1
; /* Once value */
11031 static val_t once_value_2
; /* Once value */
11032 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11033 fra
.me
.file
= LOCATE_syntax___typing
;
11034 fra
.me
.line
= 1764;
11035 fra
.me
.meth
= LOCATE_syntax___typing___ALeExpr___name
;
11036 fra
.me
.has_broke
= 0;
11037 fra
.me
.REG_size
= 1;
11038 fra
.me
.REG
[0] = NIT_NULL
;
11039 fra
.me
.REG
[0] = p0
;
11040 /* ./syntax//typing.nit:1764 */
11041 if (!once_value_1
) {
11042 if (!once_value_2
) {
11043 fra
.me
.REG
[0] = BOX_NativeString("<=");
11044 REGB0
= TAG_Int(2);
11045 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11046 once_value_2
= fra
.me
.REG
[0];
11047 register_static_object(&once_value_2
);
11048 } else fra
.me
.REG
[0] = once_value_2
;
11049 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11050 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11051 once_value_1
= fra
.me
.REG
[0];
11052 register_static_object(&once_value_1
);
11053 } else fra
.me
.REG
[0] = once_value_1
;
11054 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11057 stack_frame_head
= fra
.me
.prev
;
11058 return fra
.me
.REG
[0];
11060 val_t
syntax___typing___ALlExpr___name(val_t p0
){
11061 struct {struct stack_frame_t me
;} fra
;
11064 static val_t once_value_1
; /* Once value */
11065 static val_t once_value_2
; /* Once value */
11066 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11067 fra
.me
.file
= LOCATE_syntax___typing
;
11068 fra
.me
.line
= 1767;
11069 fra
.me
.meth
= LOCATE_syntax___typing___ALlExpr___name
;
11070 fra
.me
.has_broke
= 0;
11071 fra
.me
.REG_size
= 1;
11072 fra
.me
.REG
[0] = NIT_NULL
;
11073 fra
.me
.REG
[0] = p0
;
11074 /* ./syntax//typing.nit:1767 */
11075 if (!once_value_1
) {
11076 if (!once_value_2
) {
11077 fra
.me
.REG
[0] = BOX_NativeString("<<");
11078 REGB0
= TAG_Int(2);
11079 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11080 once_value_2
= fra
.me
.REG
[0];
11081 register_static_object(&once_value_2
);
11082 } else fra
.me
.REG
[0] = once_value_2
;
11083 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11084 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11085 once_value_1
= fra
.me
.REG
[0];
11086 register_static_object(&once_value_1
);
11087 } else fra
.me
.REG
[0] = once_value_1
;
11088 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11091 stack_frame_head
= fra
.me
.prev
;
11092 return fra
.me
.REG
[0];
11094 val_t
syntax___typing___AGtExpr___name(val_t p0
){
11095 struct {struct stack_frame_t me
;} fra
;
11098 static val_t once_value_1
; /* Once value */
11099 static val_t once_value_2
; /* Once value */
11100 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11101 fra
.me
.file
= LOCATE_syntax___typing
;
11102 fra
.me
.line
= 1770;
11103 fra
.me
.meth
= LOCATE_syntax___typing___AGtExpr___name
;
11104 fra
.me
.has_broke
= 0;
11105 fra
.me
.REG_size
= 1;
11106 fra
.me
.REG
[0] = NIT_NULL
;
11107 fra
.me
.REG
[0] = p0
;
11108 /* ./syntax//typing.nit:1770 */
11109 if (!once_value_1
) {
11110 if (!once_value_2
) {
11111 fra
.me
.REG
[0] = BOX_NativeString(">");
11112 REGB0
= TAG_Int(1);
11113 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11114 once_value_2
= fra
.me
.REG
[0];
11115 register_static_object(&once_value_2
);
11116 } else fra
.me
.REG
[0] = once_value_2
;
11117 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11118 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11119 once_value_1
= fra
.me
.REG
[0];
11120 register_static_object(&once_value_1
);
11121 } else fra
.me
.REG
[0] = once_value_1
;
11122 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11125 stack_frame_head
= fra
.me
.prev
;
11126 return fra
.me
.REG
[0];
11128 val_t
syntax___typing___AGeExpr___name(val_t p0
){
11129 struct {struct stack_frame_t me
;} fra
;
11132 static val_t once_value_1
; /* Once value */
11133 static val_t once_value_2
; /* Once value */
11134 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11135 fra
.me
.file
= LOCATE_syntax___typing
;
11136 fra
.me
.line
= 1773;
11137 fra
.me
.meth
= LOCATE_syntax___typing___AGeExpr___name
;
11138 fra
.me
.has_broke
= 0;
11139 fra
.me
.REG_size
= 1;
11140 fra
.me
.REG
[0] = NIT_NULL
;
11141 fra
.me
.REG
[0] = p0
;
11142 /* ./syntax//typing.nit:1773 */
11143 if (!once_value_1
) {
11144 if (!once_value_2
) {
11145 fra
.me
.REG
[0] = BOX_NativeString(">=");
11146 REGB0
= TAG_Int(2);
11147 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11148 once_value_2
= fra
.me
.REG
[0];
11149 register_static_object(&once_value_2
);
11150 } else fra
.me
.REG
[0] = once_value_2
;
11151 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11152 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11153 once_value_1
= fra
.me
.REG
[0];
11154 register_static_object(&once_value_1
);
11155 } else fra
.me
.REG
[0] = once_value_1
;
11156 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11159 stack_frame_head
= fra
.me
.prev
;
11160 return fra
.me
.REG
[0];
11162 val_t
syntax___typing___AGgExpr___name(val_t p0
){
11163 struct {struct stack_frame_t me
;} fra
;
11166 static val_t once_value_1
; /* Once value */
11167 static val_t once_value_2
; /* Once value */
11168 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11169 fra
.me
.file
= LOCATE_syntax___typing
;
11170 fra
.me
.line
= 1776;
11171 fra
.me
.meth
= LOCATE_syntax___typing___AGgExpr___name
;
11172 fra
.me
.has_broke
= 0;
11173 fra
.me
.REG_size
= 1;
11174 fra
.me
.REG
[0] = NIT_NULL
;
11175 fra
.me
.REG
[0] = p0
;
11176 /* ./syntax//typing.nit:1776 */
11177 if (!once_value_1
) {
11178 if (!once_value_2
) {
11179 fra
.me
.REG
[0] = BOX_NativeString(">>");
11180 REGB0
= TAG_Int(2);
11181 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11182 once_value_2
= fra
.me
.REG
[0];
11183 register_static_object(&once_value_2
);
11184 } else fra
.me
.REG
[0] = once_value_2
;
11185 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11186 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11187 once_value_1
= fra
.me
.REG
[0];
11188 register_static_object(&once_value_1
);
11189 } else fra
.me
.REG
[0] = once_value_1
;
11190 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11193 stack_frame_head
= fra
.me
.prev
;
11194 return fra
.me
.REG
[0];
11196 val_t
syntax___typing___APlusExpr___name(val_t p0
){
11197 struct {struct stack_frame_t me
;} fra
;
11200 static val_t once_value_1
; /* Once value */
11201 static val_t once_value_2
; /* Once value */
11202 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11203 fra
.me
.file
= LOCATE_syntax___typing
;
11204 fra
.me
.line
= 1779;
11205 fra
.me
.meth
= LOCATE_syntax___typing___APlusExpr___name
;
11206 fra
.me
.has_broke
= 0;
11207 fra
.me
.REG_size
= 1;
11208 fra
.me
.REG
[0] = NIT_NULL
;
11209 fra
.me
.REG
[0] = p0
;
11210 /* ./syntax//typing.nit:1779 */
11211 if (!once_value_1
) {
11212 if (!once_value_2
) {
11213 fra
.me
.REG
[0] = BOX_NativeString("+");
11214 REGB0
= TAG_Int(1);
11215 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11216 once_value_2
= fra
.me
.REG
[0];
11217 register_static_object(&once_value_2
);
11218 } else fra
.me
.REG
[0] = once_value_2
;
11219 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11220 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11221 once_value_1
= fra
.me
.REG
[0];
11222 register_static_object(&once_value_1
);
11223 } else fra
.me
.REG
[0] = once_value_1
;
11224 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11227 stack_frame_head
= fra
.me
.prev
;
11228 return fra
.me
.REG
[0];
11230 val_t
syntax___typing___AMinusExpr___name(val_t p0
){
11231 struct {struct stack_frame_t me
;} fra
;
11234 static val_t once_value_1
; /* Once value */
11235 static val_t once_value_2
; /* Once value */
11236 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11237 fra
.me
.file
= LOCATE_syntax___typing
;
11238 fra
.me
.line
= 1782;
11239 fra
.me
.meth
= LOCATE_syntax___typing___AMinusExpr___name
;
11240 fra
.me
.has_broke
= 0;
11241 fra
.me
.REG_size
= 1;
11242 fra
.me
.REG
[0] = NIT_NULL
;
11243 fra
.me
.REG
[0] = p0
;
11244 /* ./syntax//typing.nit:1782 */
11245 if (!once_value_1
) {
11246 if (!once_value_2
) {
11247 fra
.me
.REG
[0] = BOX_NativeString("-");
11248 REGB0
= TAG_Int(1);
11249 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11250 once_value_2
= fra
.me
.REG
[0];
11251 register_static_object(&once_value_2
);
11252 } else fra
.me
.REG
[0] = once_value_2
;
11253 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11254 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11255 once_value_1
= fra
.me
.REG
[0];
11256 register_static_object(&once_value_1
);
11257 } else fra
.me
.REG
[0] = once_value_1
;
11258 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11261 stack_frame_head
= fra
.me
.prev
;
11262 return fra
.me
.REG
[0];
11264 val_t
syntax___typing___AStarshipExpr___name(val_t p0
){
11265 struct {struct stack_frame_t me
;} fra
;
11268 static val_t once_value_1
; /* Once value */
11269 static val_t once_value_2
; /* Once value */
11270 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11271 fra
.me
.file
= LOCATE_syntax___typing
;
11272 fra
.me
.line
= 1785;
11273 fra
.me
.meth
= LOCATE_syntax___typing___AStarshipExpr___name
;
11274 fra
.me
.has_broke
= 0;
11275 fra
.me
.REG_size
= 1;
11276 fra
.me
.REG
[0] = NIT_NULL
;
11277 fra
.me
.REG
[0] = p0
;
11278 /* ./syntax//typing.nit:1785 */
11279 if (!once_value_1
) {
11280 if (!once_value_2
) {
11281 fra
.me
.REG
[0] = BOX_NativeString("<=>");
11282 REGB0
= TAG_Int(3);
11283 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11284 once_value_2
= fra
.me
.REG
[0];
11285 register_static_object(&once_value_2
);
11286 } else fra
.me
.REG
[0] = once_value_2
;
11287 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11288 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11289 once_value_1
= fra
.me
.REG
[0];
11290 register_static_object(&once_value_1
);
11291 } else fra
.me
.REG
[0] = once_value_1
;
11292 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11295 stack_frame_head
= fra
.me
.prev
;
11296 return fra
.me
.REG
[0];
11298 val_t
syntax___typing___AStarExpr___name(val_t p0
){
11299 struct {struct stack_frame_t me
;} fra
;
11302 static val_t once_value_1
; /* Once value */
11303 static val_t once_value_2
; /* Once value */
11304 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11305 fra
.me
.file
= LOCATE_syntax___typing
;
11306 fra
.me
.line
= 1788;
11307 fra
.me
.meth
= LOCATE_syntax___typing___AStarExpr___name
;
11308 fra
.me
.has_broke
= 0;
11309 fra
.me
.REG_size
= 1;
11310 fra
.me
.REG
[0] = NIT_NULL
;
11311 fra
.me
.REG
[0] = p0
;
11312 /* ./syntax//typing.nit:1788 */
11313 if (!once_value_1
) {
11314 if (!once_value_2
) {
11315 fra
.me
.REG
[0] = BOX_NativeString("*");
11316 REGB0
= TAG_Int(1);
11317 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11318 once_value_2
= fra
.me
.REG
[0];
11319 register_static_object(&once_value_2
);
11320 } else fra
.me
.REG
[0] = once_value_2
;
11321 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11322 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11323 once_value_1
= fra
.me
.REG
[0];
11324 register_static_object(&once_value_1
);
11325 } else fra
.me
.REG
[0] = once_value_1
;
11326 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11329 stack_frame_head
= fra
.me
.prev
;
11330 return fra
.me
.REG
[0];
11332 val_t
syntax___typing___ASlashExpr___name(val_t p0
){
11333 struct {struct stack_frame_t me
;} fra
;
11336 static val_t once_value_1
; /* Once value */
11337 static val_t once_value_2
; /* Once value */
11338 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11339 fra
.me
.file
= LOCATE_syntax___typing
;
11340 fra
.me
.line
= 1791;
11341 fra
.me
.meth
= LOCATE_syntax___typing___ASlashExpr___name
;
11342 fra
.me
.has_broke
= 0;
11343 fra
.me
.REG_size
= 1;
11344 fra
.me
.REG
[0] = NIT_NULL
;
11345 fra
.me
.REG
[0] = p0
;
11346 /* ./syntax//typing.nit:1791 */
11347 if (!once_value_1
) {
11348 if (!once_value_2
) {
11349 fra
.me
.REG
[0] = BOX_NativeString("/");
11350 REGB0
= TAG_Int(1);
11351 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11352 once_value_2
= fra
.me
.REG
[0];
11353 register_static_object(&once_value_2
);
11354 } else fra
.me
.REG
[0] = once_value_2
;
11355 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11356 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11357 once_value_1
= fra
.me
.REG
[0];
11358 register_static_object(&once_value_1
);
11359 } else fra
.me
.REG
[0] = once_value_1
;
11360 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11363 stack_frame_head
= fra
.me
.prev
;
11364 return fra
.me
.REG
[0];
11366 val_t
syntax___typing___APercentExpr___name(val_t p0
){
11367 struct {struct stack_frame_t me
;} fra
;
11370 static val_t once_value_1
; /* Once value */
11371 static val_t once_value_2
; /* Once value */
11372 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11373 fra
.me
.file
= LOCATE_syntax___typing
;
11374 fra
.me
.line
= 1794;
11375 fra
.me
.meth
= LOCATE_syntax___typing___APercentExpr___name
;
11376 fra
.me
.has_broke
= 0;
11377 fra
.me
.REG_size
= 1;
11378 fra
.me
.REG
[0] = NIT_NULL
;
11379 fra
.me
.REG
[0] = p0
;
11380 /* ./syntax//typing.nit:1794 */
11381 if (!once_value_1
) {
11382 if (!once_value_2
) {
11383 fra
.me
.REG
[0] = BOX_NativeString("%");
11384 REGB0
= TAG_Int(1);
11385 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11386 once_value_2
= fra
.me
.REG
[0];
11387 register_static_object(&once_value_2
);
11388 } else fra
.me
.REG
[0] = once_value_2
;
11389 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11390 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11391 once_value_1
= fra
.me
.REG
[0];
11392 register_static_object(&once_value_1
);
11393 } else fra
.me
.REG
[0] = once_value_1
;
11394 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11397 stack_frame_head
= fra
.me
.prev
;
11398 return fra
.me
.REG
[0];
11400 val_t
syntax___typing___AUminusExpr___name(val_t p0
){
11401 struct {struct stack_frame_t me
;} fra
;
11404 static val_t once_value_1
; /* Once value */
11405 static val_t once_value_2
; /* Once value */
11406 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11407 fra
.me
.file
= LOCATE_syntax___typing
;
11408 fra
.me
.line
= 1798;
11409 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___name
;
11410 fra
.me
.has_broke
= 0;
11411 fra
.me
.REG_size
= 1;
11412 fra
.me
.REG
[0] = NIT_NULL
;
11413 fra
.me
.REG
[0] = p0
;
11414 /* ./syntax//typing.nit:1798 */
11415 if (!once_value_1
) {
11416 if (!once_value_2
) {
11417 fra
.me
.REG
[0] = BOX_NativeString("unary -");
11418 REGB0
= TAG_Int(7);
11419 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11420 once_value_2
= fra
.me
.REG
[0];
11421 register_static_object(&once_value_2
);
11422 } else fra
.me
.REG
[0] = once_value_2
;
11423 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11424 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11425 once_value_1
= fra
.me
.REG
[0];
11426 register_static_object(&once_value_1
);
11427 } else fra
.me
.REG
[0] = once_value_1
;
11428 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11431 stack_frame_head
= fra
.me
.prev
;
11432 return fra
.me
.REG
[0];
11434 val_t
syntax___typing___AUminusExpr___compute_raw_arguments(val_t p0
){
11435 struct {struct stack_frame_t me
;} fra
;
11437 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11438 fra
.me
.file
= LOCATE_syntax___typing
;
11439 fra
.me
.line
= 1799;
11440 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments
;
11441 fra
.me
.has_broke
= 0;
11442 fra
.me
.REG_size
= 1;
11443 fra
.me
.REG
[0] = NIT_NULL
;
11444 fra
.me
.REG
[0] = p0
;
11445 /* ./syntax//typing.nit:1799 */
11446 fra
.me
.REG
[0] = NIT_NULL
;
11449 stack_frame_head
= fra
.me
.prev
;
11450 return fra
.me
.REG
[0];
11452 void syntax___typing___ACallFormExpr___after_typing(val_t p0
, val_t p1
){
11453 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
11457 static val_t once_value_1
; /* Once value */
11458 static val_t once_value_2
; /* Once value */
11459 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11460 fra
.me
.file
= LOCATE_syntax___typing
;
11461 fra
.me
.line
= 1803;
11462 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___after_typing
;
11463 fra
.me
.has_broke
= 0;
11464 fra
.me
.REG_size
= 9;
11465 fra
.me
.REG
[0] = NIT_NULL
;
11466 fra
.me
.REG
[1] = NIT_NULL
;
11467 fra
.me
.REG
[2] = NIT_NULL
;
11468 fra
.me
.REG
[3] = NIT_NULL
;
11469 fra
.me
.REG
[4] = NIT_NULL
;
11470 fra
.me
.REG
[5] = NIT_NULL
;
11471 fra
.me
.REG
[6] = NIT_NULL
;
11472 fra
.me
.REG
[7] = NIT_NULL
;
11473 fra
.me
.REG
[8] = NIT_NULL
;
11474 fra
.me
.REG
[0] = p0
;
11475 fra
.me
.REG
[1] = p1
;
11476 /* ./syntax//typing.nit:1803 */
11477 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11478 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11479 /* ./syntax//typing.nit:1805 */
11480 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11481 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11482 if (UNTAG_Bool(REGB0
)) {
11483 /* ./syntax//typing.nit:1806 */
11484 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11485 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11486 /* ./syntax//typing.nit:1807 */
11487 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11488 fra
.me
.REG
[5] = CALL_syntax___scope___ScopeContext_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
11489 /* ./syntax//typing.nit:1808 */
11490 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
11491 if (UNTAG_Bool(REGB0
)) {
11493 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
11494 if (UNTAG_Bool(REGB1
)) {
11495 REGB1
= TAG_Bool(false);
11498 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
11502 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11503 if (UNTAG_Bool(REGB0
)) {
11504 /* ./syntax//typing.nit:1810 */
11505 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*/;
11506 if (UNTAG_Bool(REGB0
)) {
11507 /* ./syntax//typing.nit:1811 */
11508 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11509 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11510 fra
.me
.REG
[8] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11511 fra
.me
.REG
[8] = NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
11512 /* ./syntax//typing.nit:1812 */
11513 ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
11515 /* ./syntax//typing.nit:1814 */
11516 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11517 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
11518 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11519 if (UNTAG_Bool(REGB0
)) {
11520 /* ./syntax//typing.nit:1815 */
11521 REGB0
= TAG_Int(3);
11522 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11523 if (!once_value_1
) {
11524 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
11525 REGB0
= TAG_Int(7);
11526 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
11527 once_value_1
= fra
.me
.REG
[6];
11528 register_static_object(&once_value_1
);
11529 } else fra
.me
.REG
[6] = once_value_1
;
11530 fra
.me
.REG
[6] = fra
.me
.REG
[6];
11531 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
11532 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
11533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
11534 if (!once_value_2
) {
11535 fra
.me
.REG
[4] = BOX_NativeString(" is variable, not a function.");
11536 REGB0
= TAG_Int(29);
11537 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
11538 once_value_2
= fra
.me
.REG
[4];
11539 register_static_object(&once_value_2
);
11540 } else fra
.me
.REG
[4] = once_value_2
;
11541 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
11543 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
11544 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
11545 /* ./syntax//typing.nit:1816 */
11548 /* ./syntax//typing.nit:1818 */
11549 fra
.me
.REG
[7] = CALL_syntax___typing___ACallFormExpr___variable_create(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
11550 fra
.me
.REG
[8] = fra
.me
.REG
[7];
11551 /* ./syntax//typing.nit:1819 */
11552 ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
11554 /* ./syntax//typing.nit:1821 */
11555 CALL_parser___parser_prod___ANode___replace_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
11556 /* ./syntax//typing.nit:1822 */
11557 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
11558 /* ./syntax//typing.nit:1823 */
11562 /* ./syntax//typing.nit:1827 */
11563 CALL_SUPER_syntax___typing___ACallFormExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11565 stack_frame_head
= fra
.me
.prev
;
11568 val_t
syntax___typing___ACallFormExpr___closure_defs(val_t p0
){
11569 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11572 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11573 fra
.me
.file
= LOCATE_syntax___typing
;
11574 fra
.me
.line
= 1830;
11575 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___closure_defs
;
11576 fra
.me
.has_broke
= 0;
11577 fra
.me
.REG_size
= 2;
11578 fra
.me
.REG
[0] = NIT_NULL
;
11579 fra
.me
.REG
[1] = NIT_NULL
;
11580 fra
.me
.REG
[0] = p0
;
11581 /* ./syntax//typing.nit:1832 */
11582 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11583 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11584 if (UNTAG_Bool(REGB0
)) {
11585 /* ./syntax//typing.nit:1833 */
11586 fra
.me
.REG
[1] = NIT_NULL
;
11589 /* ./syntax//typing.nit:1835 */
11590 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11591 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11592 fra
.me
.REG
[1] = fra
.me
.REG
[0];
11596 stack_frame_head
= fra
.me
.prev
;
11597 return fra
.me
.REG
[1];
11599 val_t
syntax___typing___ACallFormExpr___variable_create(val_t p0
, val_t p1
){
11600 struct {struct stack_frame_t me
;} fra
;
11602 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11603 fra
.me
.file
= LOCATE_syntax___typing
;
11604 fra
.me
.line
= 1839;
11605 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___variable_create
;
11606 fra
.me
.has_broke
= 0;
11607 fra
.me
.REG_size
= 0;
11608 /* ./syntax//typing.nit:1839 */
11609 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1839);
11610 stack_frame_head
= fra
.me
.prev
;
11613 val_t
syntax___typing___ACallExpr___variable_create(val_t p0
, val_t p1
){
11614 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11616 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11617 fra
.me
.file
= LOCATE_syntax___typing
;
11618 fra
.me
.line
= 1844;
11619 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___variable_create
;
11620 fra
.me
.has_broke
= 0;
11621 fra
.me
.REG_size
= 2;
11622 fra
.me
.REG
[0] = NIT_NULL
;
11623 fra
.me
.REG
[1] = NIT_NULL
;
11624 fra
.me
.REG
[0] = p0
;
11625 fra
.me
.REG
[1] = p1
;
11626 /* ./syntax//typing.nit:1846 */
11627 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11628 fra
.me
.REG
[0] = NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(fra
.me
.REG
[0]);
11631 stack_frame_head
= fra
.me
.prev
;
11632 return fra
.me
.REG
[0];
11634 val_t
syntax___typing___ACallExpr___name(val_t p0
){
11635 struct {struct stack_frame_t me
;} fra
;
11637 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11638 fra
.me
.file
= LOCATE_syntax___typing
;
11639 fra
.me
.line
= 1849;
11640 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___name
;
11641 fra
.me
.has_broke
= 0;
11642 fra
.me
.REG_size
= 1;
11643 fra
.me
.REG
[0] = NIT_NULL
;
11644 fra
.me
.REG
[0] = p0
;
11645 /* ./syntax//typing.nit:1849 */
11646 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11647 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11650 stack_frame_head
= fra
.me
.prev
;
11651 return fra
.me
.REG
[0];
11653 val_t
syntax___typing___ACallExpr___compute_raw_arguments(val_t p0
){
11654 struct {struct stack_frame_t me
;} fra
;
11656 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11657 fra
.me
.file
= LOCATE_syntax___typing
;
11658 fra
.me
.line
= 1850;
11659 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___compute_raw_arguments
;
11660 fra
.me
.has_broke
= 0;
11661 fra
.me
.REG_size
= 1;
11662 fra
.me
.REG
[0] = NIT_NULL
;
11663 fra
.me
.REG
[0] = p0
;
11664 /* ./syntax//typing.nit:1850 */
11665 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11666 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11669 stack_frame_head
= fra
.me
.prev
;
11670 return fra
.me
.REG
[0];
11672 val_t
syntax___typing___ACallAssignExpr___variable_create(val_t p0
, val_t p1
){
11673 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
11675 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11676 fra
.me
.file
= LOCATE_syntax___typing
;
11677 fra
.me
.line
= 1854;
11678 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___variable_create
;
11679 fra
.me
.has_broke
= 0;
11680 fra
.me
.REG_size
= 3;
11681 fra
.me
.REG
[0] = NIT_NULL
;
11682 fra
.me
.REG
[1] = NIT_NULL
;
11683 fra
.me
.REG
[2] = NIT_NULL
;
11684 fra
.me
.REG
[0] = p0
;
11685 fra
.me
.REG
[1] = p1
;
11686 /* ./syntax//typing.nit:1856 */
11687 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11688 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_assign(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11689 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11690 fra
.me
.REG
[0] = NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
11693 stack_frame_head
= fra
.me
.prev
;
11694 return fra
.me
.REG
[0];
11696 val_t
syntax___typing___ACallAssignExpr___name(val_t p0
){
11697 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11700 static val_t once_value_1
; /* Once value */
11701 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11702 fra
.me
.file
= LOCATE_syntax___typing
;
11703 fra
.me
.line
= 1859;
11704 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___name
;
11705 fra
.me
.has_broke
= 0;
11706 fra
.me
.REG_size
= 2;
11707 fra
.me
.REG
[0] = NIT_NULL
;
11708 fra
.me
.REG
[1] = NIT_NULL
;
11709 fra
.me
.REG
[0] = p0
;
11710 /* ./syntax//typing.nit:1859 */
11711 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11712 fra
.me
.REG
[0] = CALL_parser___lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11713 if (!once_value_1
) {
11714 fra
.me
.REG
[1] = BOX_NativeString("=");
11715 REGB0
= TAG_Int(1);
11716 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11717 once_value_1
= fra
.me
.REG
[1];
11718 register_static_object(&once_value_1
);
11719 } else fra
.me
.REG
[1] = once_value_1
;
11720 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11721 fra
.me
.REG
[1] = CALL_standard___string___String_____plus(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11722 fra
.me
.REG
[1] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11725 stack_frame_head
= fra
.me
.prev
;
11726 return fra
.me
.REG
[1];
11728 val_t
syntax___typing___ACallAssignExpr___compute_raw_arguments(val_t p0
){
11729 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11731 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11732 fra
.me
.file
= LOCATE_syntax___typing
;
11733 fra
.me
.line
= 1860;
11734 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments
;
11735 fra
.me
.has_broke
= 0;
11736 fra
.me
.REG_size
= 2;
11737 fra
.me
.REG
[0] = NIT_NULL
;
11738 fra
.me
.REG
[1] = NIT_NULL
;
11739 fra
.me
.REG
[0] = p0
;
11740 /* ./syntax//typing.nit:1861 */
11741 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11742 fra
.me
.REG
[1] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11743 /* ./syntax//typing.nit:1862 */
11744 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11745 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11746 /* ./syntax//typing.nit:1863 */
11749 stack_frame_head
= fra
.me
.prev
;
11750 return fra
.me
.REG
[1];
11752 val_t
syntax___typing___ACallReassignExpr___variable_create(val_t p0
, val_t p1
){
11753 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
11755 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11756 fra
.me
.file
= LOCATE_syntax___typing
;
11757 fra
.me
.line
= 1868;
11758 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___variable_create
;
11759 fra
.me
.has_broke
= 0;
11760 fra
.me
.REG_size
= 3;
11761 fra
.me
.REG
[0] = NIT_NULL
;
11762 fra
.me
.REG
[1] = NIT_NULL
;
11763 fra
.me
.REG
[2] = NIT_NULL
;
11764 fra
.me
.REG
[0] = p0
;
11765 fra
.me
.REG
[1] = p1
;
11766 /* ./syntax//typing.nit:1870 */
11767 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11768 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11769 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11770 fra
.me
.REG
[0] = NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
11773 stack_frame_head
= fra
.me
.prev
;
11774 return fra
.me
.REG
[0];
11776 val_t
syntax___typing___ACallReassignExpr___name(val_t p0
){
11777 struct {struct stack_frame_t me
;} fra
;
11779 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11780 fra
.me
.file
= LOCATE_syntax___typing
;
11781 fra
.me
.line
= 1873;
11782 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___name
;
11783 fra
.me
.has_broke
= 0;
11784 fra
.me
.REG_size
= 1;
11785 fra
.me
.REG
[0] = NIT_NULL
;
11786 fra
.me
.REG
[0] = p0
;
11787 /* ./syntax//typing.nit:1873 */
11788 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11789 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11792 stack_frame_head
= fra
.me
.prev
;
11793 return fra
.me
.REG
[0];
11795 val_t
syntax___typing___ACallReassignExpr___compute_raw_arguments(val_t p0
){
11796 struct {struct stack_frame_t me
;} fra
;
11798 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11799 fra
.me
.file
= LOCATE_syntax___typing
;
11800 fra
.me
.line
= 1874;
11801 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments
;
11802 fra
.me
.has_broke
= 0;
11803 fra
.me
.REG_size
= 1;
11804 fra
.me
.REG
[0] = NIT_NULL
;
11805 fra
.me
.REG
[0] = p0
;
11806 /* ./syntax//typing.nit:1874 */
11807 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11808 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11811 stack_frame_head
= fra
.me
.prev
;
11812 return fra
.me
.REG
[0];
11814 val_t
syntax___typing___ABraExpr___name(val_t p0
){
11815 struct {struct stack_frame_t me
;} fra
;
11818 static val_t once_value_1
; /* Once value */
11819 static val_t once_value_2
; /* Once value */
11820 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11821 fra
.me
.file
= LOCATE_syntax___typing
;
11822 fra
.me
.line
= 1878;
11823 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___name
;
11824 fra
.me
.has_broke
= 0;
11825 fra
.me
.REG_size
= 1;
11826 fra
.me
.REG
[0] = NIT_NULL
;
11827 fra
.me
.REG
[0] = p0
;
11828 /* ./syntax//typing.nit:1878 */
11829 if (!once_value_1
) {
11830 if (!once_value_2
) {
11831 fra
.me
.REG
[0] = BOX_NativeString("[]");
11832 REGB0
= TAG_Int(2);
11833 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11834 once_value_2
= fra
.me
.REG
[0];
11835 register_static_object(&once_value_2
);
11836 } else fra
.me
.REG
[0] = once_value_2
;
11837 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11838 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11839 once_value_1
= fra
.me
.REG
[0];
11840 register_static_object(&once_value_1
);
11841 } else fra
.me
.REG
[0] = once_value_1
;
11842 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11845 stack_frame_head
= fra
.me
.prev
;
11846 return fra
.me
.REG
[0];
11848 val_t
syntax___typing___ABraExpr___compute_raw_arguments(val_t p0
){
11849 struct {struct stack_frame_t me
;} fra
;
11851 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11852 fra
.me
.file
= LOCATE_syntax___typing
;
11853 fra
.me
.line
= 1879;
11854 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___compute_raw_arguments
;
11855 fra
.me
.has_broke
= 0;
11856 fra
.me
.REG_size
= 1;
11857 fra
.me
.REG
[0] = NIT_NULL
;
11858 fra
.me
.REG
[0] = p0
;
11859 /* ./syntax//typing.nit:1879 */
11860 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11861 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11864 stack_frame_head
= fra
.me
.prev
;
11865 return fra
.me
.REG
[0];
11867 val_t
syntax___typing___ABraExpr___closure_defs(val_t p0
){
11868 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11871 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11872 fra
.me
.file
= LOCATE_syntax___typing
;
11873 fra
.me
.line
= 1880;
11874 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___closure_defs
;
11875 fra
.me
.has_broke
= 0;
11876 fra
.me
.REG_size
= 2;
11877 fra
.me
.REG
[0] = NIT_NULL
;
11878 fra
.me
.REG
[1] = NIT_NULL
;
11879 fra
.me
.REG
[0] = p0
;
11880 /* ./syntax//typing.nit:1882 */
11881 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11882 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11883 if (UNTAG_Bool(REGB0
)) {
11884 /* ./syntax//typing.nit:1883 */
11885 fra
.me
.REG
[1] = NIT_NULL
;
11888 /* ./syntax//typing.nit:1885 */
11889 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11890 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11891 fra
.me
.REG
[1] = fra
.me
.REG
[0];
11895 stack_frame_head
= fra
.me
.prev
;
11896 return fra
.me
.REG
[1];
11898 val_t
syntax___typing___ABraAssignExpr___name(val_t p0
){
11899 struct {struct stack_frame_t me
;} fra
;
11902 static val_t once_value_1
; /* Once value */
11903 static val_t once_value_2
; /* Once value */
11904 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11905 fra
.me
.file
= LOCATE_syntax___typing
;
11906 fra
.me
.line
= 1891;
11907 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___name
;
11908 fra
.me
.has_broke
= 0;
11909 fra
.me
.REG_size
= 1;
11910 fra
.me
.REG
[0] = NIT_NULL
;
11911 fra
.me
.REG
[0] = p0
;
11912 /* ./syntax//typing.nit:1891 */
11913 if (!once_value_1
) {
11914 if (!once_value_2
) {
11915 fra
.me
.REG
[0] = BOX_NativeString("[]=");
11916 REGB0
= TAG_Int(3);
11917 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11918 once_value_2
= fra
.me
.REG
[0];
11919 register_static_object(&once_value_2
);
11920 } else fra
.me
.REG
[0] = once_value_2
;
11921 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11922 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11923 once_value_1
= fra
.me
.REG
[0];
11924 register_static_object(&once_value_1
);
11925 } else fra
.me
.REG
[0] = once_value_1
;
11926 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11929 stack_frame_head
= fra
.me
.prev
;
11930 return fra
.me
.REG
[0];
11932 val_t
syntax___typing___ABraAssignExpr___compute_raw_arguments(val_t p0
){
11933 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11935 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11936 fra
.me
.file
= LOCATE_syntax___typing
;
11937 fra
.me
.line
= 1892;
11938 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments
;
11939 fra
.me
.has_broke
= 0;
11940 fra
.me
.REG_size
= 2;
11941 fra
.me
.REG
[0] = NIT_NULL
;
11942 fra
.me
.REG
[1] = NIT_NULL
;
11943 fra
.me
.REG
[0] = p0
;
11944 /* ./syntax//typing.nit:1893 */
11945 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11946 fra
.me
.REG
[1] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11947 /* ./syntax//typing.nit:1894 */
11948 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11949 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11950 /* ./syntax//typing.nit:1895 */
11953 stack_frame_head
= fra
.me
.prev
;
11954 return fra
.me
.REG
[1];
11956 val_t
syntax___typing___ABraReassignExpr___name(val_t p0
){
11957 struct {struct stack_frame_t me
;} fra
;
11960 static val_t once_value_1
; /* Once value */
11961 static val_t once_value_2
; /* Once value */
11962 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11963 fra
.me
.file
= LOCATE_syntax___typing
;
11964 fra
.me
.line
= 1900;
11965 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___name
;
11966 fra
.me
.has_broke
= 0;
11967 fra
.me
.REG_size
= 1;
11968 fra
.me
.REG
[0] = NIT_NULL
;
11969 fra
.me
.REG
[0] = p0
;
11970 /* ./syntax//typing.nit:1900 */
11971 if (!once_value_1
) {
11972 if (!once_value_2
) {
11973 fra
.me
.REG
[0] = BOX_NativeString("[]");
11974 REGB0
= TAG_Int(2);
11975 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11976 once_value_2
= fra
.me
.REG
[0];
11977 register_static_object(&once_value_2
);
11978 } else fra
.me
.REG
[0] = once_value_2
;
11979 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11980 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11981 once_value_1
= fra
.me
.REG
[0];
11982 register_static_object(&once_value_1
);
11983 } else fra
.me
.REG
[0] = once_value_1
;
11984 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11987 stack_frame_head
= fra
.me
.prev
;
11988 return fra
.me
.REG
[0];
11990 val_t
syntax___typing___ABraReassignExpr___compute_raw_arguments(val_t p0
){
11991 struct {struct stack_frame_t me
;} fra
;
11993 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11994 fra
.me
.file
= LOCATE_syntax___typing
;
11995 fra
.me
.line
= 1901;
11996 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments
;
11997 fra
.me
.has_broke
= 0;
11998 fra
.me
.REG_size
= 1;
11999 fra
.me
.REG
[0] = NIT_NULL
;
12000 fra
.me
.REG
[0] = p0
;
12001 /* ./syntax//typing.nit:1901 */
12002 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12003 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12006 stack_frame_head
= fra
.me
.prev
;
12007 return fra
.me
.REG
[0];
12009 val_t
syntax___typing___AInitExpr___name(val_t p0
){
12010 struct {struct stack_frame_t me
;} fra
;
12013 static val_t once_value_1
; /* Once value */
12014 static val_t once_value_2
; /* Once value */
12015 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12016 fra
.me
.file
= LOCATE_syntax___typing
;
12017 fra
.me
.line
= 1905;
12018 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___name
;
12019 fra
.me
.has_broke
= 0;
12020 fra
.me
.REG_size
= 1;
12021 fra
.me
.REG
[0] = NIT_NULL
;
12022 fra
.me
.REG
[0] = p0
;
12023 /* ./syntax//typing.nit:1905 */
12024 if (!once_value_1
) {
12025 if (!once_value_2
) {
12026 fra
.me
.REG
[0] = BOX_NativeString("init");
12027 REGB0
= TAG_Int(4);
12028 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12029 once_value_2
= fra
.me
.REG
[0];
12030 register_static_object(&once_value_2
);
12031 } else fra
.me
.REG
[0] = once_value_2
;
12032 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12033 fra
.me
.REG
[0] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12034 once_value_1
= fra
.me
.REG
[0];
12035 register_static_object(&once_value_1
);
12036 } else fra
.me
.REG
[0] = once_value_1
;
12037 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12040 stack_frame_head
= fra
.me
.prev
;
12041 return fra
.me
.REG
[0];
12043 val_t
syntax___typing___AInitExpr___compute_raw_arguments(val_t p0
){
12044 struct {struct stack_frame_t me
;} fra
;
12046 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12047 fra
.me
.file
= LOCATE_syntax___typing
;
12048 fra
.me
.line
= 1906;
12049 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___compute_raw_arguments
;
12050 fra
.me
.has_broke
= 0;
12051 fra
.me
.REG_size
= 1;
12052 fra
.me
.REG
[0] = NIT_NULL
;
12053 fra
.me
.REG
[0] = p0
;
12054 /* ./syntax//typing.nit:1906 */
12055 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12056 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12059 stack_frame_head
= fra
.me
.prev
;
12060 return fra
.me
.REG
[0];
12062 val_t
syntax___typing___AClosureCallExpr___variable(val_t p0
){
12063 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12066 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12067 fra
.me
.file
= LOCATE_syntax___typing
;
12068 fra
.me
.line
= 1911;
12069 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___variable
;
12070 fra
.me
.has_broke
= 0;
12071 fra
.me
.REG_size
= 2;
12072 fra
.me
.REG
[0] = NIT_NULL
;
12073 fra
.me
.REG
[1] = NIT_NULL
;
12074 fra
.me
.REG
[0] = p0
;
12075 /* ./syntax//typing.nit:1911 */
12076 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12077 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[1]);
12078 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12079 if (UNTAG_Bool(REGB0
)) {
12081 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1911);
12085 stack_frame_head
= fra
.me
.prev
;
12086 return fra
.me
.REG
[1];
12088 val_t
syntax___typing___AClosureCallExpr___compute_raw_arguments(val_t p0
){
12089 struct {struct stack_frame_t me
;} fra
;
12091 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12092 fra
.me
.file
= LOCATE_syntax___typing
;
12093 fra
.me
.line
= 1912;
12094 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments
;
12095 fra
.me
.has_broke
= 0;
12096 fra
.me
.REG_size
= 1;
12097 fra
.me
.REG
[0] = NIT_NULL
;
12098 fra
.me
.REG
[0] = p0
;
12099 /* ./syntax//typing.nit:1912 */
12100 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AClosureCallExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12101 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12104 stack_frame_head
= fra
.me
.prev
;
12105 return fra
.me
.REG
[0];
12107 void syntax___typing___AClosureCallExpr___after_typing(val_t p0
, val_t p1
){
12108 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12112 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12113 fra
.me
.file
= LOCATE_syntax___typing
;
12114 fra
.me
.line
= 1914;
12115 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___after_typing
;
12116 fra
.me
.has_broke
= 0;
12117 fra
.me
.REG_size
= 5;
12118 fra
.me
.REG
[0] = NIT_NULL
;
12119 fra
.me
.REG
[1] = NIT_NULL
;
12120 fra
.me
.REG
[2] = NIT_NULL
;
12121 fra
.me
.REG
[3] = NIT_NULL
;
12122 fra
.me
.REG
[4] = NIT_NULL
;
12123 fra
.me
.REG
[0] = p0
;
12124 fra
.me
.REG
[1] = p1
;
12125 /* ./syntax//typing.nit:1916 */
12126 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12127 /* ./syntax//typing.nit:1917 */
12128 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12129 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12130 if (UNTAG_Bool(REGB0
)) {
12131 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12133 /* ./syntax//typing.nit:1918 */
12134 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12135 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12136 /* ./syntax//typing.nit:1919 */
12137 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12138 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12139 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12140 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]);
12141 /* ./syntax//typing.nit:1920 */
12142 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12143 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12144 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
12145 if (UNTAG_Bool(REGB1
)) {
12146 /* ./syntax//typing.nit:1921 */
12147 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12148 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12149 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12150 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12151 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]);
12153 /* ./syntax//typing.nit:1923 */
12154 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12155 if (UNTAG_Bool(REGB0
)) {
12158 /* ./syntax//typing.nit:1924 */
12159 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12160 /* ./syntax//typing.nit:1925 */
12161 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12162 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12163 /* ./syntax//typing.nit:1926 */
12164 REGB0
= TAG_Bool(true);
12165 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12167 stack_frame_head
= fra
.me
.prev
;
12170 val_t
syntax___typing___AClosureId___to_symbol(val_t p0
){
12171 struct {struct stack_frame_t me
;} fra
;
12173 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12174 fra
.me
.file
= LOCATE_syntax___typing
;
12175 fra
.me
.line
= 1931;
12176 fra
.me
.meth
= LOCATE_syntax___typing___AClosureId___to_symbol
;
12177 fra
.me
.has_broke
= 0;
12178 fra
.me
.REG_size
= 0;
12179 /* ./syntax//typing.nit:1931 */
12180 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1931);
12181 stack_frame_head
= fra
.me
.prev
;
12184 val_t
syntax___typing___ASimpleClosureId___to_symbol(val_t p0
){
12185 struct {struct stack_frame_t me
;} fra
;
12187 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12188 fra
.me
.file
= LOCATE_syntax___typing
;
12189 fra
.me
.line
= 1934;
12190 fra
.me
.meth
= LOCATE_syntax___typing___ASimpleClosureId___to_symbol
;
12191 fra
.me
.has_broke
= 0;
12192 fra
.me
.REG_size
= 1;
12193 fra
.me
.REG
[0] = NIT_NULL
;
12194 fra
.me
.REG
[0] = p0
;
12195 /* ./syntax//typing.nit:1934 */
12196 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASimpleClosureId___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12197 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12200 stack_frame_head
= fra
.me
.prev
;
12201 return fra
.me
.REG
[0];
12203 val_t
syntax___typing___ABreakClosureId___to_symbol(val_t p0
){
12204 struct {struct stack_frame_t me
;} fra
;
12206 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12207 fra
.me
.file
= LOCATE_syntax___typing
;
12208 fra
.me
.line
= 1937;
12209 fra
.me
.meth
= LOCATE_syntax___typing___ABreakClosureId___to_symbol
;
12210 fra
.me
.has_broke
= 0;
12211 fra
.me
.REG_size
= 1;
12212 fra
.me
.REG
[0] = NIT_NULL
;
12213 fra
.me
.REG
[0] = p0
;
12214 /* ./syntax//typing.nit:1937 */
12215 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12216 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12219 stack_frame_head
= fra
.me
.prev
;
12220 return fra
.me
.REG
[0];
12222 val_t
syntax___typing___AClosureDef___closure(val_t p0
){
12223 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12226 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12227 fra
.me
.file
= LOCATE_syntax___typing
;
12228 fra
.me
.line
= 1942;
12229 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___closure
;
12230 fra
.me
.has_broke
= 0;
12231 fra
.me
.REG_size
= 2;
12232 fra
.me
.REG
[0] = NIT_NULL
;
12233 fra
.me
.REG
[1] = NIT_NULL
;
12234 fra
.me
.REG
[0] = p0
;
12235 /* ./syntax//typing.nit:1942 */
12236 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12237 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[1]);
12238 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12239 if (UNTAG_Bool(REGB0
)) {
12241 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1942);
12245 stack_frame_head
= fra
.me
.prev
;
12246 return fra
.me
.REG
[1];
12248 val_t
syntax___typing___AClosureDef___escapable(val_t p0
){
12249 struct {struct stack_frame_t me
;} fra
;
12251 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12252 fra
.me
.file
= LOCATE_syntax___typing
;
12253 fra
.me
.line
= 1944;
12254 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___escapable
;
12255 fra
.me
.has_broke
= 0;
12256 fra
.me
.REG_size
= 1;
12257 fra
.me
.REG
[0] = NIT_NULL
;
12258 fra
.me
.REG
[0] = p0
;
12259 /* ./syntax//typing.nit:1944 */
12260 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]);
12261 stack_frame_head
= fra
.me
.prev
;
12262 return fra
.me
.REG
[0];
12264 void syntax___typing___AClosureDef___accept_typing(val_t p0
, val_t p1
){
12265 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12268 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12269 fra
.me
.file
= LOCATE_syntax___typing
;
12270 fra
.me
.line
= 1948;
12271 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing
;
12272 fra
.me
.has_broke
= 0;
12273 fra
.me
.REG_size
= 3;
12274 fra
.me
.REG
[0] = NIT_NULL
;
12275 fra
.me
.REG
[1] = NIT_NULL
;
12276 fra
.me
.REG
[2] = NIT_NULL
;
12277 fra
.me
.REG
[0] = p0
;
12278 fra
.me
.REG
[1] = p1
;
12279 /* ./syntax//typing.nit:1948 */
12280 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12281 /* ./syntax//typing.nit:1951 */
12282 REGB0
= TAG_Bool(ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2])!=NIT_NULL
);
12283 if (UNTAG_Bool(REGB0
)) {
12285 nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_syntax___typing
, 1951);
12287 REGB0
= ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2]);
12288 if (UNTAG_Bool(REGB0
)) {
12289 CALL_SUPER_syntax___typing___AClosureDef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12291 stack_frame_head
= fra
.me
.prev
;
12294 void syntax___typing___AClosureDef___accept_typing2(val_t p0
, val_t p1
, val_t p2
){
12295 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
12301 static val_t once_value_1
; /* Once value */
12302 static val_t once_value_2
; /* Once value */
12303 static val_t once_value_3
; /* Once value */
12304 static val_t once_value_6
; /* Once value */
12305 static val_t once_value_7
; /* Once value */
12306 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12307 fra
.me
.file
= LOCATE_syntax___typing
;
12308 fra
.me
.line
= 1954;
12309 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing2
;
12310 fra
.me
.has_broke
= 0;
12311 fra
.me
.REG_size
= 8;
12312 fra
.me
.REG
[0] = NIT_NULL
;
12313 fra
.me
.REG
[1] = NIT_NULL
;
12314 fra
.me
.REG
[2] = NIT_NULL
;
12315 fra
.me
.REG
[3] = NIT_NULL
;
12316 fra
.me
.REG
[4] = NIT_NULL
;
12317 fra
.me
.REG
[5] = NIT_NULL
;
12318 fra
.me
.REG
[6] = NIT_NULL
;
12319 fra
.me
.REG
[7] = NIT_NULL
;
12320 fra
.me
.REG
[0] = p0
;
12321 fra
.me
.REG
[1] = p1
;
12322 fra
.me
.REG
[2] = p2
;
12323 /* ./syntax//typing.nit:1956 */
12324 ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12325 /* ./syntax//typing.nit:1958 */
12326 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12327 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12328 /* ./syntax//typing.nit:1959 */
12329 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12330 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12331 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12332 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
12333 if (UNTAG_Bool(REGB2
)) {
12335 /* ./../lib/standard//kernel.nit:227 */
12336 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
12337 /* ./syntax//typing.nit:1959 */
12340 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
12341 if (UNTAG_Bool(REGB2
)) {
12342 /* ./syntax//typing.nit:1960 */
12343 REGB2
= TAG_Int(5);
12344 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
12345 if (!once_value_1
) {
12346 fra
.me
.REG
[5] = BOX_NativeString("Error: ");
12347 REGB2
= TAG_Int(7);
12348 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12349 once_value_1
= fra
.me
.REG
[5];
12350 register_static_object(&once_value_1
);
12351 } else fra
.me
.REG
[5] = once_value_1
;
12352 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12354 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12355 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
12356 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12357 if (!once_value_2
) {
12358 fra
.me
.REG
[5] = BOX_NativeString(" automatic variable names expected, ");
12359 REGB2
= TAG_Int(36);
12360 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12361 once_value_2
= fra
.me
.REG
[5];
12362 register_static_object(&once_value_2
);
12363 } else fra
.me
.REG
[5] = once_value_2
;
12364 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12365 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12366 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12367 REGB2
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
12368 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
12369 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12370 if (!once_value_3
) {
12371 fra
.me
.REG
[5] = BOX_NativeString(" found.");
12372 REGB2
= TAG_Int(7);
12373 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12374 once_value_3
= fra
.me
.REG
[5];
12375 register_static_object(&once_value_3
);
12376 } else fra
.me
.REG
[5] = once_value_3
;
12377 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12378 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12379 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12380 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12381 /* ./syntax//typing.nit:1961 */
12384 /* ./syntax//typing.nit:1964 */
12385 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12386 ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12387 /* ./syntax//typing.nit:1966 */
12388 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12389 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
12390 /* ./syntax//typing.nit:1967 */
12391 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12392 /* ./syntax//typing.nit:1968 */
12393 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12394 /* ./syntax//typing.nit:1969 */
12395 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12396 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
12397 /* ./syntax//typing.nit:1970 */
12398 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
12399 CALL_syntax___syntax_base___AClosureDef___variables__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
12400 /* ./syntax//typing.nit:1971 */
12401 REGB2
= TAG_Int(0);
12402 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12403 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
12404 /* ./../lib/standard//kernel.nit:352 */
12406 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
12407 if (UNTAG_Bool(REGB0
)) {
12409 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
12411 /* ./../lib/standard//kernel.nit:232 */
12412 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
12413 /* ./../lib/standard//kernel.nit:352 */
12414 if (UNTAG_Bool(REGB0
)) {
12415 /* ./syntax//typing.nit:1971 */
12417 /* ./syntax//typing.nit:1972 */
12418 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12419 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
12420 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
12421 if (UNTAG_Bool(REGB3
)) {
12422 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1972);
12424 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
12425 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12426 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
12427 fra
.me
.REG
[7] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12428 /* ./syntax//typing.nit:1973 */
12429 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12430 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
12431 if (UNTAG_Bool(REGB3
)) {
12432 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1973);
12434 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12435 /* ./syntax//typing.nit:1974 */
12436 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
12437 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
12438 /* ./syntax//typing.nit:1975 */
12439 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12440 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
12441 /* ./../lib/standard//kernel.nit:354 */
12442 REGB0
= TAG_Int(1);
12443 /* ./../lib/standard//kernel.nit:235 */
12444 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
12445 /* ./../lib/standard//kernel.nit:354 */
12448 /* ./../lib/standard//kernel.nit:352 */
12453 /* ./syntax//typing.nit:1978 */
12454 REGB2
= TAG_Bool(true);
12455 ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[0]) = REGB2
;
12456 /* ./syntax//typing.nit:1979 */
12457 CALL_syntax___typing___ANode___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12458 /* ./syntax//typing.nit:1981 */
12459 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12460 REGB2
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12461 REGB1
= TAG_Bool(false);
12462 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
12463 if (UNTAG_Bool(REGB0
)) {
12465 /* ./../lib/standard//kernel.nit:195 */
12466 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
12467 /* ./syntax//typing.nit:1981 */
12470 if (UNTAG_Bool(REGB0
)) {
12471 /* ./syntax//typing.nit:1982 */
12472 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12473 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12474 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12475 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12476 if (UNTAG_Bool(REGB0
)) {
12478 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12479 if (UNTAG_Bool(REGB1
)) {
12480 REGB1
= TAG_Bool(false);
12483 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12487 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12488 if (UNTAG_Bool(REGB0
)) {
12489 /* ./syntax//typing.nit:1983 */
12490 if (!once_value_6
) {
12491 fra
.me
.REG
[3] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
12492 REGB0
= TAG_Int(77);
12493 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12494 once_value_6
= fra
.me
.REG
[3];
12495 register_static_object(&once_value_6
);
12496 } else fra
.me
.REG
[3] = once_value_6
;
12497 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12498 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12500 /* ./syntax//typing.nit:1984 */
12501 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12502 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12503 if (UNTAG_Bool(REGB0
)) {
12504 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12505 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
12506 if (UNTAG_Bool(REGB0
)) {
12508 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
12509 if (UNTAG_Bool(REGB1
)) {
12510 REGB1
= TAG_Bool(false);
12513 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
12517 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12519 REGB1
= TAG_Bool(false);
12522 if (UNTAG_Bool(REGB0
)) {
12523 /* ./syntax//typing.nit:1985 */
12524 if (!once_value_7
) {
12525 fra
.me
.REG
[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
12526 REGB0
= TAG_Int(80);
12527 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
12528 once_value_7
= fra
.me
.REG
[2];
12529 register_static_object(&once_value_7
);
12530 } else fra
.me
.REG
[2] = once_value_7
;
12531 fra
.me
.REG
[2] = fra
.me
.REG
[2];
12532 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
12536 /* ./syntax//typing.nit:1988 */
12537 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
12538 /* ./syntax//typing.nit:1989 */
12539 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
12540 /* ./syntax//typing.nit:1990 */
12541 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12542 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12544 stack_frame_head
= fra
.me
.prev
;
12547 void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
12548 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
12552 static val_t once_value_2
; /* Once value */
12553 static val_t once_value_3
; /* Once value */
12554 static val_t once_value_4
; /* Once value */
12555 static val_t once_value_5
; /* Once value */
12556 static val_t once_value_6
; /* Once value */
12557 static val_t once_value_7
; /* Once value */
12558 static val_t once_value_8
; /* Once value */
12559 static val_t once_value_9
; /* Once value */
12560 static val_t once_value_10
; /* Once value */
12561 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12562 fra
.me
.file
= LOCATE_syntax___typing
;
12563 fra
.me
.line
= 1996;
12564 fra
.me
.meth
= LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast
;
12565 fra
.me
.has_broke
= 0;
12566 fra
.me
.REG_size
= 6;
12567 fra
.me
.REG
[0] = NIT_NULL
;
12568 fra
.me
.REG
[1] = NIT_NULL
;
12569 fra
.me
.REG
[2] = NIT_NULL
;
12570 fra
.me
.REG
[3] = NIT_NULL
;
12571 fra
.me
.REG
[4] = NIT_NULL
;
12572 fra
.me
.REG
[5] = NIT_NULL
;
12573 fra
.me
.REG
[0] = p0
;
12574 fra
.me
.REG
[1] = p1
;
12575 fra
.me
.REG
[2] = p2
;
12576 fra
.me
.REG
[3] = p3
;
12577 /* ./syntax//typing.nit:1998 */
12578 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
12579 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12580 if (UNTAG_Bool(REGB0
)) {
12583 /* ./syntax//typing.nit:1999 */
12584 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12585 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12586 if (UNTAG_Bool(REGB0
)) {
12589 /* ./syntax//typing.nit:2000 */
12590 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12591 /* ./syntax//typing.nit:2001 */
12592 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12593 /* ./syntax//typing.nit:2002 */
12594 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
12595 if (UNTAG_Bool(REGB0
)) {
12597 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
12600 if (UNTAG_Bool(REGB0
)) {
12601 /* ./syntax//typing.nit:2003 */
12602 REGB0
= TAG_Int(3);
12603 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12604 if (!once_value_2
) {
12605 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
12606 REGB0
= TAG_Int(33);
12607 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12608 once_value_2
= fra
.me
.REG
[5];
12609 register_static_object(&once_value_2
);
12610 } else fra
.me
.REG
[5] = once_value_2
;
12611 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12612 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12613 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12614 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12615 if (!once_value_3
) {
12616 fra
.me
.REG
[5] = BOX_NativeString(".");
12617 REGB0
= TAG_Int(1);
12618 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12619 once_value_3
= fra
.me
.REG
[5];
12620 register_static_object(&once_value_3
);
12621 } else fra
.me
.REG
[5] = once_value_3
;
12622 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12623 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12624 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12625 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12627 /* ./syntax//typing.nit:2004 */
12628 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
12629 if (UNTAG_Bool(REGB0
)) {
12630 /* ./syntax//typing.nit:2005 */
12631 REGB0
= TAG_Int(5);
12632 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12633 if (!once_value_4
) {
12634 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
12635 REGB0
= TAG_Int(33);
12636 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12637 once_value_4
= fra
.me
.REG
[5];
12638 register_static_object(&once_value_4
);
12639 } else fra
.me
.REG
[5] = once_value_4
;
12640 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12641 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12642 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12643 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12644 if (!once_value_5
) {
12645 fra
.me
.REG
[5] = BOX_NativeString(" since it is a ");
12646 REGB0
= TAG_Int(15);
12647 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12648 once_value_5
= fra
.me
.REG
[5];
12649 register_static_object(&once_value_5
);
12650 } else fra
.me
.REG
[5] = once_value_5
;
12651 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12652 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12653 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12654 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12655 if (!once_value_6
) {
12656 fra
.me
.REG
[5] = BOX_NativeString(".");
12657 REGB0
= TAG_Int(1);
12658 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12659 once_value_6
= fra
.me
.REG
[5];
12660 register_static_object(&once_value_6
);
12661 } else fra
.me
.REG
[5] = once_value_6
;
12662 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12663 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12664 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12665 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12667 /* ./syntax//typing.nit:2006 */
12668 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
12669 if (UNTAG_Bool(REGB0
)) {
12670 /* ./syntax//typing.nit:2008 */
12671 REGB0
= TAG_Int(3);
12672 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12673 if (!once_value_7
) {
12674 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is null therefore cannot be a ");
12675 REGB0
= TAG_Int(50);
12676 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12677 once_value_7
= fra
.me
.REG
[5];
12678 register_static_object(&once_value_7
);
12679 } else fra
.me
.REG
[5] = once_value_7
;
12680 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12681 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12682 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12683 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12684 if (!once_value_8
) {
12685 fra
.me
.REG
[5] = BOX_NativeString(".");
12686 REGB0
= TAG_Int(1);
12687 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
12688 once_value_8
= fra
.me
.REG
[5];
12689 register_static_object(&once_value_8
);
12690 } else fra
.me
.REG
[5] = once_value_8
;
12691 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12692 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12693 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12694 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12696 /* ./syntax//typing.nit:2009 */
12697 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12698 if (UNTAG_Bool(REGB0
)) {
12699 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12700 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
12701 if (UNTAG_Bool(REGB0
)) {
12703 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
12707 REGB1
= TAG_Bool(false);
12710 if (UNTAG_Bool(REGB0
)) {
12711 /* ./syntax//typing.nit:2010 */
12712 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___type_formal___MMTypeFormal
, ID_metamodel___type_formal___MMTypeFormal
)) /*cast MMTypeFormal*/;
12713 if (UNTAG_Bool(REGB0
)) {
12714 fra
.me
.REG
[3] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12715 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12717 REGB1
= TAG_Bool(false);
12720 if (UNTAG_Bool(REGB0
)) {
12722 /* ./syntax//typing.nit:2016 */
12723 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AIsaExpr
, ID_parser___parser_nodes___AIsaExpr
)) /*cast AIsaExpr*/;
12724 if (UNTAG_Bool(REGB0
)) {
12725 /* ./syntax//typing.nit:2017 */
12726 if (!once_value_9
) {
12727 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '!= null'.");
12728 REGB0
= TAG_Int(26);
12729 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12730 once_value_9
= fra
.me
.REG
[3];
12731 register_static_object(&once_value_9
);
12732 } else fra
.me
.REG
[3] = once_value_9
;
12733 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12734 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12736 /* ./syntax//typing.nit:2019 */
12737 if (!once_value_10
) {
12738 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
12739 REGB0
= TAG_Int(32);
12740 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
12741 once_value_10
= fra
.me
.REG
[3];
12742 register_static_object(&once_value_10
);
12743 } else fra
.me
.REG
[3] = once_value_10
;
12744 fra
.me
.REG
[3] = fra
.me
.REG
[3];
12745 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
12753 stack_frame_head
= fra
.me
.prev
;
12756 void syntax___typing___AIsaExpr___after_typing(val_t p0
, val_t p1
){
12757 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12761 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12762 fra
.me
.file
= LOCATE_syntax___typing
;
12763 fra
.me
.line
= 2027;
12764 fra
.me
.meth
= LOCATE_syntax___typing___AIsaExpr___after_typing
;
12765 fra
.me
.has_broke
= 0;
12766 fra
.me
.REG_size
= 5;
12767 fra
.me
.REG
[0] = NIT_NULL
;
12768 fra
.me
.REG
[1] = NIT_NULL
;
12769 fra
.me
.REG
[2] = NIT_NULL
;
12770 fra
.me
.REG
[3] = NIT_NULL
;
12771 fra
.me
.REG
[4] = NIT_NULL
;
12772 fra
.me
.REG
[0] = p0
;
12773 fra
.me
.REG
[1] = p1
;
12774 /* ./syntax//typing.nit:2029 */
12775 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12776 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12777 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]);
12778 /* ./syntax//typing.nit:2030 */
12779 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12780 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12781 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12782 if (UNTAG_Bool(REGB0
)) {
12785 /* ./syntax//typing.nit:2031 */
12786 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12787 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12788 /* ./syntax//typing.nit:2032 */
12789 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12790 if (UNTAG_Bool(REGB0
)) {
12792 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12793 if (UNTAG_Bool(REGB1
)) {
12794 REGB1
= TAG_Bool(false);
12797 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12801 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12802 if (UNTAG_Bool(REGB0
)) {
12803 /* ./syntax//typing.nit:2033 */
12804 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12805 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12806 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12807 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]);
12808 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12810 /* ./syntax//typing.nit:2035 */
12811 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12812 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
12813 /* ./syntax//typing.nit:2036 */
12814 REGB0
= TAG_Bool(true);
12815 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12817 stack_frame_head
= fra
.me
.prev
;
12820 void syntax___typing___AAsCastExpr___after_typing(val_t p0
, val_t p1
){
12821 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
12825 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12826 fra
.me
.file
= LOCATE_syntax___typing
;
12827 fra
.me
.line
= 2042;
12828 fra
.me
.meth
= LOCATE_syntax___typing___AAsCastExpr___after_typing
;
12829 fra
.me
.has_broke
= 0;
12830 fra
.me
.REG_size
= 4;
12831 fra
.me
.REG
[0] = NIT_NULL
;
12832 fra
.me
.REG
[1] = NIT_NULL
;
12833 fra
.me
.REG
[2] = NIT_NULL
;
12834 fra
.me
.REG
[3] = NIT_NULL
;
12835 fra
.me
.REG
[0] = p0
;
12836 fra
.me
.REG
[1] = p1
;
12837 /* ./syntax//typing.nit:2044 */
12838 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12839 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12840 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]);
12841 /* ./syntax//typing.nit:2045 */
12842 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12843 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12844 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12845 if (UNTAG_Bool(REGB0
)) {
12848 /* ./syntax//typing.nit:2046 */
12849 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12850 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12851 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
12852 /* ./syntax//typing.nit:2047 */
12853 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
12854 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12855 if (UNTAG_Bool(REGB0
)) {
12857 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
12858 if (UNTAG_Bool(REGB1
)) {
12859 REGB1
= TAG_Bool(false);
12862 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
12866 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12867 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12869 stack_frame_head
= fra
.me
.prev
;
12872 void syntax___typing___AAsNotnullExpr___after_typing(val_t p0
, val_t p1
){
12873 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12876 static val_t once_value_2
; /* Once value */
12877 static val_t once_value_3
; /* Once value */
12878 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12879 fra
.me
.file
= LOCATE_syntax___typing
;
12880 fra
.me
.line
= 2052;
12881 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotnullExpr___after_typing
;
12882 fra
.me
.has_broke
= 0;
12883 fra
.me
.REG_size
= 5;
12884 fra
.me
.REG
[0] = NIT_NULL
;
12885 fra
.me
.REG
[1] = NIT_NULL
;
12886 fra
.me
.REG
[2] = NIT_NULL
;
12887 fra
.me
.REG
[3] = NIT_NULL
;
12888 fra
.me
.REG
[4] = NIT_NULL
;
12889 fra
.me
.REG
[0] = p0
;
12890 fra
.me
.REG
[1] = p1
;
12891 /* ./syntax//typing.nit:2054 */
12892 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12893 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
12894 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12895 if (UNTAG_Bool(REGB0
)) {
12898 /* ./syntax//typing.nit:2055 */
12899 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12900 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12901 /* ./syntax//typing.nit:2056 */
12902 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
12903 if (UNTAG_Bool(REGB0
)) {
12904 /* ./syntax//typing.nit:2057 */
12905 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12906 if (!once_value_2
) {
12907 fra
.me
.REG
[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
12908 REGB0
= TAG_Int(43);
12909 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
12910 once_value_2
= fra
.me
.REG
[4];
12911 register_static_object(&once_value_2
);
12912 } else fra
.me
.REG
[4] = once_value_2
;
12913 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12914 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
12915 /* ./syntax//typing.nit:2058 */
12918 /* ./syntax//typing.nit:2059 */
12919 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12920 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12921 if (UNTAG_Bool(REGB0
)) {
12922 /* ./syntax//typing.nit:2060 */
12923 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12924 if (!once_value_3
) {
12925 fra
.me
.REG
[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
12926 REGB0
= TAG_Int(45);
12927 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
12928 once_value_3
= fra
.me
.REG
[4];
12929 register_static_object(&once_value_3
);
12930 } else fra
.me
.REG
[4] = once_value_3
;
12931 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12932 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
12935 /* ./syntax//typing.nit:2062 */
12936 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12937 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12938 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12939 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12940 /* ./syntax//typing.nit:2063 */
12941 REGB0
= TAG_Bool(true);
12942 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12944 stack_frame_head
= fra
.me
.prev
;
12947 void syntax___typing___AProxyExpr___after_typing(val_t p0
, val_t p1
){
12948 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12951 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12952 fra
.me
.file
= LOCATE_syntax___typing
;
12953 fra
.me
.line
= 2068;
12954 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___after_typing
;
12955 fra
.me
.has_broke
= 0;
12956 fra
.me
.REG_size
= 2;
12957 fra
.me
.REG
[0] = NIT_NULL
;
12958 fra
.me
.REG
[1] = NIT_NULL
;
12959 fra
.me
.REG
[0] = p0
;
12960 fra
.me
.REG
[1] = p1
;
12961 /* ./syntax//typing.nit:2070 */
12962 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12963 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12964 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12965 if (UNTAG_Bool(REGB0
)) {
12968 /* ./syntax//typing.nit:2071 */
12969 REGB0
= TAG_Bool(true);
12970 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12971 /* ./syntax//typing.nit:2072 */
12972 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12973 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12974 if (UNTAG_Bool(REGB0
)) {
12977 /* ./syntax//typing.nit:2073 */
12978 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12979 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12980 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
12982 stack_frame_head
= fra
.me
.prev
;
12985 void syntax___typing___AOnceExpr___accept_typing(val_t p0
, val_t p1
){
12986 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12991 static val_t once_value_1
; /* Once value */
12992 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12993 fra
.me
.file
= LOCATE_syntax___typing
;
12994 fra
.me
.line
= 2078;
12995 fra
.me
.meth
= LOCATE_syntax___typing___AOnceExpr___accept_typing
;
12996 fra
.me
.has_broke
= 0;
12997 fra
.me
.REG_size
= 5;
12998 fra
.me
.REG
[0] = NIT_NULL
;
12999 fra
.me
.REG
[1] = NIT_NULL
;
13000 fra
.me
.REG
[2] = NIT_NULL
;
13001 fra
.me
.REG
[3] = NIT_NULL
;
13002 fra
.me
.REG
[4] = NIT_NULL
;
13003 fra
.me
.REG
[0] = p0
;
13004 fra
.me
.REG
[1] = p1
;
13005 /* ./syntax//typing.nit:2078 */
13006 fra
.me
.REG
[2] = fra
.me
.REG
[0];
13007 fra
.me
.REG
[3] = fra
.me
.REG
[1];
13008 /* ./syntax//typing.nit:2080 */
13009 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13010 REGB1
= TAG_Int(0);
13011 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
13012 if (UNTAG_Bool(REGB2
)) {
13014 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
13016 /* ./../lib/standard//kernel.nit:234 */
13017 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
13018 /* ./syntax//typing.nit:2080 */
13019 if (UNTAG_Bool(REGB1
)) {
13020 /* ./syntax//typing.nit:2081 */
13021 if (!once_value_1
) {
13022 fra
.me
.REG
[4] = BOX_NativeString("Useless once in a once expression.");
13023 REGB1
= TAG_Int(34);
13024 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
13025 once_value_1
= fra
.me
.REG
[4];
13026 register_static_object(&once_value_1
);
13027 } else fra
.me
.REG
[4] = once_value_1
;
13028 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13029 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
13031 /* ./syntax//typing.nit:2083 */
13032 REGB1
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13033 REGB0
= TAG_Int(1);
13034 /* ./../lib/standard//kernel.nit:235 */
13035 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
13036 /* ./syntax//typing.nit:2083 */
13037 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13038 /* ./syntax//typing.nit:2085 */
13039 CALL_SUPER_syntax___typing___AOnceExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
13040 /* ./syntax//typing.nit:2087 */
13041 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13042 REGB1
= TAG_Int(1);
13043 /* ./../lib/standard//kernel.nit:237 */
13044 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
13045 /* ./syntax//typing.nit:2087 */
13046 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
13047 stack_frame_head
= fra
.me
.prev
;