1 /* This C file is generated by NIT to compile module syntax___typing. */
2 #include "syntax___typing._sep.h"
3 static const char LOCATE_syntax___typing___MMSrcModule___do_typing
[] = "typing::MMSrcModule::do_typing";
4 void syntax___typing___MMSrcModule___do_typing(val_t p0
, val_t p1
){
5 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8 fra
.me
.file
= LOCATE_syntax___typing
;
10 fra
.me
.meth
= LOCATE_syntax___typing___MMSrcModule___do_typing
;
13 fra
.me
.nitni_local_ref_head
= NULL
;
14 fra
.me
.REG
[0] = NIT_NULL
;
15 fra
.me
.REG
[1] = NIT_NULL
;
18 /* syntax/typing.nit:29 */
19 fra
.me
.REG
[1] = NEW_TypingVisitor_syntax___typing___TypingVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
20 /* syntax/typing.nit:30 */
21 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMSrcModule___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
22 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
23 stack_frame_head
= fra
.me
.prev
;
26 static const char LOCATE_syntax___typing___TypingVisitor___visit
[] = "typing::TypingVisitor::(parser_nodes::Visitor::visit)";
27 void syntax___typing___TypingVisitor___visit(val_t p0
, val_t p1
){
28 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
30 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
31 fra
.me
.file
= LOCATE_syntax___typing
;
33 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___visit
;
36 fra
.me
.nitni_local_ref_head
= NULL
;
37 fra
.me
.REG
[0] = NIT_NULL
;
38 fra
.me
.REG
[1] = NIT_NULL
;
41 /* syntax/typing.nit:43 */
42 CALL_syntax___typing___ANode___accept_typing(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
43 stack_frame_head
= fra
.me
.prev
;
46 static const char LOCATE_syntax___typing___TypingVisitor___scope_ctx
[] = "typing::TypingVisitor::scope_ctx";
47 val_t
syntax___typing___TypingVisitor___scope_ctx(val_t p0
){
48 struct {struct stack_frame_t me
;} fra
;
51 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
52 fra
.me
.file
= LOCATE_syntax___typing
;
54 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___scope_ctx
;
57 fra
.me
.nitni_local_ref_head
= NULL
;
58 fra
.me
.REG
[0] = NIT_NULL
;
60 /* syntax/typing.nit:46 */
61 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____scope_ctx(fra
.me
.REG
[0])!=NIT_NULL
);
62 if (UNTAG_Bool(REGB0
)) {
64 nit_abort("Uninitialized attribute %s", "_scope_ctx", LOCATE_syntax___typing
, 46);
66 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____scope_ctx(fra
.me
.REG
[0]);
67 stack_frame_head
= fra
.me
.prev
;
70 static const char LOCATE_syntax___typing___TypingVisitor___flow_ctx
[] = "typing::TypingVisitor::flow_ctx";
71 val_t
syntax___typing___TypingVisitor___flow_ctx(val_t p0
){
72 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
75 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
76 fra
.me
.file
= LOCATE_syntax___typing
;
78 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___flow_ctx
;
81 fra
.me
.nitni_local_ref_head
= NULL
;
82 fra
.me
.REG
[0] = NIT_NULL
;
83 fra
.me
.REG
[1] = NIT_NULL
;
85 /* syntax/typing.nit:49 */
86 fra
.me
.REG
[1] = fra
.me
.REG
[0];
87 /* syntax/typing.nit:50 */
88 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____flow_ctx(fra
.me
.REG
[1]);
89 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
90 if (UNTAG_Bool(REGB0
)) {
92 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 50);
96 stack_frame_head
= fra
.me
.prev
;
99 static const char LOCATE_syntax___typing___TypingVisitor___flow_ctx__eq
[] = "typing::TypingVisitor::flow_ctx=";
100 void syntax___typing___TypingVisitor___flow_ctx__eq(val_t p0
, val_t p1
){
101 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
103 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
104 fra
.me
.file
= LOCATE_syntax___typing
;
106 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___flow_ctx__eq
;
107 fra
.me
.has_broke
= 0;
109 fra
.me
.nitni_local_ref_head
= NULL
;
110 fra
.me
.REG
[0] = NIT_NULL
;
111 fra
.me
.REG
[1] = NIT_NULL
;
114 /* syntax/typing.nit:51 */
115 ATTR_syntax___typing___TypingVisitor____flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
116 stack_frame_head
= fra
.me
.prev
;
119 static const char LOCATE_syntax___typing___TypingVisitor___mark_is_set
[] = "typing::TypingVisitor::mark_is_set";
120 void syntax___typing___TypingVisitor___mark_is_set(val_t p0
, val_t p1
){
121 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
124 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
125 fra
.me
.file
= LOCATE_syntax___typing
;
127 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___mark_is_set
;
128 fra
.me
.has_broke
= 0;
130 fra
.me
.nitni_local_ref_head
= NULL
;
131 fra
.me
.REG
[0] = NIT_NULL
;
132 fra
.me
.REG
[1] = NIT_NULL
;
133 fra
.me
.REG
[2] = NIT_NULL
;
136 /* syntax/typing.nit:56 */
137 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
138 REGB0
= CALL_syntax___flow___FlowContext___is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
139 if (UNTAG_Bool(REGB0
)) {
142 /* syntax/typing.nit:57 */
143 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
144 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_setvariable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
145 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
147 stack_frame_head
= fra
.me
.prev
;
150 static const char LOCATE_syntax___typing___TypingVisitor___mark_unreash
[] = "typing::TypingVisitor::mark_unreash";
151 void syntax___typing___TypingVisitor___mark_unreash(val_t p0
, val_t p1
){
152 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
154 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
155 fra
.me
.file
= LOCATE_syntax___typing
;
157 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___mark_unreash
;
158 fra
.me
.has_broke
= 0;
160 fra
.me
.nitni_local_ref_head
= NULL
;
161 fra
.me
.REG
[0] = NIT_NULL
;
162 fra
.me
.REG
[1] = NIT_NULL
;
163 fra
.me
.REG
[2] = NIT_NULL
;
166 /* syntax/typing.nit:63 */
167 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
168 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_unreash(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
169 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
170 stack_frame_head
= fra
.me
.prev
;
173 static const char LOCATE_syntax___typing___TypingVisitor___enter_visit_block
[] = "typing::TypingVisitor::enter_visit_block";
174 void syntax___typing___TypingVisitor___enter_visit_block(val_t p0
, val_t p1
){
175 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
179 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
180 fra
.me
.file
= LOCATE_syntax___typing
;
182 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___enter_visit_block
;
183 fra
.me
.has_broke
= 0;
185 fra
.me
.nitni_local_ref_head
= NULL
;
186 fra
.me
.REG
[0] = NIT_NULL
;
187 fra
.me
.REG
[1] = NIT_NULL
;
188 fra
.me
.REG
[2] = NIT_NULL
;
191 /* syntax/typing.nit:69 */
192 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
193 if (UNTAG_Bool(REGB0
)) {
195 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
196 if (UNTAG_Bool(REGB1
)) {
200 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
204 if (UNTAG_Bool(REGB0
)) {
207 /* syntax/typing.nit:70 */
208 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
209 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
210 /* syntax/typing.nit:71 */
211 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
212 /* syntax/typing.nit:72 */
213 fra
.me
.REG
[0] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
214 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
216 stack_frame_head
= fra
.me
.prev
;
219 static const char LOCATE_syntax___typing___TypingVisitor___base_flow_ctx
[] = "typing::TypingVisitor::base_flow_ctx";
220 val_t
syntax___typing___TypingVisitor___base_flow_ctx(val_t p0
){
221 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
224 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
225 fra
.me
.file
= LOCATE_syntax___typing
;
227 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___base_flow_ctx
;
228 fra
.me
.has_broke
= 0;
230 fra
.me
.nitni_local_ref_head
= NULL
;
231 fra
.me
.REG
[0] = NIT_NULL
;
232 fra
.me
.REG
[1] = NIT_NULL
;
234 /* syntax/typing.nit:75 */
235 fra
.me
.REG
[1] = fra
.me
.REG
[0];
236 /* syntax/typing.nit:76 */
237 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra
.me
.REG
[1]);
238 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
239 if (UNTAG_Bool(REGB0
)) {
241 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 76);
245 stack_frame_head
= fra
.me
.prev
;
246 return fra
.me
.REG
[1];
248 static const char LOCATE_syntax___typing___TypingVisitor___base_flow_ctx__eq
[] = "typing::TypingVisitor::base_flow_ctx=";
249 void syntax___typing___TypingVisitor___base_flow_ctx__eq(val_t p0
, val_t p1
){
250 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
252 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
253 fra
.me
.file
= LOCATE_syntax___typing
;
255 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___base_flow_ctx__eq
;
256 fra
.me
.has_broke
= 0;
258 fra
.me
.nitni_local_ref_head
= NULL
;
259 fra
.me
.REG
[0] = NIT_NULL
;
260 fra
.me
.REG
[1] = NIT_NULL
;
263 /* syntax/typing.nit:77 */
264 ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
265 stack_frame_head
= fra
.me
.prev
;
268 static const char LOCATE_syntax___typing___TypingVisitor___self_var
[] = "typing::TypingVisitor::self_var";
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
.nitni_local_ref_head
= NULL
;
280 fra
.me
.REG
[0] = NIT_NULL
;
281 fra
.me
.REG
[1] = NIT_NULL
;
283 /* syntax/typing.nit:79 */
284 fra
.me
.REG
[1] = fra
.me
.REG
[0];
285 /* syntax/typing.nit:80 */
286 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____self_var(fra
.me
.REG
[1]);
287 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
288 if (UNTAG_Bool(REGB0
)) {
290 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 80);
294 stack_frame_head
= fra
.me
.prev
;
295 return fra
.me
.REG
[1];
297 static const char LOCATE_syntax___typing___TypingVisitor___self_var__eq
[] = "typing::TypingVisitor::self_var=";
298 void syntax___typing___TypingVisitor___self_var__eq(val_t p0
, val_t p1
){
299 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
301 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
302 fra
.me
.file
= LOCATE_syntax___typing
;
304 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___self_var__eq
;
305 fra
.me
.has_broke
= 0;
307 fra
.me
.nitni_local_ref_head
= NULL
;
308 fra
.me
.REG
[0] = NIT_NULL
;
309 fra
.me
.REG
[1] = NIT_NULL
;
312 /* syntax/typing.nit:81 */
313 ATTR_syntax___typing___TypingVisitor____self_var(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
314 stack_frame_head
= fra
.me
.prev
;
317 static const char LOCATE_syntax___typing___TypingVisitor___top_block
[] = "typing::TypingVisitor::top_block";
318 val_t
syntax___typing___TypingVisitor___top_block(val_t p0
){
319 struct {struct stack_frame_t me
;} fra
;
321 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
322 fra
.me
.file
= LOCATE_syntax___typing
;
324 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___top_block
;
325 fra
.me
.has_broke
= 0;
327 fra
.me
.nitni_local_ref_head
= NULL
;
328 fra
.me
.REG
[0] = NIT_NULL
;
330 /* syntax/typing.nit:83 */
331 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____top_block(fra
.me
.REG
[0]);
332 stack_frame_head
= fra
.me
.prev
;
333 return fra
.me
.REG
[0];
335 static const char LOCATE_syntax___typing___TypingVisitor___top_block__eq
[] = "typing::TypingVisitor::top_block=";
336 void syntax___typing___TypingVisitor___top_block__eq(val_t p0
, val_t p1
){
337 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
339 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
340 fra
.me
.file
= LOCATE_syntax___typing
;
342 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___top_block__eq
;
343 fra
.me
.has_broke
= 0;
345 fra
.me
.nitni_local_ref_head
= NULL
;
346 fra
.me
.REG
[0] = NIT_NULL
;
347 fra
.me
.REG
[1] = NIT_NULL
;
350 /* syntax/typing.nit:83 */
351 ATTR_syntax___typing___TypingVisitor____top_block(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
352 stack_frame_head
= fra
.me
.prev
;
355 static const char LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls
[] = "typing::TypingVisitor::explicit_super_init_calls";
356 val_t
syntax___typing___TypingVisitor___explicit_super_init_calls(val_t p0
){
357 struct {struct stack_frame_t me
;} fra
;
359 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
360 fra
.me
.file
= LOCATE_syntax___typing
;
362 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls
;
363 fra
.me
.has_broke
= 0;
365 fra
.me
.nitni_local_ref_head
= NULL
;
366 fra
.me
.REG
[0] = NIT_NULL
;
368 /* syntax/typing.nit:86 */
369 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]);
370 stack_frame_head
= fra
.me
.prev
;
371 return fra
.me
.REG
[0];
373 static const char LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls__eq
[] = "typing::TypingVisitor::explicit_super_init_calls=";
374 void syntax___typing___TypingVisitor___explicit_super_init_calls__eq(val_t p0
, val_t p1
){
375 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
377 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
378 fra
.me
.file
= LOCATE_syntax___typing
;
380 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls__eq
;
381 fra
.me
.has_broke
= 0;
383 fra
.me
.nitni_local_ref_head
= NULL
;
384 fra
.me
.REG
[0] = NIT_NULL
;
385 fra
.me
.REG
[1] = NIT_NULL
;
388 /* syntax/typing.nit:86 */
389 ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
390 stack_frame_head
= fra
.me
.prev
;
393 static const char LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call
[] = "typing::TypingVisitor::explicit_other_init_call";
394 val_t
syntax___typing___TypingVisitor___explicit_other_init_call(val_t p0
){
395 struct {struct stack_frame_t me
;} fra
;
398 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
399 fra
.me
.file
= LOCATE_syntax___typing
;
401 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call
;
402 fra
.me
.has_broke
= 0;
404 fra
.me
.nitni_local_ref_head
= NULL
;
405 fra
.me
.REG
[0] = NIT_NULL
;
407 /* syntax/typing.nit:89 */
408 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0])!=NIT_NULL
);
409 if (UNTAG_Bool(REGB0
)) {
411 nit_abort("Uninitialized attribute %s", "_explicit_other_init_call", LOCATE_syntax___typing
, 89);
413 REGB0
= ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]);
414 stack_frame_head
= fra
.me
.prev
;
417 static const char LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call__eq
[] = "typing::TypingVisitor::explicit_other_init_call=";
418 void syntax___typing___TypingVisitor___explicit_other_init_call__eq(val_t p0
, val_t p1
){
419 struct {struct stack_frame_t me
;} fra
;
422 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
423 fra
.me
.file
= LOCATE_syntax___typing
;
425 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call__eq
;
426 fra
.me
.has_broke
= 0;
428 fra
.me
.nitni_local_ref_head
= NULL
;
429 fra
.me
.REG
[0] = NIT_NULL
;
432 /* syntax/typing.nit:89 */
433 ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]) = REGB0
;
434 stack_frame_head
= fra
.me
.prev
;
437 static const char LOCATE_syntax___typing___TypingVisitor___use_if_true_flow_ctx
[] = "typing::TypingVisitor::use_if_true_flow_ctx";
438 void syntax___typing___TypingVisitor___use_if_true_flow_ctx(val_t p0
, val_t p1
){
439 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
443 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
444 fra
.me
.file
= LOCATE_syntax___typing
;
446 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___use_if_true_flow_ctx
;
447 fra
.me
.has_broke
= 0;
449 fra
.me
.nitni_local_ref_head
= NULL
;
450 fra
.me
.REG
[0] = NIT_NULL
;
451 fra
.me
.REG
[1] = NIT_NULL
;
454 /* syntax/typing.nit:95 */
455 fra
.me
.REG
[1] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
456 /* syntax/typing.nit:96 */
457 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
458 if (UNTAG_Bool(REGB0
)) {
460 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
461 if (UNTAG_Bool(REGB1
)) {
465 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
469 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
470 if (UNTAG_Bool(REGB0
)) {
471 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
473 stack_frame_head
= fra
.me
.prev
;
476 static const char LOCATE_syntax___typing___TypingVisitor___use_if_false_flow_ctx
[] = "typing::TypingVisitor::use_if_false_flow_ctx";
477 void syntax___typing___TypingVisitor___use_if_false_flow_ctx(val_t p0
, val_t p1
){
478 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
482 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
483 fra
.me
.file
= LOCATE_syntax___typing
;
485 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___use_if_false_flow_ctx
;
486 fra
.me
.has_broke
= 0;
488 fra
.me
.nitni_local_ref_head
= NULL
;
489 fra
.me
.REG
[0] = NIT_NULL
;
490 fra
.me
.REG
[1] = NIT_NULL
;
493 /* syntax/typing.nit:102 */
494 fra
.me
.REG
[1] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
495 /* syntax/typing.nit:103 */
496 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
497 if (UNTAG_Bool(REGB0
)) {
499 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
500 if (UNTAG_Bool(REGB1
)) {
504 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
508 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
509 if (UNTAG_Bool(REGB0
)) {
510 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
512 stack_frame_head
= fra
.me
.prev
;
515 static const char LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition
[] = "typing::TypingVisitor::is_default_closure_definition";
516 val_t
syntax___typing___TypingVisitor___is_default_closure_definition(val_t p0
){
517 struct {struct stack_frame_t me
;} fra
;
520 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
521 fra
.me
.file
= LOCATE_syntax___typing
;
523 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition
;
524 fra
.me
.has_broke
= 0;
526 fra
.me
.nitni_local_ref_head
= NULL
;
527 fra
.me
.REG
[0] = NIT_NULL
;
529 /* syntax/typing.nit:106 */
530 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0])!=NIT_NULL
);
531 if (UNTAG_Bool(REGB0
)) {
533 nit_abort("Uninitialized attribute %s", "_is_default_closure_definition", LOCATE_syntax___typing
, 106);
535 REGB0
= ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]);
536 stack_frame_head
= fra
.me
.prev
;
539 static const char LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition__eq
[] = "typing::TypingVisitor::is_default_closure_definition=";
540 void syntax___typing___TypingVisitor___is_default_closure_definition__eq(val_t p0
, val_t p1
){
541 struct {struct stack_frame_t me
;} fra
;
544 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
545 fra
.me
.file
= LOCATE_syntax___typing
;
547 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition__eq
;
548 fra
.me
.has_broke
= 0;
550 fra
.me
.nitni_local_ref_head
= NULL
;
551 fra
.me
.REG
[0] = NIT_NULL
;
554 /* syntax/typing.nit:106 */
555 ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]) = REGB0
;
556 stack_frame_head
= fra
.me
.prev
;
559 static const char LOCATE_syntax___typing___TypingVisitor___once_count
[] = "typing::TypingVisitor::once_count";
560 val_t
syntax___typing___TypingVisitor___once_count(val_t p0
){
561 struct {struct stack_frame_t me
;} fra
;
564 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
565 fra
.me
.file
= LOCATE_syntax___typing
;
567 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___once_count
;
568 fra
.me
.has_broke
= 0;
570 fra
.me
.nitni_local_ref_head
= NULL
;
571 fra
.me
.REG
[0] = NIT_NULL
;
573 /* syntax/typing.nit:109 */
574 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0])!=NIT_NULL
);
575 if (UNTAG_Bool(REGB0
)) {
577 nit_abort("Uninitialized attribute %s", "_once_count", LOCATE_syntax___typing
, 109);
579 REGB0
= ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0]);
580 stack_frame_head
= fra
.me
.prev
;
583 static const char LOCATE_syntax___typing___TypingVisitor___once_count__eq
[] = "typing::TypingVisitor::once_count=";
584 void syntax___typing___TypingVisitor___once_count__eq(val_t p0
, val_t p1
){
585 struct {struct stack_frame_t me
;} fra
;
588 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
589 fra
.me
.file
= LOCATE_syntax___typing
;
591 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___once_count__eq
;
592 fra
.me
.has_broke
= 0;
594 fra
.me
.nitni_local_ref_head
= NULL
;
595 fra
.me
.REG
[0] = NIT_NULL
;
598 /* syntax/typing.nit:109 */
599 ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0]) = REGB0
;
600 stack_frame_head
= fra
.me
.prev
;
603 static const char LOCATE_syntax___typing___TypingVisitor___init
[] = "typing::TypingVisitor::init";
604 void syntax___typing___TypingVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
605 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___typing___TypingVisitor
].i
;
606 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
608 if (init_table
[itpos0
]) return;
609 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
610 fra
.me
.file
= LOCATE_syntax___typing
;
612 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___init
;
613 fra
.me
.has_broke
= 0;
615 fra
.me
.nitni_local_ref_head
= NULL
;
616 fra
.me
.REG
[0] = NIT_NULL
;
617 fra
.me
.REG
[1] = NIT_NULL
;
618 fra
.me
.REG
[2] = NIT_NULL
;
622 /* syntax/typing.nit:112 */
623 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
624 stack_frame_head
= fra
.me
.prev
;
625 init_table
[itpos0
] = 1;
628 static const char LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for
[] = "typing::TypingVisitor::get_default_constructor_for";
629 val_t
syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
630 struct {struct stack_frame_t me
; val_t MORE_REG
[11];} fra
;
635 static val_t once_value_6
; /* Once value */
636 static val_t once_value_7
; /* Once value */
637 static val_t once_value_8
; /* Once value */
638 static val_t once_value_10
; /* Once value */
639 static val_t once_value_11
; /* Once value */
640 static val_t once_value_12
; /* Once value */
641 static val_t once_value_13
; /* Once value */
642 static val_t once_value_14
; /* Once value */
643 static val_t once_value_15
; /* Once value */
644 static val_t once_value_16
; /* Once value */
645 static val_t once_value_18
; /* Once value */
646 static val_t once_value_19
; /* Once value */
647 static val_t once_value_20
; /* Once value */
648 static val_t once_value_21
; /* Once value */
649 static val_t once_value_22
; /* Once value */
650 static val_t once_value_23
; /* Once value */
651 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
652 fra
.me
.file
= LOCATE_syntax___typing
;
654 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for
;
655 fra
.me
.has_broke
= 0;
656 fra
.me
.REG_size
= 12;
657 fra
.me
.nitni_local_ref_head
= NULL
;
658 fra
.me
.REG
[0] = NIT_NULL
;
659 fra
.me
.REG
[1] = NIT_NULL
;
660 fra
.me
.REG
[2] = NIT_NULL
;
661 fra
.me
.REG
[3] = NIT_NULL
;
662 fra
.me
.REG
[4] = NIT_NULL
;
663 fra
.me
.REG
[5] = NIT_NULL
;
664 fra
.me
.REG
[6] = NIT_NULL
;
665 fra
.me
.REG
[7] = NIT_NULL
;
666 fra
.me
.REG
[8] = NIT_NULL
;
667 fra
.me
.REG
[9] = NIT_NULL
;
668 fra
.me
.REG
[10] = NIT_NULL
;
669 fra
.me
.REG
[11] = NIT_NULL
;
674 /* syntax/typing.nit:114 */
675 fra
.me
.REG
[4] = fra
.me
.REG
[0];
676 /* syntax/typing.nit:116 */
677 fra
.me
.REG
[5] = fra
.me
.REG
[4];
678 /* syntax/typing.nit:119 */
679 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
680 /* syntax/typing.nit:120 */
681 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
682 /* syntax/typing.nit:121 */
683 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
684 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
685 if (UNTAG_Bool(REGB0
)) {
686 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 121);
688 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
689 fra
.me
.REG
[8] = REGB0
;
690 /* syntax/typing.nit:122 */
691 fra
.me
.REG
[9] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
692 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
));
693 switch ((&(fra
.me
))->has_broke
) {
695 case 1: (&(fra
.me
))->has_broke
= 0; goto label5
;
697 /* ../lib/standard/collection/array.nit:24 */
698 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
699 if (UNTAG_Bool(REGB0
)) {
701 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
703 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
704 /* syntax/typing.nit:141 */
706 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
707 if (UNTAG_Bool(REGB2
)) {
709 /* ../lib/standard/kernel.nit:237 */
710 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
711 /* syntax/typing.nit:141 */
714 if (UNTAG_Bool(REGB2
)) {
715 /* syntax/typing.nit:142 */
716 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
717 fra
.me
.REG
[9] = fra
.me
.REG
[3];
720 /* ../lib/standard/collection/array.nit:24 */
721 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
722 if (UNTAG_Bool(REGB2
)) {
724 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
726 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
727 /* syntax/typing.nit:143 */
729 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
730 if (UNTAG_Bool(REGB0
)) {
732 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
734 /* ../lib/standard/kernel.nit:244 */
735 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB1
));
736 /* syntax/typing.nit:143 */
737 if (UNTAG_Bool(REGB1
)) {
738 /* syntax/typing.nit:144 */
739 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
740 /* ../lib/standard/collection/array.nit:270 */
742 /* ../lib/standard/collection/array.nit:271 */
743 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
744 if (UNTAG_Bool(REGB2
)) {
746 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
748 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
749 /* ../lib/standard/collection/array.nit:272 */
750 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
751 /* ../lib/standard/collection/array.nit:273 */
753 /* ../lib/standard/collection/array.nit:24 */
754 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
755 if (UNTAG_Bool(REGB2
)) {
757 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
759 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
760 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
761 if (UNTAG_Bool(REGB0
)) {
763 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
765 /* ../lib/standard/kernel.nit:242 */
766 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
767 /* ../lib/standard/collection/array.nit:273 */
768 if (UNTAG_Bool(REGB2
)) {
769 /* ../lib/standard/collection/array.nit:274 */
770 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
771 if (UNTAG_Bool(REGB2
)) {
772 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
774 /* ../lib/standard/collection/array.nit:725 */
775 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
776 /* syntax/typing.nit:146 */
778 fra
.me
.REG
[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
780 fra
.me
.REG
[11] = BOX_NativeString("");
782 fra
.me
.REG
[11] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[11])(fra
.me
.REG
[11], REGB2
);
783 once_value_6
= fra
.me
.REG
[11];
784 register_static_object(&once_value_6
);
785 } else fra
.me
.REG
[11] = once_value_6
;
786 fra
.me
.REG
[11] = fra
.me
.REG
[11];
787 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
788 fra
.me
.REG
[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
789 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
791 fra
.me
.REG
[11] = BOX_NativeString("");
793 fra
.me
.REG
[11] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[11])(fra
.me
.REG
[11], REGB2
);
794 once_value_7
= fra
.me
.REG
[11];
795 register_static_object(&once_value_7
);
796 } else fra
.me
.REG
[11] = once_value_7
;
797 fra
.me
.REG
[11] = fra
.me
.REG
[11];
798 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
799 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
800 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*/;
801 if (UNTAG_Bool(REGB2
)) {
803 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 146);
805 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
806 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
808 fra
.me
.REG
[4] = BOX_NativeString("");
810 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
811 once_value_8
= fra
.me
.REG
[4];
812 register_static_object(&once_value_8
);
813 } else fra
.me
.REG
[4] = once_value_8
;
814 fra
.me
.REG
[4] = fra
.me
.REG
[4];
815 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
816 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
817 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[10]);
818 /* ../lib/standard/collection/array.nit:275 */
820 /* ../lib/standard/kernel.nit:245 */
821 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
822 /* ../lib/standard/collection/array.nit:275 */
825 /* ../lib/standard/collection/array.nit:273 */
830 /* syntax/typing.nit:148 */
832 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
833 if (!once_value_10
) {
834 fra
.me
.REG
[6] = BOX_NativeString("Error: Conflicting default constructor to call for ");
836 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB1
);
837 once_value_10
= fra
.me
.REG
[6];
838 register_static_object(&once_value_10
);
839 } else fra
.me
.REG
[6] = once_value_10
;
840 fra
.me
.REG
[6] = fra
.me
.REG
[6];
841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
842 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
843 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
844 if (!once_value_11
) {
845 fra
.me
.REG
[6] = BOX_NativeString(": ");
847 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB1
);
848 once_value_11
= fra
.me
.REG
[6];
849 register_static_object(&once_value_11
);
850 } else fra
.me
.REG
[6] = once_value_11
;
851 fra
.me
.REG
[6] = fra
.me
.REG
[6];
852 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
853 if (!once_value_12
) {
854 fra
.me
.REG
[6] = BOX_NativeString(", ");
856 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB1
);
857 once_value_12
= fra
.me
.REG
[6];
858 register_static_object(&once_value_12
);
859 } else fra
.me
.REG
[6] = once_value_12
;
860 fra
.me
.REG
[6] = fra
.me
.REG
[6];
861 fra
.me
.REG
[6] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
863 if (!once_value_13
) {
864 fra
.me
.REG
[6] = BOX_NativeString(".");
866 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB1
);
867 once_value_13
= fra
.me
.REG
[6];
868 register_static_object(&once_value_13
);
869 } else fra
.me
.REG
[6] = once_value_13
;
870 fra
.me
.REG
[6] = fra
.me
.REG
[6];
871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
872 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
873 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[8]);
874 /* syntax/typing.nit:149 */
875 fra
.me
.REG
[9] = NIT_NULL
;
878 /* ../lib/standard/collection/array.nit:24 */
879 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
880 if (UNTAG_Bool(REGB1
)) {
882 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
884 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
885 /* syntax/typing.nit:150 */
887 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
888 if (UNTAG_Bool(REGB0
)) {
890 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
892 /* ../lib/standard/kernel.nit:244 */
893 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
894 /* syntax/typing.nit:150 */
895 if (UNTAG_Bool(REGB2
)) {
896 /* syntax/typing.nit:151 */
897 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
898 /* ../lib/standard/collection/array.nit:270 */
900 /* ../lib/standard/collection/array.nit:271 */
901 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
902 if (UNTAG_Bool(REGB1
)) {
904 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
906 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
907 /* ../lib/standard/collection/array.nit:272 */
908 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
909 /* ../lib/standard/collection/array.nit:273 */
911 /* ../lib/standard/collection/array.nit:24 */
912 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
913 if (UNTAG_Bool(REGB1
)) {
915 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
917 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
918 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
919 if (UNTAG_Bool(REGB0
)) {
921 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
923 /* ../lib/standard/kernel.nit:242 */
924 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
925 /* ../lib/standard/collection/array.nit:273 */
926 if (UNTAG_Bool(REGB1
)) {
927 /* ../lib/standard/collection/array.nit:274 */
928 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
929 if (UNTAG_Bool(REGB1
)) {
930 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
932 /* ../lib/standard/collection/array.nit:725 */
933 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB2
)];
934 /* syntax/typing.nit:153 */
936 fra
.me
.REG
[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
937 if (!once_value_14
) {
938 fra
.me
.REG
[4] = BOX_NativeString("");
940 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
941 once_value_14
= fra
.me
.REG
[4];
942 register_static_object(&once_value_14
);
943 } else fra
.me
.REG
[4] = once_value_14
;
944 fra
.me
.REG
[4] = fra
.me
.REG
[4];
945 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
946 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
947 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
948 if (!once_value_15
) {
949 fra
.me
.REG
[4] = BOX_NativeString("");
951 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
952 once_value_15
= fra
.me
.REG
[4];
953 register_static_object(&once_value_15
);
954 } else fra
.me
.REG
[4] = once_value_15
;
955 fra
.me
.REG
[4] = fra
.me
.REG
[4];
956 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
957 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
958 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*/;
959 if (UNTAG_Bool(REGB1
)) {
961 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 153);
963 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
964 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[3]);
965 if (!once_value_16
) {
966 fra
.me
.REG
[3] = BOX_NativeString("");
968 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
969 once_value_16
= fra
.me
.REG
[3];
970 register_static_object(&once_value_16
);
971 } else fra
.me
.REG
[3] = once_value_16
;
972 fra
.me
.REG
[3] = fra
.me
.REG
[3];
973 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[3]);
974 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
975 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[10]);
976 /* ../lib/standard/collection/array.nit:275 */
978 /* ../lib/standard/kernel.nit:245 */
979 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
980 /* ../lib/standard/collection/array.nit:275 */
983 /* ../lib/standard/collection/array.nit:273 */
988 /* syntax/typing.nit:155 */
990 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
991 if (!once_value_18
) {
992 fra
.me
.REG
[6] = BOX_NativeString("Error: there is no available compatible constructor in ");
994 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
995 once_value_18
= fra
.me
.REG
[6];
996 register_static_object(&once_value_18
);
997 } else fra
.me
.REG
[6] = once_value_18
;
998 fra
.me
.REG
[6] = fra
.me
.REG
[6];
999 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1000 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1001 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1002 if (!once_value_19
) {
1003 fra
.me
.REG
[6] = BOX_NativeString(". Discarded candidates are ");
1004 REGB2
= TAG_Int(27);
1005 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
1006 once_value_19
= fra
.me
.REG
[6];
1007 register_static_object(&once_value_19
);
1008 } else fra
.me
.REG
[6] = once_value_19
;
1009 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1010 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1011 if (!once_value_20
) {
1012 fra
.me
.REG
[6] = BOX_NativeString(", ");
1014 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
1015 once_value_20
= fra
.me
.REG
[6];
1016 register_static_object(&once_value_20
);
1017 } else fra
.me
.REG
[6] = once_value_20
;
1018 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1019 fra
.me
.REG
[6] = CALL_standard___string___Collection___join(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
1020 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1021 if (!once_value_21
) {
1022 fra
.me
.REG
[6] = BOX_NativeString(".");
1024 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
1025 once_value_21
= fra
.me
.REG
[6];
1026 register_static_object(&once_value_21
);
1027 } else fra
.me
.REG
[6] = once_value_21
;
1028 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1029 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1030 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1031 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[0]);
1032 /* syntax/typing.nit:156 */
1033 fra
.me
.REG
[9] = NIT_NULL
;
1036 /* syntax/typing.nit:158 */
1038 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
1039 if (!once_value_22
) {
1040 fra
.me
.REG
[6] = BOX_NativeString("Error: there is no available compatible constructor in ");
1041 REGB2
= TAG_Int(55);
1042 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
1043 once_value_22
= fra
.me
.REG
[6];
1044 register_static_object(&once_value_22
);
1045 } else fra
.me
.REG
[6] = once_value_22
;
1046 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1047 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1048 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1049 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
1050 if (!once_value_23
) {
1051 fra
.me
.REG
[2] = BOX_NativeString(".");
1053 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
1054 once_value_23
= fra
.me
.REG
[2];
1055 register_static_object(&once_value_23
);
1056 } else fra
.me
.REG
[2] = once_value_23
;
1057 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1058 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
1059 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1060 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[0]);
1061 /* syntax/typing.nit:159 */
1062 fra
.me
.REG
[9] = NIT_NULL
;
1068 stack_frame_head
= fra
.me
.prev
;
1069 return fra
.me
.REG
[9];
1071 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
){
1072 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1079 static val_t once_value_3
; /* Once value */
1080 static val_t once_value_4
; /* Once value */
1081 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1082 fra
.me
.file
= LOCATE_syntax___typing
;
1084 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for
;
1085 fra
.me
.has_broke
= 0;
1086 fra
.me
.REG_size
= 4;
1087 fra
.me
.nitni_local_ref_head
= NULL
;
1088 fra
.me
.REG
[0] = NIT_NULL
;
1089 fra
.me
.REG
[1] = NIT_NULL
;
1090 fra
.me
.REG
[2] = NIT_NULL
;
1091 fra
.me
.REG
[3] = NIT_NULL
;
1092 fra
.me
.closure_ctx
= closctx_param
;
1093 fra
.me
.closure_funs
= CREG
;
1095 CREG
[0] = clos_fun0
;
1096 /* syntax/typing.nit:123 */
1097 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[2]);
1098 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1099 if (UNTAG_Bool(REGB0
)) {
1102 /* syntax/typing.nit:124 */
1103 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
1104 /* syntax/typing.nit:125 */
1105 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
1106 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1107 /* syntax/typing.nit:126 */
1108 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
1109 if (UNTAG_Bool(REGB0
)) {
1111 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 126);
1113 /* syntax/typing.nit:127 */
1114 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1115 /* syntax/typing.nit:128 */
1116 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1117 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(closctx
->REG
[3])(closctx
->REG
[3]);
1118 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
1119 if (UNTAG_Bool(REGB1
)) {
1121 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1124 if (UNTAG_Bool(REGB1
)) {
1125 /* syntax/typing.nit:129 */
1127 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1128 if (UNTAG_Bool(REGB2
)) {
1130 /* ../lib/standard/kernel.nit:237 */
1131 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1132 /* syntax/typing.nit:129 */
1135 if (UNTAG_Bool(REGB2
)) {
1136 REGB2
= TAG_Bool(1);
1138 REGB1
= TAG_Bool(IS_EQUAL_OO(closctx
->REG
[8],REGB0
));
1139 if (UNTAG_Bool(REGB1
)) {
1141 /* ../lib/standard/kernel.nit:237 */
1142 REGB3
= TAG_Bool((closctx
->REG
[8])==(REGB0
));
1143 /* syntax/typing.nit:129 */
1146 if (UNTAG_Bool(REGB1
)) {
1147 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(closctx
->REG
[3])(closctx
->REG
[3]);
1148 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1149 if (UNTAG_Bool(REGB1
)) {
1150 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 129);
1152 REGB1
= CALL_metamodel___static_type___MMSignature_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1154 REGB3
= TAG_Bool(0);
1159 if (UNTAG_Bool(REGB2
)) {
1160 /* syntax/typing.nit:130 */
1161 closctx
->REG
[9] = fra
.me
.REG
[0];
1162 closctx
->has_broke
= 1;
1165 /* syntax/typing.nit:132 */
1166 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1169 /* syntax/typing.nit:134 */
1171 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
1172 if (UNTAG_Bool(REGB1
)) {
1174 /* ../lib/standard/kernel.nit:237 */
1175 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
1176 /* syntax/typing.nit:134 */
1179 if (UNTAG_Bool(REGB1
)) {
1180 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1181 if (!once_value_3
) {
1182 if (!once_value_4
) {
1183 fra
.me
.REG
[3] = BOX_NativeString("init");
1185 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
1186 once_value_4
= fra
.me
.REG
[3];
1187 register_static_object(&once_value_4
);
1188 } else fra
.me
.REG
[3] = once_value_4
;
1189 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1190 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1191 once_value_3
= fra
.me
.REG
[3];
1192 register_static_object(&once_value_3
);
1193 } else fra
.me
.REG
[3] = once_value_3
;
1194 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1195 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
1196 if (UNTAG_Bool(REGB1
)) {
1198 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1202 REGB2
= TAG_Bool(0);
1205 if (UNTAG_Bool(REGB1
)) {
1206 /* syntax/typing.nit:135 */
1207 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0]);
1208 /* syntax/typing.nit:136 */
1209 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1211 /* syntax/typing.nit:138 */
1212 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1216 stack_frame_head
= fra
.me
.prev
;
1219 static const char LOCATE_syntax___typing___ANode___accept_typing
[] = "typing::ANode::accept_typing";
1220 void syntax___typing___ANode___accept_typing(val_t p0
, val_t p1
){
1221 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1223 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1224 fra
.me
.file
= LOCATE_syntax___typing
;
1226 fra
.me
.meth
= LOCATE_syntax___typing___ANode___accept_typing
;
1227 fra
.me
.has_broke
= 0;
1228 fra
.me
.REG_size
= 2;
1229 fra
.me
.nitni_local_ref_head
= NULL
;
1230 fra
.me
.REG
[0] = NIT_NULL
;
1231 fra
.me
.REG
[1] = NIT_NULL
;
1234 /* syntax/typing.nit:170 */
1235 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1236 /* syntax/typing.nit:171 */
1237 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1238 stack_frame_head
= fra
.me
.prev
;
1241 static const char LOCATE_syntax___typing___ANode___after_typing
[] = "typing::ANode::after_typing";
1242 void syntax___typing___ANode___after_typing(val_t p0
, val_t p1
){
1243 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1245 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1246 fra
.me
.file
= LOCATE_syntax___typing
;
1248 fra
.me
.meth
= LOCATE_syntax___typing___ANode___after_typing
;
1249 fra
.me
.has_broke
= 0;
1250 fra
.me
.REG_size
= 2;
1251 fra
.me
.nitni_local_ref_head
= NULL
;
1252 fra
.me
.REG
[0] = NIT_NULL
;
1253 fra
.me
.REG
[1] = NIT_NULL
;
1256 stack_frame_head
= fra
.me
.prev
;
1259 static const char LOCATE_syntax___typing___AClassdef___accept_typing
[] = "typing::AClassdef::(typing::ANode::accept_typing)";
1260 void syntax___typing___AClassdef___accept_typing(val_t p0
, val_t p1
){
1261 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1264 static val_t once_value_1
; /* Once value */
1265 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1266 fra
.me
.file
= LOCATE_syntax___typing
;
1268 fra
.me
.meth
= LOCATE_syntax___typing___AClassdef___accept_typing
;
1269 fra
.me
.has_broke
= 0;
1270 fra
.me
.REG_size
= 5;
1271 fra
.me
.nitni_local_ref_head
= NULL
;
1272 fra
.me
.REG
[0] = NIT_NULL
;
1273 fra
.me
.REG
[1] = NIT_NULL
;
1274 fra
.me
.REG
[2] = NIT_NULL
;
1275 fra
.me
.REG
[3] = NIT_NULL
;
1276 fra
.me
.REG
[4] = NIT_NULL
;
1279 /* syntax/typing.nit:177 */
1280 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1281 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1282 /* syntax/typing.nit:179 */
1283 if (!once_value_1
) {
1284 fra
.me
.REG
[4] = BOX_NativeString("self");
1286 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
1287 once_value_1
= fra
.me
.REG
[4];
1288 register_static_object(&once_value_1
);
1289 } else fra
.me
.REG
[4] = once_value_1
;
1290 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1291 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1292 fra
.me
.REG
[4] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1293 CALL_syntax___typing___TypingVisitor___self_var__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1294 /* syntax/typing.nit:180 */
1295 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1296 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1297 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1298 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1299 /* syntax/typing.nit:181 */
1300 CALL_SUPER_syntax___typing___AClassdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1301 stack_frame_head
= fra
.me
.prev
;
1304 static const char LOCATE_syntax___typing___APropdef___self_var
[] = "typing::APropdef::(syntax_base::APropdef::self_var)";
1305 val_t
syntax___typing___APropdef___self_var(val_t p0
){
1306 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1309 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1310 fra
.me
.file
= LOCATE_syntax___typing
;
1312 fra
.me
.meth
= LOCATE_syntax___typing___APropdef___self_var
;
1313 fra
.me
.has_broke
= 0;
1314 fra
.me
.REG_size
= 2;
1315 fra
.me
.nitni_local_ref_head
= NULL
;
1316 fra
.me
.REG
[0] = NIT_NULL
;
1317 fra
.me
.REG
[1] = NIT_NULL
;
1319 /* syntax/typing.nit:186 */
1320 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1321 fra
.me
.REG
[1] = ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[1]);
1322 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1323 if (UNTAG_Bool(REGB0
)) {
1325 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 186);
1329 stack_frame_head
= fra
.me
.prev
;
1330 return fra
.me
.REG
[1];
1332 static const char LOCATE_syntax___typing___AAttrPropdef___accept_typing
[] = "typing::AAttrPropdef::(typing::ANode::accept_typing)";
1333 void syntax___typing___AAttrPropdef___accept_typing(val_t p0
, val_t p1
){
1334 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1338 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1339 fra
.me
.file
= LOCATE_syntax___typing
;
1341 fra
.me
.meth
= LOCATE_syntax___typing___AAttrPropdef___accept_typing
;
1342 fra
.me
.has_broke
= 0;
1343 fra
.me
.REG_size
= 5;
1344 fra
.me
.nitni_local_ref_head
= NULL
;
1345 fra
.me
.REG
[0] = NIT_NULL
;
1346 fra
.me
.REG
[1] = NIT_NULL
;
1347 fra
.me
.REG
[2] = NIT_NULL
;
1348 fra
.me
.REG
[3] = NIT_NULL
;
1349 fra
.me
.REG
[4] = NIT_NULL
;
1352 /* syntax/typing.nit:191 */
1353 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1354 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1355 /* syntax/typing.nit:193 */
1356 fra
.me
.REG
[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1357 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1358 /* syntax/typing.nit:194 */
1359 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1360 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1361 /* syntax/typing.nit:196 */
1362 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1363 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1364 /* syntax/typing.nit:197 */
1365 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1366 ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1367 /* syntax/typing.nit:198 */
1368 CALL_SUPER_syntax___typing___AAttrPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1369 /* syntax/typing.nit:199 */
1370 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1371 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1372 if (UNTAG_Bool(REGB0
)) {
1374 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1375 if (UNTAG_Bool(REGB1
)) {
1376 REGB1
= TAG_Bool(0);
1379 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1383 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1384 if (UNTAG_Bool(REGB0
)) {
1385 /* syntax/typing.nit:200 */
1386 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1387 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*/;
1388 if (UNTAG_Bool(REGB0
)) {
1390 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 200);
1392 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1393 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1394 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1395 if (UNTAG_Bool(REGB0
)) {
1396 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 200);
1398 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1399 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*/;
1400 if (UNTAG_Bool(REGB0
)) {
1402 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 200);
1404 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1406 /* syntax/typing.nit:202 */
1407 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1408 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1409 stack_frame_head
= fra
.me
.prev
;
1412 static const char LOCATE_syntax___typing___AMethPropdef___accept_typing
[] = "typing::AMethPropdef::(typing::ANode::accept_typing)";
1413 void syntax___typing___AMethPropdef___accept_typing(val_t p0
, val_t p1
){
1414 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1416 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1417 fra
.me
.file
= LOCATE_syntax___typing
;
1419 fra
.me
.meth
= LOCATE_syntax___typing___AMethPropdef___accept_typing
;
1420 fra
.me
.has_broke
= 0;
1421 fra
.me
.REG_size
= 5;
1422 fra
.me
.nitni_local_ref_head
= NULL
;
1423 fra
.me
.REG
[0] = NIT_NULL
;
1424 fra
.me
.REG
[1] = NIT_NULL
;
1425 fra
.me
.REG
[2] = NIT_NULL
;
1426 fra
.me
.REG
[3] = NIT_NULL
;
1427 fra
.me
.REG
[4] = NIT_NULL
;
1430 /* syntax/typing.nit:207 */
1431 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1432 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1433 /* syntax/typing.nit:209 */
1434 fra
.me
.REG
[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1435 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1436 /* syntax/typing.nit:210 */
1437 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1438 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1439 /* syntax/typing.nit:212 */
1440 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1441 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1442 /* syntax/typing.nit:213 */
1443 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1444 ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1445 /* syntax/typing.nit:214 */
1446 CALL_SUPER_syntax___typing___AMethPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1447 /* syntax/typing.nit:215 */
1448 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1449 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1450 stack_frame_head
= fra
.me
.prev
;
1453 static const char LOCATE_syntax___typing___AConcreteMethPropdef___after_typing
[] = "typing::AConcreteMethPropdef::(typing::ANode::after_typing)";
1454 void syntax___typing___AConcreteMethPropdef___after_typing(val_t p0
, val_t p1
){
1455 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1459 static val_t once_value_1
; /* Once value */
1460 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1461 fra
.me
.file
= LOCATE_syntax___typing
;
1463 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteMethPropdef___after_typing
;
1464 fra
.me
.has_broke
= 0;
1465 fra
.me
.REG_size
= 4;
1466 fra
.me
.nitni_local_ref_head
= NULL
;
1467 fra
.me
.REG
[0] = NIT_NULL
;
1468 fra
.me
.REG
[1] = NIT_NULL
;
1469 fra
.me
.REG
[2] = NIT_NULL
;
1470 fra
.me
.REG
[3] = NIT_NULL
;
1473 /* syntax/typing.nit:220 */
1474 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1475 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1476 /* syntax/typing.nit:222 */
1477 CALL_SUPER_syntax___typing___AConcreteMethPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1478 /* syntax/typing.nit:223 */
1479 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1480 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1481 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1482 if (UNTAG_Bool(REGB0
)) {
1483 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1484 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1485 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1486 if (UNTAG_Bool(REGB0
)) {
1487 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 223);
1489 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1490 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1491 if (UNTAG_Bool(REGB0
)) {
1493 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1494 if (UNTAG_Bool(REGB1
)) {
1495 REGB1
= TAG_Bool(0);
1498 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1502 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1504 REGB1
= TAG_Bool(0);
1507 if (UNTAG_Bool(REGB0
)) {
1508 /* syntax/typing.nit:224 */
1509 if (!once_value_1
) {
1510 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of function (a 'return' with a value was expected).");
1511 REGB0
= TAG_Int(78);
1512 fra
.me
.REG
[1] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
1513 once_value_1
= fra
.me
.REG
[1];
1514 register_static_object(&once_value_1
);
1515 } else fra
.me
.REG
[1] = once_value_1
;
1516 fra
.me
.REG
[1] = fra
.me
.REG
[1];
1517 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
1519 stack_frame_head
= fra
.me
.prev
;
1522 static const char LOCATE_syntax___typing___AConcreteInitPropdef___accept_typing
[] = "typing::AConcreteInitPropdef::(typing::ANode::accept_typing)";
1523 void syntax___typing___AConcreteInitPropdef___accept_typing(val_t p0
, val_t p1
){
1524 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1527 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1528 fra
.me
.file
= LOCATE_syntax___typing
;
1530 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteInitPropdef___accept_typing
;
1531 fra
.me
.has_broke
= 0;
1532 fra
.me
.REG_size
= 5;
1533 fra
.me
.nitni_local_ref_head
= NULL
;
1534 fra
.me
.REG
[0] = NIT_NULL
;
1535 fra
.me
.REG
[1] = NIT_NULL
;
1536 fra
.me
.REG
[2] = NIT_NULL
;
1537 fra
.me
.REG
[3] = NIT_NULL
;
1538 fra
.me
.REG
[4] = NIT_NULL
;
1541 /* syntax/typing.nit:230 */
1542 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1543 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1544 /* syntax/typing.nit:232 */
1545 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1546 CALL_syntax___typing___TypingVisitor___top_block__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1547 /* syntax/typing.nit:233 */
1548 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1549 CALL_syntax___typing___TypingVisitor___explicit_super_init_calls__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1550 /* syntax/typing.nit:234 */
1551 REGB0
= TAG_Bool(0);
1552 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1553 /* syntax/typing.nit:235 */
1554 CALL_SUPER_syntax___typing___AConcreteInitPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1555 stack_frame_head
= fra
.me
.prev
;
1558 static const char LOCATE_syntax___typing___AConcreteInitPropdef___after_typing
[] = "typing::AConcreteInitPropdef::(typing::ANode::after_typing)";
1559 void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0
, val_t p1
){
1560 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
1568 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1569 fra
.me
.file
= LOCATE_syntax___typing
;
1571 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteInitPropdef___after_typing
;
1572 fra
.me
.has_broke
= 0;
1573 fra
.me
.REG_size
= 8;
1574 fra
.me
.nitni_local_ref_head
= NULL
;
1575 fra
.me
.REG
[0] = NIT_NULL
;
1576 fra
.me
.REG
[1] = NIT_NULL
;
1577 fra
.me
.REG
[2] = NIT_NULL
;
1578 fra
.me
.REG
[3] = NIT_NULL
;
1579 fra
.me
.REG
[4] = NIT_NULL
;
1580 fra
.me
.REG
[5] = NIT_NULL
;
1581 fra
.me
.REG
[6] = NIT_NULL
;
1582 fra
.me
.REG
[7] = NIT_NULL
;
1585 /* syntax/typing.nit:238 */
1586 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1587 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1588 /* syntax/typing.nit:240 */
1589 CALL_SUPER_syntax___typing___AConcreteInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1590 /* syntax/typing.nit:241 */
1591 REGB0
= CALL_syntax___typing___TypingVisitor___explicit_other_init_call(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1592 if (UNTAG_Bool(REGB0
)) {
1593 REGB0
= TAG_Bool(1);
1595 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1596 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1597 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1598 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1599 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[4]));
1600 if (UNTAG_Bool(REGB1
)) {
1602 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1605 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1608 if (UNTAG_Bool(REGB0
)) {
1610 /* syntax/typing.nit:244 */
1612 /* syntax/typing.nit:245 */
1613 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1614 /* ../lib/standard/collection/array.nit:24 */
1615 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1616 if (UNTAG_Bool(REGB1
)) {
1618 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1620 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1621 /* syntax/typing.nit:246 */
1622 fra
.me
.REG
[4] = NIT_NULL
;
1623 /* syntax/typing.nit:247 */
1624 fra
.me
.REG
[1] = NIT_NULL
;
1625 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1626 if (UNTAG_Bool(REGB2
)) {
1628 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1630 /* ../lib/standard/kernel.nit:242 */
1631 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1632 /* syntax/typing.nit:248 */
1633 if (UNTAG_Bool(REGB2
)) {
1634 /* syntax/typing.nit:249 */
1635 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1636 /* ../lib/standard/collection/array.nit:279 */
1638 /* ../lib/standard/collection/array.nit:281 */
1640 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1641 if (UNTAG_Bool(REGB4
)) {
1643 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1645 /* ../lib/standard/kernel.nit:243 */
1646 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
1647 /* ../lib/standard/collection/array.nit:281 */
1648 if (UNTAG_Bool(REGB3
)) {
1649 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1650 if (UNTAG_Bool(REGB3
)) {
1652 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
1654 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1655 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1656 if (UNTAG_Bool(REGB4
)) {
1658 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1660 /* ../lib/standard/kernel.nit:242 */
1661 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1663 /* ../lib/standard/collection/array.nit:281 */
1664 REGB4
= TAG_Bool(0);
1667 if (UNTAG_Bool(REGB3
)) {
1669 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
1671 /* ../lib/standard/collection/array.nit:282 */
1672 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1673 REGB3
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1674 if (UNTAG_Bool(REGB3
)) {
1675 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
1677 /* ../lib/standard/collection/array.nit:725 */
1678 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB2
)];
1679 /* ../lib/standard/collection/array.nit:282 */
1682 /* syntax/typing.nit:249 */
1683 fra
.me
.REG
[4] = fra
.me
.REG
[5];
1684 /* syntax/typing.nit:250 */
1685 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1686 if (UNTAG_Bool(REGB2
)) {
1687 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 250);
1689 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1690 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1691 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1692 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1693 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
1694 fra
.me
.REG
[1] = fra
.me
.REG
[6];
1696 /* syntax/typing.nit:252 */
1698 /* syntax/typing.nit:253 */
1700 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1701 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1702 fra
.me
.REG
[6] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1703 /* ../lib/standard/collection/array.nit:24 */
1704 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
1705 if (UNTAG_Bool(REGB3
)) {
1707 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1709 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
1710 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1711 if (UNTAG_Bool(REGB4
)) {
1713 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1715 /* ../lib/standard/kernel.nit:242 */
1716 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1717 /* syntax/typing.nit:253 */
1718 if (UNTAG_Bool(REGB3
)) {
1719 /* syntax/typing.nit:254 */
1720 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1721 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1722 fra
.me
.REG
[6] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1723 /* ../lib/standard/collection/array.nit:279 */
1725 /* ../lib/standard/collection/array.nit:281 */
1727 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1728 if (UNTAG_Bool(REGB5
)) {
1730 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1732 /* ../lib/standard/kernel.nit:243 */
1733 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1734 /* ../lib/standard/collection/array.nit:281 */
1735 if (UNTAG_Bool(REGB4
)) {
1736 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
1737 if (UNTAG_Bool(REGB4
)) {
1739 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
1741 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
1742 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1743 if (UNTAG_Bool(REGB5
)) {
1745 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1747 /* ../lib/standard/kernel.nit:242 */
1748 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1750 /* ../lib/standard/collection/array.nit:281 */
1751 REGB5
= TAG_Bool(0);
1754 if (UNTAG_Bool(REGB4
)) {
1756 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
1758 /* ../lib/standard/collection/array.nit:282 */
1759 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
1760 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1761 if (UNTAG_Bool(REGB4
)) {
1762 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
1764 /* ../lib/standard/collection/array.nit:725 */
1765 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB3
)];
1766 /* ../lib/standard/collection/array.nit:282 */
1769 /* syntax/typing.nit:255 */
1770 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1771 REGB3
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1772 if (UNTAG_Bool(REGB3
)) {
1773 REGB3
= TAG_Bool(1);
1775 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1776 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1779 if (UNTAG_Bool(REGB3
)) {
1780 REGB3
= TAG_Bool(1);
1782 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1783 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1786 if (UNTAG_Bool(REGB3
)) {
1787 REGB3
= TAG_Bool(1);
1789 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1790 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1793 if (UNTAG_Bool(REGB3
)) {
1794 /* syntax/typing.nit:256 */
1796 /* ../lib/standard/kernel.nit:245 */
1797 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1798 /* syntax/typing.nit:256 */
1801 /* syntax/typing.nit:257 */
1802 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1803 if (UNTAG_Bool(REGB3
)) {
1805 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1806 if (UNTAG_Bool(REGB4
)) {
1807 REGB4
= TAG_Bool(0);
1810 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1814 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1815 if (UNTAG_Bool(REGB3
)) {
1816 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1817 REGB3
= CALL_metamodel___partial_order___PartialOrderElement_____leq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
1818 if (UNTAG_Bool(REGB3
)) {
1819 REGB3
= TAG_Bool(1);
1821 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1822 if (UNTAG_Bool(REGB4
)) {
1823 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 257);
1825 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1826 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1830 REGB4
= TAG_Bool(0);
1833 if (UNTAG_Bool(REGB3
)) {
1834 /* syntax/typing.nit:258 */
1835 REGB3
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[1]));
1836 if (UNTAG_Bool(REGB3
)) {
1838 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
1841 if (UNTAG_Bool(REGB3
)) {
1843 /* ../lib/standard/kernel.nit:245 */
1844 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1845 /* syntax/typing.nit:258 */
1848 /* syntax/typing.nit:259 */
1849 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1850 REGB3
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
1851 if (UNTAG_Bool(REGB3
)) {
1853 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 259);
1855 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
1856 /* syntax/typing.nit:260 */
1858 /* ../lib/standard/kernel.nit:245 */
1859 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1860 /* syntax/typing.nit:260 */
1862 REGB3
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1863 if (UNTAG_Bool(REGB3
)) {
1865 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1867 /* ../lib/standard/kernel.nit:242 */
1868 REGB3
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1869 /* syntax/typing.nit:261 */
1870 if (UNTAG_Bool(REGB3
)) {
1871 /* syntax/typing.nit:262 */
1872 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1873 /* ../lib/standard/collection/array.nit:279 */
1875 /* ../lib/standard/collection/array.nit:281 */
1877 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1878 if (UNTAG_Bool(REGB5
)) {
1880 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1882 /* ../lib/standard/kernel.nit:243 */
1883 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1884 /* ../lib/standard/collection/array.nit:281 */
1885 if (UNTAG_Bool(REGB4
)) {
1886 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1887 if (UNTAG_Bool(REGB4
)) {
1889 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
1891 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1892 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1893 if (UNTAG_Bool(REGB5
)) {
1895 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1897 /* ../lib/standard/kernel.nit:242 */
1898 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1900 /* ../lib/standard/collection/array.nit:281 */
1901 REGB5
= TAG_Bool(0);
1904 if (UNTAG_Bool(REGB4
)) {
1906 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
1908 /* ../lib/standard/collection/array.nit:282 */
1909 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1910 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1911 if (UNTAG_Bool(REGB4
)) {
1912 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
1914 /* ../lib/standard/collection/array.nit:725 */
1915 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
1916 /* ../lib/standard/collection/array.nit:282 */
1919 /* syntax/typing.nit:262 */
1920 fra
.me
.REG
[4] = fra
.me
.REG
[5];
1921 /* syntax/typing.nit:263 */
1922 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1923 if (UNTAG_Bool(REGB3
)) {
1924 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 263);
1926 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1927 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1928 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1929 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1930 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
1931 fra
.me
.REG
[1] = fra
.me
.REG
[7];
1933 /* syntax/typing.nit:265 */
1934 fra
.me
.REG
[4] = NIT_NULL
;
1935 /* syntax/typing.nit:266 */
1936 fra
.me
.REG
[1] = NIT_NULL
;
1939 /* syntax/typing.nit:269 */
1940 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1941 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]);
1942 /* syntax/typing.nit:270 */
1943 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1944 if (UNTAG_Bool(REGB3
)) {
1946 REGB4
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1947 if (UNTAG_Bool(REGB4
)) {
1948 REGB4
= TAG_Bool(0);
1951 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
1955 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1956 if (UNTAG_Bool(REGB3
)) {
1957 /* syntax/typing.nit:271 */
1958 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1961 /* syntax/typing.nit:273 */
1963 /* ../lib/standard/kernel.nit:245 */
1964 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1965 /* syntax/typing.nit:273 */
1970 /* syntax/typing.nit:253 */
1976 stack_frame_head
= fra
.me
.prev
;
1979 static const char LOCATE_syntax___typing___AExternInitPropdef___accept_typing
[] = "typing::AExternInitPropdef::(typing::ANode::accept_typing)";
1980 void syntax___typing___AExternInitPropdef___accept_typing(val_t p0
, val_t p1
){
1981 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1984 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1985 fra
.me
.file
= LOCATE_syntax___typing
;
1987 fra
.me
.meth
= LOCATE_syntax___typing___AExternInitPropdef___accept_typing
;
1988 fra
.me
.has_broke
= 0;
1989 fra
.me
.REG_size
= 3;
1990 fra
.me
.nitni_local_ref_head
= NULL
;
1991 fra
.me
.REG
[0] = NIT_NULL
;
1992 fra
.me
.REG
[1] = NIT_NULL
;
1993 fra
.me
.REG
[2] = NIT_NULL
;
1996 /* syntax/typing.nit:281 */
1997 fra
.me
.REG
[2] = fra
.me
.REG
[1];
1998 /* syntax/typing.nit:283 */
1999 REGB0
= TAG_Bool(0);
2000 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2001 /* syntax/typing.nit:284 */
2002 CALL_SUPER_syntax___typing___AExternInitPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2003 stack_frame_head
= fra
.me
.prev
;
2006 static const char LOCATE_syntax___typing___AExternInitPropdef___after_typing
[] = "typing::AExternInitPropdef::(typing::ANode::after_typing)";
2007 void syntax___typing___AExternInitPropdef___after_typing(val_t p0
, val_t p1
){
2008 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2010 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2011 fra
.me
.file
= LOCATE_syntax___typing
;
2013 fra
.me
.meth
= LOCATE_syntax___typing___AExternInitPropdef___after_typing
;
2014 fra
.me
.has_broke
= 0;
2015 fra
.me
.REG_size
= 2;
2016 fra
.me
.nitni_local_ref_head
= NULL
;
2017 fra
.me
.REG
[0] = NIT_NULL
;
2018 fra
.me
.REG
[1] = NIT_NULL
;
2021 /* syntax/typing.nit:288 */
2022 CALL_SUPER_syntax___typing___AExternInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2023 stack_frame_head
= fra
.me
.prev
;
2026 static const char LOCATE_syntax___typing___ASignature___after_typing
[] = "typing::ASignature::(typing::ANode::after_typing)";
2027 void syntax___typing___ASignature___after_typing(val_t p0
, val_t p1
){
2028 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2032 static val_t once_value_1
; /* Once value */
2033 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2034 fra
.me
.file
= LOCATE_syntax___typing
;
2036 fra
.me
.meth
= LOCATE_syntax___typing___ASignature___after_typing
;
2037 fra
.me
.has_broke
= 0;
2038 fra
.me
.REG_size
= 3;
2039 fra
.me
.nitni_local_ref_head
= NULL
;
2040 fra
.me
.REG
[0] = NIT_NULL
;
2041 fra
.me
.REG
[1] = NIT_NULL
;
2042 fra
.me
.REG
[2] = NIT_NULL
;
2045 /* syntax/typing.nit:295 */
2046 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ASignature___n_opar(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2047 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2048 if (UNTAG_Bool(REGB0
)) {
2050 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2051 if (UNTAG_Bool(REGB1
)) {
2052 REGB1
= TAG_Bool(0);
2055 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2059 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2060 if (UNTAG_Bool(REGB0
)) {
2061 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ASignature___n_params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2062 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2064 REGB1
= TAG_Bool(0);
2067 if (UNTAG_Bool(REGB0
)) {
2068 /* syntax/typing.nit:296 */
2069 if (!once_value_1
) {
2070 fra
.me
.REG
[2] = BOX_NativeString("Warning: superfluous parentheses.");
2071 REGB0
= TAG_Int(33);
2072 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2073 once_value_1
= fra
.me
.REG
[2];
2074 register_static_object(&once_value_1
);
2075 } else fra
.me
.REG
[2] = once_value_1
;
2076 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2077 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2079 stack_frame_head
= fra
.me
.prev
;
2082 static const char LOCATE_syntax___typing___AParam___after_typing
[] = "typing::AParam::(typing::ANode::after_typing)";
2083 void syntax___typing___AParam___after_typing(val_t p0
, val_t p1
){
2084 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2086 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2087 fra
.me
.file
= LOCATE_syntax___typing
;
2089 fra
.me
.meth
= LOCATE_syntax___typing___AParam___after_typing
;
2090 fra
.me
.has_broke
= 0;
2091 fra
.me
.REG_size
= 2;
2092 fra
.me
.nitni_local_ref_head
= NULL
;
2093 fra
.me
.REG
[0] = NIT_NULL
;
2094 fra
.me
.REG
[1] = NIT_NULL
;
2097 /* syntax/typing.nit:304 */
2098 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2099 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2100 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2101 stack_frame_head
= fra
.me
.prev
;
2104 static const char LOCATE_syntax___typing___AClosureDecl___escapable
[] = "typing::AClosureDecl::escapable";
2105 val_t
syntax___typing___AClosureDecl___escapable(val_t p0
){
2106 struct {struct stack_frame_t me
;} fra
;
2108 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2109 fra
.me
.file
= LOCATE_syntax___typing
;
2111 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___escapable
;
2112 fra
.me
.has_broke
= 0;
2113 fra
.me
.REG_size
= 1;
2114 fra
.me
.nitni_local_ref_head
= NULL
;
2115 fra
.me
.REG
[0] = NIT_NULL
;
2117 /* syntax/typing.nit:309 */
2118 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[0]);
2119 stack_frame_head
= fra
.me
.prev
;
2120 return fra
.me
.REG
[0];
2122 static const char LOCATE_syntax___typing___AClosureDecl___accept_typing
[] = "typing::AClosureDecl::(typing::ANode::accept_typing)";
2123 void syntax___typing___AClosureDecl___accept_typing(val_t p0
, val_t p1
){
2124 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
2129 static val_t once_value_1
; /* Once value */
2130 static val_t once_value_2
; /* Once value */
2131 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2132 fra
.me
.file
= LOCATE_syntax___typing
;
2134 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___accept_typing
;
2135 fra
.me
.has_broke
= 0;
2136 fra
.me
.REG_size
= 10;
2137 fra
.me
.nitni_local_ref_head
= NULL
;
2138 fra
.me
.REG
[0] = NIT_NULL
;
2139 fra
.me
.REG
[1] = NIT_NULL
;
2140 fra
.me
.REG
[2] = NIT_NULL
;
2141 fra
.me
.REG
[3] = NIT_NULL
;
2142 fra
.me
.REG
[4] = NIT_NULL
;
2143 fra
.me
.REG
[5] = NIT_NULL
;
2144 fra
.me
.REG
[6] = NIT_NULL
;
2145 fra
.me
.REG
[7] = NIT_NULL
;
2146 fra
.me
.REG
[8] = NIT_NULL
;
2147 fra
.me
.REG
[9] = NIT_NULL
;
2150 /* syntax/typing.nit:312 */
2151 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2152 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2153 /* syntax/typing.nit:315 */
2154 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2155 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2156 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2157 /* syntax/typing.nit:317 */
2158 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2159 /* syntax/typing.nit:318 */
2160 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2161 /* syntax/typing.nit:319 */
2162 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2163 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
2164 /* syntax/typing.nit:321 */
2165 fra
.me
.REG
[6] = NIT_NULL
;
2166 /* syntax/typing.nit:322 */
2167 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2168 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2169 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2170 if (UNTAG_Bool(REGB0
)) {
2171 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 322);
2173 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2174 /* syntax/typing.nit:323 */
2175 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2176 if (UNTAG_Bool(REGB0
)) {
2178 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2179 if (UNTAG_Bool(REGB1
)) {
2180 REGB1
= TAG_Bool(0);
2183 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
2187 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2188 if (UNTAG_Bool(REGB0
)) {
2189 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
2190 fra
.me
.REG
[6] = fra
.me
.REG
[8];
2192 /* syntax/typing.nit:324 */
2193 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2194 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2195 fra
.me
.REG
[8] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[2], fra
.me
.REG
[8], fra
.me
.REG
[6]);
2196 /* syntax/typing.nit:325 */
2197 ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[2]) = fra
.me
.REG
[8];
2198 /* syntax/typing.nit:326 */
2199 fra
.me
.REG
[9] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2200 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8], NIT_NULL
);
2201 /* syntax/typing.nit:328 */
2202 REGB0
= TAG_Bool(1);
2203 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2204 /* syntax/typing.nit:330 */
2205 CALL_SUPER_syntax___typing___AClosureDecl___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2206 /* syntax/typing.nit:332 */
2207 REGB0
= TAG_Bool(0);
2208 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2209 /* syntax/typing.nit:334 */
2210 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2211 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2212 if (UNTAG_Bool(REGB0
)) {
2214 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2215 if (UNTAG_Bool(REGB1
)) {
2216 REGB1
= TAG_Bool(0);
2219 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2223 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2224 if (UNTAG_Bool(REGB0
)) {
2225 /* syntax/typing.nit:335 */
2226 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2227 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2228 REGB1
= TAG_Bool(0);
2229 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
2230 if (UNTAG_Bool(REGB2
)) {
2232 /* ../lib/standard/kernel.nit:199 */
2233 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
2234 /* syntax/typing.nit:335 */
2237 if (UNTAG_Bool(REGB2
)) {
2238 /* syntax/typing.nit:336 */
2239 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2240 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2241 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2242 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2243 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2244 if (UNTAG_Bool(REGB2
)) {
2246 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2247 if (UNTAG_Bool(REGB1
)) {
2248 REGB1
= TAG_Bool(0);
2251 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2255 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2256 if (UNTAG_Bool(REGB2
)) {
2257 /* syntax/typing.nit:337 */
2258 if (!once_value_1
) {
2259 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
2260 REGB2
= TAG_Int(77);
2261 fra
.me
.REG
[1] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB2
);
2262 once_value_1
= fra
.me
.REG
[1];
2263 register_static_object(&once_value_1
);
2264 } else fra
.me
.REG
[1] = once_value_1
;
2265 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2266 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
2268 /* syntax/typing.nit:338 */
2269 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2270 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2271 REGB2
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2272 if (UNTAG_Bool(REGB2
)) {
2273 fra
.me
.REG
[8] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2274 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2275 if (UNTAG_Bool(REGB2
)) {
2277 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2278 if (UNTAG_Bool(REGB1
)) {
2279 REGB1
= TAG_Bool(0);
2282 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
2286 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2288 REGB1
= TAG_Bool(0);
2291 if (UNTAG_Bool(REGB2
)) {
2292 /* syntax/typing.nit:339 */
2293 if (!once_value_2
) {
2294 fra
.me
.REG
[8] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
2295 REGB2
= TAG_Int(80);
2296 fra
.me
.REG
[8] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[8])(fra
.me
.REG
[8], REGB2
);
2297 once_value_2
= fra
.me
.REG
[8];
2298 register_static_object(&once_value_2
);
2299 } else fra
.me
.REG
[8] = once_value_2
;
2300 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2301 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[8]);
2306 /* syntax/typing.nit:343 */
2307 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2308 if (UNTAG_Bool(REGB2
)) {
2310 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2311 if (UNTAG_Bool(REGB1
)) {
2312 REGB1
= TAG_Bool(0);
2315 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2319 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2320 if (UNTAG_Bool(REGB2
)) {
2321 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2322 if (UNTAG_Bool(REGB2
)) {
2323 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 343);
2325 /* ../lib/standard/collection/array.nit:270 */
2327 /* ../lib/standard/collection/array.nit:271 */
2328 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2329 if (UNTAG_Bool(REGB1
)) {
2331 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
2333 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2334 /* ../lib/standard/collection/array.nit:272 */
2335 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
2336 /* ../lib/standard/collection/array.nit:273 */
2338 /* ../lib/standard/collection/array.nit:24 */
2339 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2340 if (UNTAG_Bool(REGB1
)) {
2342 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2344 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2345 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
2346 if (UNTAG_Bool(REGB0
)) {
2348 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2350 /* ../lib/standard/kernel.nit:242 */
2351 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
2352 /* ../lib/standard/collection/array.nit:273 */
2353 if (UNTAG_Bool(REGB1
)) {
2354 /* ../lib/standard/collection/array.nit:274 */
2355 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2356 if (UNTAG_Bool(REGB1
)) {
2357 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
2359 /* ../lib/standard/collection/array.nit:725 */
2360 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB2
)];
2361 /* syntax/typing.nit:344 */
2362 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
2363 /* ../lib/standard/collection/array.nit:275 */
2365 /* ../lib/standard/kernel.nit:245 */
2366 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
2367 /* ../lib/standard/collection/array.nit:275 */
2370 /* ../lib/standard/collection/array.nit:273 */
2376 /* syntax/typing.nit:347 */
2377 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2378 /* syntax/typing.nit:348 */
2379 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2380 /* syntax/typing.nit:349 */
2381 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2382 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2383 stack_frame_head
= fra
.me
.prev
;
2386 static const char LOCATE_syntax___typing___AType___stype
[] = "typing::AType::(syntax_base::AType::stype)";
2387 val_t
syntax___typing___AType___stype(val_t p0
){
2388 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2391 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2392 fra
.me
.file
= LOCATE_syntax___typing
;
2394 fra
.me
.meth
= LOCATE_syntax___typing___AType___stype
;
2395 fra
.me
.has_broke
= 0;
2396 fra
.me
.REG_size
= 2;
2397 fra
.me
.nitni_local_ref_head
= NULL
;
2398 fra
.me
.REG
[0] = NIT_NULL
;
2399 fra
.me
.REG
[1] = NIT_NULL
;
2401 /* syntax/typing.nit:354 */
2402 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2403 fra
.me
.REG
[1] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[1]);
2404 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2405 if (UNTAG_Bool(REGB0
)) {
2407 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 354);
2411 stack_frame_head
= fra
.me
.prev
;
2412 return fra
.me
.REG
[1];
2414 static const char LOCATE_syntax___typing___AType___is_typed
[] = "typing::AType::(syntax_base::AType::is_typed)";
2415 val_t
syntax___typing___AType___is_typed(val_t p0
){
2416 struct {struct stack_frame_t me
;} fra
;
2420 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2421 fra
.me
.file
= LOCATE_syntax___typing
;
2423 fra
.me
.meth
= LOCATE_syntax___typing___AType___is_typed
;
2424 fra
.me
.has_broke
= 0;
2425 fra
.me
.REG_size
= 1;
2426 fra
.me
.nitni_local_ref_head
= NULL
;
2427 fra
.me
.REG
[0] = NIT_NULL
;
2429 /* syntax/typing.nit:355 */
2430 fra
.me
.REG
[0] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]);
2431 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2432 if (UNTAG_Bool(REGB0
)) {
2434 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2435 if (UNTAG_Bool(REGB1
)) {
2436 REGB1
= TAG_Bool(0);
2439 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2443 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2446 stack_frame_head
= fra
.me
.prev
;
2449 static const char LOCATE_syntax___typing___AType___after_typing
[] = "typing::AType::(typing::ANode::after_typing)";
2450 void syntax___typing___AType___after_typing(val_t p0
, val_t p1
){
2451 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2453 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2454 fra
.me
.file
= LOCATE_syntax___typing
;
2456 fra
.me
.meth
= LOCATE_syntax___typing___AType___after_typing
;
2457 fra
.me
.has_broke
= 0;
2458 fra
.me
.REG_size
= 2;
2459 fra
.me
.nitni_local_ref_head
= NULL
;
2460 fra
.me
.REG
[0] = NIT_NULL
;
2461 fra
.me
.REG
[1] = NIT_NULL
;
2464 /* syntax/typing.nit:360 */
2465 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AType___get_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2466 ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2467 stack_frame_head
= fra
.me
.prev
;
2470 static const char LOCATE_syntax___typing___AExpr___is_typed
[] = "typing::AExpr::(syntax_base::AExpr::is_typed)";
2471 val_t
syntax___typing___AExpr___is_typed(val_t p0
){
2472 struct {struct stack_frame_t me
;} fra
;
2475 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2476 fra
.me
.file
= LOCATE_syntax___typing
;
2478 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_typed
;
2479 fra
.me
.has_broke
= 0;
2480 fra
.me
.REG_size
= 1;
2481 fra
.me
.nitni_local_ref_head
= NULL
;
2482 fra
.me
.REG
[0] = NIT_NULL
;
2484 /* syntax/typing.nit:365 */
2485 REGB0
= TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0])!=NIT_NULL
);
2486 if (UNTAG_Bool(REGB0
)) {
2488 nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_syntax___typing
, 365);
2490 REGB0
= ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]);
2491 stack_frame_head
= fra
.me
.prev
;
2494 static const char LOCATE_syntax___typing___AExpr___is_statement
[] = "typing::AExpr::(syntax_base::AExpr::is_statement)";
2495 val_t
syntax___typing___AExpr___is_statement(val_t p0
){
2496 struct {struct stack_frame_t me
;} fra
;
2500 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2501 fra
.me
.file
= LOCATE_syntax___typing
;
2503 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_statement
;
2504 fra
.me
.has_broke
= 0;
2505 fra
.me
.REG_size
= 1;
2506 fra
.me
.nitni_local_ref_head
= NULL
;
2507 fra
.me
.REG
[0] = NIT_NULL
;
2509 /* syntax/typing.nit:366 */
2510 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
2511 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2512 if (UNTAG_Bool(REGB0
)) {
2514 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2515 if (UNTAG_Bool(REGB1
)) {
2516 REGB1
= TAG_Bool(0);
2519 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2525 stack_frame_head
= fra
.me
.prev
;
2528 static const char LOCATE_syntax___typing___AExpr___stype
[] = "typing::AExpr::(syntax_base::AExpr::stype)";
2529 val_t
syntax___typing___AExpr___stype(val_t p0
){
2530 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2533 static val_t once_value_1
; /* Once value */
2534 static val_t once_value_2
; /* Once value */
2535 static val_t once_value_3
; /* Once value */
2536 static val_t once_value_4
; /* Once value */
2537 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2538 fra
.me
.file
= LOCATE_syntax___typing
;
2540 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___stype
;
2541 fra
.me
.has_broke
= 0;
2542 fra
.me
.REG_size
= 4;
2543 fra
.me
.nitni_local_ref_head
= NULL
;
2544 fra
.me
.REG
[0] = NIT_NULL
;
2545 fra
.me
.REG
[1] = NIT_NULL
;
2546 fra
.me
.REG
[2] = NIT_NULL
;
2547 fra
.me
.REG
[3] = NIT_NULL
;
2549 /* syntax/typing.nit:367 */
2550 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2551 /* syntax/typing.nit:369 */
2552 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2553 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2554 if (UNTAG_Bool(REGB0
)) {
2555 /* syntax/typing.nit:370 */
2557 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2558 if (!once_value_1
) {
2559 fra
.me
.REG
[3] = BOX_NativeString("");
2561 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2562 once_value_1
= fra
.me
.REG
[3];
2563 register_static_object(&once_value_1
);
2564 } else fra
.me
.REG
[3] = once_value_1
;
2565 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2566 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2567 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2568 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2569 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2570 if (!once_value_2
) {
2571 fra
.me
.REG
[3] = BOX_NativeString(": not is_typed");
2572 REGB0
= TAG_Int(14);
2573 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2574 once_value_2
= fra
.me
.REG
[3];
2575 register_static_object(&once_value_2
);
2576 } else fra
.me
.REG
[3] = once_value_2
;
2577 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2578 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2579 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2580 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2581 /* syntax/typing.nit:371 */
2582 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 371);
2584 /* syntax/typing.nit:373 */
2585 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2586 if (UNTAG_Bool(REGB0
)) {
2587 /* syntax/typing.nit:374 */
2589 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2590 if (!once_value_3
) {
2591 fra
.me
.REG
[3] = BOX_NativeString("");
2593 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2594 once_value_3
= fra
.me
.REG
[3];
2595 register_static_object(&once_value_3
);
2596 } else fra
.me
.REG
[3] = once_value_3
;
2597 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2598 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2599 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2600 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2601 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2602 if (!once_value_4
) {
2603 fra
.me
.REG
[3] = BOX_NativeString(": is_statement");
2604 REGB0
= TAG_Int(14);
2605 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2606 once_value_4
= fra
.me
.REG
[3];
2607 register_static_object(&once_value_4
);
2608 } else fra
.me
.REG
[3] = once_value_4
;
2609 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2610 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2611 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2612 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2613 /* syntax/typing.nit:375 */
2614 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 375);
2616 /* syntax/typing.nit:377 */
2617 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[1]);
2618 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2619 if (UNTAG_Bool(REGB0
)) {
2621 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 377);
2625 stack_frame_head
= fra
.me
.prev
;
2626 return fra
.me
.REG
[1];
2628 static const char LOCATE_syntax___typing___AExpr___after_typing
[] = "typing::AExpr::(typing::ANode::after_typing)";
2629 void syntax___typing___AExpr___after_typing(val_t p0
, val_t p1
){
2630 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2633 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2634 fra
.me
.file
= LOCATE_syntax___typing
;
2636 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___after_typing
;
2637 fra
.me
.has_broke
= 0;
2638 fra
.me
.REG_size
= 2;
2639 fra
.me
.nitni_local_ref_head
= NULL
;
2640 fra
.me
.REG
[0] = NIT_NULL
;
2641 fra
.me
.REG
[1] = NIT_NULL
;
2644 /* syntax/typing.nit:384 */
2645 REGB0
= TAG_Bool(1);
2646 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2647 stack_frame_head
= fra
.me
.prev
;
2650 static const char LOCATE_syntax___typing___AExpr___is_implicit_self
[] = "typing::AExpr::is_implicit_self";
2651 val_t
syntax___typing___AExpr___is_implicit_self(val_t p0
){
2652 struct {struct stack_frame_t me
;} fra
;
2655 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2656 fra
.me
.file
= LOCATE_syntax___typing
;
2658 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_implicit_self
;
2659 fra
.me
.has_broke
= 0;
2660 fra
.me
.REG_size
= 1;
2661 fra
.me
.nitni_local_ref_head
= NULL
;
2662 fra
.me
.REG
[0] = NIT_NULL
;
2664 /* syntax/typing.nit:388 */
2665 REGB0
= TAG_Bool(0);
2668 stack_frame_head
= fra
.me
.prev
;
2671 static const char LOCATE_syntax___typing___AExpr___is_self
[] = "typing::AExpr::is_self";
2672 val_t
syntax___typing___AExpr___is_self(val_t p0
){
2673 struct {struct stack_frame_t me
;} fra
;
2676 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2677 fra
.me
.file
= LOCATE_syntax___typing
;
2679 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_self
;
2680 fra
.me
.has_broke
= 0;
2681 fra
.me
.REG_size
= 1;
2682 fra
.me
.nitni_local_ref_head
= NULL
;
2683 fra
.me
.REG
[0] = NIT_NULL
;
2685 /* syntax/typing.nit:391 */
2686 REGB0
= TAG_Bool(0);
2689 stack_frame_head
= fra
.me
.prev
;
2692 static const char LOCATE_syntax___typing___AExpr___its_variable
[] = "typing::AExpr::its_variable";
2693 val_t
syntax___typing___AExpr___its_variable(val_t p0
){
2694 struct {struct stack_frame_t me
;} fra
;
2696 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2697 fra
.me
.file
= LOCATE_syntax___typing
;
2699 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___its_variable
;
2700 fra
.me
.has_broke
= 0;
2701 fra
.me
.REG_size
= 1;
2702 fra
.me
.nitni_local_ref_head
= NULL
;
2703 fra
.me
.REG
[0] = NIT_NULL
;
2705 /* syntax/typing.nit:394 */
2706 fra
.me
.REG
[0] = NIT_NULL
;
2709 stack_frame_head
= fra
.me
.prev
;
2710 return fra
.me
.REG
[0];
2712 static const char LOCATE_syntax___typing___AExpr___if_true_flow_ctx
[] = "typing::AExpr::if_true_flow_ctx";
2713 val_t
syntax___typing___AExpr___if_true_flow_ctx(val_t p0
){
2714 struct {struct stack_frame_t me
;} fra
;
2716 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2717 fra
.me
.file
= LOCATE_syntax___typing
;
2719 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___if_true_flow_ctx
;
2720 fra
.me
.has_broke
= 0;
2721 fra
.me
.REG_size
= 1;
2722 fra
.me
.nitni_local_ref_head
= NULL
;
2723 fra
.me
.REG
[0] = NIT_NULL
;
2725 /* syntax/typing.nit:396 */
2726 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]);
2727 stack_frame_head
= fra
.me
.prev
;
2728 return fra
.me
.REG
[0];
2730 static const char LOCATE_syntax___typing___AExpr___if_false_flow_ctx
[] = "typing::AExpr::if_false_flow_ctx";
2731 val_t
syntax___typing___AExpr___if_false_flow_ctx(val_t p0
){
2732 struct {struct stack_frame_t me
;} fra
;
2734 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2735 fra
.me
.file
= LOCATE_syntax___typing
;
2737 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___if_false_flow_ctx
;
2738 fra
.me
.has_broke
= 0;
2739 fra
.me
.REG_size
= 1;
2740 fra
.me
.nitni_local_ref_head
= NULL
;
2741 fra
.me
.REG
[0] = NIT_NULL
;
2743 /* syntax/typing.nit:399 */
2744 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]);
2745 stack_frame_head
= fra
.me
.prev
;
2746 return fra
.me
.REG
[0];
2748 static const char LOCATE_syntax___typing___AExpr___warn_parentheses
[] = "typing::AExpr::warn_parentheses";
2749 void syntax___typing___AExpr___warn_parentheses(val_t p0
, val_t p1
){
2750 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2752 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2753 fra
.me
.file
= LOCATE_syntax___typing
;
2755 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___warn_parentheses
;
2756 fra
.me
.has_broke
= 0;
2757 fra
.me
.REG_size
= 2;
2758 fra
.me
.nitni_local_ref_head
= NULL
;
2759 fra
.me
.REG
[0] = NIT_NULL
;
2760 fra
.me
.REG
[1] = NIT_NULL
;
2763 stack_frame_head
= fra
.me
.prev
;
2766 static const char LOCATE_syntax___typing___AParExpr___warn_parentheses
[] = "typing::AParExpr::(typing::AExpr::warn_parentheses)";
2767 void syntax___typing___AParExpr___warn_parentheses(val_t p0
, val_t p1
){
2768 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2771 static val_t once_value_1
; /* Once value */
2772 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2773 fra
.me
.file
= LOCATE_syntax___typing
;
2775 fra
.me
.meth
= LOCATE_syntax___typing___AParExpr___warn_parentheses
;
2776 fra
.me
.has_broke
= 0;
2777 fra
.me
.REG_size
= 3;
2778 fra
.me
.nitni_local_ref_head
= NULL
;
2779 fra
.me
.REG
[0] = NIT_NULL
;
2780 fra
.me
.REG
[1] = NIT_NULL
;
2781 fra
.me
.REG
[2] = NIT_NULL
;
2784 /* syntax/typing.nit:411 */
2785 if (!once_value_1
) {
2786 fra
.me
.REG
[2] = BOX_NativeString("Warning: superfluous parentheses.");
2787 REGB0
= TAG_Int(33);
2788 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2789 once_value_1
= fra
.me
.REG
[2];
2790 register_static_object(&once_value_1
);
2791 } else fra
.me
.REG
[2] = once_value_1
;
2792 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2793 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2794 stack_frame_head
= fra
.me
.prev
;
2797 static const char LOCATE_syntax___typing___AParExprs___after_typing
[] = "typing::AParExprs::(typing::ANode::after_typing)";
2798 void syntax___typing___AParExprs___after_typing(val_t p0
, val_t p1
){
2799 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2802 static val_t once_value_1
; /* Once value */
2803 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2804 fra
.me
.file
= LOCATE_syntax___typing
;
2806 fra
.me
.meth
= LOCATE_syntax___typing___AParExprs___after_typing
;
2807 fra
.me
.has_broke
= 0;
2808 fra
.me
.REG_size
= 3;
2809 fra
.me
.nitni_local_ref_head
= NULL
;
2810 fra
.me
.REG
[0] = NIT_NULL
;
2811 fra
.me
.REG
[1] = NIT_NULL
;
2812 fra
.me
.REG
[2] = NIT_NULL
;
2815 /* syntax/typing.nit:418 */
2816 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2817 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2818 if (UNTAG_Bool(REGB0
)) {
2819 /* syntax/typing.nit:419 */
2820 if (!once_value_1
) {
2821 fra
.me
.REG
[2] = BOX_NativeString("Warning: superfluous parentheses.");
2822 REGB0
= TAG_Int(33);
2823 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2824 once_value_1
= fra
.me
.REG
[2];
2825 register_static_object(&once_value_1
);
2826 } else fra
.me
.REG
[2] = once_value_1
;
2827 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2828 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2830 stack_frame_head
= fra
.me
.prev
;
2833 static const char LOCATE_syntax___typing___AVardeclExpr___variable
[] = "typing::AVardeclExpr::(syntax_base::AVardeclExpr::variable)";
2834 val_t
syntax___typing___AVardeclExpr___variable(val_t p0
){
2835 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2838 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2839 fra
.me
.file
= LOCATE_syntax___typing
;
2841 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___variable
;
2842 fra
.me
.has_broke
= 0;
2843 fra
.me
.REG_size
= 2;
2844 fra
.me
.nitni_local_ref_head
= NULL
;
2845 fra
.me
.REG
[0] = NIT_NULL
;
2846 fra
.me
.REG
[1] = NIT_NULL
;
2848 /* syntax/typing.nit:426 */
2849 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2850 fra
.me
.REG
[1] = ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[1]);
2851 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2852 if (UNTAG_Bool(REGB0
)) {
2854 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 426);
2858 stack_frame_head
= fra
.me
.prev
;
2859 return fra
.me
.REG
[1];
2861 static const char LOCATE_syntax___typing___AVardeclExpr___after_typing
[] = "typing::AVardeclExpr::(typing::ANode::after_typing)";
2862 void syntax___typing___AVardeclExpr___after_typing(val_t p0
, val_t p1
){
2863 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2867 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2868 fra
.me
.file
= LOCATE_syntax___typing
;
2870 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___after_typing
;
2871 fra
.me
.has_broke
= 0;
2872 fra
.me
.REG_size
= 5;
2873 fra
.me
.nitni_local_ref_head
= NULL
;
2874 fra
.me
.REG
[0] = NIT_NULL
;
2875 fra
.me
.REG
[1] = NIT_NULL
;
2876 fra
.me
.REG
[2] = NIT_NULL
;
2877 fra
.me
.REG
[3] = NIT_NULL
;
2878 fra
.me
.REG
[4] = NIT_NULL
;
2881 /* syntax/typing.nit:430 */
2882 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2883 fra
.me
.REG
[2] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2884 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2885 fra
.me
.REG
[3] = NEW_VarVariable_syntax___syntax_base___VarVariable___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2886 /* syntax/typing.nit:431 */
2887 ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
2888 /* syntax/typing.nit:432 */
2889 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2890 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2891 /* syntax/typing.nit:433 */
2892 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2893 /* syntax/typing.nit:434 */
2894 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2895 if (UNTAG_Bool(REGB0
)) {
2897 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2898 if (UNTAG_Bool(REGB1
)) {
2899 REGB1
= TAG_Bool(0);
2902 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2906 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2907 if (UNTAG_Bool(REGB0
)) {
2908 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2910 /* syntax/typing.nit:436 */
2911 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2912 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2913 if (UNTAG_Bool(REGB0
)) {
2915 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2916 if (UNTAG_Bool(REGB1
)) {
2917 REGB1
= TAG_Bool(0);
2920 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2924 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2925 if (UNTAG_Bool(REGB0
)) {
2926 /* syntax/typing.nit:437 */
2927 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2928 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2929 if (UNTAG_Bool(REGB0
)) {
2930 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 437);
2932 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2933 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2934 if (UNTAG_Bool(REGB0
)) {
2937 /* syntax/typing.nit:438 */
2938 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2939 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2940 if (UNTAG_Bool(REGB0
)) {
2941 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 438);
2943 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2944 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2945 /* syntax/typing.nit:439 */
2946 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2947 if (UNTAG_Bool(REGB0
)) {
2949 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2950 if (UNTAG_Bool(REGB1
)) {
2951 REGB1
= TAG_Bool(0);
2954 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2958 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2959 if (UNTAG_Bool(REGB0
)) {
2960 /* syntax/typing.nit:440 */
2961 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2962 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
2965 /* syntax/typing.nit:442 */
2966 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2967 if (UNTAG_Bool(REGB0
)) {
2969 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2970 if (UNTAG_Bool(REGB1
)) {
2971 REGB1
= TAG_Bool(0);
2974 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2978 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2979 if (UNTAG_Bool(REGB0
)) {
2980 /* syntax/typing.nit:443 */
2981 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2982 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2983 if (UNTAG_Bool(REGB0
)) {
2986 /* syntax/typing.nit:444 */
2987 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2988 if (UNTAG_Bool(REGB0
)) {
2989 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 444);
2991 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2992 /* syntax/typing.nit:445 */
2993 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
2994 if (UNTAG_Bool(REGB0
)) {
2995 /* syntax/typing.nit:446 */
2996 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2997 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2998 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2999 /* syntax/typing.nit:447 */
3000 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3001 fra
.me
.REG
[4] = 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]);
3002 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3004 /* syntax/typing.nit:449 */
3005 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3008 /* syntax/typing.nit:452 */
3009 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3010 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3011 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3014 /* syntax/typing.nit:454 */
3015 REGB0
= TAG_Bool(1);
3016 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3018 stack_frame_head
= fra
.me
.prev
;
3021 static const char LOCATE_syntax___typing___ABlockExpr___accept_typing
[] = "typing::ABlockExpr::(typing::ANode::accept_typing)";
3022 void syntax___typing___ABlockExpr___accept_typing(val_t p0
, val_t p1
){
3023 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3026 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3027 fra
.me
.file
= LOCATE_syntax___typing
;
3029 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
3030 fra
.me
.has_broke
= 0;
3031 fra
.me
.REG_size
= 3;
3032 fra
.me
.nitni_local_ref_head
= NULL
;
3033 fra
.me
.REG
[0] = NIT_NULL
;
3034 fra
.me
.REG
[1] = NIT_NULL
;
3035 fra
.me
.REG
[2] = NIT_NULL
;
3038 /* syntax/typing.nit:461 */
3039 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3040 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
));
3041 /* syntax/typing.nit:470 */
3042 REGB0
= TAG_Bool(1);
3043 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3044 stack_frame_head
= fra
.me
.prev
;
3047 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
){
3048 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3052 static val_t once_value_2
; /* Once value */
3053 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3054 fra
.me
.file
= LOCATE_syntax___typing
;
3056 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
3057 fra
.me
.has_broke
= 0;
3058 fra
.me
.REG_size
= 2;
3059 fra
.me
.nitni_local_ref_head
= NULL
;
3060 fra
.me
.REG
[0] = NIT_NULL
;
3061 fra
.me
.REG
[1] = NIT_NULL
;
3062 fra
.me
.closure_ctx
= closctx_param
;
3063 fra
.me
.closure_funs
= CREG
;
3065 CREG
[0] = clos_fun0
;
3066 /* syntax/typing.nit:462 */
3067 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3068 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3069 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3070 if (UNTAG_Bool(REGB0
)) {
3071 /* syntax/typing.nit:463 */
3072 CALL_parser___parser_nodes___Visitor___enter_visit(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
3074 /* syntax/typing.nit:464 */
3075 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3076 REGB0
= CALL_syntax___flow___FlowContext___already_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3077 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3078 if (UNTAG_Bool(REGB0
)) {
3079 /* syntax/typing.nit:465 */
3080 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3081 REGB0
= TAG_Bool(1);
3082 CALL_syntax___flow___FlowContext___already_unreash__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
3083 /* syntax/typing.nit:466 */
3084 if (!once_value_2
) {
3085 fra
.me
.REG
[1] = BOX_NativeString("Error: unreachable statement.");
3086 REGB0
= TAG_Int(29);
3087 fra
.me
.REG
[1] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
3088 once_value_2
= fra
.me
.REG
[1];
3089 register_static_object(&once_value_2
);
3090 } else fra
.me
.REG
[1] = once_value_2
;
3091 fra
.me
.REG
[1] = fra
.me
.REG
[1];
3092 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[1]);
3095 stack_frame_head
= fra
.me
.prev
;
3098 static const char LOCATE_syntax___typing___AReturnExpr___after_typing
[] = "typing::AReturnExpr::(typing::ANode::after_typing)";
3099 void syntax___typing___AReturnExpr___after_typing(val_t p0
, val_t p1
){
3100 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3104 static val_t once_value_1
; /* Once value */
3105 static val_t once_value_3
; /* Once value */
3106 static val_t once_value_4
; /* Once value */
3107 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3108 fra
.me
.file
= LOCATE_syntax___typing
;
3110 fra
.me
.meth
= LOCATE_syntax___typing___AReturnExpr___after_typing
;
3111 fra
.me
.has_broke
= 0;
3112 fra
.me
.REG_size
= 5;
3113 fra
.me
.nitni_local_ref_head
= NULL
;
3114 fra
.me
.REG
[0] = NIT_NULL
;
3115 fra
.me
.REG
[1] = NIT_NULL
;
3116 fra
.me
.REG
[2] = NIT_NULL
;
3117 fra
.me
.REG
[3] = NIT_NULL
;
3118 fra
.me
.REG
[4] = NIT_NULL
;
3121 /* syntax/typing.nit:477 */
3122 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3123 /* syntax/typing.nit:478 */
3124 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3125 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3126 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3127 if (UNTAG_Bool(REGB0
)) {
3128 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 478);
3130 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3131 /* syntax/typing.nit:480 */
3132 REGB0
= CALL_syntax___typing___TypingVisitor___is_default_closure_definition(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3133 if (UNTAG_Bool(REGB0
)) {
3134 /* syntax/typing.nit:481 */
3135 if (!once_value_1
) {
3136 fra
.me
.REG
[3] = BOX_NativeString("Error: 'return' invalid in default closure definitions. Use 'continue' or 'break'.");
3137 REGB0
= TAG_Int(82);
3138 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
3139 once_value_1
= fra
.me
.REG
[3];
3140 register_static_object(&once_value_1
);
3141 } else fra
.me
.REG
[3] = once_value_1
;
3142 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3143 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3144 /* syntax/typing.nit:482 */
3147 /* syntax/typing.nit:485 */
3148 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3149 /* syntax/typing.nit:486 */
3150 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3151 if (UNTAG_Bool(REGB0
)) {
3153 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3154 if (UNTAG_Bool(REGB1
)) {
3155 REGB1
= TAG_Bool(0);
3158 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3162 if (UNTAG_Bool(REGB0
)) {
3163 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3164 if (UNTAG_Bool(REGB0
)) {
3166 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3167 if (UNTAG_Bool(REGB1
)) {
3168 REGB1
= TAG_Bool(0);
3171 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3175 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3177 REGB1
= TAG_Bool(0);
3180 if (UNTAG_Bool(REGB0
)) {
3181 /* syntax/typing.nit:487 */
3182 if (!once_value_3
) {
3183 fra
.me
.REG
[4] = BOX_NativeString("Error: Return without value in a function.");
3184 REGB0
= TAG_Int(42);
3185 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
3186 once_value_3
= fra
.me
.REG
[4];
3187 register_static_object(&once_value_3
);
3188 } else fra
.me
.REG
[4] = once_value_3
;
3189 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3190 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3192 /* syntax/typing.nit:488 */
3193 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3194 if (UNTAG_Bool(REGB0
)) {
3196 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3197 if (UNTAG_Bool(REGB1
)) {
3198 REGB1
= TAG_Bool(0);
3201 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3205 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3206 if (UNTAG_Bool(REGB0
)) {
3207 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3208 if (UNTAG_Bool(REGB0
)) {
3210 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3211 if (UNTAG_Bool(REGB1
)) {
3212 REGB1
= TAG_Bool(0);
3215 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3220 REGB1
= TAG_Bool(0);
3223 if (UNTAG_Bool(REGB0
)) {
3224 /* syntax/typing.nit:489 */
3225 if (!once_value_4
) {
3226 fra
.me
.REG
[4] = BOX_NativeString("Error: Return with value in a procedure.");
3227 REGB0
= TAG_Int(40);
3228 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
3229 once_value_4
= fra
.me
.REG
[4];
3230 register_static_object(&once_value_4
);
3231 } else fra
.me
.REG
[4] = once_value_4
;
3232 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3233 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3235 /* syntax/typing.nit:490 */
3236 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3237 if (UNTAG_Bool(REGB0
)) {
3239 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3240 if (UNTAG_Bool(REGB1
)) {
3241 REGB1
= TAG_Bool(0);
3244 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3248 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3249 if (UNTAG_Bool(REGB0
)) {
3250 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3251 if (UNTAG_Bool(REGB0
)) {
3253 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3254 if (UNTAG_Bool(REGB1
)) {
3255 REGB1
= TAG_Bool(0);
3258 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3262 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3264 REGB1
= TAG_Bool(0);
3267 if (UNTAG_Bool(REGB0
)) {
3268 /* syntax/typing.nit:491 */
3269 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3273 /* syntax/typing.nit:493 */
3274 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3275 if (UNTAG_Bool(REGB0
)) {
3277 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3278 if (UNTAG_Bool(REGB1
)) {
3279 REGB1
= TAG_Bool(0);
3282 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3286 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3287 if (UNTAG_Bool(REGB0
)) {
3288 /* syntax/typing.nit:494 */
3289 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3290 if (UNTAG_Bool(REGB0
)) {
3291 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 494);
3293 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3295 /* syntax/typing.nit:496 */
3296 REGB0
= TAG_Bool(1);
3297 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3299 stack_frame_head
= fra
.me
.prev
;
3302 static const char LOCATE_syntax___typing___AContinueExpr___after_typing
[] = "typing::AContinueExpr::(typing::ANode::after_typing)";
3303 void syntax___typing___AContinueExpr___after_typing(val_t p0
, val_t p1
){
3304 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3308 static val_t once_value_2
; /* Once value */
3309 static val_t once_value_3
; /* Once value */
3310 static val_t once_value_4
; /* Once value */
3311 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3312 fra
.me
.file
= LOCATE_syntax___typing
;
3314 fra
.me
.meth
= LOCATE_syntax___typing___AContinueExpr___after_typing
;
3315 fra
.me
.has_broke
= 0;
3316 fra
.me
.REG_size
= 5;
3317 fra
.me
.nitni_local_ref_head
= NULL
;
3318 fra
.me
.REG
[0] = NIT_NULL
;
3319 fra
.me
.REG
[1] = NIT_NULL
;
3320 fra
.me
.REG
[2] = NIT_NULL
;
3321 fra
.me
.REG
[3] = NIT_NULL
;
3322 fra
.me
.REG
[4] = NIT_NULL
;
3325 /* syntax/typing.nit:503 */
3326 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3327 /* syntax/typing.nit:504 */
3328 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3329 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3330 /* syntax/typing.nit:505 */
3331 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3332 if (UNTAG_Bool(REGB0
)) {
3334 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3335 if (UNTAG_Bool(REGB1
)) {
3336 REGB1
= TAG_Bool(0);
3339 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3343 if (UNTAG_Bool(REGB0
)) {
3346 /* syntax/typing.nit:507 */
3347 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3348 if (UNTAG_Bool(REGB0
)) {
3349 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 507);
3351 REGB0
= CALL_syntax___scope___EscapableBlock___is_break_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3352 if (UNTAG_Bool(REGB0
)) {
3353 /* syntax/typing.nit:508 */
3354 if (!once_value_2
) {
3355 fra
.me
.REG
[3] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
3356 REGB0
= TAG_Int(39);
3357 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
3358 once_value_2
= fra
.me
.REG
[3];
3359 register_static_object(&once_value_2
);
3360 } else fra
.me
.REG
[3] = once_value_2
;
3361 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3362 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3363 /* syntax/typing.nit:509 */
3366 /* syntax/typing.nit:512 */
3367 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3368 if (UNTAG_Bool(REGB0
)) {
3369 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 512);
3371 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___continue_stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3372 /* syntax/typing.nit:513 */
3373 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3374 /* syntax/typing.nit:514 */
3375 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3376 if (UNTAG_Bool(REGB0
)) {
3378 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3379 if (UNTAG_Bool(REGB1
)) {
3380 REGB1
= TAG_Bool(0);
3383 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3387 if (UNTAG_Bool(REGB0
)) {
3388 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3389 if (UNTAG_Bool(REGB0
)) {
3391 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3392 if (UNTAG_Bool(REGB1
)) {
3393 REGB1
= TAG_Bool(0);
3396 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3400 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3402 REGB1
= TAG_Bool(0);
3405 if (UNTAG_Bool(REGB0
)) {
3406 /* syntax/typing.nit:515 */
3407 if (!once_value_3
) {
3408 fra
.me
.REG
[4] = BOX_NativeString("Error: continue with a value required in this block.");
3409 REGB0
= TAG_Int(52);
3410 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
3411 once_value_3
= fra
.me
.REG
[4];
3412 register_static_object(&once_value_3
);
3413 } else fra
.me
.REG
[4] = once_value_3
;
3414 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3415 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3417 /* syntax/typing.nit:516 */
3418 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3419 if (UNTAG_Bool(REGB0
)) {
3421 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3422 if (UNTAG_Bool(REGB1
)) {
3423 REGB1
= TAG_Bool(0);
3426 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3430 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3431 if (UNTAG_Bool(REGB0
)) {
3432 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3433 if (UNTAG_Bool(REGB0
)) {
3435 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3436 if (UNTAG_Bool(REGB1
)) {
3437 REGB1
= TAG_Bool(0);
3440 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3445 REGB1
= TAG_Bool(0);
3448 if (UNTAG_Bool(REGB0
)) {
3449 /* syntax/typing.nit:517 */
3450 if (!once_value_4
) {
3451 fra
.me
.REG
[4] = BOX_NativeString("Error: continue without value required in this block.");
3452 REGB0
= TAG_Int(53);
3453 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
3454 once_value_4
= fra
.me
.REG
[4];
3455 register_static_object(&once_value_4
);
3456 } else fra
.me
.REG
[4] = once_value_4
;
3457 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3458 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3460 /* syntax/typing.nit:518 */
3461 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3462 if (UNTAG_Bool(REGB0
)) {
3464 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3465 if (UNTAG_Bool(REGB1
)) {
3466 REGB1
= TAG_Bool(0);
3469 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3473 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3474 if (UNTAG_Bool(REGB0
)) {
3475 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3476 if (UNTAG_Bool(REGB0
)) {
3478 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3479 if (UNTAG_Bool(REGB1
)) {
3480 REGB1
= TAG_Bool(0);
3483 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3487 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3489 REGB1
= TAG_Bool(0);
3492 if (UNTAG_Bool(REGB0
)) {
3493 /* syntax/typing.nit:519 */
3494 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3498 /* syntax/typing.nit:521 */
3499 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3500 if (UNTAG_Bool(REGB0
)) {
3502 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3503 if (UNTAG_Bool(REGB1
)) {
3504 REGB1
= TAG_Bool(0);
3507 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3511 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3512 if (UNTAG_Bool(REGB0
)) {
3513 /* syntax/typing.nit:522 */
3514 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3515 if (UNTAG_Bool(REGB0
)) {
3516 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 522);
3518 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3520 /* syntax/typing.nit:524 */
3521 REGB0
= TAG_Bool(1);
3522 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3524 stack_frame_head
= fra
.me
.prev
;
3527 static const char LOCATE_syntax___typing___ABreakExpr___after_typing
[] = "typing::ABreakExpr::(typing::ANode::after_typing)";
3528 void syntax___typing___ABreakExpr___after_typing(val_t p0
, val_t p1
){
3529 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3533 static val_t once_value_2
; /* Once value */
3534 static val_t once_value_3
; /* Once value */
3535 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3536 fra
.me
.file
= LOCATE_syntax___typing
;
3538 fra
.me
.meth
= LOCATE_syntax___typing___ABreakExpr___after_typing
;
3539 fra
.me
.has_broke
= 0;
3540 fra
.me
.REG_size
= 5;
3541 fra
.me
.nitni_local_ref_head
= NULL
;
3542 fra
.me
.REG
[0] = NIT_NULL
;
3543 fra
.me
.REG
[1] = NIT_NULL
;
3544 fra
.me
.REG
[2] = NIT_NULL
;
3545 fra
.me
.REG
[3] = NIT_NULL
;
3546 fra
.me
.REG
[4] = NIT_NULL
;
3549 /* syntax/typing.nit:531 */
3550 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3551 /* syntax/typing.nit:532 */
3552 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3553 /* syntax/typing.nit:533 */
3554 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3555 fra
.me
.REG
[3] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
3556 /* syntax/typing.nit:534 */
3557 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3558 if (UNTAG_Bool(REGB0
)) {
3560 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3561 if (UNTAG_Bool(REGB1
)) {
3562 REGB1
= TAG_Bool(0);
3565 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3569 if (UNTAG_Bool(REGB0
)) {
3572 /* syntax/typing.nit:536 */
3573 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3574 if (UNTAG_Bool(REGB0
)) {
3575 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 536);
3577 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3578 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3579 /* syntax/typing.nit:538 */
3580 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3581 if (UNTAG_Bool(REGB0
)) {
3582 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 538);
3584 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3585 /* syntax/typing.nit:539 */
3586 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3587 /* syntax/typing.nit:540 */
3588 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3589 if (UNTAG_Bool(REGB0
)) {
3591 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3592 if (UNTAG_Bool(REGB1
)) {
3593 REGB1
= TAG_Bool(0);
3596 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3600 if (UNTAG_Bool(REGB0
)) {
3601 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3602 if (UNTAG_Bool(REGB0
)) {
3604 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3605 if (UNTAG_Bool(REGB1
)) {
3606 REGB1
= TAG_Bool(0);
3609 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3613 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3615 REGB1
= TAG_Bool(0);
3618 if (UNTAG_Bool(REGB0
)) {
3619 /* syntax/typing.nit:541 */
3620 if (!once_value_2
) {
3621 fra
.me
.REG
[4] = BOX_NativeString("Error: break with a value required in this block.");
3622 REGB0
= TAG_Int(49);
3623 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
3624 once_value_2
= fra
.me
.REG
[4];
3625 register_static_object(&once_value_2
);
3626 } else fra
.me
.REG
[4] = once_value_2
;
3627 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3628 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3630 /* syntax/typing.nit:542 */
3631 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3632 if (UNTAG_Bool(REGB0
)) {
3634 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3635 if (UNTAG_Bool(REGB1
)) {
3636 REGB1
= TAG_Bool(0);
3639 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3643 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3644 if (UNTAG_Bool(REGB0
)) {
3645 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3646 if (UNTAG_Bool(REGB0
)) {
3648 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3649 if (UNTAG_Bool(REGB1
)) {
3650 REGB1
= TAG_Bool(0);
3653 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3658 REGB1
= TAG_Bool(0);
3661 if (UNTAG_Bool(REGB0
)) {
3662 /* syntax/typing.nit:543 */
3663 if (!once_value_3
) {
3664 fra
.me
.REG
[4] = BOX_NativeString("Error: break without value required in this block.");
3665 REGB0
= TAG_Int(50);
3666 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
3667 once_value_3
= fra
.me
.REG
[4];
3668 register_static_object(&once_value_3
);
3669 } else fra
.me
.REG
[4] = once_value_3
;
3670 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3671 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3673 /* syntax/typing.nit:544 */
3674 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3675 if (UNTAG_Bool(REGB0
)) {
3677 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3678 if (UNTAG_Bool(REGB1
)) {
3679 REGB1
= TAG_Bool(0);
3682 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3686 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3687 if (UNTAG_Bool(REGB0
)) {
3688 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3689 if (UNTAG_Bool(REGB0
)) {
3691 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3692 if (UNTAG_Bool(REGB1
)) {
3693 REGB1
= TAG_Bool(0);
3696 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3700 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3702 REGB1
= TAG_Bool(0);
3705 if (UNTAG_Bool(REGB0
)) {
3706 /* syntax/typing.nit:546 */
3707 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3708 if (UNTAG_Bool(REGB0
)) {
3709 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 546);
3711 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3715 /* syntax/typing.nit:548 */
3716 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3717 if (UNTAG_Bool(REGB0
)) {
3719 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3720 if (UNTAG_Bool(REGB1
)) {
3721 REGB1
= TAG_Bool(0);
3724 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3728 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3729 if (UNTAG_Bool(REGB0
)) {
3730 /* syntax/typing.nit:549 */
3731 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3732 if (UNTAG_Bool(REGB0
)) {
3733 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 549);
3735 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3737 /* syntax/typing.nit:551 */
3738 REGB0
= TAG_Bool(1);
3739 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3741 stack_frame_head
= fra
.me
.prev
;
3744 static const char LOCATE_syntax___typing___AAbortExpr___after_typing
[] = "typing::AAbortExpr::(typing::ANode::after_typing)";
3745 void syntax___typing___AAbortExpr___after_typing(val_t p0
, val_t p1
){
3746 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3749 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3750 fra
.me
.file
= LOCATE_syntax___typing
;
3752 fra
.me
.meth
= LOCATE_syntax___typing___AAbortExpr___after_typing
;
3753 fra
.me
.has_broke
= 0;
3754 fra
.me
.REG_size
= 2;
3755 fra
.me
.nitni_local_ref_head
= NULL
;
3756 fra
.me
.REG
[0] = NIT_NULL
;
3757 fra
.me
.REG
[1] = NIT_NULL
;
3760 /* syntax/typing.nit:558 */
3761 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3762 /* syntax/typing.nit:559 */
3763 REGB0
= TAG_Bool(1);
3764 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3765 stack_frame_head
= fra
.me
.prev
;
3768 static const char LOCATE_syntax___typing___AAbsControl___escapable
[] = "typing::AAbsControl::escapable";
3769 val_t
syntax___typing___AAbsControl___escapable(val_t p0
){
3770 struct {struct stack_frame_t me
;} fra
;
3772 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3773 fra
.me
.file
= LOCATE_syntax___typing
;
3775 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___escapable
;
3776 fra
.me
.has_broke
= 0;
3777 fra
.me
.REG_size
= 1;
3778 fra
.me
.nitni_local_ref_head
= NULL
;
3779 fra
.me
.REG
[0] = NIT_NULL
;
3781 /* syntax/typing.nit:566 */
3782 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]);
3783 stack_frame_head
= fra
.me
.prev
;
3784 return fra
.me
.REG
[0];
3786 static const char LOCATE_syntax___typing___AAbsControl___process_control
[] = "typing::AAbsControl::process_control";
3787 void syntax___typing___AAbsControl___process_control(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
3788 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3792 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3793 fra
.me
.file
= LOCATE_syntax___typing
;
3795 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control
;
3796 fra
.me
.has_broke
= 0;
3797 fra
.me
.REG_size
= 7;
3798 fra
.me
.nitni_local_ref_head
= NULL
;
3799 fra
.me
.REG
[0] = NIT_NULL
;
3800 fra
.me
.REG
[1] = NIT_NULL
;
3801 fra
.me
.REG
[2] = NIT_NULL
;
3802 fra
.me
.REG
[3] = NIT_NULL
;
3803 fra
.me
.REG
[4] = NIT_NULL
;
3804 fra
.me
.REG
[5] = NIT_NULL
;
3805 fra
.me
.REG
[6] = NIT_NULL
;
3811 /* syntax/typing.nit:573 */
3812 ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3813 /* syntax/typing.nit:574 */
3814 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3815 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3816 /* syntax/typing.nit:577 */
3817 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3818 /* syntax/typing.nit:578 */
3819 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3820 /* syntax/typing.nit:579 */
3821 if (UNTAG_Bool(REGB0
)) {
3822 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3823 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3825 /* syntax/typing.nit:582 */
3826 CALL_syntax___typing___AAbsControl___process_control_inside(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3827 /* syntax/typing.nit:585 */
3828 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3829 REGB1
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3830 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
3831 if (UNTAG_Bool(REGB1
)) {
3832 /* syntax/typing.nit:586 */
3833 fra
.me
.REG
[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3834 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3835 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3837 /* syntax/typing.nit:590 */
3838 fra
.me
.REG
[6] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3839 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3840 if (UNTAG_Bool(REGB1
)) {
3841 /* syntax/typing.nit:591 */
3842 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3843 /* syntax/typing.nit:592 */
3844 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3846 /* syntax/typing.nit:594 */
3847 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3848 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]);
3849 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3851 /* syntax/typing.nit:597 */
3852 if (UNTAG_Bool(REGB0
)) {
3853 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3855 /* syntax/typing.nit:598 */
3856 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3857 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3858 /* syntax/typing.nit:599 */
3859 REGB0
= TAG_Bool(1);
3860 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3861 stack_frame_head
= fra
.me
.prev
;
3864 static const char LOCATE_syntax___typing___AAbsControl___process_control_inside
[] = "typing::AAbsControl::process_control_inside";
3865 void syntax___typing___AAbsControl___process_control_inside(val_t p0
, val_t p1
){
3866 struct {struct stack_frame_t me
;} fra
;
3868 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3869 fra
.me
.file
= LOCATE_syntax___typing
;
3871 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control_inside
;
3872 fra
.me
.has_broke
= 0;
3873 fra
.me
.REG_size
= 0;
3874 fra
.me
.nitni_local_ref_head
= NULL
;
3875 /* syntax/typing.nit:602 */
3876 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 602);
3877 stack_frame_head
= fra
.me
.prev
;
3880 static const char LOCATE_syntax___typing___ADoExpr___accept_typing
[] = "typing::ADoExpr::(typing::ANode::accept_typing)";
3881 void syntax___typing___ADoExpr___accept_typing(val_t p0
, val_t p1
){
3882 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3885 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3886 fra
.me
.file
= LOCATE_syntax___typing
;
3888 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___accept_typing
;
3889 fra
.me
.has_broke
= 0;
3890 fra
.me
.REG_size
= 4;
3891 fra
.me
.nitni_local_ref_head
= NULL
;
3892 fra
.me
.REG
[0] = NIT_NULL
;
3893 fra
.me
.REG
[1] = NIT_NULL
;
3894 fra
.me
.REG
[2] = NIT_NULL
;
3895 fra
.me
.REG
[3] = NIT_NULL
;
3898 /* syntax/typing.nit:610 */
3899 fra
.me
.REG
[2] = NEW_BreakOnlyEscapableBlock_syntax___scope___BreakOnlyEscapableBlock___init(fra
.me
.REG
[0]);
3900 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3901 REGB0
= TAG_Bool(0);
3902 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
);
3903 stack_frame_head
= fra
.me
.prev
;
3906 static const char LOCATE_syntax___typing___ADoExpr___process_control_inside
[] = "typing::ADoExpr::(typing::AAbsControl::process_control_inside)";
3907 void syntax___typing___ADoExpr___process_control_inside(val_t p0
, val_t p1
){
3908 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3910 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3911 fra
.me
.file
= LOCATE_syntax___typing
;
3913 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___process_control_inside
;
3914 fra
.me
.has_broke
= 0;
3915 fra
.me
.REG_size
= 2;
3916 fra
.me
.nitni_local_ref_head
= NULL
;
3917 fra
.me
.REG
[0] = NIT_NULL
;
3918 fra
.me
.REG
[1] = NIT_NULL
;
3921 /* syntax/typing.nit:615 */
3922 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3923 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3924 stack_frame_head
= fra
.me
.prev
;
3927 static const char LOCATE_syntax___typing___AIfExpr___accept_typing
[] = "typing::AIfExpr::(typing::ANode::accept_typing)";
3928 void syntax___typing___AIfExpr___accept_typing(val_t p0
, val_t p1
){
3929 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3932 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3933 fra
.me
.file
= LOCATE_syntax___typing
;
3935 fra
.me
.meth
= LOCATE_syntax___typing___AIfExpr___accept_typing
;
3936 fra
.me
.has_broke
= 0;
3937 fra
.me
.REG_size
= 5;
3938 fra
.me
.nitni_local_ref_head
= NULL
;
3939 fra
.me
.REG
[0] = NIT_NULL
;
3940 fra
.me
.REG
[1] = NIT_NULL
;
3941 fra
.me
.REG
[2] = NIT_NULL
;
3942 fra
.me
.REG
[3] = NIT_NULL
;
3943 fra
.me
.REG
[4] = NIT_NULL
;
3946 /* syntax/typing.nit:622 */
3947 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3948 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3949 /* syntax/typing.nit:623 */
3950 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3951 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3952 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3953 /* syntax/typing.nit:625 */
3954 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3955 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3956 /* syntax/typing.nit:628 */
3957 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3958 /* syntax/typing.nit:629 */
3959 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3960 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3961 /* syntax/typing.nit:632 */
3962 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3963 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3964 /* syntax/typing.nit:635 */
3965 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3966 /* syntax/typing.nit:638 */
3967 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3968 /* syntax/typing.nit:639 */
3969 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3970 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3971 /* syntax/typing.nit:642 */
3972 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3973 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3974 /* syntax/typing.nit:645 */
3975 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3976 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3977 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]);
3978 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3979 /* syntax/typing.nit:646 */
3980 REGB0
= TAG_Bool(1);
3981 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3982 stack_frame_head
= fra
.me
.prev
;
3985 static const char LOCATE_syntax___typing___AWhileExpr___accept_typing
[] = "typing::AWhileExpr::(typing::ANode::accept_typing)";
3986 void syntax___typing___AWhileExpr___accept_typing(val_t p0
, val_t p1
){
3987 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3990 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3991 fra
.me
.file
= LOCATE_syntax___typing
;
3993 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___accept_typing
;
3994 fra
.me
.has_broke
= 0;
3995 fra
.me
.REG_size
= 4;
3996 fra
.me
.nitni_local_ref_head
= NULL
;
3997 fra
.me
.REG
[0] = NIT_NULL
;
3998 fra
.me
.REG
[1] = NIT_NULL
;
3999 fra
.me
.REG
[2] = NIT_NULL
;
4000 fra
.me
.REG
[3] = NIT_NULL
;
4003 /* syntax/typing.nit:654 */
4004 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
4005 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4006 REGB0
= TAG_Bool(1);
4007 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
);
4008 stack_frame_head
= fra
.me
.prev
;
4011 static const char LOCATE_syntax___typing___AWhileExpr___process_control_inside
[] = "typing::AWhileExpr::(typing::AAbsControl::process_control_inside)";
4012 void syntax___typing___AWhileExpr___process_control_inside(val_t p0
, val_t p1
){
4013 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4016 static val_t once_value_1
; /* Once value */
4017 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4018 fra
.me
.file
= LOCATE_syntax___typing
;
4020 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___process_control_inside
;
4021 fra
.me
.has_broke
= 0;
4022 fra
.me
.REG_size
= 5;
4023 fra
.me
.nitni_local_ref_head
= NULL
;
4024 fra
.me
.REG
[0] = NIT_NULL
;
4025 fra
.me
.REG
[1] = NIT_NULL
;
4026 fra
.me
.REG
[2] = NIT_NULL
;
4027 fra
.me
.REG
[3] = NIT_NULL
;
4028 fra
.me
.REG
[4] = NIT_NULL
;
4031 /* syntax/typing.nit:659 */
4032 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4033 /* syntax/typing.nit:662 */
4034 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4035 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4036 /* syntax/typing.nit:663 */
4037 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4038 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4039 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
4040 /* syntax/typing.nit:665 */
4041 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4042 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_parser___parser_nodes___ATrueExpr
, ID_parser___parser_nodes___ATrueExpr
)) /*cast ATrueExpr*/;
4043 if (UNTAG_Bool(REGB0
)) {
4044 /* syntax/typing.nit:666 */
4045 if (!once_value_1
) {
4046 fra
.me
.REG
[4] = BOX_NativeString("Warning: use 'loop' instead of 'while true do'.");
4047 REGB0
= TAG_Int(47);
4048 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
4049 once_value_1
= fra
.me
.REG
[4];
4050 register_static_object(&once_value_1
);
4051 } else fra
.me
.REG
[4] = once_value_1
;
4052 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4053 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
4055 /* syntax/typing.nit:668 */
4056 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4057 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
4059 /* syntax/typing.nit:672 */
4060 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4061 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4062 /* syntax/typing.nit:675 */
4063 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4064 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4065 /* syntax/typing.nit:678 */
4066 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4067 /* syntax/typing.nit:679 */
4068 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4069 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4070 /* syntax/typing.nit:680 */
4071 fra
.me
.REG
[0] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4072 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
4073 if (UNTAG_Bool(REGB0
)) {
4074 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 680);
4076 fra
.me
.REG
[0] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4077 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
4079 stack_frame_head
= fra
.me
.prev
;
4082 static const char LOCATE_syntax___typing___ALoopExpr___accept_typing
[] = "typing::ALoopExpr::(typing::ANode::accept_typing)";
4083 void syntax___typing___ALoopExpr___accept_typing(val_t p0
, val_t p1
){
4084 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4087 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4088 fra
.me
.file
= LOCATE_syntax___typing
;
4090 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___accept_typing
;
4091 fra
.me
.has_broke
= 0;
4092 fra
.me
.REG_size
= 4;
4093 fra
.me
.nitni_local_ref_head
= NULL
;
4094 fra
.me
.REG
[0] = NIT_NULL
;
4095 fra
.me
.REG
[1] = NIT_NULL
;
4096 fra
.me
.REG
[2] = NIT_NULL
;
4097 fra
.me
.REG
[3] = NIT_NULL
;
4100 /* syntax/typing.nit:688 */
4101 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
4102 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4103 REGB0
= TAG_Bool(1);
4104 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
);
4105 stack_frame_head
= fra
.me
.prev
;
4108 static const char LOCATE_syntax___typing___ALoopExpr___process_control_inside
[] = "typing::ALoopExpr::(typing::AAbsControl::process_control_inside)";
4109 void syntax___typing___ALoopExpr___process_control_inside(val_t p0
, val_t p1
){
4110 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4112 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4113 fra
.me
.file
= LOCATE_syntax___typing
;
4115 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___process_control_inside
;
4116 fra
.me
.has_broke
= 0;
4117 fra
.me
.REG_size
= 3;
4118 fra
.me
.nitni_local_ref_head
= NULL
;
4119 fra
.me
.REG
[0] = NIT_NULL
;
4120 fra
.me
.REG
[1] = NIT_NULL
;
4121 fra
.me
.REG
[2] = NIT_NULL
;
4124 /* syntax/typing.nit:694 */
4125 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4126 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4127 /* syntax/typing.nit:697 */
4128 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4129 stack_frame_head
= fra
.me
.prev
;
4132 static const char LOCATE_syntax___typing___AForExpr___variables
[] = "typing::AForExpr::(syntax_base::AForExpr::variables)";
4133 val_t
syntax___typing___AForExpr___variables(val_t p0
){
4134 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4137 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4138 fra
.me
.file
= LOCATE_syntax___typing
;
4140 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___variables
;
4141 fra
.me
.has_broke
= 0;
4142 fra
.me
.REG_size
= 2;
4143 fra
.me
.nitni_local_ref_head
= NULL
;
4144 fra
.me
.REG
[0] = NIT_NULL
;
4145 fra
.me
.REG
[1] = NIT_NULL
;
4147 /* syntax/typing.nit:704 */
4148 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4149 fra
.me
.REG
[1] = ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[1]);
4150 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4151 if (UNTAG_Bool(REGB0
)) {
4153 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 704);
4157 stack_frame_head
= fra
.me
.prev
;
4158 return fra
.me
.REG
[1];
4160 static const char LOCATE_syntax___typing___AForExpr___accept_typing
[] = "typing::AForExpr::(typing::ANode::accept_typing)";
4161 void syntax___typing___AForExpr___accept_typing(val_t p0
, val_t p1
){
4162 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4165 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4166 fra
.me
.file
= LOCATE_syntax___typing
;
4168 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___accept_typing
;
4169 fra
.me
.has_broke
= 0;
4170 fra
.me
.REG_size
= 4;
4171 fra
.me
.nitni_local_ref_head
= NULL
;
4172 fra
.me
.REG
[0] = NIT_NULL
;
4173 fra
.me
.REG
[1] = NIT_NULL
;
4174 fra
.me
.REG
[2] = NIT_NULL
;
4175 fra
.me
.REG
[3] = NIT_NULL
;
4178 /* syntax/typing.nit:708 */
4179 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
4180 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4181 REGB0
= TAG_Bool(1);
4182 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
);
4183 stack_frame_head
= fra
.me
.prev
;
4186 static const char LOCATE_syntax___typing___AForExpr___process_control_inside
[] = "typing::AForExpr::(typing::AAbsControl::process_control_inside)";
4187 void syntax___typing___AForExpr___process_control_inside(val_t p0
, val_t p1
){
4188 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4190 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4191 fra
.me
.file
= LOCATE_syntax___typing
;
4193 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___process_control_inside
;
4194 fra
.me
.has_broke
= 0;
4195 fra
.me
.REG_size
= 3;
4196 fra
.me
.nitni_local_ref_head
= NULL
;
4197 fra
.me
.REG
[0] = NIT_NULL
;
4198 fra
.me
.REG
[1] = NIT_NULL
;
4199 fra
.me
.REG
[2] = NIT_NULL
;
4202 /* syntax/typing.nit:713 */
4203 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4204 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4205 /* syntax/typing.nit:714 */
4206 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4207 /* syntax/typing.nit:716 */
4208 CALL_syntax___typing___AForExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
4209 /* syntax/typing.nit:719 */
4210 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4211 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4212 /* syntax/typing.nit:722 */
4213 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4214 /* syntax/typing.nit:723 */
4215 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4216 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4217 stack_frame_head
= fra
.me
.prev
;
4220 static const char LOCATE_syntax___typing___AForExpr___do_typing
[] = "typing::AForExpr::do_typing";
4221 void syntax___typing___AForExpr___do_typing(val_t p0
, val_t p1
){
4222 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4230 static val_t once_value_3
; /* Once value */
4231 static val_t once_value_4
; /* Once value */
4232 static val_t once_value_5
; /* Once value */
4233 static val_t once_value_6
; /* Once value */
4234 static val_t once_value_7
; /* Once value */
4235 static val_t once_value_8
; /* Once value */
4236 static val_t once_value_9
; /* Once value */
4237 static val_t once_value_10
; /* Once value */
4238 static val_t once_value_11
; /* Once value */
4239 static val_t once_value_12
; /* Once value */
4240 static val_t once_value_13
; /* Once value */
4241 static val_t once_value_14
; /* Once value */
4242 static val_t once_value_15
; /* Once value */
4243 static val_t once_value_16
; /* Once value */
4244 static val_t once_value_17
; /* Once value */
4245 static val_t once_value_18
; /* Once value */
4246 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4247 fra
.me
.file
= LOCATE_syntax___typing
;
4249 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4250 fra
.me
.has_broke
= 0;
4251 fra
.me
.REG_size
= 8;
4252 fra
.me
.nitni_local_ref_head
= NULL
;
4253 fra
.me
.REG
[0] = NIT_NULL
;
4254 fra
.me
.REG
[1] = NIT_NULL
;
4255 fra
.me
.REG
[2] = NIT_NULL
;
4256 fra
.me
.REG
[3] = NIT_NULL
;
4257 fra
.me
.REG
[4] = NIT_NULL
;
4258 fra
.me
.REG
[5] = NIT_NULL
;
4259 fra
.me
.REG
[6] = NIT_NULL
;
4260 fra
.me
.REG
[7] = NIT_NULL
;
4263 /* syntax/typing.nit:729 */
4264 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
4265 /* syntax/typing.nit:730 */
4266 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4267 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
));
4268 /* syntax/typing.nit:735 */
4269 ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4270 /* syntax/typing.nit:738 */
4271 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4272 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4273 /* syntax/typing.nit:739 */
4274 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4275 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4276 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4277 if (UNTAG_Bool(REGB0
)) {
4280 /* syntax/typing.nit:740 */
4281 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4282 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4283 /* syntax/typing.nit:742 */
4284 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4285 if (UNTAG_Bool(REGB0
)) {
4286 /* syntax/typing.nit:743 */
4287 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4288 if (!once_value_3
) {
4289 fra
.me
.REG
[5] = BOX_NativeString("Type error: 'for' on a nullable expression.");
4290 REGB0
= TAG_Int(43);
4291 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
4292 once_value_3
= fra
.me
.REG
[5];
4293 register_static_object(&once_value_3
);
4294 } else fra
.me
.REG
[5] = once_value_3
;
4295 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4296 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4297 /* syntax/typing.nit:744 */
4300 /* syntax/typing.nit:746 */
4301 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4302 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
4303 /* syntax/typing.nit:749 */
4304 if (!once_value_4
) {
4305 if (!once_value_5
) {
4306 fra
.me
.REG
[5] = BOX_NativeString("iterate");
4308 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
4309 once_value_5
= fra
.me
.REG
[5];
4310 register_static_object(&once_value_5
);
4311 } else fra
.me
.REG
[5] = once_value_5
;
4312 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4313 fra
.me
.REG
[5] = CALL_symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4314 once_value_4
= fra
.me
.REG
[5];
4315 register_static_object(&once_value_4
);
4316 } else fra
.me
.REG
[5] = once_value_4
;
4317 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4318 /* syntax/typing.nit:750 */
4319 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4320 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4321 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4322 if (UNTAG_Bool(REGB0
)) {
4323 /* syntax/typing.nit:751 */
4324 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4326 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4327 if (!once_value_6
) {
4328 fra
.me
.REG
[7] = BOX_NativeString("Type error: Expected a type with an 'iterate' method. Found ");
4329 REGB0
= TAG_Int(60);
4330 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
4331 once_value_6
= fra
.me
.REG
[7];
4332 register_static_object(&once_value_6
);
4333 } else fra
.me
.REG
[7] = once_value_6
;
4334 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4335 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4336 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4337 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4338 if (!once_value_7
) {
4339 fra
.me
.REG
[7] = BOX_NativeString(".");
4341 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
4342 once_value_7
= fra
.me
.REG
[7];
4343 register_static_object(&once_value_7
);
4344 } else fra
.me
.REG
[7] = once_value_7
;
4345 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4346 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4347 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4348 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
4349 /* syntax/typing.nit:752 */
4352 /* syntax/typing.nit:754 */
4353 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4354 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
4355 /* syntax/typing.nit:755 */
4356 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4357 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4358 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4359 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4360 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
);
4361 /* syntax/typing.nit:756 */
4362 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4363 /* syntax/typing.nit:757 */
4364 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4365 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4366 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4367 if (UNTAG_Bool(REGB0
)) {
4368 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4369 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4371 /* syntax/typing.nit:758 */
4372 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4374 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4375 if (UNTAG_Bool(REGB2
)) {
4377 /* ../lib/standard/kernel.nit:237 */
4378 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4379 /* syntax/typing.nit:758 */
4382 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4383 if (UNTAG_Bool(REGB2
)) {
4384 /* syntax/typing.nit:759 */
4385 if (!once_value_8
) {
4386 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require no arguments.");
4387 REGB2
= TAG_Int(63);
4388 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB2
);
4389 once_value_8
= fra
.me
.REG
[5];
4390 register_static_object(&once_value_8
);
4391 } else fra
.me
.REG
[5] = once_value_8
;
4392 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4393 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4394 /* syntax/typing.nit:760 */
4397 /* syntax/typing.nit:761 */
4398 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4399 /* ../lib/standard/collection/array.nit:24 */
4400 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4401 if (UNTAG_Bool(REGB2
)) {
4403 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4405 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4406 /* syntax/typing.nit:761 */
4408 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4409 if (UNTAG_Bool(REGB0
)) {
4411 /* ../lib/standard/kernel.nit:237 */
4412 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4413 /* syntax/typing.nit:761 */
4416 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4417 if (UNTAG_Bool(REGB0
)) {
4418 /* syntax/typing.nit:762 */
4419 if (!once_value_9
) {
4420 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one closure.");
4421 REGB0
= TAG_Int(62);
4422 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
4423 once_value_9
= fra
.me
.REG
[5];
4424 register_static_object(&once_value_9
);
4425 } else fra
.me
.REG
[5] = once_value_9
;
4426 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4427 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4428 /* syntax/typing.nit:763 */
4432 /* syntax/typing.nit:765 */
4433 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4434 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4435 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4436 if (UNTAG_Bool(REGB0
)) {
4437 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 765);
4439 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4440 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4441 /* syntax/typing.nit:766 */
4442 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4443 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4444 if (UNTAG_Bool(REGB0
)) {
4446 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4447 if (UNTAG_Bool(REGB1
)) {
4448 REGB1
= TAG_Bool(0);
4451 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
4455 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4456 if (UNTAG_Bool(REGB0
)) {
4457 /* syntax/typing.nit:767 */
4458 if (!once_value_10
) {
4459 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one procedural closure.");
4460 REGB0
= TAG_Int(73);
4461 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
4462 once_value_10
= fra
.me
.REG
[5];
4463 register_static_object(&once_value_10
);
4464 } else fra
.me
.REG
[5] = once_value_10
;
4465 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4466 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4467 /* syntax/typing.nit:768 */
4470 /* ../lib/standard/collection/array.nit:24 */
4471 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4472 if (UNTAG_Bool(REGB0
)) {
4474 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4476 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4477 /* syntax/typing.nit:770 */
4478 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4479 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4480 if (UNTAG_Bool(REGB2
)) {
4482 /* ../lib/standard/kernel.nit:237 */
4483 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4484 /* syntax/typing.nit:770 */
4487 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4488 if (UNTAG_Bool(REGB2
)) {
4489 /* syntax/typing.nit:771 */
4490 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4492 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4493 if (UNTAG_Bool(REGB0
)) {
4495 /* ../lib/standard/kernel.nit:237 */
4496 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4497 /* syntax/typing.nit:771 */
4500 if (UNTAG_Bool(REGB0
)) {
4501 /* syntax/typing.nit:772 */
4503 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4504 if (!once_value_11
) {
4505 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4506 REGB0
= TAG_Int(16);
4507 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
4508 once_value_11
= fra
.me
.REG
[4];
4509 register_static_object(&once_value_11
);
4510 } else fra
.me
.REG
[4] = once_value_11
;
4511 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4512 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4513 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4514 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4515 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4516 if (!once_value_12
) {
4517 fra
.me
.REG
[4] = BOX_NativeString(" variable ");
4518 REGB0
= TAG_Int(10);
4519 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
4520 once_value_12
= fra
.me
.REG
[4];
4521 register_static_object(&once_value_12
);
4522 } else fra
.me
.REG
[4] = once_value_12
;
4523 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4524 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4525 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4526 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4527 if (!once_value_13
) {
4528 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4530 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
4531 once_value_13
= fra
.me
.REG
[4];
4532 register_static_object(&once_value_13
);
4533 } else fra
.me
.REG
[4] = once_value_13
;
4534 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4535 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4536 /* ../lib/standard/collection/array.nit:24 */
4537 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4538 if (UNTAG_Bool(REGB0
)) {
4540 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4542 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4543 /* syntax/typing.nit:772 */
4544 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4545 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4546 if (!once_value_14
) {
4547 fra
.me
.REG
[4] = BOX_NativeString(".");
4549 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
4550 once_value_14
= fra
.me
.REG
[4];
4551 register_static_object(&once_value_14
);
4552 } else fra
.me
.REG
[4] = once_value_14
;
4553 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4554 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4555 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4556 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4558 /* syntax/typing.nit:774 */
4560 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4561 if (!once_value_15
) {
4562 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4563 REGB0
= TAG_Int(16);
4564 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
4565 once_value_15
= fra
.me
.REG
[4];
4566 register_static_object(&once_value_15
);
4567 } else fra
.me
.REG
[4] = once_value_15
;
4568 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4569 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4570 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4571 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4572 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4573 if (!once_value_16
) {
4574 fra
.me
.REG
[4] = BOX_NativeString(" variables ");
4575 REGB0
= TAG_Int(11);
4576 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
4577 once_value_16
= fra
.me
.REG
[4];
4578 register_static_object(&once_value_16
);
4579 } else fra
.me
.REG
[4] = once_value_16
;
4580 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4581 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4582 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4583 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4584 if (!once_value_17
) {
4585 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4587 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
4588 once_value_17
= fra
.me
.REG
[4];
4589 register_static_object(&once_value_17
);
4590 } else fra
.me
.REG
[4] = once_value_17
;
4591 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4592 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4593 /* ../lib/standard/collection/array.nit:24 */
4594 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4595 if (UNTAG_Bool(REGB0
)) {
4597 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4599 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4600 /* syntax/typing.nit:774 */
4601 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4603 if (!once_value_18
) {
4604 fra
.me
.REG
[4] = BOX_NativeString(".");
4606 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
4607 once_value_18
= fra
.me
.REG
[4];
4608 register_static_object(&once_value_18
);
4609 } else fra
.me
.REG
[4] = once_value_18
;
4610 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4611 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4612 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4613 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4615 /* syntax/typing.nit:776 */
4618 /* syntax/typing.nit:780 */
4620 /* ../lib/standard/collection/array.nit:24 */
4621 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4622 if (UNTAG_Bool(REGB1
)) {
4624 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4626 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4627 /* ../lib/standard/kernel.nit:404 */
4629 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
4630 if (UNTAG_Bool(REGB2
)) {
4632 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4634 /* ../lib/standard/kernel.nit:242 */
4635 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
4636 /* ../lib/standard/kernel.nit:404 */
4637 if (UNTAG_Bool(REGB2
)) {
4638 /* syntax/typing.nit:780 */
4640 /* ../lib/standard/collection/array.nit:279 */
4641 fra
.me
.REG
[5] = fra
.me
.REG
[2];
4643 /* ../lib/standard/collection/array.nit:281 */
4645 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4646 if (UNTAG_Bool(REGB5
)) {
4648 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4650 /* ../lib/standard/kernel.nit:243 */
4651 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
4652 /* ../lib/standard/collection/array.nit:281 */
4653 if (UNTAG_Bool(REGB4
)) {
4654 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4655 if (UNTAG_Bool(REGB4
)) {
4657 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
4659 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4660 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4661 if (UNTAG_Bool(REGB5
)) {
4663 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4665 /* ../lib/standard/kernel.nit:242 */
4666 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
4668 /* ../lib/standard/collection/array.nit:281 */
4669 REGB5
= TAG_Bool(0);
4672 if (UNTAG_Bool(REGB4
)) {
4674 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
4676 /* ../lib/standard/collection/array.nit:282 */
4677 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
4678 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4679 if (UNTAG_Bool(REGB4
)) {
4680 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
4682 /* ../lib/standard/collection/array.nit:725 */
4683 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
4684 /* ../lib/standard/collection/array.nit:282 */
4687 /* syntax/typing.nit:781 */
4688 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
4689 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4690 if (UNTAG_Bool(REGB2
)) {
4691 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 781);
4693 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4694 /* ../lib/standard/kernel.nit:406 */
4696 /* ../lib/standard/kernel.nit:245 */
4697 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
4698 /* ../lib/standard/kernel.nit:406 */
4701 /* ../lib/standard/kernel.nit:404 */
4707 stack_frame_head
= fra
.me
.prev
;
4710 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
){
4711 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4714 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4715 fra
.me
.file
= LOCATE_syntax___typing
;
4717 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4718 fra
.me
.has_broke
= 0;
4719 fra
.me
.REG_size
= 2;
4720 fra
.me
.nitni_local_ref_head
= NULL
;
4721 fra
.me
.REG
[0] = NIT_NULL
;
4722 fra
.me
.REG
[1] = NIT_NULL
;
4723 fra
.me
.closure_ctx
= closctx_param
;
4724 fra
.me
.closure_funs
= CREG
;
4726 CREG
[0] = clos_fun0
;
4727 /* syntax/typing.nit:731 */
4728 fra
.me
.REG
[1] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4729 fra
.me
.REG
[0] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4730 /* syntax/typing.nit:732 */
4731 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
4732 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4733 /* syntax/typing.nit:733 */
4734 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
4735 stack_frame_head
= fra
.me
.prev
;
4738 static const char LOCATE_syntax___typing___AAssertExpr___accept_typing
[] = "typing::AAssertExpr::(typing::ANode::accept_typing)";
4739 void syntax___typing___AAssertExpr___accept_typing(val_t p0
, val_t p1
){
4740 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4744 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4745 fra
.me
.file
= LOCATE_syntax___typing
;
4747 fra
.me
.meth
= LOCATE_syntax___typing___AAssertExpr___accept_typing
;
4748 fra
.me
.has_broke
= 0;
4749 fra
.me
.REG_size
= 4;
4750 fra
.me
.nitni_local_ref_head
= NULL
;
4751 fra
.me
.REG
[0] = NIT_NULL
;
4752 fra
.me
.REG
[1] = NIT_NULL
;
4753 fra
.me
.REG
[2] = NIT_NULL
;
4754 fra
.me
.REG
[3] = NIT_NULL
;
4757 /* syntax/typing.nit:790 */
4758 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4759 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4760 /* syntax/typing.nit:791 */
4761 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4762 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4763 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4764 /* syntax/typing.nit:792 */
4765 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4766 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
4767 /* syntax/typing.nit:795 */
4768 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4769 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4770 if (UNTAG_Bool(REGB0
)) {
4772 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4773 if (UNTAG_Bool(REGB1
)) {
4774 REGB1
= TAG_Bool(0);
4777 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4781 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4782 if (UNTAG_Bool(REGB0
)) {
4783 /* syntax/typing.nit:796 */
4784 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4785 /* syntax/typing.nit:797 */
4786 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4787 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4788 /* syntax/typing.nit:798 */
4789 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4790 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4791 /* syntax/typing.nit:799 */
4792 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4794 /* syntax/typing.nit:803 */
4795 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4796 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4797 /* syntax/typing.nit:804 */
4798 REGB0
= TAG_Bool(1);
4799 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4800 stack_frame_head
= fra
.me
.prev
;
4803 static const char LOCATE_syntax___typing___AVarFormExpr___variable
[] = "typing::AVarFormExpr::(syntax_base::AVarFormExpr::variable)";
4804 val_t
syntax___typing___AVarFormExpr___variable(val_t p0
){
4805 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4808 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4809 fra
.me
.file
= LOCATE_syntax___typing
;
4811 fra
.me
.meth
= LOCATE_syntax___typing___AVarFormExpr___variable
;
4812 fra
.me
.has_broke
= 0;
4813 fra
.me
.REG_size
= 2;
4814 fra
.me
.nitni_local_ref_head
= NULL
;
4815 fra
.me
.REG
[0] = NIT_NULL
;
4816 fra
.me
.REG
[1] = NIT_NULL
;
4818 /* syntax/typing.nit:810 */
4819 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4820 fra
.me
.REG
[1] = ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[1]);
4821 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4822 if (UNTAG_Bool(REGB0
)) {
4824 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 810);
4828 stack_frame_head
= fra
.me
.prev
;
4829 return fra
.me
.REG
[1];
4831 static const char LOCATE_syntax___typing___AVarExpr___its_variable
[] = "typing::AVarExpr::(typing::AExpr::its_variable)";
4832 val_t
syntax___typing___AVarExpr___its_variable(val_t p0
){
4833 struct {struct stack_frame_t me
;} fra
;
4835 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4836 fra
.me
.file
= LOCATE_syntax___typing
;
4838 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___its_variable
;
4839 fra
.me
.has_broke
= 0;
4840 fra
.me
.REG_size
= 1;
4841 fra
.me
.nitni_local_ref_head
= NULL
;
4842 fra
.me
.REG
[0] = NIT_NULL
;
4844 /* syntax/typing.nit:814 */
4845 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4848 stack_frame_head
= fra
.me
.prev
;
4849 return fra
.me
.REG
[0];
4851 static const char LOCATE_syntax___typing___AVarExpr___after_typing
[] = "typing::AVarExpr::(typing::ANode::after_typing)";
4852 void syntax___typing___AVarExpr___after_typing(val_t p0
, val_t p1
){
4853 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4857 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4858 fra
.me
.file
= LOCATE_syntax___typing
;
4860 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___after_typing
;
4861 fra
.me
.has_broke
= 0;
4862 fra
.me
.REG_size
= 4;
4863 fra
.me
.nitni_local_ref_head
= NULL
;
4864 fra
.me
.REG
[0] = NIT_NULL
;
4865 fra
.me
.REG
[1] = NIT_NULL
;
4866 fra
.me
.REG
[2] = NIT_NULL
;
4867 fra
.me
.REG
[3] = NIT_NULL
;
4870 /* syntax/typing.nit:818 */
4871 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4872 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4873 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4874 /* syntax/typing.nit:819 */
4875 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4876 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4877 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4878 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4879 /* syntax/typing.nit:820 */
4880 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
4881 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4882 if (UNTAG_Bool(REGB0
)) {
4884 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4885 if (UNTAG_Bool(REGB1
)) {
4886 REGB1
= TAG_Bool(0);
4889 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4893 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4894 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4895 stack_frame_head
= fra
.me
.prev
;
4898 static const char LOCATE_syntax___typing___AVarAssignExpr___after_typing
[] = "typing::AVarAssignExpr::(typing::ANode::after_typing)";
4899 void syntax___typing___AVarAssignExpr___after_typing(val_t p0
, val_t p1
){
4900 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4904 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4905 fra
.me
.file
= LOCATE_syntax___typing
;
4907 fra
.me
.meth
= LOCATE_syntax___typing___AVarAssignExpr___after_typing
;
4908 fra
.me
.has_broke
= 0;
4909 fra
.me
.REG_size
= 5;
4910 fra
.me
.nitni_local_ref_head
= NULL
;
4911 fra
.me
.REG
[0] = NIT_NULL
;
4912 fra
.me
.REG
[1] = NIT_NULL
;
4913 fra
.me
.REG
[2] = NIT_NULL
;
4914 fra
.me
.REG
[3] = NIT_NULL
;
4915 fra
.me
.REG
[4] = NIT_NULL
;
4918 /* syntax/typing.nit:827 */
4919 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4920 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4921 /* syntax/typing.nit:830 */
4922 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4923 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4924 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4925 /* syntax/typing.nit:831 */
4926 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4927 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4928 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4929 if (UNTAG_Bool(REGB0
)) {
4932 /* syntax/typing.nit:832 */
4933 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4934 if (UNTAG_Bool(REGB0
)) {
4936 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4937 if (UNTAG_Bool(REGB1
)) {
4938 REGB1
= TAG_Bool(0);
4941 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4945 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4946 if (UNTAG_Bool(REGB0
)) {
4947 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4948 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]);
4949 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4951 REGB1
= TAG_Bool(0);
4954 if (UNTAG_Bool(REGB0
)) {
4957 /* syntax/typing.nit:835 */
4958 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4959 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4960 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4961 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4962 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]);
4963 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4964 /* syntax/typing.nit:837 */
4965 REGB0
= TAG_Bool(1);
4966 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4968 stack_frame_head
= fra
.me
.prev
;
4971 static const char LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing
[] = "typing::AReassignFormExpr::do_rvalue_typing";
4972 val_t
syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0
, val_t p1
, val_t p2
){
4973 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4977 static val_t once_value_2
; /* Once value */
4978 static val_t once_value_3
; /* Once value */
4979 static val_t once_value_4
; /* Once value */
4980 static val_t once_value_5
; /* Once value */
4981 static val_t once_value_6
; /* Once value */
4982 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4983 fra
.me
.file
= LOCATE_syntax___typing
;
4985 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing
;
4986 fra
.me
.has_broke
= 0;
4987 fra
.me
.REG_size
= 8;
4988 fra
.me
.nitni_local_ref_head
= NULL
;
4989 fra
.me
.REG
[0] = NIT_NULL
;
4990 fra
.me
.REG
[1] = NIT_NULL
;
4991 fra
.me
.REG
[2] = NIT_NULL
;
4992 fra
.me
.REG
[3] = NIT_NULL
;
4993 fra
.me
.REG
[4] = NIT_NULL
;
4994 fra
.me
.REG
[5] = NIT_NULL
;
4995 fra
.me
.REG
[6] = NIT_NULL
;
4996 fra
.me
.REG
[7] = NIT_NULL
;
5000 /* syntax/typing.nit:847 */
5001 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5002 if (UNTAG_Bool(REGB0
)) {
5004 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5005 if (UNTAG_Bool(REGB1
)) {
5006 REGB1
= TAG_Bool(0);
5009 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5013 if (UNTAG_Bool(REGB0
)) {
5014 /* syntax/typing.nit:848 */
5015 fra
.me
.REG
[3] = NIT_NULL
;
5018 /* syntax/typing.nit:850 */
5019 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5020 fra
.me
.REG
[4] = CALL_syntax___typing___AAssignOp___method_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5021 /* syntax/typing.nit:851 */
5022 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*/;
5023 if (UNTAG_Bool(REGB0
)) {
5024 /* syntax/typing.nit:852 */
5026 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5027 if (!once_value_2
) {
5028 fra
.me
.REG
[6] = BOX_NativeString("Error: Method '");
5029 REGB0
= TAG_Int(15);
5030 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
5031 once_value_2
= fra
.me
.REG
[6];
5032 register_static_object(&once_value_2
);
5033 } else fra
.me
.REG
[6] = once_value_2
;
5034 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5035 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5036 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5037 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5038 if (!once_value_3
) {
5039 fra
.me
.REG
[6] = BOX_NativeString("' call on 'null'.");
5040 REGB0
= TAG_Int(17);
5041 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
5042 once_value_3
= fra
.me
.REG
[6];
5043 register_static_object(&once_value_3
);
5044 } else fra
.me
.REG
[6] = once_value_3
;
5045 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5046 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5047 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5048 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
5049 /* syntax/typing.nit:853 */
5050 fra
.me
.REG
[3] = NIT_NULL
;
5053 /* syntax/typing.nit:855 */
5054 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5055 if (UNTAG_Bool(REGB0
)) {
5056 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 855);
5058 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5059 /* syntax/typing.nit:856 */
5060 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5061 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5062 if (UNTAG_Bool(REGB0
)) {
5063 /* syntax/typing.nit:857 */
5065 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5066 if (!once_value_4
) {
5067 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
5068 REGB0
= TAG_Int(15);
5069 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
5070 once_value_4
= fra
.me
.REG
[7];
5071 register_static_object(&once_value_4
);
5072 } else fra
.me
.REG
[7] = once_value_4
;
5073 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5075 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5076 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5077 if (!once_value_5
) {
5078 fra
.me
.REG
[7] = BOX_NativeString("' doesn't exists in ");
5079 REGB0
= TAG_Int(20);
5080 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
5081 once_value_5
= fra
.me
.REG
[7];
5082 register_static_object(&once_value_5
);
5083 } else fra
.me
.REG
[7] = once_value_5
;
5084 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5085 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5086 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5087 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5088 if (!once_value_6
) {
5089 fra
.me
.REG
[7] = BOX_NativeString(".");
5091 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
5092 once_value_6
= fra
.me
.REG
[7];
5093 register_static_object(&once_value_6
);
5094 } else fra
.me
.REG
[7] = once_value_6
;
5095 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5096 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5097 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5098 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
5099 /* syntax/typing.nit:858 */
5100 fra
.me
.REG
[3] = NIT_NULL
;
5103 /* syntax/typing.nit:860 */
5104 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5105 /* syntax/typing.nit:861 */
5106 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5107 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5108 REGB0
= TAG_Bool(0);
5109 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
);
5110 /* syntax/typing.nit:862 */
5111 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5112 /* syntax/typing.nit:863 */
5113 ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5114 /* syntax/typing.nit:864 */
5115 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5117 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
5118 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5119 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]);
5120 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5121 if (UNTAG_Bool(REGB0
)) {
5122 fra
.me
.REG
[3] = NIT_NULL
;
5125 /* syntax/typing.nit:865 */
5126 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5127 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5128 if (UNTAG_Bool(REGB0
)) {
5129 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 865);
5131 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5132 fra
.me
.REG
[3] = fra
.me
.REG
[2];
5135 stack_frame_head
= fra
.me
.prev
;
5136 return fra
.me
.REG
[3];
5138 static const char LOCATE_syntax___typing___AReassignFormExpr___assign_method
[] = "typing::AReassignFormExpr::(syntax_base::AReassignFormExpr::assign_method)";
5139 val_t
syntax___typing___AReassignFormExpr___assign_method(val_t p0
){
5140 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5143 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5144 fra
.me
.file
= LOCATE_syntax___typing
;
5146 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___assign_method
;
5147 fra
.me
.has_broke
= 0;
5148 fra
.me
.REG_size
= 2;
5149 fra
.me
.nitni_local_ref_head
= NULL
;
5150 fra
.me
.REG
[0] = NIT_NULL
;
5151 fra
.me
.REG
[1] = NIT_NULL
;
5153 /* syntax/typing.nit:868 */
5154 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5155 fra
.me
.REG
[1] = ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[1]);
5156 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5157 if (UNTAG_Bool(REGB0
)) {
5159 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 868);
5163 stack_frame_head
= fra
.me
.prev
;
5164 return fra
.me
.REG
[1];
5166 static const char LOCATE_syntax___typing___AVarReassignExpr___after_typing
[] = "typing::AVarReassignExpr::(typing::ANode::after_typing)";
5167 void syntax___typing___AVarReassignExpr___after_typing(val_t p0
, val_t p1
){
5168 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5172 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5173 fra
.me
.file
= LOCATE_syntax___typing
;
5175 fra
.me
.meth
= LOCATE_syntax___typing___AVarReassignExpr___after_typing
;
5176 fra
.me
.has_broke
= 0;
5177 fra
.me
.REG_size
= 5;
5178 fra
.me
.nitni_local_ref_head
= NULL
;
5179 fra
.me
.REG
[0] = NIT_NULL
;
5180 fra
.me
.REG
[1] = NIT_NULL
;
5181 fra
.me
.REG
[2] = NIT_NULL
;
5182 fra
.me
.REG
[3] = NIT_NULL
;
5183 fra
.me
.REG
[4] = NIT_NULL
;
5186 /* syntax/typing.nit:875 */
5187 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5188 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5189 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
5190 /* syntax/typing.nit:876 */
5191 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5192 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5193 /* syntax/typing.nit:877 */
5194 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5195 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5196 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5197 /* syntax/typing.nit:878 */
5198 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]);
5199 /* syntax/typing.nit:879 */
5200 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5201 if (UNTAG_Bool(REGB0
)) {
5203 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5204 if (UNTAG_Bool(REGB1
)) {
5205 REGB1
= TAG_Bool(0);
5208 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5212 if (UNTAG_Bool(REGB0
)) {
5215 /* syntax/typing.nit:882 */
5216 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5217 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5218 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5219 /* syntax/typing.nit:883 */
5220 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5221 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5222 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5223 if (UNTAG_Bool(REGB0
)) {
5226 /* syntax/typing.nit:884 */
5227 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5228 if (UNTAG_Bool(REGB0
)) {
5230 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5231 if (UNTAG_Bool(REGB1
)) {
5232 REGB1
= TAG_Bool(0);
5235 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5239 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5240 if (UNTAG_Bool(REGB0
)) {
5241 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5242 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]);
5243 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5245 REGB1
= TAG_Bool(0);
5248 if (UNTAG_Bool(REGB0
)) {
5251 /* syntax/typing.nit:887 */
5252 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5253 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5254 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]);
5255 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5256 /* syntax/typing.nit:889 */
5257 REGB0
= TAG_Bool(1);
5258 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5260 stack_frame_head
= fra
.me
.prev
;
5263 static const char LOCATE_syntax___typing___AAssignOp___method_name
[] = "typing::AAssignOp::method_name";
5264 val_t
syntax___typing___AAssignOp___method_name(val_t p0
){
5265 struct {struct stack_frame_t me
;} fra
;
5267 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5268 fra
.me
.file
= LOCATE_syntax___typing
;
5270 fra
.me
.meth
= LOCATE_syntax___typing___AAssignOp___method_name
;
5271 fra
.me
.has_broke
= 0;
5272 fra
.me
.REG_size
= 0;
5273 fra
.me
.nitni_local_ref_head
= NULL
;
5274 /* syntax/typing.nit:894 */
5275 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 894);
5276 stack_frame_head
= fra
.me
.prev
;
5279 static const char LOCATE_syntax___typing___APlusAssignOp___method_name
[] = "typing::APlusAssignOp::(typing::AAssignOp::method_name)";
5280 val_t
syntax___typing___APlusAssignOp___method_name(val_t p0
){
5281 struct {struct stack_frame_t me
;} fra
;
5284 static val_t once_value_1
; /* Once value */
5285 static val_t once_value_2
; /* Once value */
5286 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5287 fra
.me
.file
= LOCATE_syntax___typing
;
5289 fra
.me
.meth
= LOCATE_syntax___typing___APlusAssignOp___method_name
;
5290 fra
.me
.has_broke
= 0;
5291 fra
.me
.REG_size
= 1;
5292 fra
.me
.nitni_local_ref_head
= NULL
;
5293 fra
.me
.REG
[0] = NIT_NULL
;
5295 /* syntax/typing.nit:897 */
5296 if (!once_value_1
) {
5297 if (!once_value_2
) {
5298 fra
.me
.REG
[0] = BOX_NativeString("+");
5300 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
5301 once_value_2
= fra
.me
.REG
[0];
5302 register_static_object(&once_value_2
);
5303 } else fra
.me
.REG
[0] = once_value_2
;
5304 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5305 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5306 once_value_1
= fra
.me
.REG
[0];
5307 register_static_object(&once_value_1
);
5308 } else fra
.me
.REG
[0] = once_value_1
;
5309 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5312 stack_frame_head
= fra
.me
.prev
;
5313 return fra
.me
.REG
[0];
5315 static const char LOCATE_syntax___typing___AMinusAssignOp___method_name
[] = "typing::AMinusAssignOp::(typing::AAssignOp::method_name)";
5316 val_t
syntax___typing___AMinusAssignOp___method_name(val_t p0
){
5317 struct {struct stack_frame_t me
;} fra
;
5320 static val_t once_value_1
; /* Once value */
5321 static val_t once_value_2
; /* Once value */
5322 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5323 fra
.me
.file
= LOCATE_syntax___typing
;
5325 fra
.me
.meth
= LOCATE_syntax___typing___AMinusAssignOp___method_name
;
5326 fra
.me
.has_broke
= 0;
5327 fra
.me
.REG_size
= 1;
5328 fra
.me
.nitni_local_ref_head
= NULL
;
5329 fra
.me
.REG
[0] = NIT_NULL
;
5331 /* syntax/typing.nit:900 */
5332 if (!once_value_1
) {
5333 if (!once_value_2
) {
5334 fra
.me
.REG
[0] = BOX_NativeString("-");
5336 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
5337 once_value_2
= fra
.me
.REG
[0];
5338 register_static_object(&once_value_2
);
5339 } else fra
.me
.REG
[0] = once_value_2
;
5340 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5341 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5342 once_value_1
= fra
.me
.REG
[0];
5343 register_static_object(&once_value_1
);
5344 } else fra
.me
.REG
[0] = once_value_1
;
5345 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5348 stack_frame_head
= fra
.me
.prev
;
5349 return fra
.me
.REG
[0];
5351 static const char LOCATE_syntax___typing___ASelfExpr___variable
[] = "typing::ASelfExpr::(syntax_base::ASelfExpr::variable)";
5352 val_t
syntax___typing___ASelfExpr___variable(val_t p0
){
5353 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5356 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5357 fra
.me
.file
= LOCATE_syntax___typing
;
5359 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___variable
;
5360 fra
.me
.has_broke
= 0;
5361 fra
.me
.REG_size
= 2;
5362 fra
.me
.nitni_local_ref_head
= NULL
;
5363 fra
.me
.REG
[0] = NIT_NULL
;
5364 fra
.me
.REG
[1] = NIT_NULL
;
5366 /* syntax/typing.nit:905 */
5367 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5368 fra
.me
.REG
[1] = ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[1]);
5369 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5370 if (UNTAG_Bool(REGB0
)) {
5372 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 905);
5376 stack_frame_head
= fra
.me
.prev
;
5377 return fra
.me
.REG
[1];
5379 static const char LOCATE_syntax___typing___ASelfExpr___its_variable
[] = "typing::ASelfExpr::(typing::AExpr::its_variable)";
5380 val_t
syntax___typing___ASelfExpr___its_variable(val_t p0
){
5381 struct {struct stack_frame_t me
;} fra
;
5383 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5384 fra
.me
.file
= LOCATE_syntax___typing
;
5386 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___its_variable
;
5387 fra
.me
.has_broke
= 0;
5388 fra
.me
.REG_size
= 1;
5389 fra
.me
.nitni_local_ref_head
= NULL
;
5390 fra
.me
.REG
[0] = NIT_NULL
;
5392 /* syntax/typing.nit:907 */
5393 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5396 stack_frame_head
= fra
.me
.prev
;
5397 return fra
.me
.REG
[0];
5399 static const char LOCATE_syntax___typing___ASelfExpr___after_typing
[] = "typing::ASelfExpr::(typing::ANode::after_typing)";
5400 void syntax___typing___ASelfExpr___after_typing(val_t p0
, val_t p1
){
5401 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5404 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5405 fra
.me
.file
= LOCATE_syntax___typing
;
5407 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___after_typing
;
5408 fra
.me
.has_broke
= 0;
5409 fra
.me
.REG_size
= 3;
5410 fra
.me
.nitni_local_ref_head
= NULL
;
5411 fra
.me
.REG
[0] = NIT_NULL
;
5412 fra
.me
.REG
[1] = NIT_NULL
;
5413 fra
.me
.REG
[2] = NIT_NULL
;
5416 /* syntax/typing.nit:911 */
5417 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5418 ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5419 /* syntax/typing.nit:912 */
5420 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5421 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5422 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5423 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5424 /* syntax/typing.nit:913 */
5425 REGB0
= TAG_Bool(1);
5426 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5427 stack_frame_head
= fra
.me
.prev
;
5430 static const char LOCATE_syntax___typing___ASelfExpr___is_self
[] = "typing::ASelfExpr::(typing::AExpr::is_self)";
5431 val_t
syntax___typing___ASelfExpr___is_self(val_t p0
){
5432 struct {struct stack_frame_t me
;} fra
;
5435 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5436 fra
.me
.file
= LOCATE_syntax___typing
;
5438 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___is_self
;
5439 fra
.me
.has_broke
= 0;
5440 fra
.me
.REG_size
= 1;
5441 fra
.me
.nitni_local_ref_head
= NULL
;
5442 fra
.me
.REG
[0] = NIT_NULL
;
5444 /* syntax/typing.nit:916 */
5445 REGB0
= TAG_Bool(1);
5448 stack_frame_head
= fra
.me
.prev
;
5451 static const char LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self
[] = "typing::AImplicitSelfExpr::(typing::AExpr::is_implicit_self)";
5452 val_t
syntax___typing___AImplicitSelfExpr___is_implicit_self(val_t p0
){
5453 struct {struct stack_frame_t me
;} fra
;
5456 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5457 fra
.me
.file
= LOCATE_syntax___typing
;
5459 fra
.me
.meth
= LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self
;
5460 fra
.me
.has_broke
= 0;
5461 fra
.me
.REG_size
= 1;
5462 fra
.me
.nitni_local_ref_head
= NULL
;
5463 fra
.me
.REG
[0] = NIT_NULL
;
5465 /* syntax/typing.nit:920 */
5466 REGB0
= TAG_Bool(1);
5469 stack_frame_head
= fra
.me
.prev
;
5472 static const char LOCATE_syntax___typing___AIfexprExpr___accept_typing
[] = "typing::AIfexprExpr::(typing::ANode::accept_typing)";
5473 void syntax___typing___AIfexprExpr___accept_typing(val_t p0
, val_t p1
){
5474 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5478 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5479 fra
.me
.file
= LOCATE_syntax___typing
;
5481 fra
.me
.meth
= LOCATE_syntax___typing___AIfexprExpr___accept_typing
;
5482 fra
.me
.has_broke
= 0;
5483 fra
.me
.REG_size
= 5;
5484 fra
.me
.nitni_local_ref_head
= NULL
;
5485 fra
.me
.REG
[0] = NIT_NULL
;
5486 fra
.me
.REG
[1] = NIT_NULL
;
5487 fra
.me
.REG
[2] = NIT_NULL
;
5488 fra
.me
.REG
[3] = NIT_NULL
;
5489 fra
.me
.REG
[4] = NIT_NULL
;
5492 /* syntax/typing.nit:926 */
5493 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5494 /* syntax/typing.nit:929 */
5495 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5496 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5497 /* syntax/typing.nit:930 */
5498 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5499 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5500 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5501 /* syntax/typing.nit:933 */
5502 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5503 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5504 /* syntax/typing.nit:936 */
5505 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5506 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5507 /* syntax/typing.nit:939 */
5508 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5509 /* syntax/typing.nit:942 */
5510 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5511 /* syntax/typing.nit:943 */
5512 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5513 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5514 /* syntax/typing.nit:946 */
5515 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5516 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5517 /* syntax/typing.nit:949 */
5518 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5519 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5520 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]);
5521 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5522 /* syntax/typing.nit:951 */
5524 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5525 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5526 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5527 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5528 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5529 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]);
5530 /* syntax/typing.nit:952 */
5531 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5532 if (UNTAG_Bool(REGB0
)) {
5534 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5535 if (UNTAG_Bool(REGB1
)) {
5536 REGB1
= TAG_Bool(0);
5539 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5543 if (UNTAG_Bool(REGB0
)) {
5546 /* syntax/typing.nit:954 */
5547 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5548 /* syntax/typing.nit:955 */
5549 REGB0
= TAG_Bool(1);
5550 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5552 stack_frame_head
= fra
.me
.prev
;
5555 static const char LOCATE_syntax___typing___ABoolExpr___after_typing
[] = "typing::ABoolExpr::(typing::ANode::after_typing)";
5556 void syntax___typing___ABoolExpr___after_typing(val_t p0
, val_t p1
){
5557 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5560 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5561 fra
.me
.file
= LOCATE_syntax___typing
;
5563 fra
.me
.meth
= LOCATE_syntax___typing___ABoolExpr___after_typing
;
5564 fra
.me
.has_broke
= 0;
5565 fra
.me
.REG_size
= 2;
5566 fra
.me
.nitni_local_ref_head
= NULL
;
5567 fra
.me
.REG
[0] = NIT_NULL
;
5568 fra
.me
.REG
[1] = NIT_NULL
;
5571 /* syntax/typing.nit:962 */
5572 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5573 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5574 /* syntax/typing.nit:963 */
5575 REGB0
= TAG_Bool(1);
5576 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5577 stack_frame_head
= fra
.me
.prev
;
5580 static const char LOCATE_syntax___typing___AOrExpr___accept_typing
[] = "typing::AOrExpr::(typing::ANode::accept_typing)";
5581 void syntax___typing___AOrExpr___accept_typing(val_t p0
, val_t p1
){
5582 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5586 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5587 fra
.me
.file
= LOCATE_syntax___typing
;
5589 fra
.me
.meth
= LOCATE_syntax___typing___AOrExpr___accept_typing
;
5590 fra
.me
.has_broke
= 0;
5591 fra
.me
.REG_size
= 5;
5592 fra
.me
.nitni_local_ref_head
= NULL
;
5593 fra
.me
.REG
[0] = NIT_NULL
;
5594 fra
.me
.REG
[1] = NIT_NULL
;
5595 fra
.me
.REG
[2] = NIT_NULL
;
5596 fra
.me
.REG
[3] = NIT_NULL
;
5597 fra
.me
.REG
[4] = NIT_NULL
;
5600 /* syntax/typing.nit:970 */
5601 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5602 /* syntax/typing.nit:971 */
5603 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5604 /* syntax/typing.nit:972 */
5605 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5606 /* syntax/typing.nit:975 */
5607 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5608 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5609 /* syntax/typing.nit:978 */
5610 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5611 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5612 /* syntax/typing.nit:981 */
5613 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5614 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5615 /* syntax/typing.nit:982 */
5616 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5617 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5618 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5619 if (UNTAG_Bool(REGB0
)) {
5621 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5622 if (UNTAG_Bool(REGB1
)) {
5623 REGB1
= TAG_Bool(0);
5626 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5630 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5631 if (UNTAG_Bool(REGB0
)) {
5632 /* syntax/typing.nit:983 */
5633 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5634 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5635 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5637 /* syntax/typing.nit:985 */
5638 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5639 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5641 /* syntax/typing.nit:988 */
5642 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5643 /* syntax/typing.nit:990 */
5644 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5645 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5646 /* syntax/typing.nit:991 */
5647 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5648 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5649 /* syntax/typing.nit:992 */
5650 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5651 /* syntax/typing.nit:993 */
5652 REGB0
= TAG_Bool(1);
5653 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5654 stack_frame_head
= fra
.me
.prev
;
5657 static const char LOCATE_syntax___typing___AAndExpr___accept_typing
[] = "typing::AAndExpr::(typing::ANode::accept_typing)";
5658 void syntax___typing___AAndExpr___accept_typing(val_t p0
, val_t p1
){
5659 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5663 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5664 fra
.me
.file
= LOCATE_syntax___typing
;
5666 fra
.me
.meth
= LOCATE_syntax___typing___AAndExpr___accept_typing
;
5667 fra
.me
.has_broke
= 0;
5668 fra
.me
.REG_size
= 5;
5669 fra
.me
.nitni_local_ref_head
= NULL
;
5670 fra
.me
.REG
[0] = NIT_NULL
;
5671 fra
.me
.REG
[1] = NIT_NULL
;
5672 fra
.me
.REG
[2] = NIT_NULL
;
5673 fra
.me
.REG
[3] = NIT_NULL
;
5674 fra
.me
.REG
[4] = NIT_NULL
;
5677 /* syntax/typing.nit:1000 */
5678 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5679 /* syntax/typing.nit:1001 */
5680 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5681 /* syntax/typing.nit:1004 */
5682 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5683 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5684 /* syntax/typing.nit:1007 */
5685 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5686 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5687 /* syntax/typing.nit:1010 */
5688 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5689 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5690 /* syntax/typing.nit:1011 */
5691 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5692 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5693 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5694 if (UNTAG_Bool(REGB0
)) {
5696 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5697 if (UNTAG_Bool(REGB1
)) {
5698 REGB1
= TAG_Bool(0);
5701 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5705 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5706 if (UNTAG_Bool(REGB0
)) {
5707 /* syntax/typing.nit:1012 */
5708 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5709 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5710 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5712 /* syntax/typing.nit:1014 */
5713 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5714 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5716 /* syntax/typing.nit:1017 */
5717 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5718 /* syntax/typing.nit:1019 */
5719 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5720 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5721 /* syntax/typing.nit:1020 */
5722 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5723 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5724 /* syntax/typing.nit:1021 */
5725 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5726 /* syntax/typing.nit:1022 */
5727 REGB0
= TAG_Bool(1);
5728 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5729 stack_frame_head
= fra
.me
.prev
;
5732 static const char LOCATE_syntax___typing___ANotExpr___after_typing
[] = "typing::ANotExpr::(typing::ANode::after_typing)";
5733 void syntax___typing___ANotExpr___after_typing(val_t p0
, val_t p1
){
5734 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5737 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5738 fra
.me
.file
= LOCATE_syntax___typing
;
5740 fra
.me
.meth
= LOCATE_syntax___typing___ANotExpr___after_typing
;
5741 fra
.me
.has_broke
= 0;
5742 fra
.me
.REG_size
= 4;
5743 fra
.me
.nitni_local_ref_head
= NULL
;
5744 fra
.me
.REG
[0] = NIT_NULL
;
5745 fra
.me
.REG
[1] = NIT_NULL
;
5746 fra
.me
.REG
[2] = NIT_NULL
;
5747 fra
.me
.REG
[3] = NIT_NULL
;
5750 /* syntax/typing.nit:1029 */
5751 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5752 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5753 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5754 /* syntax/typing.nit:1032 */
5755 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5756 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[3]);
5757 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5758 /* syntax/typing.nit:1033 */
5759 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5760 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[3]);
5761 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5762 /* syntax/typing.nit:1035 */
5763 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5764 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5765 /* syntax/typing.nit:1036 */
5766 REGB0
= TAG_Bool(1);
5767 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5768 stack_frame_head
= fra
.me
.prev
;
5771 static const char LOCATE_syntax___typing___AOrElseExpr___after_typing
[] = "typing::AOrElseExpr::(typing::ANode::after_typing)";
5772 void syntax___typing___AOrElseExpr___after_typing(val_t p0
, val_t p1
){
5773 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5777 static val_t once_value_1
; /* Once value */
5778 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5779 fra
.me
.file
= LOCATE_syntax___typing
;
5781 fra
.me
.meth
= LOCATE_syntax___typing___AOrElseExpr___after_typing
;
5782 fra
.me
.has_broke
= 0;
5783 fra
.me
.REG_size
= 7;
5784 fra
.me
.nitni_local_ref_head
= NULL
;
5785 fra
.me
.REG
[0] = NIT_NULL
;
5786 fra
.me
.REG
[1] = NIT_NULL
;
5787 fra
.me
.REG
[2] = NIT_NULL
;
5788 fra
.me
.REG
[3] = NIT_NULL
;
5789 fra
.me
.REG
[4] = NIT_NULL
;
5790 fra
.me
.REG
[5] = NIT_NULL
;
5791 fra
.me
.REG
[6] = NIT_NULL
;
5794 /* syntax/typing.nit:1043 */
5795 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5796 /* syntax/typing.nit:1046 */
5797 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5798 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5799 /* syntax/typing.nit:1047 */
5800 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5801 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5802 /* syntax/typing.nit:1050 */
5803 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5804 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5805 /* syntax/typing.nit:1051 */
5806 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5807 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5808 if (UNTAG_Bool(REGB0
)) {
5809 /* syntax/typing.nit:1052 */
5810 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5811 if (!once_value_1
) {
5812 fra
.me
.REG
[5] = BOX_NativeString("Warning: left operand of a 'or else' is not a nullable type.");
5813 REGB0
= TAG_Int(60);
5814 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
5815 once_value_1
= fra
.me
.REG
[5];
5816 register_static_object(&once_value_1
);
5817 } else fra
.me
.REG
[5] = once_value_1
;
5818 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5819 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
5821 /* syntax/typing.nit:1054 */
5822 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5823 fra
.me
.REG
[3] = fra
.me
.REG
[5];
5825 /* syntax/typing.nit:1058 */
5826 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5827 fra
.me
.REG
[5] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5828 /* syntax/typing.nit:1059 */
5829 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5830 if (UNTAG_Bool(REGB0
)) {
5832 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5833 if (UNTAG_Bool(REGB1
)) {
5834 REGB1
= TAG_Bool(0);
5837 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5841 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5842 if (UNTAG_Bool(REGB0
)) {
5843 /* syntax/typing.nit:1060 */
5844 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5845 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5846 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]);
5848 /* syntax/typing.nit:1064 */
5849 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5850 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5851 /* syntax/typing.nit:1065 */
5852 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5853 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5854 /* syntax/typing.nit:1068 */
5855 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5856 /* syntax/typing.nit:1071 */
5858 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5859 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5860 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5861 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]);
5862 /* syntax/typing.nit:1072 */
5863 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5864 if (UNTAG_Bool(REGB0
)) {
5866 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5867 if (UNTAG_Bool(REGB1
)) {
5868 REGB1
= TAG_Bool(0);
5871 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5875 if (UNTAG_Bool(REGB0
)) {
5878 /* syntax/typing.nit:1074 */
5879 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5880 /* syntax/typing.nit:1075 */
5881 REGB0
= TAG_Bool(1);
5882 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5884 stack_frame_head
= fra
.me
.prev
;
5887 static const char LOCATE_syntax___typing___AIntExpr___after_typing
[] = "typing::AIntExpr::(typing::ANode::after_typing)";
5888 void syntax___typing___AIntExpr___after_typing(val_t p0
, val_t p1
){
5889 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5892 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5893 fra
.me
.file
= LOCATE_syntax___typing
;
5895 fra
.me
.meth
= LOCATE_syntax___typing___AIntExpr___after_typing
;
5896 fra
.me
.has_broke
= 0;
5897 fra
.me
.REG_size
= 2;
5898 fra
.me
.nitni_local_ref_head
= NULL
;
5899 fra
.me
.REG
[0] = NIT_NULL
;
5900 fra
.me
.REG
[1] = NIT_NULL
;
5903 /* syntax/typing.nit:1082 */
5904 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5905 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5906 /* syntax/typing.nit:1083 */
5907 REGB0
= TAG_Bool(1);
5908 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5909 stack_frame_head
= fra
.me
.prev
;
5912 static const char LOCATE_syntax___typing___AFloatExpr___after_typing
[] = "typing::AFloatExpr::(typing::ANode::after_typing)";
5913 void syntax___typing___AFloatExpr___after_typing(val_t p0
, val_t p1
){
5914 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5917 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5918 fra
.me
.file
= LOCATE_syntax___typing
;
5920 fra
.me
.meth
= LOCATE_syntax___typing___AFloatExpr___after_typing
;
5921 fra
.me
.has_broke
= 0;
5922 fra
.me
.REG_size
= 2;
5923 fra
.me
.nitni_local_ref_head
= NULL
;
5924 fra
.me
.REG
[0] = NIT_NULL
;
5925 fra
.me
.REG
[1] = NIT_NULL
;
5928 /* syntax/typing.nit:1090 */
5929 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5930 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5931 /* syntax/typing.nit:1091 */
5932 REGB0
= TAG_Bool(1);
5933 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5934 stack_frame_head
= fra
.me
.prev
;
5937 static const char LOCATE_syntax___typing___ACharExpr___after_typing
[] = "typing::ACharExpr::(typing::ANode::after_typing)";
5938 void syntax___typing___ACharExpr___after_typing(val_t p0
, val_t p1
){
5939 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5942 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5943 fra
.me
.file
= LOCATE_syntax___typing
;
5945 fra
.me
.meth
= LOCATE_syntax___typing___ACharExpr___after_typing
;
5946 fra
.me
.has_broke
= 0;
5947 fra
.me
.REG_size
= 2;
5948 fra
.me
.nitni_local_ref_head
= NULL
;
5949 fra
.me
.REG
[0] = NIT_NULL
;
5950 fra
.me
.REG
[1] = NIT_NULL
;
5953 /* syntax/typing.nit:1098 */
5954 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5955 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5956 /* syntax/typing.nit:1099 */
5957 REGB0
= TAG_Bool(1);
5958 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5959 stack_frame_head
= fra
.me
.prev
;
5962 static const char LOCATE_syntax___typing___AStringFormExpr___after_typing
[] = "typing::AStringFormExpr::(typing::ANode::after_typing)";
5963 void syntax___typing___AStringFormExpr___after_typing(val_t p0
, val_t p1
){
5964 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5967 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5968 fra
.me
.file
= LOCATE_syntax___typing
;
5970 fra
.me
.meth
= LOCATE_syntax___typing___AStringFormExpr___after_typing
;
5971 fra
.me
.has_broke
= 0;
5972 fra
.me
.REG_size
= 2;
5973 fra
.me
.nitni_local_ref_head
= NULL
;
5974 fra
.me
.REG
[0] = NIT_NULL
;
5975 fra
.me
.REG
[1] = NIT_NULL
;
5978 /* syntax/typing.nit:1106 */
5979 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5980 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5981 /* syntax/typing.nit:1107 */
5982 REGB0
= TAG_Bool(1);
5983 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5984 stack_frame_head
= fra
.me
.prev
;
5987 static const char LOCATE_syntax___typing___ASuperstringExpr___atype
[] = "typing::ASuperstringExpr::(syntax_base::ASuperstringExpr::atype)";
5988 val_t
syntax___typing___ASuperstringExpr___atype(val_t p0
){
5989 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5992 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5993 fra
.me
.file
= LOCATE_syntax___typing
;
5995 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___atype
;
5996 fra
.me
.has_broke
= 0;
5997 fra
.me
.REG_size
= 2;
5998 fra
.me
.nitni_local_ref_head
= NULL
;
5999 fra
.me
.REG
[0] = NIT_NULL
;
6000 fra
.me
.REG
[1] = NIT_NULL
;
6002 /* syntax/typing.nit:1112 */
6003 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6004 fra
.me
.REG
[1] = ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[1]);
6005 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
6006 if (UNTAG_Bool(REGB0
)) {
6008 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1112);
6012 stack_frame_head
= fra
.me
.prev
;
6013 return fra
.me
.REG
[1];
6015 static const char LOCATE_syntax___typing___ASuperstringExpr___after_typing
[] = "typing::ASuperstringExpr::(typing::ANode::after_typing)";
6016 void syntax___typing___ASuperstringExpr___after_typing(val_t p0
, val_t p1
){
6017 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6020 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6021 fra
.me
.file
= LOCATE_syntax___typing
;
6023 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
6024 fra
.me
.has_broke
= 0;
6025 fra
.me
.REG_size
= 5;
6026 fra
.me
.nitni_local_ref_head
= NULL
;
6027 fra
.me
.REG
[0] = NIT_NULL
;
6028 fra
.me
.REG
[1] = NIT_NULL
;
6029 fra
.me
.REG
[2] = NIT_NULL
;
6030 fra
.me
.REG
[3] = NIT_NULL
;
6031 fra
.me
.REG
[4] = NIT_NULL
;
6034 /* syntax/typing.nit:1116 */
6035 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6036 /* syntax/typing.nit:1117 */
6037 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6038 /* syntax/typing.nit:1118 */
6039 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
6040 /* syntax/typing.nit:1119 */
6041 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6042 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
));
6043 /* syntax/typing.nit:1120 */
6044 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6045 /* syntax/typing.nit:1121 */
6046 ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
6047 /* syntax/typing.nit:1122 */
6048 REGB0
= TAG_Bool(1);
6049 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6050 stack_frame_head
= fra
.me
.prev
;
6053 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
){
6054 struct {struct stack_frame_t me
;} fra
;
6057 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6058 fra
.me
.file
= LOCATE_syntax___typing
;
6060 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
6061 fra
.me
.has_broke
= 0;
6062 fra
.me
.REG_size
= 1;
6063 fra
.me
.nitni_local_ref_head
= NULL
;
6064 fra
.me
.REG
[0] = NIT_NULL
;
6065 fra
.me
.closure_ctx
= closctx_param
;
6066 fra
.me
.closure_funs
= CREG
;
6068 CREG
[0] = clos_fun0
;
6069 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], closctx
->REG
[2]);
6070 stack_frame_head
= fra
.me
.prev
;
6073 static const char LOCATE_syntax___typing___ANullExpr___after_typing
[] = "typing::ANullExpr::(typing::ANode::after_typing)";
6074 void syntax___typing___ANullExpr___after_typing(val_t p0
, val_t p1
){
6075 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6078 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6079 fra
.me
.file
= LOCATE_syntax___typing
;
6081 fra
.me
.meth
= LOCATE_syntax___typing___ANullExpr___after_typing
;
6082 fra
.me
.has_broke
= 0;
6083 fra
.me
.REG_size
= 2;
6084 fra
.me
.nitni_local_ref_head
= NULL
;
6085 fra
.me
.REG
[0] = NIT_NULL
;
6086 fra
.me
.REG
[1] = NIT_NULL
;
6089 /* syntax/typing.nit:1129 */
6090 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6091 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6092 /* syntax/typing.nit:1130 */
6093 REGB0
= TAG_Bool(1);
6094 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6095 stack_frame_head
= fra
.me
.prev
;
6098 static const char LOCATE_syntax___typing___AArrayExpr___after_typing
[] = "typing::AArrayExpr::(typing::ANode::after_typing)";
6099 void syntax___typing___AArrayExpr___after_typing(val_t p0
, val_t p1
){
6100 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6104 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6105 fra
.me
.file
= LOCATE_syntax___typing
;
6107 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___after_typing
;
6108 fra
.me
.has_broke
= 0;
6109 fra
.me
.REG_size
= 3;
6110 fra
.me
.nitni_local_ref_head
= NULL
;
6111 fra
.me
.REG
[0] = NIT_NULL
;
6112 fra
.me
.REG
[1] = NIT_NULL
;
6113 fra
.me
.REG
[2] = NIT_NULL
;
6116 /* syntax/typing.nit:1137 */
6117 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6118 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6119 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]);
6120 /* syntax/typing.nit:1138 */
6121 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6122 if (UNTAG_Bool(REGB0
)) {
6124 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6125 if (UNTAG_Bool(REGB1
)) {
6126 REGB1
= TAG_Bool(0);
6129 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6133 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6134 if (UNTAG_Bool(REGB0
)) {
6135 CALL_syntax___typing___AArrayExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
6137 stack_frame_head
= fra
.me
.prev
;
6140 static const char LOCATE_syntax___typing___AArrayExpr___do_typing
[] = "typing::AArrayExpr::do_typing";
6141 void syntax___typing___AArrayExpr___do_typing(val_t p0
, val_t p1
, val_t p2
){
6142 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6145 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6146 fra
.me
.file
= LOCATE_syntax___typing
;
6148 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___do_typing
;
6149 fra
.me
.has_broke
= 0;
6150 fra
.me
.REG_size
= 3;
6151 fra
.me
.nitni_local_ref_head
= NULL
;
6152 fra
.me
.REG
[0] = NIT_NULL
;
6153 fra
.me
.REG
[1] = NIT_NULL
;
6154 fra
.me
.REG
[2] = NIT_NULL
;
6158 /* syntax/typing.nit:1143 */
6159 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6160 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
6161 /* syntax/typing.nit:1144 */
6162 REGB0
= TAG_Bool(1);
6163 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6164 stack_frame_head
= fra
.me
.prev
;
6167 static const char LOCATE_syntax___typing___ARangeExpr___after_typing
[] = "typing::ARangeExpr::(typing::ANode::after_typing)";
6168 void syntax___typing___ARangeExpr___after_typing(val_t p0
, val_t p1
){
6169 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
6173 static val_t once_value_2
; /* Once value */
6174 static val_t once_value_3
; /* Once value */
6175 static val_t once_value_4
; /* Once value */
6176 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6177 fra
.me
.file
= LOCATE_syntax___typing
;
6179 fra
.me
.meth
= LOCATE_syntax___typing___ARangeExpr___after_typing
;
6180 fra
.me
.has_broke
= 0;
6181 fra
.me
.REG_size
= 6;
6182 fra
.me
.nitni_local_ref_head
= NULL
;
6183 fra
.me
.REG
[0] = NIT_NULL
;
6184 fra
.me
.REG
[1] = NIT_NULL
;
6185 fra
.me
.REG
[2] = NIT_NULL
;
6186 fra
.me
.REG
[3] = NIT_NULL
;
6187 fra
.me
.REG
[4] = NIT_NULL
;
6188 fra
.me
.REG
[5] = NIT_NULL
;
6191 /* syntax/typing.nit:1151 */
6192 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6193 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6194 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6195 if (UNTAG_Bool(REGB0
)) {
6196 REGB0
= TAG_Bool(1);
6198 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6199 REGB1
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6200 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6203 if (UNTAG_Bool(REGB0
)) {
6206 /* syntax/typing.nit:1152 */
6207 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6208 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6209 /* syntax/typing.nit:1153 */
6210 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6211 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6212 /* syntax/typing.nit:1154 */
6213 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6214 if (UNTAG_Bool(REGB0
)) {
6215 /* syntax/typing.nit:1155 */
6216 fra
.me
.REG
[2] = fra
.me
.REG
[3];
6218 /* syntax/typing.nit:1156 */
6219 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
6220 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6221 if (UNTAG_Bool(REGB0
)) {
6222 /* syntax/typing.nit:1157 */
6224 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6225 if (!once_value_2
) {
6226 fra
.me
.REG
[5] = BOX_NativeString("Type error: ");
6227 REGB0
= TAG_Int(12);
6228 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
6229 once_value_2
= fra
.me
.REG
[5];
6230 register_static_object(&once_value_2
);
6231 } else fra
.me
.REG
[5] = once_value_2
;
6232 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6233 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6234 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6235 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6236 if (!once_value_3
) {
6237 fra
.me
.REG
[5] = BOX_NativeString(" incompatible with ");
6238 REGB0
= TAG_Int(19);
6239 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
6240 once_value_3
= fra
.me
.REG
[5];
6241 register_static_object(&once_value_3
);
6242 } else fra
.me
.REG
[5] = once_value_3
;
6243 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6244 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6245 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6247 if (!once_value_4
) {
6248 fra
.me
.REG
[3] = BOX_NativeString(".");
6250 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
6251 once_value_4
= fra
.me
.REG
[3];
6252 register_static_object(&once_value_4
);
6253 } else fra
.me
.REG
[3] = once_value_4
;
6254 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6255 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6256 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6257 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
6258 /* syntax/typing.nit:1158 */
6262 /* syntax/typing.nit:1160 */
6263 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_discrete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6264 /* syntax/typing.nit:1161 */
6265 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6266 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]);
6267 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6268 if (UNTAG_Bool(REGB0
)) {
6269 REGB0
= TAG_Bool(1);
6271 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6272 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]);
6273 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6276 if (UNTAG_Bool(REGB0
)) {
6279 /* syntax/typing.nit:1162 */
6280 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6281 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
6282 /* syntax/typing.nit:1163 */
6283 REGB0
= TAG_Bool(1);
6284 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6286 stack_frame_head
= fra
.me
.prev
;
6289 static const char LOCATE_syntax___typing___ASuperExpr___init_in_superclass
[] = "typing::ASuperExpr::(syntax_base::ASuperExpr::init_in_superclass)";
6290 val_t
syntax___typing___ASuperExpr___init_in_superclass(val_t p0
){
6291 struct {struct stack_frame_t me
;} fra
;
6293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6294 fra
.me
.file
= LOCATE_syntax___typing
;
6296 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___init_in_superclass
;
6297 fra
.me
.has_broke
= 0;
6298 fra
.me
.REG_size
= 1;
6299 fra
.me
.nitni_local_ref_head
= NULL
;
6300 fra
.me
.REG
[0] = NIT_NULL
;
6302 /* syntax/typing.nit:1168 */
6303 fra
.me
.REG
[0] = ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]);
6304 stack_frame_head
= fra
.me
.prev
;
6305 return fra
.me
.REG
[0];
6307 static const char LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments
[] = "typing::ASuperExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
6308 val_t
syntax___typing___ASuperExpr___compute_raw_arguments(val_t p0
){
6309 struct {struct stack_frame_t me
;} fra
;
6311 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6312 fra
.me
.file
= LOCATE_syntax___typing
;
6314 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments
;
6315 fra
.me
.has_broke
= 0;
6316 fra
.me
.REG_size
= 1;
6317 fra
.me
.nitni_local_ref_head
= NULL
;
6318 fra
.me
.REG
[0] = NIT_NULL
;
6320 /* syntax/typing.nit:1169 */
6321 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6322 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6325 stack_frame_head
= fra
.me
.prev
;
6326 return fra
.me
.REG
[0];
6328 static const char LOCATE_syntax___typing___ASuperExpr___after_typing
[] = "typing::ASuperExpr::(typing::ANode::after_typing)";
6329 void syntax___typing___ASuperExpr___after_typing(val_t p0
, val_t p1
){
6330 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
6335 static val_t once_value_1
; /* Once value */
6336 static val_t once_value_2
; /* Once value */
6337 static val_t once_value_3
; /* Once value */
6338 static val_t once_value_5
; /* Once value */
6339 static val_t once_value_6
; /* Once value */
6340 static val_t once_value_8
; /* Once value */
6341 static val_t once_value_9
; /* Once value */
6342 static val_t once_value_10
; /* Once value */
6343 static val_t once_value_11
; /* Once value */
6344 static val_t once_value_12
; /* Once value */
6345 static val_t once_value_13
; /* Once value */
6346 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6347 fra
.me
.file
= LOCATE_syntax___typing
;
6349 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___after_typing
;
6350 fra
.me
.has_broke
= 0;
6351 fra
.me
.REG_size
= 10;
6352 fra
.me
.nitni_local_ref_head
= NULL
;
6353 fra
.me
.REG
[0] = NIT_NULL
;
6354 fra
.me
.REG
[1] = NIT_NULL
;
6355 fra
.me
.REG
[2] = NIT_NULL
;
6356 fra
.me
.REG
[3] = NIT_NULL
;
6357 fra
.me
.REG
[4] = NIT_NULL
;
6358 fra
.me
.REG
[5] = NIT_NULL
;
6359 fra
.me
.REG
[6] = NIT_NULL
;
6360 fra
.me
.REG
[7] = NIT_NULL
;
6361 fra
.me
.REG
[8] = NIT_NULL
;
6362 fra
.me
.REG
[9] = NIT_NULL
;
6365 /* syntax/typing.nit:1170 */
6366 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6367 /* syntax/typing.nit:1172 */
6368 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6369 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6370 fra
.me
.REG
[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6371 /* syntax/typing.nit:1173 */
6372 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6373 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6374 if (UNTAG_Bool(REGB0
)) {
6375 /* syntax/typing.nit:1174 */
6376 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6377 REGB0
= TAG_Bool(1);
6378 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
6380 /* syntax/typing.nit:1175 */
6381 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6382 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6383 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6384 if (UNTAG_Bool(REGB0
)) {
6385 /* syntax/typing.nit:1176 */
6386 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6387 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6388 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6389 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6390 /* ../lib/standard/collection/array.nit:267 */
6391 fra
.me
.REG
[4] = fra
.me
.REG
[5];
6392 /* ../lib/standard/collection/array.nit:270 */
6394 /* ../lib/standard/collection/array.nit:271 */
6395 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6396 if (UNTAG_Bool(REGB1
)) {
6398 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
6400 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6401 /* ../lib/standard/collection/array.nit:272 */
6402 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6403 /* ../lib/standard/collection/array.nit:273 */
6405 /* ../lib/standard/collection/array.nit:24 */
6406 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6407 if (UNTAG_Bool(REGB1
)) {
6409 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6411 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6412 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6413 if (UNTAG_Bool(REGB2
)) {
6415 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6417 /* ../lib/standard/kernel.nit:242 */
6418 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6419 /* ../lib/standard/collection/array.nit:273 */
6420 if (UNTAG_Bool(REGB1
)) {
6421 /* ../lib/standard/collection/array.nit:274 */
6422 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6423 if (UNTAG_Bool(REGB1
)) {
6424 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
6426 /* ../lib/standard/collection/array.nit:725 */
6427 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6428 /* syntax/typing.nit:1178 */
6429 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6430 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6431 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6432 if (UNTAG_Bool(REGB1
)) {
6433 /* syntax/typing.nit:1179 */
6435 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6436 if (!once_value_1
) {
6437 fra
.me
.REG
[9] = BOX_NativeString("Error: ");
6439 fra
.me
.REG
[9] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[9])(fra
.me
.REG
[9], REGB1
);
6440 once_value_1
= fra
.me
.REG
[9];
6441 register_static_object(&once_value_1
);
6442 } else fra
.me
.REG
[9] = once_value_1
;
6443 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6444 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6445 fra
.me
.REG
[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6446 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6447 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6448 if (!once_value_2
) {
6449 fra
.me
.REG
[9] = BOX_NativeString("::");
6451 fra
.me
.REG
[9] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[9])(fra
.me
.REG
[9], REGB1
);
6452 once_value_2
= fra
.me
.REG
[9];
6453 register_static_object(&once_value_2
);
6454 } else fra
.me
.REG
[9] = once_value_2
;
6455 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6456 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6457 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6459 if (!once_value_3
) {
6460 fra
.me
.REG
[9] = BOX_NativeString(" is not a constructor.");
6461 REGB1
= TAG_Int(22);
6462 fra
.me
.REG
[9] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[9])(fra
.me
.REG
[9], REGB1
);
6463 once_value_3
= fra
.me
.REG
[9];
6464 register_static_object(&once_value_3
);
6465 } else fra
.me
.REG
[9] = once_value_3
;
6466 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6467 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6468 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6469 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[8]);
6471 /* syntax/typing.nit:1181 */
6472 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6473 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6474 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6475 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6477 /* ../lib/standard/collection/array.nit:275 */
6479 /* ../lib/standard/kernel.nit:245 */
6480 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6481 /* ../lib/standard/collection/array.nit:275 */
6484 /* ../lib/standard/collection/array.nit:273 */
6489 /* syntax/typing.nit:1184 */
6490 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6491 if (UNTAG_Bool(REGB0
)) {
6492 /* syntax/typing.nit:1185 */
6494 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6495 if (!once_value_5
) {
6496 fra
.me
.REG
[4] = BOX_NativeString("Error: No contructor named ");
6497 REGB0
= TAG_Int(27);
6498 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
6499 once_value_5
= fra
.me
.REG
[4];
6500 register_static_object(&once_value_5
);
6501 } else fra
.me
.REG
[4] = once_value_5
;
6502 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6503 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6504 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6505 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6506 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6507 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6508 if (!once_value_6
) {
6509 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses.");
6510 REGB0
= TAG_Int(17);
6511 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
6512 once_value_6
= fra
.me
.REG
[4];
6513 register_static_object(&once_value_6
);
6514 } else fra
.me
.REG
[4] = once_value_6
;
6515 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6516 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6517 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6518 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6519 /* syntax/typing.nit:1186 */
6522 /* ../lib/standard/collection/array.nit:24 */
6523 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6524 if (UNTAG_Bool(REGB0
)) {
6526 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6528 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6529 /* syntax/typing.nit:1187 */
6531 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6532 if (UNTAG_Bool(REGB2
)) {
6534 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6536 /* ../lib/standard/kernel.nit:244 */
6537 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
6538 /* syntax/typing.nit:1187 */
6539 if (UNTAG_Bool(REGB1
)) {
6540 /* syntax/typing.nit:1188 */
6542 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6543 if (!once_value_8
) {
6544 fra
.me
.REG
[4] = BOX_NativeString("Error: Conflicting contructors named ");
6545 REGB1
= TAG_Int(37);
6546 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
6547 once_value_8
= fra
.me
.REG
[4];
6548 register_static_object(&once_value_8
);
6549 } else fra
.me
.REG
[4] = once_value_8
;
6550 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6551 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6552 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6553 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6554 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6555 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6556 if (!once_value_9
) {
6557 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses: ");
6558 REGB1
= TAG_Int(18);
6559 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
6560 once_value_9
= fra
.me
.REG
[4];
6561 register_static_object(&once_value_9
);
6562 } else fra
.me
.REG
[4] = once_value_9
;
6563 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6564 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6565 if (!once_value_10
) {
6566 fra
.me
.REG
[4] = BOX_NativeString(", ");
6568 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
6569 once_value_10
= fra
.me
.REG
[4];
6570 register_static_object(&once_value_10
);
6571 } else fra
.me
.REG
[4] = once_value_10
;
6572 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6573 fra
.me
.REG
[4] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6574 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6575 if (!once_value_11
) {
6576 fra
.me
.REG
[4] = BOX_NativeString(".");
6578 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
6579 once_value_11
= fra
.me
.REG
[4];
6580 register_static_object(&once_value_11
);
6581 } else fra
.me
.REG
[4] = once_value_11
;
6582 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6583 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6584 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6585 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6586 /* syntax/typing.nit:1189 */
6590 /* syntax/typing.nit:1191 */
6591 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6592 /* syntax/typing.nit:1192 */
6593 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6594 if (UNTAG_Bool(REGB1
)) {
6596 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1192);
6598 /* syntax/typing.nit:1193 */
6599 ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6600 /* syntax/typing.nit:1194 */
6601 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[5]);
6602 /* syntax/typing.nit:1195 */
6603 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6604 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6605 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6607 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
6608 if (UNTAG_Bool(REGB2
)) {
6610 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6612 /* ../lib/standard/kernel.nit:244 */
6613 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB0
));
6614 /* syntax/typing.nit:1195 */
6615 if (UNTAG_Bool(REGB0
)) {
6616 /* syntax/typing.nit:1196 */
6617 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6618 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6619 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*/;
6620 if (UNTAG_Bool(REGB0
)) {
6622 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1196);
6624 REGB0
= TAG_Bool(1);
6625 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
);
6626 /* syntax/typing.nit:1197 */
6627 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6628 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6629 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]);
6632 /* syntax/typing.nit:1200 */
6634 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6635 if (!once_value_12
) {
6636 fra
.me
.REG
[5] = BOX_NativeString("Error: No super method to call for ");
6637 REGB0
= TAG_Int(35);
6638 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
6639 once_value_12
= fra
.me
.REG
[5];
6640 register_static_object(&once_value_12
);
6641 } else fra
.me
.REG
[5] = once_value_12
;
6642 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6643 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6644 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6645 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6646 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6647 if (!once_value_13
) {
6648 fra
.me
.REG
[5] = BOX_NativeString(".");
6650 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
6651 once_value_13
= fra
.me
.REG
[5];
6652 register_static_object(&once_value_13
);
6653 } else fra
.me
.REG
[5] = once_value_13
;
6654 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6655 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6656 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6657 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
6658 /* syntax/typing.nit:1201 */
6662 /* syntax/typing.nit:1204 */
6663 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6664 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6665 fra
.me
.REG
[5] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6666 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*/;
6667 if (UNTAG_Bool(REGB0
)) {
6669 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1204);
6671 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6672 if (UNTAG_Bool(REGB0
)) {
6673 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1204);
6675 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6676 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6677 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6678 if (UNTAG_Bool(REGB0
)) {
6680 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6681 if (UNTAG_Bool(REGB1
)) {
6682 REGB1
= TAG_Bool(0);
6685 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6689 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6690 if (UNTAG_Bool(REGB0
)) {
6691 /* syntax/typing.nit:1205 */
6692 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___init();
6693 /* syntax/typing.nit:1206 */
6694 fra
.me
.REG
[4] = NIT_NULL
;
6695 /* ../lib/standard/collection/array.nit:270 */
6697 /* ../lib/standard/collection/array.nit:271 */
6698 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6699 if (UNTAG_Bool(REGB1
)) {
6701 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
6703 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6704 /* ../lib/standard/collection/array.nit:272 */
6705 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
6706 /* ../lib/standard/collection/array.nit:273 */
6708 /* ../lib/standard/collection/array.nit:24 */
6709 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6710 if (UNTAG_Bool(REGB1
)) {
6712 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6714 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6715 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6716 if (UNTAG_Bool(REGB2
)) {
6718 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6720 /* ../lib/standard/kernel.nit:242 */
6721 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6722 /* ../lib/standard/collection/array.nit:273 */
6723 if (UNTAG_Bool(REGB1
)) {
6724 /* ../lib/standard/collection/array.nit:274 */
6725 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6726 if (UNTAG_Bool(REGB1
)) {
6727 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
6729 /* ../lib/standard/collection/array.nit:725 */
6730 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6731 /* syntax/typing.nit:1208 */
6732 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6733 if (UNTAG_Bool(REGB1
)) {
6735 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1208);
6737 /* syntax/typing.nit:1209 */
6738 fra
.me
.REG
[8] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6739 fra
.me
.REG
[8] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6740 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*/;
6741 if (UNTAG_Bool(REGB1
)) {
6743 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1209);
6745 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6746 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6747 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6748 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6749 if (UNTAG_Bool(REGB1
)) {
6750 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1209);
6752 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6753 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6754 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6755 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6756 if (UNTAG_Bool(REGB1
)) {
6757 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1209);
6759 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6760 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6761 /* syntax/typing.nit:1210 */
6762 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8]);
6763 /* syntax/typing.nit:1211 */
6764 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6765 if (UNTAG_Bool(REGB1
)) {
6767 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6768 if (UNTAG_Bool(REGB2
)) {
6769 REGB2
= TAG_Bool(0);
6772 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6776 if (UNTAG_Bool(REGB1
)) {
6777 REGB1
= TAG_Bool(1);
6779 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6780 if (UNTAG_Bool(REGB2
)) {
6781 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1211);
6783 REGB2
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[8]);
6786 if (UNTAG_Bool(REGB1
)) {
6787 /* syntax/typing.nit:1212 */
6788 fra
.me
.REG
[4] = fra
.me
.REG
[8];
6790 /* ../lib/standard/collection/array.nit:275 */
6792 /* ../lib/standard/kernel.nit:245 */
6793 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6794 /* ../lib/standard/collection/array.nit:275 */
6797 /* ../lib/standard/collection/array.nit:273 */
6802 /* ../lib/standard/collection/array.nit:270 */
6804 /* ../lib/standard/collection/array.nit:271 */
6805 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6806 if (UNTAG_Bool(REGB1
)) {
6808 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
6810 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6811 /* ../lib/standard/collection/array.nit:272 */
6812 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
6813 /* ../lib/standard/collection/array.nit:273 */
6815 /* ../lib/standard/collection/array.nit:24 */
6816 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6817 if (UNTAG_Bool(REGB1
)) {
6819 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6821 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6822 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6823 if (UNTAG_Bool(REGB2
)) {
6825 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6827 /* ../lib/standard/kernel.nit:242 */
6828 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6829 /* ../lib/standard/collection/array.nit:273 */
6830 if (UNTAG_Bool(REGB1
)) {
6831 /* ../lib/standard/collection/array.nit:274 */
6832 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6833 if (UNTAG_Bool(REGB1
)) {
6834 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
6836 /* ../lib/standard/collection/array.nit:725 */
6837 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6838 /* syntax/typing.nit:1216 */
6839 REGB1
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
6840 if (UNTAG_Bool(REGB1
)) {
6842 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1216);
6844 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]);
6845 /* ../lib/standard/collection/array.nit:275 */
6847 /* ../lib/standard/kernel.nit:245 */
6848 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6849 /* ../lib/standard/collection/array.nit:275 */
6852 /* ../lib/standard/collection/array.nit:273 */
6857 /* syntax/typing.nit:1218 */
6858 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
6860 /* syntax/typing.nit:1220 */
6861 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6862 /* syntax/typing.nit:1221 */
6863 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6864 if (UNTAG_Bool(REGB0
)) {
6866 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1221);
6868 /* syntax/typing.nit:1222 */
6869 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
6870 /* syntax/typing.nit:1223 */
6871 REGB0
= TAG_Bool(1);
6872 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
6874 stack_frame_head
= fra
.me
.prev
;
6877 static const char LOCATE_syntax___typing___AExternCall___target_class_name
[] = "typing::AExternCall::target_class_name";
6878 val_t
syntax___typing___AExternCall___target_class_name(val_t p0
){
6879 struct {struct stack_frame_t me
;} fra
;
6881 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6882 fra
.me
.file
= LOCATE_syntax___typing
;
6884 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_class_name
;
6885 fra
.me
.has_broke
= 0;
6886 fra
.me
.REG_size
= 1;
6887 fra
.me
.nitni_local_ref_head
= NULL
;
6888 fra
.me
.REG
[0] = NIT_NULL
;
6890 /* syntax/typing.nit:1228 */
6891 fra
.me
.REG
[0] = NIT_NULL
;
6894 stack_frame_head
= fra
.me
.prev
;
6895 return fra
.me
.REG
[0];
6897 static const char LOCATE_syntax___typing___AExternCall___target_method_name
[] = "typing::AExternCall::target_method_name";
6898 val_t
syntax___typing___AExternCall___target_method_name(val_t p0
){
6899 struct {struct stack_frame_t me
;} fra
;
6901 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6902 fra
.me
.file
= LOCATE_syntax___typing
;
6904 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_method_name
;
6905 fra
.me
.has_broke
= 0;
6906 fra
.me
.REG_size
= 0;
6907 fra
.me
.nitni_local_ref_head
= NULL
;
6908 /* syntax/typing.nit:1229 */
6909 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1229);
6910 stack_frame_head
= fra
.me
.prev
;
6913 static const char LOCATE_syntax___typing___AExternCall___after_typing
[] = "typing::AExternCall::(typing::ANode::after_typing)";
6914 void syntax___typing___AExternCall___after_typing(val_t p0
, val_t p1
){
6915 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
6919 static val_t once_value_1
; /* Once value */
6920 static val_t once_value_2
; /* Once value */
6921 static val_t once_value_4
; /* Once value */
6922 static val_t once_value_5
; /* Once value */
6923 static val_t once_value_6
; /* Once value */
6924 static val_t once_value_7
; /* Once value */
6925 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6926 fra
.me
.file
= LOCATE_syntax___typing
;
6928 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___after_typing
;
6929 fra
.me
.has_broke
= 0;
6930 fra
.me
.REG_size
= 8;
6931 fra
.me
.nitni_local_ref_head
= NULL
;
6932 fra
.me
.REG
[0] = NIT_NULL
;
6933 fra
.me
.REG
[1] = NIT_NULL
;
6934 fra
.me
.REG
[2] = NIT_NULL
;
6935 fra
.me
.REG
[3] = NIT_NULL
;
6936 fra
.me
.REG
[4] = NIT_NULL
;
6937 fra
.me
.REG
[5] = NIT_NULL
;
6938 fra
.me
.REG
[6] = NIT_NULL
;
6939 fra
.me
.REG
[7] = NIT_NULL
;
6942 /* syntax/typing.nit:1231 */
6943 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6944 /* syntax/typing.nit:1233 */
6945 fra
.me
.REG
[3] = CALL_syntax___typing___AExternCall___target_class_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6946 /* syntax/typing.nit:1234 */
6947 fra
.me
.REG
[4] = CALL_syntax___typing___AExternCall___target_method_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6948 /* syntax/typing.nit:1241 */
6949 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6950 if (UNTAG_Bool(REGB0
)) {
6952 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6953 if (UNTAG_Bool(REGB1
)) {
6954 REGB1
= TAG_Bool(0);
6957 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6961 if (UNTAG_Bool(REGB0
)) {
6962 /* syntax/typing.nit:1242 */
6963 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6964 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6966 /* syntax/typing.nit:1244 */
6967 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6968 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6969 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6970 if (UNTAG_Bool(REGB0
)) {
6971 /* syntax/typing.nit:1245 */
6972 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6973 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6974 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6975 /* syntax/typing.nit:1246 */
6976 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6977 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6978 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
6979 fra
.me
.REG
[5] = fra
.me
.REG
[6];
6981 /* syntax/typing.nit:1248 */
6983 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6984 if (!once_value_1
) {
6985 fra
.me
.REG
[7] = BOX_NativeString("Error: class ");
6986 REGB0
= TAG_Int(13);
6987 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
6988 once_value_1
= fra
.me
.REG
[7];
6989 register_static_object(&once_value_1
);
6990 } else fra
.me
.REG
[7] = once_value_1
;
6991 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6992 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
6993 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6994 if (UNTAG_Bool(REGB0
)) {
6995 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1248);
6997 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6999 if (!once_value_2
) {
7000 fra
.me
.REG
[3] = BOX_NativeString(", not found.");
7001 REGB0
= TAG_Int(12);
7002 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
7003 once_value_2
= fra
.me
.REG
[3];
7004 register_static_object(&once_value_2
);
7005 } else fra
.me
.REG
[3] = once_value_2
;
7006 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7007 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7008 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7009 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
7010 /* syntax/typing.nit:1249 */
7014 /* syntax/typing.nit:1253 */
7015 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
7016 if (UNTAG_Bool(REGB0
)) {
7017 /* syntax/typing.nit:1254 */
7018 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
7019 /* syntax/typing.nit:1256 */
7020 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7021 /* syntax/typing.nit:1258 */
7022 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
7023 if (UNTAG_Bool(REGB0
)) {
7025 /* syntax/typing.nit:1261 */
7027 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7028 if (!once_value_4
) {
7029 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
7030 REGB0
= TAG_Int(16);
7031 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
7032 once_value_4
= fra
.me
.REG
[7];
7033 register_static_object(&once_value_4
);
7034 } else fra
.me
.REG
[7] = once_value_4
;
7035 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7036 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7037 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7038 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7039 if (!once_value_5
) {
7040 fra
.me
.REG
[7] = BOX_NativeString(" is not a method.");
7041 REGB0
= TAG_Int(17);
7042 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
7043 once_value_5
= fra
.me
.REG
[7];
7044 register_static_object(&once_value_5
);
7045 } else fra
.me
.REG
[7] = once_value_5
;
7046 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7047 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7048 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7049 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
7050 /* syntax/typing.nit:1262 */
7054 /* syntax/typing.nit:1265 */
7056 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7057 if (!once_value_6
) {
7058 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
7059 REGB0
= TAG_Int(16);
7060 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
7061 once_value_6
= fra
.me
.REG
[7];
7062 register_static_object(&once_value_6
);
7063 } else fra
.me
.REG
[7] = once_value_6
;
7064 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7065 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7066 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7067 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7068 if (!once_value_7
) {
7069 fra
.me
.REG
[4] = BOX_NativeString(" not found in target class.");
7070 REGB0
= TAG_Int(27);
7071 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
7072 once_value_7
= fra
.me
.REG
[4];
7073 register_static_object(&once_value_7
);
7074 } else fra
.me
.REG
[4] = once_value_7
;
7075 fra
.me
.REG
[4] = fra
.me
.REG
[4];
7076 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7077 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7078 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
7079 /* syntax/typing.nit:1266 */
7082 /* syntax/typing.nit:1269 */
7083 fra
.me
.REG
[6] = NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7084 /* syntax/typing.nit:1270 */
7085 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7086 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
7087 if (UNTAG_Bool(REGB0
)) {
7089 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1270);
7091 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7092 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
7094 stack_frame_head
= fra
.me
.prev
;
7097 static const char LOCATE_syntax___typing___ALocalPropExternCall___target_class_name
[] = "typing::ALocalPropExternCall::(typing::AExternCall::target_class_name)";
7098 val_t
syntax___typing___ALocalPropExternCall___target_class_name(val_t p0
){
7099 struct {struct stack_frame_t me
;} fra
;
7101 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7102 fra
.me
.file
= LOCATE_syntax___typing
;
7104 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_class_name
;
7105 fra
.me
.has_broke
= 0;
7106 fra
.me
.REG_size
= 1;
7107 fra
.me
.nitni_local_ref_head
= NULL
;
7108 fra
.me
.REG
[0] = NIT_NULL
;
7110 /* syntax/typing.nit:1275 */
7111 fra
.me
.REG
[0] = NIT_NULL
;
7114 stack_frame_head
= fra
.me
.prev
;
7115 return fra
.me
.REG
[0];
7117 static const char LOCATE_syntax___typing___ALocalPropExternCall___target_method_name
[] = "typing::ALocalPropExternCall::(typing::AExternCall::target_method_name)";
7118 val_t
syntax___typing___ALocalPropExternCall___target_method_name(val_t p0
){
7119 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7122 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7123 fra
.me
.file
= LOCATE_syntax___typing
;
7125 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_method_name
;
7126 fra
.me
.has_broke
= 0;
7127 fra
.me
.REG_size
= 2;
7128 fra
.me
.nitni_local_ref_head
= NULL
;
7129 fra
.me
.REG
[0] = NIT_NULL
;
7130 fra
.me
.REG
[1] = NIT_NULL
;
7132 /* syntax/typing.nit:1276 */
7133 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7134 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ALocalPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7135 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7136 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_symbol___Symbol
, ID_symbol___Symbol
)) /*cast Symbol*/;
7137 if (UNTAG_Bool(REGB0
)) {
7139 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1276);
7143 stack_frame_head
= fra
.me
.prev
;
7144 return fra
.me
.REG
[1];
7146 static const char LOCATE_syntax___typing___ASuperExternCall___after_typing
[] = "typing::ASuperExternCall::(typing::ANode::after_typing)";
7147 void syntax___typing___ASuperExternCall___after_typing(val_t p0
, val_t p1
){
7148 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7151 static val_t once_value_1
; /* Once value */
7152 static val_t once_value_2
; /* Once value */
7153 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7154 fra
.me
.file
= LOCATE_syntax___typing
;
7156 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExternCall___after_typing
;
7157 fra
.me
.has_broke
= 0;
7158 fra
.me
.REG_size
= 4;
7159 fra
.me
.nitni_local_ref_head
= NULL
;
7160 fra
.me
.REG
[0] = NIT_NULL
;
7161 fra
.me
.REG
[1] = NIT_NULL
;
7162 fra
.me
.REG
[2] = NIT_NULL
;
7163 fra
.me
.REG
[3] = NIT_NULL
;
7166 /* syntax/typing.nit:1282 */
7167 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7168 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7169 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7170 /* syntax/typing.nit:1283 */
7171 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7172 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7173 if (UNTAG_Bool(REGB0
)) {
7174 /* syntax/typing.nit:1284 */
7175 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7176 REGB0
= TAG_Bool(1);
7177 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
7179 /* syntax/typing.nit:1286 */
7181 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7182 if (!once_value_1
) {
7183 fra
.me
.REG
[3] = BOX_NativeString("Error: No super method to call for ");
7184 REGB0
= TAG_Int(35);
7185 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
7186 once_value_1
= fra
.me
.REG
[3];
7187 register_static_object(&once_value_1
);
7188 } else fra
.me
.REG
[3] = once_value_1
;
7189 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7190 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7191 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7192 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7193 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7194 if (!once_value_2
) {
7195 fra
.me
.REG
[3] = BOX_NativeString(".");
7197 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
7198 once_value_2
= fra
.me
.REG
[3];
7199 register_static_object(&once_value_2
);
7200 } else fra
.me
.REG
[3] = once_value_2
;
7201 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7202 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7203 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7204 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
7205 /* syntax/typing.nit:1287 */
7209 stack_frame_head
= fra
.me
.prev
;
7212 static const char LOCATE_syntax___typing___AFullPropExternCall___target_class_name
[] = "typing::AFullPropExternCall::(typing::AExternCall::target_class_name)";
7213 val_t
syntax___typing___AFullPropExternCall___target_class_name(val_t p0
){
7214 struct {struct stack_frame_t me
;} fra
;
7216 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7217 fra
.me
.file
= LOCATE_syntax___typing
;
7219 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_class_name
;
7220 fra
.me
.has_broke
= 0;
7221 fra
.me
.REG_size
= 1;
7222 fra
.me
.nitni_local_ref_head
= NULL
;
7223 fra
.me
.REG
[0] = NIT_NULL
;
7225 /* syntax/typing.nit:1293 */
7226 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AFullPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7227 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7230 stack_frame_head
= fra
.me
.prev
;
7231 return fra
.me
.REG
[0];
7233 static const char LOCATE_syntax___typing___AFullPropExternCall___target_method_name
[] = "typing::AFullPropExternCall::(typing::AExternCall::target_method_name)";
7234 val_t
syntax___typing___AFullPropExternCall___target_method_name(val_t p0
){
7235 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7238 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7239 fra
.me
.file
= LOCATE_syntax___typing
;
7241 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_method_name
;
7242 fra
.me
.has_broke
= 0;
7243 fra
.me
.REG_size
= 2;
7244 fra
.me
.nitni_local_ref_head
= NULL
;
7245 fra
.me
.REG
[0] = NIT_NULL
;
7246 fra
.me
.REG
[1] = NIT_NULL
;
7248 /* syntax/typing.nit:1294 */
7249 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7250 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AFullPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7251 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7252 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_symbol___Symbol
, ID_symbol___Symbol
)) /*cast Symbol*/;
7253 if (UNTAG_Bool(REGB0
)) {
7255 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1294);
7259 stack_frame_head
= fra
.me
.prev
;
7260 return fra
.me
.REG
[1];
7262 static const char LOCATE_syntax___typing___AInitPropExternCall___target_class_name
[] = "typing::AInitPropExternCall::(typing::AExternCall::target_class_name)";
7263 val_t
syntax___typing___AInitPropExternCall___target_class_name(val_t p0
){
7264 struct {struct stack_frame_t me
;} fra
;
7266 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7267 fra
.me
.file
= LOCATE_syntax___typing
;
7269 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_class_name
;
7270 fra
.me
.has_broke
= 0;
7271 fra
.me
.REG_size
= 1;
7272 fra
.me
.nitni_local_ref_head
= NULL
;
7273 fra
.me
.REG
[0] = NIT_NULL
;
7275 /* syntax/typing.nit:1298 */
7276 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7277 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7280 stack_frame_head
= fra
.me
.prev
;
7281 return fra
.me
.REG
[0];
7283 static const char LOCATE_syntax___typing___AInitPropExternCall___target_method_name
[] = "typing::AInitPropExternCall::(typing::AExternCall::target_method_name)";
7284 val_t
syntax___typing___AInitPropExternCall___target_method_name(val_t p0
){
7285 struct {struct stack_frame_t me
;} fra
;
7288 static val_t once_value_1
; /* Once value */
7289 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7290 fra
.me
.file
= LOCATE_syntax___typing
;
7292 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_method_name
;
7293 fra
.me
.has_broke
= 0;
7294 fra
.me
.REG_size
= 1;
7295 fra
.me
.nitni_local_ref_head
= NULL
;
7296 fra
.me
.REG
[0] = NIT_NULL
;
7298 /* syntax/typing.nit:1299 */
7299 if (!once_value_1
) {
7300 fra
.me
.REG
[0] = BOX_NativeString("init");
7302 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
7303 once_value_1
= fra
.me
.REG
[0];
7304 register_static_object(&once_value_1
);
7305 } else fra
.me
.REG
[0] = once_value_1
;
7306 fra
.me
.REG
[0] = fra
.me
.REG
[0];
7307 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7310 stack_frame_head
= fra
.me
.prev
;
7311 return fra
.me
.REG
[0];
7313 static const char LOCATE_syntax___typing___ACastExternCall___from_type
[] = "typing::ACastExternCall::from_type";
7314 val_t
syntax___typing___ACastExternCall___from_type(val_t p0
){
7315 struct {struct stack_frame_t me
;} fra
;
7317 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7318 fra
.me
.file
= LOCATE_syntax___typing
;
7320 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___from_type
;
7321 fra
.me
.has_broke
= 0;
7322 fra
.me
.REG_size
= 0;
7323 fra
.me
.nitni_local_ref_head
= NULL
;
7324 /* syntax/typing.nit:1303 */
7325 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1303);
7326 stack_frame_head
= fra
.me
.prev
;
7329 static const char LOCATE_syntax___typing___ACastExternCall___to_type
[] = "typing::ACastExternCall::to_type";
7330 val_t
syntax___typing___ACastExternCall___to_type(val_t p0
){
7331 struct {struct stack_frame_t me
;} fra
;
7333 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7334 fra
.me
.file
= LOCATE_syntax___typing
;
7336 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___to_type
;
7337 fra
.me
.has_broke
= 0;
7338 fra
.me
.REG_size
= 0;
7339 fra
.me
.nitni_local_ref_head
= NULL
;
7340 /* syntax/typing.nit:1304 */
7341 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1304);
7342 stack_frame_head
= fra
.me
.prev
;
7345 static const char LOCATE_syntax___typing___ACastExternCall___after_typing
[] = "typing::ACastExternCall::(typing::ANode::after_typing)";
7346 void syntax___typing___ACastExternCall___after_typing(val_t p0
, val_t p1
){
7347 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7351 static val_t once_value_1
; /* Once value */
7352 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7353 fra
.me
.file
= LOCATE_syntax___typing
;
7355 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___after_typing
;
7356 fra
.me
.has_broke
= 0;
7357 fra
.me
.REG_size
= 4;
7358 fra
.me
.nitni_local_ref_head
= NULL
;
7359 fra
.me
.REG
[0] = NIT_NULL
;
7360 fra
.me
.REG
[1] = NIT_NULL
;
7361 fra
.me
.REG
[2] = NIT_NULL
;
7362 fra
.me
.REG
[3] = NIT_NULL
;
7365 /* syntax/typing.nit:1308 */
7366 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7367 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7368 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
7369 if (UNTAG_Bool(REGB0
)) {
7371 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7374 if (UNTAG_Bool(REGB0
)) {
7375 /* syntax/typing.nit:1310 */
7376 if (!once_value_1
) {
7377 fra
.me
.REG
[3] = BOX_NativeString("Attepting to cast from and to the same type.");
7378 REGB0
= TAG_Int(44);
7379 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
7380 once_value_1
= fra
.me
.REG
[3];
7381 register_static_object(&once_value_1
);
7382 } else fra
.me
.REG
[3] = once_value_1
;
7383 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7384 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
7386 /* syntax/typing.nit:1313 */
7387 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7388 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7389 fra
.me
.REG
[2] = NEW_MMImportedCast_metamodel___static_type___MMImportedCast___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
7390 /* syntax/typing.nit:1314 */
7391 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7392 /* syntax/typing.nit:1315 */
7393 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
7394 if (UNTAG_Bool(REGB0
)) {
7396 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1315);
7398 /* syntax/typing.nit:1316 */
7399 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7400 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7401 stack_frame_head
= fra
.me
.prev
;
7404 static const char LOCATE_syntax___typing___ACastAsExternCall___from_type
[] = "typing::ACastAsExternCall::(typing::ACastExternCall::from_type)";
7405 val_t
syntax___typing___ACastAsExternCall___from_type(val_t p0
){
7406 struct {struct stack_frame_t me
;} fra
;
7408 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7409 fra
.me
.file
= LOCATE_syntax___typing
;
7411 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___from_type
;
7412 fra
.me
.has_broke
= 0;
7413 fra
.me
.REG_size
= 1;
7414 fra
.me
.nitni_local_ref_head
= NULL
;
7415 fra
.me
.REG
[0] = NIT_NULL
;
7417 /* syntax/typing.nit:1321 */
7418 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7419 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7422 stack_frame_head
= fra
.me
.prev
;
7423 return fra
.me
.REG
[0];
7425 static const char LOCATE_syntax___typing___ACastAsExternCall___to_type
[] = "typing::ACastAsExternCall::(typing::ACastExternCall::to_type)";
7426 val_t
syntax___typing___ACastAsExternCall___to_type(val_t p0
){
7427 struct {struct stack_frame_t me
;} fra
;
7429 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7430 fra
.me
.file
= LOCATE_syntax___typing
;
7432 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___to_type
;
7433 fra
.me
.has_broke
= 0;
7434 fra
.me
.REG_size
= 1;
7435 fra
.me
.nitni_local_ref_head
= NULL
;
7436 fra
.me
.REG
[0] = NIT_NULL
;
7438 /* syntax/typing.nit:1322 */
7439 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7440 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7443 stack_frame_head
= fra
.me
.prev
;
7444 return fra
.me
.REG
[0];
7446 static const char LOCATE_syntax___typing___AAsNullableExternCall___from_type
[] = "typing::AAsNullableExternCall::(typing::ACastExternCall::from_type)";
7447 val_t
syntax___typing___AAsNullableExternCall___from_type(val_t p0
){
7448 struct {struct stack_frame_t me
;} fra
;
7450 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7451 fra
.me
.file
= LOCATE_syntax___typing
;
7453 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___from_type
;
7454 fra
.me
.has_broke
= 0;
7455 fra
.me
.REG_size
= 1;
7456 fra
.me
.nitni_local_ref_head
= NULL
;
7457 fra
.me
.REG
[0] = NIT_NULL
;
7459 /* syntax/typing.nit:1326 */
7460 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7461 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7464 stack_frame_head
= fra
.me
.prev
;
7465 return fra
.me
.REG
[0];
7467 static const char LOCATE_syntax___typing___AAsNullableExternCall___to_type
[] = "typing::AAsNullableExternCall::(typing::ACastExternCall::to_type)";
7468 val_t
syntax___typing___AAsNullableExternCall___to_type(val_t p0
){
7469 struct {struct stack_frame_t me
;} fra
;
7471 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7472 fra
.me
.file
= LOCATE_syntax___typing
;
7474 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___to_type
;
7475 fra
.me
.has_broke
= 0;
7476 fra
.me
.REG_size
= 1;
7477 fra
.me
.nitni_local_ref_head
= NULL
;
7478 fra
.me
.REG
[0] = NIT_NULL
;
7480 /* syntax/typing.nit:1327 */
7481 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7482 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7483 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7486 stack_frame_head
= fra
.me
.prev
;
7487 return fra
.me
.REG
[0];
7489 static const char LOCATE_syntax___typing___AAsNotNullableExternCall___from_type
[] = "typing::AAsNotNullableExternCall::(typing::ACastExternCall::from_type)";
7490 val_t
syntax___typing___AAsNotNullableExternCall___from_type(val_t p0
){
7491 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7494 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7495 fra
.me
.file
= LOCATE_syntax___typing
;
7497 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___from_type
;
7498 fra
.me
.has_broke
= 0;
7499 fra
.me
.REG_size
= 2;
7500 fra
.me
.nitni_local_ref_head
= NULL
;
7501 fra
.me
.REG
[0] = NIT_NULL
;
7502 fra
.me
.REG
[1] = NIT_NULL
;
7504 /* syntax/typing.nit:1333 */
7505 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7506 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7507 /* syntax/typing.nit:1334 */
7508 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7509 if (UNTAG_Bool(REGB0
)) {
7510 /* syntax/typing.nit:1336 */
7511 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7514 /* syntax/typing.nit:1338 */
7515 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7516 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7520 stack_frame_head
= fra
.me
.prev
;
7521 return fra
.me
.REG
[1];
7523 static const char LOCATE_syntax___typing___AAsNotNullableExternCall___to_type
[] = "typing::AAsNotNullableExternCall::(typing::ACastExternCall::to_type)";
7524 val_t
syntax___typing___AAsNotNullableExternCall___to_type(val_t p0
){
7525 struct {struct stack_frame_t me
;} fra
;
7527 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7528 fra
.me
.file
= LOCATE_syntax___typing
;
7530 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___to_type
;
7531 fra
.me
.has_broke
= 0;
7532 fra
.me
.REG_size
= 1;
7533 fra
.me
.nitni_local_ref_head
= NULL
;
7534 fra
.me
.REG
[0] = NIT_NULL
;
7536 /* syntax/typing.nit:1341 */
7537 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7538 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7539 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7542 stack_frame_head
= fra
.me
.prev
;
7543 return fra
.me
.REG
[0];
7545 static const char LOCATE_syntax___typing___AAttrFormExpr___prop
[] = "typing::AAttrFormExpr::(syntax_base::AAttrFormExpr::prop)";
7546 val_t
syntax___typing___AAttrFormExpr___prop(val_t p0
){
7547 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7550 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7551 fra
.me
.file
= LOCATE_syntax___typing
;
7553 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___prop
;
7554 fra
.me
.has_broke
= 0;
7555 fra
.me
.REG_size
= 2;
7556 fra
.me
.nitni_local_ref_head
= NULL
;
7557 fra
.me
.REG
[0] = NIT_NULL
;
7558 fra
.me
.REG
[1] = NIT_NULL
;
7560 /* syntax/typing.nit:1345 */
7561 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7562 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[1]);
7563 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7564 if (UNTAG_Bool(REGB0
)) {
7566 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1345);
7570 stack_frame_head
= fra
.me
.prev
;
7571 return fra
.me
.REG
[1];
7573 static const char LOCATE_syntax___typing___AAttrFormExpr___attr_type
[] = "typing::AAttrFormExpr::(syntax_base::AAttrFormExpr::attr_type)";
7574 val_t
syntax___typing___AAttrFormExpr___attr_type(val_t p0
){
7575 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7578 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7579 fra
.me
.file
= LOCATE_syntax___typing
;
7581 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___attr_type
;
7582 fra
.me
.has_broke
= 0;
7583 fra
.me
.REG_size
= 2;
7584 fra
.me
.nitni_local_ref_head
= NULL
;
7585 fra
.me
.REG
[0] = NIT_NULL
;
7586 fra
.me
.REG
[1] = NIT_NULL
;
7588 /* syntax/typing.nit:1348 */
7589 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7590 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[1]);
7591 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7592 if (UNTAG_Bool(REGB0
)) {
7594 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1348);
7598 stack_frame_head
= fra
.me
.prev
;
7599 return fra
.me
.REG
[1];
7601 static const char LOCATE_syntax___typing___AAttrFormExpr___do_typing
[] = "typing::AAttrFormExpr::do_typing";
7602 void syntax___typing___AAttrFormExpr___do_typing(val_t p0
, val_t p1
){
7603 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7608 static val_t once_value_2
; /* Once value */
7609 static val_t once_value_3
; /* Once value */
7610 static val_t once_value_4
; /* Once value */
7611 static val_t once_value_5
; /* Once value */
7612 static val_t once_value_6
; /* Once value */
7613 static val_t once_value_7
; /* Once value */
7614 static val_t once_value_8
; /* Once value */
7615 static val_t once_value_9
; /* Once value */
7616 static val_t once_value_10
; /* Once value */
7617 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7618 fra
.me
.file
= LOCATE_syntax___typing
;
7620 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___do_typing
;
7621 fra
.me
.has_broke
= 0;
7622 fra
.me
.REG_size
= 7;
7623 fra
.me
.nitni_local_ref_head
= NULL
;
7624 fra
.me
.REG
[0] = NIT_NULL
;
7625 fra
.me
.REG
[1] = NIT_NULL
;
7626 fra
.me
.REG
[2] = NIT_NULL
;
7627 fra
.me
.REG
[3] = NIT_NULL
;
7628 fra
.me
.REG
[4] = NIT_NULL
;
7629 fra
.me
.REG
[5] = NIT_NULL
;
7630 fra
.me
.REG
[6] = NIT_NULL
;
7633 /* syntax/typing.nit:1354 */
7634 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7635 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7636 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7637 if (UNTAG_Bool(REGB0
)) {
7640 /* syntax/typing.nit:1355 */
7641 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7642 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7643 /* syntax/typing.nit:1356 */
7644 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7645 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7646 /* syntax/typing.nit:1357 */
7647 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
7648 if (UNTAG_Bool(REGB0
)) {
7649 /* syntax/typing.nit:1358 */
7651 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7652 if (!once_value_2
) {
7653 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute '");
7654 REGB0
= TAG_Int(18);
7655 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
7656 once_value_2
= fra
.me
.REG
[5];
7657 register_static_object(&once_value_2
);
7658 } else fra
.me
.REG
[5] = once_value_2
;
7659 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7660 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7661 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7663 if (!once_value_3
) {
7664 fra
.me
.REG
[5] = BOX_NativeString("' access on 'null'.");
7665 REGB0
= TAG_Int(19);
7666 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
7667 once_value_3
= fra
.me
.REG
[5];
7668 register_static_object(&once_value_3
);
7669 } else fra
.me
.REG
[5] = once_value_3
;
7670 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7671 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7672 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7673 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7674 /* syntax/typing.nit:1359 */
7677 /* syntax/typing.nit:1361 */
7678 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7679 /* syntax/typing.nit:1362 */
7680 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7681 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7682 if (UNTAG_Bool(REGB0
)) {
7683 /* syntax/typing.nit:1363 */
7685 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7686 if (!once_value_4
) {
7687 fra
.me
.REG
[6] = BOX_NativeString("Error: Attribute ");
7688 REGB0
= TAG_Int(17);
7689 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
7690 once_value_4
= fra
.me
.REG
[6];
7691 register_static_object(&once_value_4
);
7692 } else fra
.me
.REG
[6] = once_value_4
;
7693 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7694 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7695 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7696 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7697 if (!once_value_5
) {
7698 fra
.me
.REG
[6] = BOX_NativeString(" doesn't exists in ");
7699 REGB0
= TAG_Int(19);
7700 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
7701 once_value_5
= fra
.me
.REG
[6];
7702 register_static_object(&once_value_5
);
7703 } else fra
.me
.REG
[6] = once_value_5
;
7704 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7705 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7706 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7707 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7708 if (!once_value_6
) {
7709 fra
.me
.REG
[6] = BOX_NativeString(".");
7711 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
7712 once_value_6
= fra
.me
.REG
[6];
7713 register_static_object(&once_value_6
);
7714 } else fra
.me
.REG
[6] = once_value_6
;
7715 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7716 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7717 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7718 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7719 /* syntax/typing.nit:1364 */
7722 /* syntax/typing.nit:1366 */
7723 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_attribute(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7724 /* syntax/typing.nit:1367 */
7725 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7726 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7727 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7728 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7729 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7731 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
7732 if (UNTAG_Bool(REGB2
)) {
7734 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7736 /* ../lib/standard/kernel.nit:242 */
7737 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
7738 /* syntax/typing.nit:1367 */
7739 if (UNTAG_Bool(REGB1
)) {
7740 /* syntax/typing.nit:1368 */
7742 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
7743 if (!once_value_7
) {
7744 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute ");
7745 REGB1
= TAG_Int(17);
7746 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB1
);
7747 once_value_7
= fra
.me
.REG
[5];
7748 register_static_object(&once_value_7
);
7749 } else fra
.me
.REG
[5] = once_value_7
;
7750 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7751 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
7752 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7753 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7754 if (!once_value_8
) {
7755 fra
.me
.REG
[3] = BOX_NativeString(" from ");
7757 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
7758 once_value_8
= fra
.me
.REG
[3];
7759 register_static_object(&once_value_8
);
7760 } else fra
.me
.REG
[3] = once_value_8
;
7761 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7762 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7763 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7764 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7765 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7766 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7767 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7768 if (!once_value_9
) {
7769 fra
.me
.REG
[3] = BOX_NativeString(" is invisible in ");
7770 REGB1
= TAG_Int(17);
7771 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
7772 once_value_9
= fra
.me
.REG
[3];
7773 register_static_object(&once_value_9
);
7774 } else fra
.me
.REG
[3] = once_value_9
;
7775 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7776 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7777 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7778 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7779 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7780 if (!once_value_10
) {
7781 fra
.me
.REG
[3] = BOX_NativeString("");
7783 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
7784 once_value_10
= fra
.me
.REG
[3];
7785 register_static_object(&once_value_10
);
7786 } else fra
.me
.REG
[3] = once_value_10
;
7787 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7789 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7790 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
7792 /* syntax/typing.nit:1370 */
7793 ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
7794 /* syntax/typing.nit:1371 */
7795 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7796 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7797 /* syntax/typing.nit:1372 */
7798 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7799 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7800 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7801 if (UNTAG_Bool(REGB1
)) {
7802 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7803 if (UNTAG_Bool(REGB1
)) {
7804 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1372);
7806 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7807 fra
.me
.REG
[2] = fra
.me
.REG
[4];
7809 /* syntax/typing.nit:1373 */
7810 ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
7812 stack_frame_head
= fra
.me
.prev
;
7815 static const char LOCATE_syntax___typing___AAttrExpr___after_typing
[] = "typing::AAttrExpr::(typing::ANode::after_typing)";
7816 void syntax___typing___AAttrExpr___after_typing(val_t p0
, val_t p1
){
7817 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7821 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7822 fra
.me
.file
= LOCATE_syntax___typing
;
7824 fra
.me
.meth
= LOCATE_syntax___typing___AAttrExpr___after_typing
;
7825 fra
.me
.has_broke
= 0;
7826 fra
.me
.REG_size
= 2;
7827 fra
.me
.nitni_local_ref_head
= NULL
;
7828 fra
.me
.REG
[0] = NIT_NULL
;
7829 fra
.me
.REG
[1] = NIT_NULL
;
7832 /* syntax/typing.nit:1380 */
7833 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7834 /* syntax/typing.nit:1381 */
7835 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7836 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7837 if (UNTAG_Bool(REGB0
)) {
7839 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7840 if (UNTAG_Bool(REGB1
)) {
7841 REGB1
= TAG_Bool(0);
7844 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7848 if (UNTAG_Bool(REGB0
)) {
7851 /* syntax/typing.nit:1382 */
7852 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7853 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7854 /* syntax/typing.nit:1383 */
7855 REGB0
= TAG_Bool(1);
7856 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7858 stack_frame_head
= fra
.me
.prev
;
7861 static const char LOCATE_syntax___typing___AAttrAssignExpr___after_typing
[] = "typing::AAttrAssignExpr::(typing::ANode::after_typing)";
7862 void syntax___typing___AAttrAssignExpr___after_typing(val_t p0
, val_t p1
){
7863 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7867 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7868 fra
.me
.file
= LOCATE_syntax___typing
;
7870 fra
.me
.meth
= LOCATE_syntax___typing___AAttrAssignExpr___after_typing
;
7871 fra
.me
.has_broke
= 0;
7872 fra
.me
.REG_size
= 4;
7873 fra
.me
.nitni_local_ref_head
= NULL
;
7874 fra
.me
.REG
[0] = NIT_NULL
;
7875 fra
.me
.REG
[1] = NIT_NULL
;
7876 fra
.me
.REG
[2] = NIT_NULL
;
7877 fra
.me
.REG
[3] = NIT_NULL
;
7880 /* syntax/typing.nit:1390 */
7881 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7882 /* syntax/typing.nit:1391 */
7883 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7884 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7885 if (UNTAG_Bool(REGB0
)) {
7887 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7888 if (UNTAG_Bool(REGB1
)) {
7889 REGB1
= TAG_Bool(0);
7892 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7896 if (UNTAG_Bool(REGB0
)) {
7899 /* syntax/typing.nit:1392 */
7900 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7901 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7902 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]);
7903 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7904 if (UNTAG_Bool(REGB0
)) {
7907 /* syntax/typing.nit:1393 */
7908 REGB0
= TAG_Bool(1);
7909 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7911 stack_frame_head
= fra
.me
.prev
;
7914 static const char LOCATE_syntax___typing___AAttrReassignExpr___after_typing
[] = "typing::AAttrReassignExpr::(typing::ANode::after_typing)";
7915 void syntax___typing___AAttrReassignExpr___after_typing(val_t p0
, val_t p1
){
7916 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7920 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7921 fra
.me
.file
= LOCATE_syntax___typing
;
7923 fra
.me
.meth
= LOCATE_syntax___typing___AAttrReassignExpr___after_typing
;
7924 fra
.me
.has_broke
= 0;
7925 fra
.me
.REG_size
= 4;
7926 fra
.me
.nitni_local_ref_head
= NULL
;
7927 fra
.me
.REG
[0] = NIT_NULL
;
7928 fra
.me
.REG
[1] = NIT_NULL
;
7929 fra
.me
.REG
[2] = NIT_NULL
;
7930 fra
.me
.REG
[3] = NIT_NULL
;
7933 /* syntax/typing.nit:1400 */
7934 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7935 /* syntax/typing.nit:1401 */
7936 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7937 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7938 if (UNTAG_Bool(REGB0
)) {
7940 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7941 if (UNTAG_Bool(REGB1
)) {
7942 REGB1
= TAG_Bool(0);
7945 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7949 if (UNTAG_Bool(REGB0
)) {
7952 /* syntax/typing.nit:1402 */
7953 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7954 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]);
7955 /* syntax/typing.nit:1403 */
7956 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7957 if (UNTAG_Bool(REGB0
)) {
7959 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7960 if (UNTAG_Bool(REGB1
)) {
7961 REGB1
= TAG_Bool(0);
7964 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7968 if (UNTAG_Bool(REGB0
)) {
7971 /* syntax/typing.nit:1404 */
7972 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7973 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7974 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]);
7975 /* syntax/typing.nit:1405 */
7976 REGB0
= TAG_Bool(1);
7977 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7979 stack_frame_head
= fra
.me
.prev
;
7982 static const char LOCATE_syntax___typing___AIssetAttrExpr___after_typing
[] = "typing::AIssetAttrExpr::(typing::ANode::after_typing)";
7983 void syntax___typing___AIssetAttrExpr___after_typing(val_t p0
, val_t p1
){
7984 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7988 static val_t once_value_2
; /* Once value */
7989 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7990 fra
.me
.file
= LOCATE_syntax___typing
;
7992 fra
.me
.meth
= LOCATE_syntax___typing___AIssetAttrExpr___after_typing
;
7993 fra
.me
.has_broke
= 0;
7994 fra
.me
.REG_size
= 3;
7995 fra
.me
.nitni_local_ref_head
= NULL
;
7996 fra
.me
.REG
[0] = NIT_NULL
;
7997 fra
.me
.REG
[1] = NIT_NULL
;
7998 fra
.me
.REG
[2] = NIT_NULL
;
8001 /* syntax/typing.nit:1412 */
8002 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
8003 /* syntax/typing.nit:1413 */
8004 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
8005 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
8006 if (UNTAG_Bool(REGB0
)) {
8008 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
8009 if (UNTAG_Bool(REGB1
)) {
8010 REGB1
= TAG_Bool(0);
8013 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
8017 if (UNTAG_Bool(REGB0
)) {
8020 /* syntax/typing.nit:1414 */
8021 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8022 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8023 if (UNTAG_Bool(REGB0
)) {
8024 /* syntax/typing.nit:1415 */
8025 if (!once_value_2
) {
8026 fra
.me
.REG
[2] = BOX_NativeString("Error: isset on a nullable attribute.");
8027 REGB0
= TAG_Int(37);
8028 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
8029 once_value_2
= fra
.me
.REG
[2];
8030 register_static_object(&once_value_2
);
8031 } else fra
.me
.REG
[2] = once_value_2
;
8032 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8033 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
8035 /* syntax/typing.nit:1417 */
8036 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8037 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
8038 /* syntax/typing.nit:1418 */
8039 REGB0
= TAG_Bool(1);
8040 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
8042 stack_frame_head
= fra
.me
.prev
;
8045 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature
[] = "typing::AAbsAbsSendExpr::(syntax_base::AAbsAbsSendExpr::prop_signature)";
8046 val_t
syntax___typing___AAbsAbsSendExpr___prop_signature(val_t p0
){
8047 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
8050 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8051 fra
.me
.file
= LOCATE_syntax___typing
;
8053 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature
;
8054 fra
.me
.has_broke
= 0;
8055 fra
.me
.REG_size
= 2;
8056 fra
.me
.nitni_local_ref_head
= NULL
;
8057 fra
.me
.REG
[0] = NIT_NULL
;
8058 fra
.me
.REG
[1] = NIT_NULL
;
8060 /* syntax/typing.nit:1423 */
8061 fra
.me
.REG
[1] = fra
.me
.REG
[0];
8062 /* syntax/typing.nit:1424 */
8063 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[1]);
8064 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
8065 if (UNTAG_Bool(REGB0
)) {
8067 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1424);
8071 stack_frame_head
= fra
.me
.prev
;
8072 return fra
.me
.REG
[1];
8074 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments
[] = "typing::AAbsAbsSendExpr::(syntax_base::AAbsAbsSendExpr::raw_arguments)";
8075 val_t
syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0
){
8076 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8080 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8081 fra
.me
.file
= LOCATE_syntax___typing
;
8083 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments
;
8084 fra
.me
.has_broke
= 0;
8085 fra
.me
.REG_size
= 4;
8086 fra
.me
.nitni_local_ref_head
= NULL
;
8087 fra
.me
.REG
[0] = NIT_NULL
;
8088 fra
.me
.REG
[1] = NIT_NULL
;
8089 fra
.me
.REG
[2] = NIT_NULL
;
8090 fra
.me
.REG
[3] = NIT_NULL
;
8092 /* syntax/typing.nit:1430 */
8093 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]);
8094 /* syntax/typing.nit:1431 */
8095 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8096 if (UNTAG_Bool(REGB0
)) {
8098 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8099 if (UNTAG_Bool(REGB1
)) {
8100 REGB1
= TAG_Bool(0);
8103 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
8107 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8108 if (UNTAG_Bool(REGB0
)) {
8109 /* syntax/typing.nit:1432 */
8110 fra
.me
.REG
[2] = fra
.me
.REG
[1];
8113 /* syntax/typing.nit:1434 */
8114 fra
.me
.REG
[3] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8115 fra
.me
.REG
[1] = fra
.me
.REG
[3];
8116 /* syntax/typing.nit:1435 */
8117 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8118 if (UNTAG_Bool(REGB0
)) {
8120 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8121 if (UNTAG_Bool(REGB1
)) {
8122 REGB1
= TAG_Bool(0);
8125 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
8129 if (UNTAG_Bool(REGB0
)) {
8130 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
8131 fra
.me
.REG
[1] = fra
.me
.REG
[3];
8133 /* syntax/typing.nit:1436 */
8134 ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
8135 /* syntax/typing.nit:1437 */
8136 fra
.me
.REG
[2] = fra
.me
.REG
[1];
8140 stack_frame_head
= fra
.me
.prev
;
8141 return fra
.me
.REG
[2];
8143 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments
[] = "typing::AAbsAbsSendExpr::compute_raw_arguments";
8144 val_t
syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0
){
8145 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
8148 static val_t once_value_1
; /* Once value */
8149 static val_t once_value_2
; /* Once value */
8150 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8151 fra
.me
.file
= LOCATE_syntax___typing
;
8153 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments
;
8154 fra
.me
.has_broke
= 0;
8155 fra
.me
.REG_size
= 3;
8156 fra
.me
.nitni_local_ref_head
= NULL
;
8157 fra
.me
.REG
[0] = NIT_NULL
;
8158 fra
.me
.REG
[1] = NIT_NULL
;
8159 fra
.me
.REG
[2] = NIT_NULL
;
8161 /* syntax/typing.nit:1445 */
8163 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8164 if (!once_value_1
) {
8165 fra
.me
.REG
[2] = BOX_NativeString("");
8167 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
8168 once_value_1
= fra
.me
.REG
[2];
8169 register_static_object(&once_value_1
);
8170 } else fra
.me
.REG
[2] = once_value_1
;
8171 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8172 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8173 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8174 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8175 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8176 if (!once_value_2
) {
8177 fra
.me
.REG
[2] = BOX_NativeString(" no compute_raw_arguments");
8178 REGB0
= TAG_Int(25);
8179 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
8180 once_value_2
= fra
.me
.REG
[2];
8181 register_static_object(&once_value_2
);
8182 } else fra
.me
.REG
[2] = once_value_2
;
8183 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8184 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8185 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8186 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
8187 /* syntax/typing.nit:1446 */
8188 fra
.me
.REG
[1] = NIT_NULL
;
8191 stack_frame_head
= fra
.me
.prev
;
8192 return fra
.me
.REG
[1];
8194 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature
[] = "typing::AAbsAbsSendExpr::process_signature";
8195 val_t
syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8196 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8210 static val_t once_value_1
; /* Once value */
8211 static val_t once_value_2
; /* Once value */
8212 static val_t once_value_3
; /* Once value */
8213 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8214 fra
.me
.file
= LOCATE_syntax___typing
;
8216 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature
;
8217 fra
.me
.has_broke
= 0;
8218 fra
.me
.REG_size
= 7;
8219 fra
.me
.nitni_local_ref_head
= NULL
;
8220 fra
.me
.REG
[0] = NIT_NULL
;
8221 fra
.me
.REG
[1] = NIT_NULL
;
8222 fra
.me
.REG
[2] = NIT_NULL
;
8223 fra
.me
.REG
[3] = NIT_NULL
;
8224 fra
.me
.REG
[4] = NIT_NULL
;
8225 fra
.me
.REG
[5] = NIT_NULL
;
8226 fra
.me
.REG
[6] = NIT_NULL
;
8232 /* syntax/typing.nit:1452 */
8233 REGB0
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8234 /* syntax/typing.nit:1453 */
8235 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8236 /* syntax/typing.nit:1455 */
8237 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8238 if (UNTAG_Bool(REGB2
)) {
8240 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8241 if (UNTAG_Bool(REGB3
)) {
8242 REGB3
= TAG_Bool(0);
8245 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8249 if (UNTAG_Bool(REGB2
)) {
8252 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8253 if (UNTAG_Bool(REGB3
)) {
8254 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1455);
8256 /* ../lib/standard/collection/array.nit:24 */
8257 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8258 if (UNTAG_Bool(REGB3
)) {
8260 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8262 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8263 /* syntax/typing.nit:1455 */
8266 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8267 if (UNTAG_Bool(REGB3
)) {
8269 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8271 /* ../lib/standard/kernel.nit:244 */
8272 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8273 /* syntax/typing.nit:1456 */
8274 if (UNTAG_Bool(REGB3
)) {
8275 REGB3
= TAG_Bool(1);
8277 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
8278 if (UNTAG_Bool(REGB4
)) {
8280 /* ../lib/standard/kernel.nit:237 */
8281 REGB5
= TAG_Bool((REGB1
)==(REGB2
));
8282 /* syntax/typing.nit:1456 */
8285 REGB4
= TAG_Bool(!UNTAG_Bool(REGB4
));
8286 if (UNTAG_Bool(REGB4
)) {
8288 /* ../lib/standard/kernel.nit:246 */
8289 REGB4
= TAG_Int(-UNTAG_Int(REGB4
));
8290 /* syntax/typing.nit:1456 */
8291 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB4
));
8292 if (UNTAG_Bool(REGB5
)) {
8294 /* ../lib/standard/kernel.nit:237 */
8295 REGB4
= TAG_Bool((REGB0
)==(REGB4
));
8296 /* syntax/typing.nit:1456 */
8300 REGB4
= TAG_Bool(0);
8305 if (UNTAG_Bool(REGB3
)) {
8306 /* syntax/typing.nit:1457 */
8308 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3
);
8309 if (!once_value_1
) {
8310 fra
.me
.REG
[6] = BOX_NativeString("Error: arity mismatch; prototype is '");
8311 REGB3
= TAG_Int(37);
8312 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB3
);
8313 once_value_1
= fra
.me
.REG
[6];
8314 register_static_object(&once_value_1
);
8315 } else fra
.me
.REG
[6] = once_value_1
;
8316 fra
.me
.REG
[6] = fra
.me
.REG
[6];
8317 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
8318 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8319 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8320 if (!once_value_2
) {
8321 fra
.me
.REG
[3] = BOX_NativeString("");
8323 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB3
);
8324 once_value_2
= fra
.me
.REG
[3];
8325 register_static_object(&once_value_2
);
8326 } else fra
.me
.REG
[3] = once_value_2
;
8327 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8328 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8329 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8330 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8331 if (!once_value_3
) {
8332 fra
.me
.REG
[3] = BOX_NativeString("'.");
8334 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB3
);
8335 once_value_3
= fra
.me
.REG
[3];
8336 register_static_object(&once_value_3
);
8337 } else fra
.me
.REG
[3] = once_value_3
;
8338 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8339 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8340 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8341 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8342 /* syntax/typing.nit:1458 */
8343 REGB3
= TAG_Bool(0);
8346 /* syntax/typing.nit:1460 */
8348 /* syntax/typing.nit:1461 */
8350 /* ../lib/standard/kernel.nit:399 */
8352 /* ../lib/standard/kernel.nit:404 */
8354 REGB7
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
8355 if (UNTAG_Bool(REGB7
)) {
8357 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8359 /* ../lib/standard/kernel.nit:242 */
8360 REGB7
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
8361 /* ../lib/standard/kernel.nit:404 */
8362 if (UNTAG_Bool(REGB7
)) {
8363 /* syntax/typing.nit:1461 */
8365 /* syntax/typing.nit:1463 */
8366 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB7
);
8367 /* syntax/typing.nit:1464 */
8368 REGB8
= TAG_Bool(IS_EQUAL_OO(REGB7
,REGB0
));
8369 if (UNTAG_Bool(REGB8
)) {
8371 /* ../lib/standard/kernel.nit:237 */
8372 REGB7
= TAG_Bool((REGB7
)==(REGB0
));
8373 /* syntax/typing.nit:1464 */
8376 if (UNTAG_Bool(REGB8
)) {
8377 /* syntax/typing.nit:1465 */
8379 /* ../lib/standard/kernel.nit:247 */
8380 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
8381 /* ../lib/standard/kernel.nit:393 */
8383 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8384 if (UNTAG_Bool(REGB9
)) {
8386 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8388 /* ../lib/standard/kernel.nit:241 */
8389 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<=UNTAG_Int(REGB7
));
8390 /* ../lib/standard/kernel.nit:393 */
8391 if (UNTAG_Bool(REGB9
)) {
8392 /* syntax/typing.nit:1466 */
8393 REGB9
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8394 if (UNTAG_Bool(REGB9
)) {
8395 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1466);
8397 /* ../lib/standard/collection/array.nit:279 */
8398 fra
.me
.REG
[0] = fra
.me
.REG
[4];
8400 /* ../lib/standard/collection/array.nit:281 */
8401 REGB10
= TAG_Int(0);
8402 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
8403 if (UNTAG_Bool(REGB11
)) {
8405 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8407 /* ../lib/standard/kernel.nit:243 */
8408 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)>=UNTAG_Int(REGB10
));
8409 /* ../lib/standard/collection/array.nit:281 */
8410 if (UNTAG_Bool(REGB10
)) {
8411 REGB10
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
8412 if (UNTAG_Bool(REGB10
)) {
8414 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
8416 REGB10
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
8417 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
8418 if (UNTAG_Bool(REGB11
)) {
8420 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8422 /* ../lib/standard/kernel.nit:242 */
8423 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)<UNTAG_Int(REGB10
));
8425 /* ../lib/standard/collection/array.nit:281 */
8426 REGB11
= TAG_Bool(0);
8429 if (UNTAG_Bool(REGB10
)) {
8431 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
8433 /* ../lib/standard/collection/array.nit:282 */
8434 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
8435 REGB10
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
8436 if (UNTAG_Bool(REGB10
)) {
8437 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
8439 /* ../lib/standard/collection/array.nit:725 */
8440 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB9
)];
8441 /* ../lib/standard/collection/array.nit:282 */
8444 /* syntax/typing.nit:1467 */
8445 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8446 /* syntax/typing.nit:1468 */
8448 /* ../lib/standard/kernel.nit:245 */
8449 REGB9
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB9
));
8450 /* syntax/typing.nit:1468 */
8452 /* ../lib/standard/kernel.nit:395 */
8454 /* ../lib/standard/kernel.nit:245 */
8455 REGB9
= TAG_Int(UNTAG_Int(REGB8
)+UNTAG_Int(REGB9
));
8456 /* ../lib/standard/kernel.nit:395 */
8459 /* ../lib/standard/kernel.nit:393 */
8465 /* syntax/typing.nit:1471 */
8466 REGB8
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8467 if (UNTAG_Bool(REGB8
)) {
8468 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1471);
8470 /* ../lib/standard/collection/array.nit:279 */
8471 fra
.me
.REG
[3] = fra
.me
.REG
[4];
8473 /* ../lib/standard/collection/array.nit:281 */
8475 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8476 if (UNTAG_Bool(REGB9
)) {
8478 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8480 /* ../lib/standard/kernel.nit:243 */
8481 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB7
));
8482 /* ../lib/standard/collection/array.nit:281 */
8483 if (UNTAG_Bool(REGB7
)) {
8484 REGB7
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
8485 if (UNTAG_Bool(REGB7
)) {
8487 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
8489 REGB7
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
8490 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8491 if (UNTAG_Bool(REGB9
)) {
8493 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8495 /* ../lib/standard/kernel.nit:242 */
8496 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB7
));
8498 /* ../lib/standard/collection/array.nit:281 */
8499 REGB9
= TAG_Bool(0);
8502 if (UNTAG_Bool(REGB7
)) {
8504 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
8506 /* ../lib/standard/collection/array.nit:282 */
8507 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
8508 REGB7
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8509 if (UNTAG_Bool(REGB7
)) {
8510 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
8512 /* ../lib/standard/collection/array.nit:725 */
8513 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB8
)];
8514 /* ../lib/standard/collection/array.nit:282 */
8517 /* syntax/typing.nit:1471 */
8518 fra
.me
.REG
[0] = fra
.me
.REG
[3];
8519 /* syntax/typing.nit:1472 */
8520 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8521 /* syntax/typing.nit:1473 */
8523 /* ../lib/standard/kernel.nit:245 */
8524 REGB8
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB8
));
8525 /* syntax/typing.nit:1473 */
8528 /* ../lib/standard/kernel.nit:406 */
8530 /* ../lib/standard/kernel.nit:245 */
8531 REGB8
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB8
));
8532 /* ../lib/standard/kernel.nit:406 */
8535 /* ../lib/standard/kernel.nit:404 */
8540 /* syntax/typing.nit:1476 */
8541 REGB4
= TAG_Bool(1);
8545 stack_frame_head
= fra
.me
.prev
;
8548 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures
[] = "typing::AAbsAbsSendExpr::process_closures";
8549 val_t
syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8550 struct {struct stack_frame_t me
; val_t MORE_REG
[16];} fra
;
8558 static val_t once_value_2
; /* Once value */
8559 static val_t once_value_3
; /* Once value */
8560 static val_t once_value_4
; /* Once value */
8561 static val_t once_value_5
; /* Once value */
8562 static val_t once_value_6
; /* Once value */
8563 static val_t once_value_7
; /* Once value */
8564 static val_t once_value_8
; /* Once value */
8565 static val_t once_value_11
; /* Once value */
8566 static val_t once_value_12
; /* Once value */
8567 static val_t once_value_13
; /* Once value */
8568 static val_t once_value_14
; /* Once value */
8569 static val_t once_value_15
; /* Once value */
8570 static val_t once_value_16
; /* Once value */
8571 static val_t once_value_18
; /* Once value */
8572 static val_t once_value_19
; /* Once value */
8573 static val_t once_value_20
; /* Once value */
8574 static val_t once_value_21
; /* Once value */
8575 static val_t once_value_22
; /* Once value */
8576 static val_t once_value_24
; /* Once value */
8577 static val_t once_value_25
; /* Once value */
8578 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8579 fra
.me
.file
= LOCATE_syntax___typing
;
8581 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures
;
8582 fra
.me
.has_broke
= 0;
8583 fra
.me
.REG_size
= 17;
8584 fra
.me
.nitni_local_ref_head
= NULL
;
8585 fra
.me
.REG
[0] = NIT_NULL
;
8586 fra
.me
.REG
[1] = NIT_NULL
;
8587 fra
.me
.REG
[2] = NIT_NULL
;
8588 fra
.me
.REG
[3] = NIT_NULL
;
8589 fra
.me
.REG
[4] = NIT_NULL
;
8590 fra
.me
.REG
[5] = NIT_NULL
;
8591 fra
.me
.REG
[6] = NIT_NULL
;
8592 fra
.me
.REG
[7] = NIT_NULL
;
8593 fra
.me
.REG
[8] = NIT_NULL
;
8594 fra
.me
.REG
[9] = NIT_NULL
;
8595 fra
.me
.REG
[10] = NIT_NULL
;
8596 fra
.me
.REG
[11] = NIT_NULL
;
8597 fra
.me
.REG
[12] = NIT_NULL
;
8598 fra
.me
.REG
[13] = NIT_NULL
;
8599 fra
.me
.REG
[14] = NIT_NULL
;
8600 fra
.me
.REG
[15] = NIT_NULL
;
8601 fra
.me
.REG
[16] = NIT_NULL
;
8607 /* syntax/typing.nit:1482 */
8608 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8609 /* syntax/typing.nit:1483 */
8610 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8611 /* syntax/typing.nit:1484 */
8613 /* ../lib/standard/collection/array.nit:267 */
8614 fra
.me
.REG
[7] = fra
.me
.REG
[6];
8615 /* ../lib/standard/collection/array.nit:270 */
8617 /* ../lib/standard/collection/array.nit:271 */
8618 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8619 if (UNTAG_Bool(REGB2
)) {
8621 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
8623 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8624 /* ../lib/standard/collection/array.nit:272 */
8625 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8626 /* ../lib/standard/collection/array.nit:273 */
8628 /* ../lib/standard/collection/array.nit:24 */
8629 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8630 if (UNTAG_Bool(REGB2
)) {
8632 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8634 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8635 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8636 if (UNTAG_Bool(REGB3
)) {
8638 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8640 /* ../lib/standard/kernel.nit:242 */
8641 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
8642 /* ../lib/standard/collection/array.nit:273 */
8643 if (UNTAG_Bool(REGB2
)) {
8644 /* ../lib/standard/collection/array.nit:274 */
8645 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8646 if (UNTAG_Bool(REGB2
)) {
8647 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
8649 /* ../lib/standard/collection/array.nit:725 */
8650 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
8651 /* syntax/typing.nit:1486 */
8652 REGB2
= CALL_metamodel___static_type___MMClosure___is_optional(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8653 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8654 if (UNTAG_Bool(REGB2
)) {
8656 /* ../lib/standard/kernel.nit:245 */
8657 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
8658 /* syntax/typing.nit:1486 */
8661 /* ../lib/standard/collection/array.nit:275 */
8663 /* ../lib/standard/kernel.nit:245 */
8664 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
8665 /* ../lib/standard/collection/array.nit:275 */
8668 /* ../lib/standard/collection/array.nit:273 */
8673 /* syntax/typing.nit:1488 */
8675 /* syntax/typing.nit:1489 */
8676 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8677 if (UNTAG_Bool(REGB2
)) {
8679 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8680 if (UNTAG_Bool(REGB3
)) {
8681 REGB3
= TAG_Bool(0);
8684 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8688 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8689 if (UNTAG_Bool(REGB2
)) {
8690 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8691 if (UNTAG_Bool(REGB2
)) {
8692 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1489);
8694 /* ../lib/standard/collection/array.nit:24 */
8695 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8696 if (UNTAG_Bool(REGB2
)) {
8698 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8700 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8701 /* syntax/typing.nit:1489 */
8704 /* ../lib/standard/collection/array.nit:24 */
8705 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8706 if (UNTAG_Bool(REGB2
)) {
8708 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8710 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8711 /* syntax/typing.nit:1490 */
8713 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8714 if (UNTAG_Bool(REGB4
)) {
8716 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8718 /* ../lib/standard/kernel.nit:244 */
8719 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
8720 /* syntax/typing.nit:1490 */
8721 if (UNTAG_Bool(REGB3
)) {
8722 /* syntax/typing.nit:1491 */
8724 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
8725 if (UNTAG_Bool(REGB2
)) {
8727 /* ../lib/standard/kernel.nit:237 */
8728 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
8729 /* syntax/typing.nit:1491 */
8732 if (UNTAG_Bool(REGB2
)) {
8734 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
8735 if (UNTAG_Bool(REGB3
)) {
8737 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8739 /* ../lib/standard/kernel.nit:244 */
8740 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB2
));
8742 /* syntax/typing.nit:1491 */
8743 REGB3
= TAG_Bool(0);
8746 if (UNTAG_Bool(REGB2
)) {
8747 /* syntax/typing.nit:1492 */
8749 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8750 if (!once_value_2
) {
8751 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8753 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB2
);
8754 once_value_2
= fra
.me
.REG
[7];
8755 register_static_object(&once_value_2
);
8756 } else fra
.me
.REG
[7] = once_value_2
;
8757 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8759 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8760 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8761 if (!once_value_3
) {
8762 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8763 REGB2
= TAG_Int(10);
8764 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB2
);
8765 once_value_3
= fra
.me
.REG
[7];
8766 register_static_object(&once_value_3
);
8767 } else fra
.me
.REG
[7] = once_value_3
;
8768 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8770 /* ../lib/standard/collection/array.nit:24 */
8771 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8772 if (UNTAG_Bool(REGB2
)) {
8774 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8776 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8777 /* syntax/typing.nit:1492 */
8778 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8779 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8780 if (!once_value_4
) {
8781 fra
.me
.REG
[7] = BOX_NativeString(" blocks.");
8783 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB2
);
8784 once_value_4
= fra
.me
.REG
[7];
8785 register_static_object(&once_value_4
);
8786 } else fra
.me
.REG
[7] = once_value_4
;
8787 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8789 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8790 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8792 /* ../lib/standard/collection/array.nit:24 */
8793 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8794 if (UNTAG_Bool(REGB2
)) {
8796 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8798 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8799 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8800 if (UNTAG_Bool(REGB3
)) {
8802 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8804 /* ../lib/standard/kernel.nit:244 */
8805 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8806 /* syntax/typing.nit:1493 */
8807 if (UNTAG_Bool(REGB2
)) {
8808 REGB2
= TAG_Bool(1);
8810 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8811 if (UNTAG_Bool(REGB3
)) {
8813 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8815 /* ../lib/standard/kernel.nit:242 */
8816 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
8817 /* syntax/typing.nit:1493 */
8820 if (UNTAG_Bool(REGB2
)) {
8821 /* syntax/typing.nit:1494 */
8823 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8824 if (!once_value_5
) {
8825 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8827 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB2
);
8828 once_value_5
= fra
.me
.REG
[7];
8829 register_static_object(&once_value_5
);
8830 } else fra
.me
.REG
[7] = once_value_5
;
8831 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8832 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8833 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8834 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8835 if (!once_value_6
) {
8836 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8837 REGB2
= TAG_Int(10);
8838 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB2
);
8839 once_value_6
= fra
.me
.REG
[7];
8840 register_static_object(&once_value_6
);
8841 } else fra
.me
.REG
[7] = once_value_6
;
8842 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8843 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8844 /* ../lib/standard/collection/array.nit:24 */
8845 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8846 if (UNTAG_Bool(REGB2
)) {
8848 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8850 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8851 /* syntax/typing.nit:1494 */
8852 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8853 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8854 if (!once_value_7
) {
8855 fra
.me
.REG
[7] = BOX_NativeString(" blocks, ");
8857 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB2
);
8858 once_value_7
= fra
.me
.REG
[7];
8859 register_static_object(&once_value_7
);
8860 } else fra
.me
.REG
[7] = once_value_7
;
8861 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8863 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8864 if (UNTAG_Bool(REGB2
)) {
8865 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1494);
8867 /* ../lib/standard/collection/array.nit:24 */
8868 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8869 if (UNTAG_Bool(REGB2
)) {
8871 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8873 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8874 /* syntax/typing.nit:1494 */
8875 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8876 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8877 if (!once_value_8
) {
8878 fra
.me
.REG
[7] = BOX_NativeString(" found.");
8880 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB2
);
8881 once_value_8
= fra
.me
.REG
[7];
8882 register_static_object(&once_value_8
);
8883 } else fra
.me
.REG
[7] = once_value_8
;
8884 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8885 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8886 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8887 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8889 /* syntax/typing.nit:1497 */
8890 fra
.me
.REG
[8] = NIT_NULL
;
8891 /* syntax/typing.nit:1498 */
8892 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8893 if (UNTAG_Bool(REGB2
)) {
8895 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8896 if (UNTAG_Bool(REGB0
)) {
8897 REGB0
= TAG_Bool(0);
8900 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8904 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8905 if (UNTAG_Bool(REGB2
)) {
8906 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
8907 fra
.me
.REG
[8] = fra
.me
.REG
[7];
8909 /* syntax/typing.nit:1501 */
8911 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8912 if (UNTAG_Bool(REGB0
)) {
8914 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8916 /* ../lib/standard/kernel.nit:244 */
8917 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8918 /* syntax/typing.nit:1501 */
8919 if (UNTAG_Bool(REGB2
)) {
8921 /* ../lib/standard/kernel.nit:247 */
8922 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
8923 /* syntax/typing.nit:1501 */
8924 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8925 if (UNTAG_Bool(REGB0
)) {
8926 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1501);
8928 /* ../lib/standard/collection/array.nit:279 */
8929 fra
.me
.REG
[7] = fra
.me
.REG
[4];
8930 /* ../lib/standard/collection/array.nit:281 */
8932 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8933 if (UNTAG_Bool(REGB3
)) {
8935 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8937 /* ../lib/standard/kernel.nit:243 */
8938 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
8939 /* ../lib/standard/collection/array.nit:281 */
8940 if (UNTAG_Bool(REGB0
)) {
8941 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8942 if (UNTAG_Bool(REGB0
)) {
8944 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
8946 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8947 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8948 if (UNTAG_Bool(REGB3
)) {
8950 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8952 /* ../lib/standard/kernel.nit:242 */
8953 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8955 /* ../lib/standard/collection/array.nit:281 */
8956 REGB3
= TAG_Bool(0);
8959 if (UNTAG_Bool(REGB0
)) {
8961 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
8963 /* ../lib/standard/collection/array.nit:282 */
8964 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8965 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8966 if (UNTAG_Bool(REGB0
)) {
8967 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
8969 /* ../lib/standard/collection/array.nit:725 */
8970 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB2
)];
8971 /* ../lib/standard/collection/array.nit:282 */
8974 /* syntax/typing.nit:1501 */
8975 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8976 if (UNTAG_Bool(REGB2
)) {
8977 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1501);
8979 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8981 fra
.me
.REG
[7] = NIT_NULL
;
8983 /* syntax/typing.nit:1504 */
8985 /* ../lib/standard/kernel.nit:399 */
8987 /* ../lib/standard/kernel.nit:404 */
8989 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8990 if (UNTAG_Bool(REGB3
)) {
8992 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8994 /* ../lib/standard/kernel.nit:242 */
8995 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8996 /* ../lib/standard/kernel.nit:404 */
8997 if (UNTAG_Bool(REGB3
)) {
8998 /* syntax/typing.nit:1504 */
9000 /* syntax/typing.nit:1505 */
9001 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9002 if (UNTAG_Bool(REGB4
)) {
9003 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1505);
9005 /* ../lib/standard/collection/array.nit:279 */
9006 fra
.me
.REG
[9] = fra
.me
.REG
[4];
9007 /* ../lib/standard/collection/array.nit:281 */
9009 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
9010 if (UNTAG_Bool(REGB5
)) {
9012 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9014 /* ../lib/standard/kernel.nit:243 */
9015 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
9016 /* ../lib/standard/collection/array.nit:281 */
9017 if (UNTAG_Bool(REGB4
)) {
9018 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
9019 if (UNTAG_Bool(REGB4
)) {
9021 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
9023 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
9024 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
9025 if (UNTAG_Bool(REGB5
)) {
9027 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9029 /* ../lib/standard/kernel.nit:242 */
9030 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
9032 /* ../lib/standard/collection/array.nit:281 */
9033 REGB5
= TAG_Bool(0);
9036 if (UNTAG_Bool(REGB4
)) {
9038 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
9040 /* ../lib/standard/collection/array.nit:282 */
9041 fra
.me
.REG
[9] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
9042 REGB4
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
9043 if (UNTAG_Bool(REGB4
)) {
9044 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
9046 /* ../lib/standard/collection/array.nit:725 */
9047 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB3
)];
9048 /* ../lib/standard/collection/array.nit:282 */
9051 /* syntax/typing.nit:1506 */
9052 fra
.me
.REG
[10] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9053 fra
.me
.REG
[10] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
9054 /* syntax/typing.nit:1507 */
9055 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMSignature___closure_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[10]);
9056 /* syntax/typing.nit:1508 */
9057 REGB3
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
9058 if (UNTAG_Bool(REGB3
)) {
9060 REGB4
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
9061 if (UNTAG_Bool(REGB4
)) {
9062 REGB4
= TAG_Bool(0);
9065 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[11])(fra
.me
.REG
[11], NIT_NULL
);
9069 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
9070 if (UNTAG_Bool(REGB3
)) {
9071 /* syntax/typing.nit:1509 */
9072 fra
.me
.REG
[11] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[9], fra
.me
.REG
[11], fra
.me
.REG
[8]);
9073 /* syntax/typing.nit:1510 */
9074 fra
.me
.REG
[12] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9075 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[11], fra
.me
.REG
[7]);
9076 /* syntax/typing.nit:1511 */
9077 CALL_syntax___typing___AClosureDef___accept_typing2(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[1], fra
.me
.REG
[11]);
9078 /* syntax/typing.nit:1512 */
9079 fra
.me
.REG
[11] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9080 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
9082 /* ../lib/standard/collection/array.nit:24 */
9083 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
9084 if (UNTAG_Bool(REGB3
)) {
9086 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9088 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
9089 /* syntax/typing.nit:1513 */
9091 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB3
,REGB4
));
9092 if (UNTAG_Bool(REGB5
)) {
9094 /* ../lib/standard/kernel.nit:237 */
9095 REGB4
= TAG_Bool((REGB3
)==(REGB4
));
9096 /* syntax/typing.nit:1513 */
9099 if (UNTAG_Bool(REGB5
)) {
9100 /* syntax/typing.nit:1514 */
9101 fra
.me
.REG
[11] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9103 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
9104 if (!once_value_11
) {
9105 fra
.me
.REG
[13] = BOX_NativeString("Error: no closure named '!");
9106 REGB5
= TAG_Int(26);
9107 fra
.me
.REG
[13] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[13])(fra
.me
.REG
[13], REGB5
);
9108 once_value_11
= fra
.me
.REG
[13];
9109 register_static_object(&once_value_11
);
9110 } else fra
.me
.REG
[13] = once_value_11
;
9111 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9112 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9113 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
9114 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9115 if (!once_value_12
) {
9116 fra
.me
.REG
[13] = BOX_NativeString("' in ");
9118 fra
.me
.REG
[13] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[13])(fra
.me
.REG
[13], REGB5
);
9119 once_value_12
= fra
.me
.REG
[13];
9120 register_static_object(&once_value_12
);
9121 } else fra
.me
.REG
[13] = once_value_12
;
9122 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9123 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9124 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9125 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9126 if (!once_value_13
) {
9127 fra
.me
.REG
[13] = BOX_NativeString("; only closure is !");
9128 REGB5
= TAG_Int(19);
9129 fra
.me
.REG
[13] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[13])(fra
.me
.REG
[13], REGB5
);
9130 once_value_13
= fra
.me
.REG
[13];
9131 register_static_object(&once_value_13
);
9132 } else fra
.me
.REG
[13] = once_value_13
;
9133 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9134 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9135 fra
.me
.REG
[13] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9136 REGB5
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
9137 if (UNTAG_Bool(REGB5
)) {
9138 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1514);
9140 fra
.me
.REG
[13] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9141 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9142 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9143 if (!once_value_14
) {
9144 fra
.me
.REG
[13] = BOX_NativeString(".");
9146 fra
.me
.REG
[13] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[13])(fra
.me
.REG
[13], REGB5
);
9147 once_value_14
= fra
.me
.REG
[13];
9148 register_static_object(&once_value_14
);
9149 } else fra
.me
.REG
[13] = once_value_14
;
9150 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9152 fra
.me
.REG
[12] = CALL_standard___string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
9153 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[11], fra
.me
.REG
[12]);
9155 /* syntax/typing.nit:1516 */
9156 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___init();
9157 /* ../lib/standard/collection/array.nit:267 */
9158 fra
.me
.REG
[11] = fra
.me
.REG
[6];
9159 /* ../lib/standard/collection/array.nit:270 */
9161 /* ../lib/standard/collection/array.nit:271 */
9162 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
9163 if (UNTAG_Bool(REGB4
)) {
9165 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
9167 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
9168 /* ../lib/standard/collection/array.nit:272 */
9169 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[11]);
9170 /* ../lib/standard/collection/array.nit:273 */
9172 /* ../lib/standard/collection/array.nit:24 */
9173 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
9174 if (UNTAG_Bool(REGB4
)) {
9176 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9178 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
9179 REGB3
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5
), VTID_standard___kernel___Comparable___OTHER(REGB5
))) /*cast OTHER*/;
9180 if (UNTAG_Bool(REGB3
)) {
9182 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9184 /* ../lib/standard/kernel.nit:242 */
9185 REGB4
= TAG_Bool(UNTAG_Int(REGB5
)<UNTAG_Int(REGB4
));
9186 /* ../lib/standard/collection/array.nit:273 */
9187 if (UNTAG_Bool(REGB4
)) {
9188 /* ../lib/standard/collection/array.nit:274 */
9189 REGB4
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
9190 if (UNTAG_Bool(REGB4
)) {
9191 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
9193 /* ../lib/standard/collection/array.nit:725 */
9194 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB5
)];
9195 /* syntax/typing.nit:1518 */
9197 fra
.me
.REG
[15] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4
);
9198 if (!once_value_15
) {
9199 fra
.me
.REG
[16] = BOX_NativeString("!");
9201 fra
.me
.REG
[16] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[16])(fra
.me
.REG
[16], REGB4
);
9202 once_value_15
= fra
.me
.REG
[16];
9203 register_static_object(&once_value_15
);
9204 } else fra
.me
.REG
[16] = once_value_15
;
9205 fra
.me
.REG
[16] = fra
.me
.REG
[16];
9206 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[16]);
9207 fra
.me
.REG
[14] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
9208 fra
.me
.REG
[14] = CALL_standard___string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
9209 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
9210 if (!once_value_16
) {
9211 fra
.me
.REG
[14] = BOX_NativeString("");
9213 fra
.me
.REG
[14] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[14])(fra
.me
.REG
[14], REGB4
);
9214 once_value_16
= fra
.me
.REG
[14];
9215 register_static_object(&once_value_16
);
9216 } else fra
.me
.REG
[14] = once_value_16
;
9217 fra
.me
.REG
[14] = fra
.me
.REG
[14];
9218 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
9219 fra
.me
.REG
[15] = CALL_standard___string___Object___to_s(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
9220 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[15]);
9221 /* ../lib/standard/collection/array.nit:275 */
9223 /* ../lib/standard/kernel.nit:245 */
9224 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
9225 /* ../lib/standard/collection/array.nit:275 */
9228 /* ../lib/standard/collection/array.nit:273 */
9233 /* syntax/typing.nit:1520 */
9234 fra
.me
.REG
[9] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9236 fra
.me
.REG
[13] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
9237 if (!once_value_18
) {
9238 fra
.me
.REG
[11] = BOX_NativeString("Error: no closure named '!");
9239 REGB5
= TAG_Int(26);
9240 fra
.me
.REG
[11] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[11])(fra
.me
.REG
[11], REGB5
);
9241 once_value_18
= fra
.me
.REG
[11];
9242 register_static_object(&once_value_18
);
9243 } else fra
.me
.REG
[11] = once_value_18
;
9244 fra
.me
.REG
[11] = fra
.me
.REG
[11];
9245 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[11]);
9246 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
9247 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9248 if (!once_value_19
) {
9249 fra
.me
.REG
[10] = BOX_NativeString("' in ");
9251 fra
.me
.REG
[10] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[10])(fra
.me
.REG
[10], REGB5
);
9252 once_value_19
= fra
.me
.REG
[10];
9253 register_static_object(&once_value_19
);
9254 } else fra
.me
.REG
[10] = once_value_19
;
9255 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9257 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9258 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9259 if (!once_value_20
) {
9260 fra
.me
.REG
[10] = BOX_NativeString("; only closures are ");
9261 REGB5
= TAG_Int(20);
9262 fra
.me
.REG
[10] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[10])(fra
.me
.REG
[10], REGB5
);
9263 once_value_20
= fra
.me
.REG
[10];
9264 register_static_object(&once_value_20
);
9265 } else fra
.me
.REG
[10] = once_value_20
;
9266 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9267 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9268 if (!once_value_21
) {
9269 fra
.me
.REG
[10] = BOX_NativeString(",");
9271 fra
.me
.REG
[10] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[10])(fra
.me
.REG
[10], REGB5
);
9272 once_value_21
= fra
.me
.REG
[10];
9273 register_static_object(&once_value_21
);
9274 } else fra
.me
.REG
[10] = once_value_21
;
9275 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9276 fra
.me
.REG
[10] = CALL_standard___string___Collection___join(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[10]);
9277 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9278 if (!once_value_22
) {
9279 fra
.me
.REG
[10] = BOX_NativeString(".");
9281 fra
.me
.REG
[10] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[10])(fra
.me
.REG
[10], REGB5
);
9282 once_value_22
= fra
.me
.REG
[10];
9283 register_static_object(&once_value_22
);
9284 } else fra
.me
.REG
[10] = once_value_22
;
9285 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9286 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9287 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9288 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[13]);
9291 /* ../lib/standard/kernel.nit:406 */
9293 /* ../lib/standard/kernel.nit:245 */
9294 REGB5
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB5
));
9295 /* ../lib/standard/kernel.nit:406 */
9298 /* ../lib/standard/kernel.nit:404 */
9303 /* syntax/typing.nit:1525 */
9304 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
9305 if (UNTAG_Bool(REGB2
)) {
9307 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
9308 if (UNTAG_Bool(REGB0
)) {
9309 REGB0
= TAG_Bool(0);
9312 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
9316 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
9317 if (UNTAG_Bool(REGB2
)) {
9318 /* syntax/typing.nit:1526 */
9319 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]);
9320 fra
.me
.REG
[5] = fra
.me
.REG
[8];
9325 /* syntax/typing.nit:1529 */
9327 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
9328 if (UNTAG_Bool(REGB0
)) {
9330 /* ../lib/standard/kernel.nit:237 */
9331 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
9332 /* syntax/typing.nit:1529 */
9335 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9336 if (UNTAG_Bool(REGB0
)) {
9337 /* syntax/typing.nit:1530 */
9339 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9340 if (!once_value_24
) {
9341 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
9343 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
9344 once_value_24
= fra
.me
.REG
[6];
9345 register_static_object(&once_value_24
);
9346 } else fra
.me
.REG
[6] = once_value_24
;
9347 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9348 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
9349 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9350 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9351 if (!once_value_25
) {
9352 fra
.me
.REG
[3] = BOX_NativeString(" does not require blocks.");
9353 REGB0
= TAG_Int(25);
9354 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
9355 once_value_25
= fra
.me
.REG
[3];
9356 register_static_object(&once_value_25
);
9357 } else fra
.me
.REG
[3] = once_value_25
;
9358 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9359 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9360 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9361 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
9364 /* syntax/typing.nit:1532 */
9367 stack_frame_head
= fra
.me
.prev
;
9368 return fra
.me
.REG
[5];
9370 static const char LOCATE_syntax___typing___AAbsSendExpr___do_typing
[] = "typing::AAbsSendExpr::do_typing";
9371 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
){
9372 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
9377 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9378 fra
.me
.file
= LOCATE_syntax___typing
;
9380 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___do_typing
;
9381 fra
.me
.has_broke
= 0;
9382 fra
.me
.REG_size
= 7;
9383 fra
.me
.nitni_local_ref_head
= NULL
;
9384 fra
.me
.REG
[0] = NIT_NULL
;
9385 fra
.me
.REG
[1] = NIT_NULL
;
9386 fra
.me
.REG
[2] = NIT_NULL
;
9387 fra
.me
.REG
[3] = NIT_NULL
;
9388 fra
.me
.REG
[4] = NIT_NULL
;
9389 fra
.me
.REG
[5] = NIT_NULL
;
9390 fra
.me
.REG
[6] = NIT_NULL
;
9399 /* syntax/typing.nit:1540 */
9400 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]);
9401 /* syntax/typing.nit:1541 */
9402 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9403 if (UNTAG_Bool(REGB0
)) {
9405 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9406 if (UNTAG_Bool(REGB2
)) {
9407 REGB2
= TAG_Bool(0);
9410 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9414 if (UNTAG_Bool(REGB0
)) {
9417 /* syntax/typing.nit:1542 */
9418 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
);
9419 /* syntax/typing.nit:1543 */
9420 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9421 if (UNTAG_Bool(REGB1
)) {
9422 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1543);
9424 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9425 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]);
9426 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9427 if (UNTAG_Bool(REGB1
)) {
9430 /* syntax/typing.nit:1544 */
9431 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9432 if (UNTAG_Bool(REGB1
)) {
9433 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1544);
9435 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9436 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]);
9437 /* syntax/typing.nit:1545 */
9438 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9439 if (UNTAG_Bool(REGB1
)) {
9441 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9442 if (UNTAG_Bool(REGB0
)) {
9443 REGB0
= TAG_Bool(0);
9446 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9450 if (UNTAG_Bool(REGB1
)) {
9451 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9452 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9453 if (UNTAG_Bool(REGB1
)) {
9455 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9456 if (UNTAG_Bool(REGB0
)) {
9457 REGB0
= TAG_Bool(0);
9460 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9464 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9466 REGB0
= TAG_Bool(0);
9469 if (UNTAG_Bool(REGB1
)) {
9472 /* syntax/typing.nit:1546 */
9473 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
9474 /* syntax/typing.nit:1547 */
9475 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9476 /* syntax/typing.nit:1548 */
9477 ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
9479 stack_frame_head
= fra
.me
.prev
;
9482 static const char LOCATE_syntax___typing___AAbsSendExpr___get_property
[] = "typing::AAbsSendExpr::get_property";
9483 val_t
syntax___typing___AAbsSendExpr___get_property(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9484 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
9490 static val_t once_value_1
; /* Once value */
9491 static val_t once_value_2
; /* Once value */
9492 static val_t once_value_3
; /* Once value */
9493 static val_t once_value_4
; /* Once value */
9494 static val_t once_value_5
; /* Once value */
9495 static val_t once_value_6
; /* Once value */
9496 static val_t once_value_8
; /* Once value */
9497 static val_t once_value_9
; /* Once value */
9498 static val_t once_value_10
; /* Once value */
9499 static val_t once_value_11
; /* Once value */
9500 static val_t once_value_12
; /* Once value */
9501 static val_t once_value_13
; /* Once value */
9502 static val_t once_value_14
; /* Once value */
9503 static val_t once_value_15
; /* Once value */
9504 static val_t once_value_16
; /* Once value */
9505 static val_t once_value_17
; /* Once value */
9506 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9507 fra
.me
.file
= LOCATE_syntax___typing
;
9509 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_property
;
9510 fra
.me
.has_broke
= 0;
9511 fra
.me
.REG_size
= 10;
9512 fra
.me
.nitni_local_ref_head
= NULL
;
9513 fra
.me
.REG
[0] = NIT_NULL
;
9514 fra
.me
.REG
[1] = NIT_NULL
;
9515 fra
.me
.REG
[2] = NIT_NULL
;
9516 fra
.me
.REG
[3] = NIT_NULL
;
9517 fra
.me
.REG
[4] = NIT_NULL
;
9518 fra
.me
.REG
[5] = NIT_NULL
;
9519 fra
.me
.REG
[6] = NIT_NULL
;
9520 fra
.me
.REG
[7] = NIT_NULL
;
9521 fra
.me
.REG
[8] = NIT_NULL
;
9522 fra
.me
.REG
[9] = NIT_NULL
;
9528 /* syntax/typing.nit:1553 */
9529 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
9530 if (UNTAG_Bool(REGB1
)) {
9531 /* syntax/typing.nit:1554 */
9532 if (!once_value_1
) {
9533 if (!once_value_2
) {
9534 fra
.me
.REG
[4] = BOX_NativeString("==");
9536 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
9537 once_value_2
= fra
.me
.REG
[4];
9538 register_static_object(&once_value_2
);
9539 } else fra
.me
.REG
[4] = once_value_2
;
9540 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9541 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9542 once_value_1
= fra
.me
.REG
[4];
9543 register_static_object(&once_value_1
);
9544 } else fra
.me
.REG
[4] = once_value_1
;
9545 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9546 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9547 if (UNTAG_Bool(REGB1
)) {
9549 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9552 if (UNTAG_Bool(REGB1
)) {
9553 REGB1
= TAG_Bool(1);
9555 if (!once_value_3
) {
9556 if (!once_value_4
) {
9557 fra
.me
.REG
[4] = BOX_NativeString("!=");
9559 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
9560 once_value_4
= fra
.me
.REG
[4];
9561 register_static_object(&once_value_4
);
9562 } else fra
.me
.REG
[4] = once_value_4
;
9563 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9564 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9565 once_value_3
= fra
.me
.REG
[4];
9566 register_static_object(&once_value_3
);
9567 } else fra
.me
.REG
[4] = once_value_3
;
9568 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9569 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9570 if (UNTAG_Bool(REGB2
)) {
9572 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9577 if (UNTAG_Bool(REGB1
)) {
9578 /* syntax/typing.nit:1556 */
9579 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9580 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9581 fra
.me
.REG
[2] = fra
.me
.REG
[4];
9583 /* syntax/typing.nit:1558 */
9585 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9586 if (!once_value_5
) {
9587 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9588 REGB1
= TAG_Int(15);
9589 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB1
);
9590 once_value_5
= fra
.me
.REG
[5];
9591 register_static_object(&once_value_5
);
9592 } else fra
.me
.REG
[5] = once_value_5
;
9593 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9594 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9595 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9596 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9597 if (!once_value_6
) {
9598 fra
.me
.REG
[5] = BOX_NativeString("' call on 'null'.");
9599 REGB1
= TAG_Int(17);
9600 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB1
);
9601 once_value_6
= fra
.me
.REG
[5];
9602 register_static_object(&once_value_6
);
9603 } else fra
.me
.REG
[5] = once_value_6
;
9604 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9605 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9606 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9607 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9608 /* syntax/typing.nit:1559 */
9609 fra
.me
.REG
[4] = NIT_NULL
;
9613 /* syntax/typing.nit:1562 */
9614 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9615 /* syntax/typing.nit:1563 */
9616 fra
.me
.REG
[6] = NIT_NULL
;
9617 /* syntax/typing.nit:1564 */
9618 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9619 if (UNTAG_Bool(REGB1
)) {
9620 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9621 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9623 /* syntax/typing.nit:1565 */
9624 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9625 if (UNTAG_Bool(REGB1
)) {
9627 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9628 if (UNTAG_Bool(REGB2
)) {
9629 REGB2
= TAG_Bool(0);
9632 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9636 if (UNTAG_Bool(REGB1
)) {
9637 /* syntax/typing.nit:1566 */
9638 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9639 /* ../lib/standard/collection/array.nit:24 */
9640 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9641 if (UNTAG_Bool(REGB1
)) {
9643 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9645 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9646 /* syntax/typing.nit:1567 */
9648 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
9649 if (UNTAG_Bool(REGB3
)) {
9651 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9653 /* ../lib/standard/kernel.nit:244 */
9654 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
9655 /* syntax/typing.nit:1567 */
9656 if (UNTAG_Bool(REGB2
)) {
9657 /* syntax/typing.nit:1568 */
9659 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
9660 if (!once_value_8
) {
9661 fra
.me
.REG
[9] = BOX_NativeString("Error: Ambigous method name '");
9662 REGB2
= TAG_Int(29);
9663 fra
.me
.REG
[9] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[9])(fra
.me
.REG
[9], REGB2
);
9664 once_value_8
= fra
.me
.REG
[9];
9665 register_static_object(&once_value_8
);
9666 } else fra
.me
.REG
[9] = once_value_8
;
9667 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9668 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9669 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9670 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9671 if (!once_value_9
) {
9672 fra
.me
.REG
[9] = BOX_NativeString("' for ");
9674 fra
.me
.REG
[9] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[9])(fra
.me
.REG
[9], REGB2
);
9675 once_value_9
= fra
.me
.REG
[9];
9676 register_static_object(&once_value_9
);
9677 } else fra
.me
.REG
[9] = once_value_9
;
9678 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9679 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9680 if (!once_value_10
) {
9681 fra
.me
.REG
[9] = BOX_NativeString(", ");
9683 fra
.me
.REG
[9] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[9])(fra
.me
.REG
[9], REGB2
);
9684 once_value_10
= fra
.me
.REG
[9];
9685 register_static_object(&once_value_10
);
9686 } else fra
.me
.REG
[9] = once_value_10
;
9687 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9688 fra
.me
.REG
[9] = CALL_standard___string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
9689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9690 if (!once_value_11
) {
9691 fra
.me
.REG
[9] = BOX_NativeString(". Use explicit designation.");
9692 REGB2
= TAG_Int(27);
9693 fra
.me
.REG
[9] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[9])(fra
.me
.REG
[9], REGB2
);
9694 once_value_11
= fra
.me
.REG
[9];
9695 register_static_object(&once_value_11
);
9696 } else fra
.me
.REG
[9] = once_value_11
;
9697 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9699 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9700 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
9701 /* syntax/typing.nit:1569 */
9702 fra
.me
.REG
[4] = NIT_NULL
;
9705 /* ../lib/standard/collection/array.nit:24 */
9706 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9707 if (UNTAG_Bool(REGB2
)) {
9709 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9711 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9712 /* syntax/typing.nit:1570 */
9714 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
9715 if (UNTAG_Bool(REGB3
)) {
9717 /* ../lib/standard/kernel.nit:237 */
9718 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
9719 /* syntax/typing.nit:1570 */
9722 if (UNTAG_Bool(REGB3
)) {
9723 /* syntax/typing.nit:1571 */
9724 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9725 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9726 if (UNTAG_Bool(REGB3
)) {
9727 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1571);
9729 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9730 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
9731 /* syntax/typing.nit:1572 */
9732 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
9733 if (UNTAG_Bool(REGB3
)) {
9735 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1572);
9737 /* syntax/typing.nit:1573 */
9738 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9742 /* syntax/typing.nit:1577 */
9743 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9744 if (UNTAG_Bool(REGB3
)) {
9746 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9747 if (UNTAG_Bool(REGB1
)) {
9748 REGB1
= TAG_Bool(0);
9751 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9755 if (UNTAG_Bool(REGB3
)) {
9756 /* syntax/typing.nit:1578 */
9757 if (UNTAG_Bool(REGB0
)) {
9758 /* syntax/typing.nit:1579 */
9760 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9761 if (!once_value_12
) {
9762 fra
.me
.REG
[5] = BOX_NativeString("Error: Method or variable '");
9763 REGB0
= TAG_Int(27);
9764 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
9765 once_value_12
= fra
.me
.REG
[5];
9766 register_static_object(&once_value_12
);
9767 } else fra
.me
.REG
[5] = once_value_12
;
9768 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9770 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9771 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9772 if (!once_value_13
) {
9773 fra
.me
.REG
[5] = BOX_NativeString("' unknown in ");
9774 REGB0
= TAG_Int(13);
9775 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
9776 once_value_13
= fra
.me
.REG
[5];
9777 register_static_object(&once_value_13
);
9778 } else fra
.me
.REG
[5] = once_value_13
;
9779 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9780 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9781 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9782 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9783 if (!once_value_14
) {
9784 fra
.me
.REG
[5] = BOX_NativeString(".");
9786 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
9787 once_value_14
= fra
.me
.REG
[5];
9788 register_static_object(&once_value_14
);
9789 } else fra
.me
.REG
[5] = once_value_14
;
9790 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9791 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9792 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9793 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9795 /* syntax/typing.nit:1581 */
9797 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9798 if (!once_value_15
) {
9799 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9800 REGB0
= TAG_Int(15);
9801 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
9802 once_value_15
= fra
.me
.REG
[5];
9803 register_static_object(&once_value_15
);
9804 } else fra
.me
.REG
[5] = once_value_15
;
9805 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9806 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9807 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9809 if (!once_value_16
) {
9810 fra
.me
.REG
[3] = BOX_NativeString("' doesn't exists in ");
9811 REGB0
= TAG_Int(20);
9812 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
9813 once_value_16
= fra
.me
.REG
[3];
9814 register_static_object(&once_value_16
);
9815 } else fra
.me
.REG
[3] = once_value_16
;
9816 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9817 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9818 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9819 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9820 if (!once_value_17
) {
9821 fra
.me
.REG
[2] = BOX_NativeString(".");
9823 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
9824 once_value_17
= fra
.me
.REG
[2];
9825 register_static_object(&once_value_17
);
9826 } else fra
.me
.REG
[2] = once_value_17
;
9827 fra
.me
.REG
[2] = fra
.me
.REG
[2];
9828 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9829 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9830 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9832 /* syntax/typing.nit:1583 */
9833 fra
.me
.REG
[4] = NIT_NULL
;
9836 /* syntax/typing.nit:1585 */
9837 fra
.me
.REG
[4] = fra
.me
.REG
[6];
9840 stack_frame_head
= fra
.me
.prev
;
9841 return fra
.me
.REG
[4];
9843 static const char LOCATE_syntax___typing___AAbsSendExpr___get_signature
[] = "typing::AAbsSendExpr::get_signature";
9844 val_t
syntax___typing___AAbsSendExpr___get_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9845 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
9848 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9849 fra
.me
.file
= LOCATE_syntax___typing
;
9851 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_signature
;
9852 fra
.me
.has_broke
= 0;
9853 fra
.me
.REG_size
= 6;
9854 fra
.me
.nitni_local_ref_head
= NULL
;
9855 fra
.me
.REG
[0] = NIT_NULL
;
9856 fra
.me
.REG
[1] = NIT_NULL
;
9857 fra
.me
.REG
[2] = NIT_NULL
;
9858 fra
.me
.REG
[3] = NIT_NULL
;
9859 fra
.me
.REG
[4] = NIT_NULL
;
9860 fra
.me
.REG
[5] = NIT_NULL
;
9866 /* syntax/typing.nit:1591 */
9867 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9868 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9869 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
);
9870 /* syntax/typing.nit:1592 */
9871 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
9872 /* syntax/typing.nit:1593 */
9873 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9874 if (UNTAG_Bool(REGB0
)) {
9875 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9876 fra
.me
.REG
[2] = fra
.me
.REG
[3];
9878 /* syntax/typing.nit:1594 */
9881 stack_frame_head
= fra
.me
.prev
;
9882 return fra
.me
.REG
[2];
9884 static const char LOCATE_syntax___typing___AAbsSendExpr___prop
[] = "typing::AAbsSendExpr::(syntax_base::AAbsSendExpr::prop)";
9885 val_t
syntax___typing___AAbsSendExpr___prop(val_t p0
){
9886 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9889 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9890 fra
.me
.file
= LOCATE_syntax___typing
;
9892 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___prop
;
9893 fra
.me
.has_broke
= 0;
9894 fra
.me
.REG_size
= 2;
9895 fra
.me
.nitni_local_ref_head
= NULL
;
9896 fra
.me
.REG
[0] = NIT_NULL
;
9897 fra
.me
.REG
[1] = NIT_NULL
;
9899 /* syntax/typing.nit:1597 */
9900 fra
.me
.REG
[1] = fra
.me
.REG
[0];
9901 /* syntax/typing.nit:1598 */
9902 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[1]);
9903 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
9904 if (UNTAG_Bool(REGB0
)) {
9906 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1598);
9910 stack_frame_head
= fra
.me
.prev
;
9911 return fra
.me
.REG
[1];
9913 static const char LOCATE_syntax___typing___AAbsSendExpr___return_type
[] = "typing::AAbsSendExpr::(syntax_base::AAbsSendExpr::return_type)";
9914 val_t
syntax___typing___AAbsSendExpr___return_type(val_t p0
){
9915 struct {struct stack_frame_t me
;} fra
;
9917 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9918 fra
.me
.file
= LOCATE_syntax___typing
;
9920 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___return_type
;
9921 fra
.me
.has_broke
= 0;
9922 fra
.me
.REG_size
= 1;
9923 fra
.me
.nitni_local_ref_head
= NULL
;
9924 fra
.me
.REG
[0] = NIT_NULL
;
9926 /* syntax/typing.nit:1601 */
9927 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]);
9928 stack_frame_head
= fra
.me
.prev
;
9929 return fra
.me
.REG
[0];
9931 static const char LOCATE_syntax___typing___ASuperInitCall___register_super_init_call
[] = "typing::ASuperInitCall::register_super_init_call";
9932 void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0
, val_t p1
, val_t p2
){
9933 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
9938 static val_t once_value_1
; /* Once value */
9939 static val_t once_value_2
; /* Once value */
9940 static val_t once_value_3
; /* Once value */
9941 static val_t once_value_4
; /* Once value */
9942 static val_t once_value_5
; /* Once value */
9943 static val_t once_value_6
; /* Once value */
9944 static val_t once_value_7
; /* Once value */
9945 static val_t once_value_8
; /* Once value */
9946 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9947 fra
.me
.file
= LOCATE_syntax___typing
;
9949 fra
.me
.meth
= LOCATE_syntax___typing___ASuperInitCall___register_super_init_call
;
9950 fra
.me
.has_broke
= 0;
9951 fra
.me
.REG_size
= 9;
9952 fra
.me
.nitni_local_ref_head
= NULL
;
9953 fra
.me
.REG
[0] = NIT_NULL
;
9954 fra
.me
.REG
[1] = NIT_NULL
;
9955 fra
.me
.REG
[2] = NIT_NULL
;
9956 fra
.me
.REG
[3] = NIT_NULL
;
9957 fra
.me
.REG
[4] = NIT_NULL
;
9958 fra
.me
.REG
[5] = NIT_NULL
;
9959 fra
.me
.REG
[6] = NIT_NULL
;
9960 fra
.me
.REG
[7] = NIT_NULL
;
9961 fra
.me
.REG
[8] = NIT_NULL
;
9965 /* syntax/typing.nit:1608 */
9966 fra
.me
.REG
[3] = fra
.me
.REG
[0];
9967 /* syntax/typing.nit:1610 */
9968 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ANode___parent(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9969 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9970 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[4],fra
.me
.REG
[5]));
9971 if (UNTAG_Bool(REGB0
)) {
9973 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9974 if (UNTAG_Bool(REGB1
)) {
9975 REGB1
= TAG_Bool(0);
9978 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9982 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9983 if (UNTAG_Bool(REGB0
)) {
9984 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9985 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[5]));
9986 if (UNTAG_Bool(REGB0
)) {
9988 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9991 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9993 REGB1
= TAG_Bool(0);
9996 if (UNTAG_Bool(REGB0
)) {
9997 /* syntax/typing.nit:1611 */
9999 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10000 if (!once_value_1
) {
10001 fra
.me
.REG
[4] = BOX_NativeString("Error: Constructor invocation ");
10002 REGB0
= TAG_Int(30);
10003 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
10004 once_value_1
= fra
.me
.REG
[4];
10005 register_static_object(&once_value_1
);
10006 } else fra
.me
.REG
[4] = once_value_1
;
10007 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10008 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10009 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10010 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10011 if (!once_value_2
) {
10012 fra
.me
.REG
[4] = BOX_NativeString(" must not be in nested block.");
10013 REGB0
= TAG_Int(29);
10014 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
10015 once_value_2
= fra
.me
.REG
[4];
10016 register_static_object(&once_value_2
);
10017 } else fra
.me
.REG
[4] = once_value_2
;
10018 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10019 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10020 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10021 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
10023 /* syntax/typing.nit:1613 */
10024 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10025 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10026 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10027 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10028 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10029 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10030 /* syntax/typing.nit:1614 */
10031 fra
.me
.REG
[5] = NIT_NULL
;
10032 /* syntax/typing.nit:1615 */
10033 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___explicit_super_init_calls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10034 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
10035 if (UNTAG_Bool(REGB0
)) {
10037 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1615);
10039 /* syntax/typing.nit:1616 */
10040 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10041 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10042 if (UNTAG_Bool(REGB0
)) {
10043 /* syntax/typing.nit:1617 */
10044 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10045 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
10046 if (UNTAG_Bool(REGB0
)) {
10047 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1617);
10049 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10050 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10051 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10052 fra
.me
.REG
[5] = fra
.me
.REG
[0];
10054 /* syntax/typing.nit:1619 */
10055 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10056 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10057 fra
.me
.REG
[0] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10058 /* syntax/typing.nit:1620 */
10059 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10060 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
10061 if (UNTAG_Bool(REGB0
)) {
10063 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
10066 if (UNTAG_Bool(REGB0
)) {
10067 /* syntax/typing.nit:1621 */
10068 REGB0
= TAG_Bool(1);
10069 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
10071 /* syntax/typing.nit:1622 */
10072 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
10073 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10074 if (UNTAG_Bool(REGB0
)) {
10075 /* syntax/typing.nit:1623 */
10076 REGB0
= TAG_Int(5);
10077 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10078 if (!once_value_3
) {
10079 fra
.me
.REG
[8] = BOX_NativeString("Error: Constructor of class ");
10080 REGB0
= TAG_Int(28);
10081 fra
.me
.REG
[8] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[8])(fra
.me
.REG
[8], REGB0
);
10082 once_value_3
= fra
.me
.REG
[8];
10083 register_static_object(&once_value_3
);
10084 } else fra
.me
.REG
[8] = once_value_3
;
10085 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10086 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10087 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10088 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10089 if (!once_value_4
) {
10090 fra
.me
.REG
[8] = BOX_NativeString(" must be one in ");
10091 REGB0
= TAG_Int(16);
10092 fra
.me
.REG
[8] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[8])(fra
.me
.REG
[8], REGB0
);
10093 once_value_4
= fra
.me
.REG
[8];
10094 register_static_object(&once_value_4
);
10095 } else fra
.me
.REG
[8] = once_value_4
;
10096 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10097 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10098 if (!once_value_5
) {
10099 fra
.me
.REG
[8] = BOX_NativeString(", ");
10100 REGB0
= TAG_Int(2);
10101 fra
.me
.REG
[8] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[8])(fra
.me
.REG
[8], REGB0
);
10102 once_value_5
= fra
.me
.REG
[8];
10103 register_static_object(&once_value_5
);
10104 } else fra
.me
.REG
[8] = once_value_5
;
10105 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10106 fra
.me
.REG
[8] = CALL_standard___string___Collection___join(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[8]);
10107 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10108 if (!once_value_6
) {
10109 fra
.me
.REG
[8] = BOX_NativeString(".");
10110 REGB0
= TAG_Int(1);
10111 fra
.me
.REG
[8] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[8])(fra
.me
.REG
[8], REGB0
);
10112 once_value_6
= fra
.me
.REG
[8];
10113 register_static_object(&once_value_6
);
10114 } else fra
.me
.REG
[8] = once_value_6
;
10115 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10116 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10117 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10118 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
10120 /* syntax/typing.nit:1624 */
10121 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[4],fra
.me
.REG
[5]));
10122 if (UNTAG_Bool(REGB0
)) {
10124 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10127 if (UNTAG_Bool(REGB0
)) {
10128 /* syntax/typing.nit:1625 */
10129 REGB0
= TAG_Int(3);
10130 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10131 if (!once_value_7
) {
10132 fra
.me
.REG
[8] = BOX_NativeString("Error: Only one super constructor invocation of class ");
10133 REGB0
= TAG_Int(54);
10134 fra
.me
.REG
[8] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[8])(fra
.me
.REG
[8], REGB0
);
10135 once_value_7
= fra
.me
.REG
[8];
10136 register_static_object(&once_value_7
);
10137 } else fra
.me
.REG
[8] = once_value_7
;
10138 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10139 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10140 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10141 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10142 if (!once_value_8
) {
10143 fra
.me
.REG
[8] = BOX_NativeString(" is allowed.");
10144 REGB0
= TAG_Int(12);
10145 fra
.me
.REG
[8] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[8])(fra
.me
.REG
[8], REGB0
);
10146 once_value_8
= fra
.me
.REG
[8];
10147 register_static_object(&once_value_8
);
10148 } else fra
.me
.REG
[8] = once_value_8
;
10149 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10150 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10151 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10152 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
10154 /* ../lib/standard/collection/array.nit:270 */
10155 REGB0
= TAG_Int(0);
10156 /* ../lib/standard/collection/array.nit:271 */
10157 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
10158 if (UNTAG_Bool(REGB1
)) {
10160 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
10162 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
10163 /* ../lib/standard/collection/array.nit:272 */
10164 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
10165 /* ../lib/standard/collection/array.nit:273 */
10167 /* ../lib/standard/collection/array.nit:24 */
10168 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
10169 if (UNTAG_Bool(REGB1
)) {
10171 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
10173 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
10174 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
10175 if (UNTAG_Bool(REGB2
)) {
10177 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
10179 /* ../lib/standard/kernel.nit:242 */
10180 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
10181 /* ../lib/standard/collection/array.nit:273 */
10182 if (UNTAG_Bool(REGB1
)) {
10183 /* ../lib/standard/collection/array.nit:274 */
10184 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
10185 if (UNTAG_Bool(REGB1
)) {
10186 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
10188 /* ../lib/standard/collection/array.nit:725 */
10189 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
10190 /* syntax/typing.nit:1628 */
10191 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[5]));
10192 if (UNTAG_Bool(REGB1
)) {
10194 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10197 if (UNTAG_Bool(REGB1
)) {
10198 /* syntax/typing.nit:1629 */
10199 fra
.me
.REG
[5] = NIT_NULL
;
10201 /* syntax/typing.nit:1630 */
10202 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
10203 if (UNTAG_Bool(REGB1
)) {
10205 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10208 if (UNTAG_Bool(REGB1
)) {
10209 /* syntax/typing.nit:1631 */
10210 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
10211 /* syntax/typing.nit:1632 */
10215 /* ../lib/standard/collection/array.nit:275 */
10216 REGB1
= TAG_Int(1);
10217 /* ../lib/standard/kernel.nit:245 */
10218 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
10219 /* ../lib/standard/collection/array.nit:275 */
10222 /* ../lib/standard/collection/array.nit:273 */
10231 stack_frame_head
= fra
.me
.prev
;
10234 static const char LOCATE_syntax___typing___ANewExpr___compute_raw_arguments
[] = "typing::ANewExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
10235 val_t
syntax___typing___ANewExpr___compute_raw_arguments(val_t p0
){
10236 struct {struct stack_frame_t me
;} fra
;
10238 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10239 fra
.me
.file
= LOCATE_syntax___typing
;
10240 fra
.me
.line
= 1641;
10241 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___compute_raw_arguments
;
10242 fra
.me
.has_broke
= 0;
10243 fra
.me
.REG_size
= 1;
10244 fra
.me
.nitni_local_ref_head
= NULL
;
10245 fra
.me
.REG
[0] = NIT_NULL
;
10246 fra
.me
.REG
[0] = p0
;
10247 /* syntax/typing.nit:1641 */
10248 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ANewExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10249 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10252 stack_frame_head
= fra
.me
.prev
;
10253 return fra
.me
.REG
[0];
10255 static const char LOCATE_syntax___typing___ANewExpr___after_typing
[] = "typing::ANewExpr::(typing::ANode::after_typing)";
10256 void syntax___typing___ANewExpr___after_typing(val_t p0
, val_t p1
){
10257 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10261 static val_t once_value_2
; /* Once value */
10262 static val_t once_value_3
; /* Once value */
10263 static val_t once_value_4
; /* Once value */
10264 static val_t once_value_5
; /* Once value */
10265 static val_t once_value_6
; /* Once value */
10266 static val_t once_value_7
; /* Once value */
10267 static val_t once_value_8
; /* Once value */
10268 static val_t once_value_9
; /* Once value */
10269 static val_t once_value_10
; /* Once value */
10270 static val_t once_value_11
; /* Once value */
10271 static val_t once_value_12
; /* Once value */
10272 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10273 fra
.me
.file
= LOCATE_syntax___typing
;
10274 fra
.me
.line
= 1642;
10275 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___after_typing
;
10276 fra
.me
.has_broke
= 0;
10277 fra
.me
.REG_size
= 5;
10278 fra
.me
.nitni_local_ref_head
= NULL
;
10279 fra
.me
.REG
[0] = NIT_NULL
;
10280 fra
.me
.REG
[1] = NIT_NULL
;
10281 fra
.me
.REG
[2] = NIT_NULL
;
10282 fra
.me
.REG
[3] = NIT_NULL
;
10283 fra
.me
.REG
[4] = NIT_NULL
;
10284 fra
.me
.REG
[0] = p0
;
10285 fra
.me
.REG
[1] = p1
;
10286 /* syntax/typing.nit:1644 */
10287 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10288 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10289 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10290 if (UNTAG_Bool(REGB0
)) {
10293 /* syntax/typing.nit:1645 */
10294 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10295 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10296 /* syntax/typing.nit:1646 */
10297 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10298 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10299 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10300 if (UNTAG_Bool(REGB0
)) {
10301 /* syntax/typing.nit:1647 */
10302 REGB0
= TAG_Int(3);
10303 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10304 if (!once_value_2
) {
10305 fra
.me
.REG
[4] = BOX_NativeString("Error: try to instantiate abstract class ");
10306 REGB0
= TAG_Int(41);
10307 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
10308 once_value_2
= fra
.me
.REG
[4];
10309 register_static_object(&once_value_2
);
10310 } else fra
.me
.REG
[4] = once_value_2
;
10311 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10312 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10313 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10314 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10315 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10316 if (!once_value_3
) {
10317 fra
.me
.REG
[4] = BOX_NativeString(".");
10318 REGB0
= TAG_Int(1);
10319 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
10320 once_value_3
= fra
.me
.REG
[4];
10321 register_static_object(&once_value_3
);
10322 } else fra
.me
.REG
[4] = once_value_3
;
10323 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10324 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10325 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10326 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10327 /* syntax/typing.nit:1648 */
10330 /* syntax/typing.nit:1650 */
10331 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10332 if (UNTAG_Bool(REGB0
)) {
10333 /* syntax/typing.nit:1651 */
10334 REGB0
= TAG_Int(3);
10335 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10336 if (!once_value_4
) {
10337 fra
.me
.REG
[4] = BOX_NativeString("Type error: cannot instantiate the nullable type ");
10338 REGB0
= TAG_Int(49);
10339 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
10340 once_value_4
= fra
.me
.REG
[4];
10341 register_static_object(&once_value_4
);
10342 } else fra
.me
.REG
[4] = once_value_4
;
10343 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10345 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10346 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10347 if (!once_value_5
) {
10348 fra
.me
.REG
[4] = BOX_NativeString(".");
10349 REGB0
= TAG_Int(1);
10350 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
10351 once_value_5
= fra
.me
.REG
[4];
10352 register_static_object(&once_value_5
);
10353 } else fra
.me
.REG
[4] = once_value_5
;
10354 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10356 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10357 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10359 /* syntax/typing.nit:1654 */
10360 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10361 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10362 if (UNTAG_Bool(REGB0
)) {
10364 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10365 if (UNTAG_Bool(REGB1
)) {
10366 REGB1
= TAG_Bool(0);
10369 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10373 if (UNTAG_Bool(REGB0
)) {
10374 /* syntax/typing.nit:1655 */
10375 if (!once_value_6
) {
10376 if (!once_value_7
) {
10377 fra
.me
.REG
[3] = BOX_NativeString("init");
10378 REGB0
= TAG_Int(4);
10379 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
10380 once_value_7
= fra
.me
.REG
[3];
10381 register_static_object(&once_value_7
);
10382 } else fra
.me
.REG
[3] = once_value_7
;
10383 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10384 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10385 once_value_6
= fra
.me
.REG
[3];
10386 register_static_object(&once_value_6
);
10387 } else fra
.me
.REG
[3] = once_value_6
;
10388 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10390 /* syntax/typing.nit:1657 */
10391 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10392 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10393 if (UNTAG_Bool(REGB0
)) {
10394 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1657);
10396 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10397 fra
.me
.REG
[3] = fra
.me
.REG
[4];
10399 /* syntax/typing.nit:1660 */
10400 REGB0
= TAG_Bool(0);
10401 REGB1
= TAG_Bool(0);
10402 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10403 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
);
10404 /* syntax/typing.nit:1661 */
10405 fra
.me
.REG
[4] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
10406 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10407 if (UNTAG_Bool(REGB1
)) {
10409 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10410 if (UNTAG_Bool(REGB0
)) {
10411 REGB0
= TAG_Bool(0);
10414 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10418 if (UNTAG_Bool(REGB1
)) {
10421 /* syntax/typing.nit:1663 */
10422 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10423 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10424 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10425 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10426 if (UNTAG_Bool(REGB1
)) {
10427 /* syntax/typing.nit:1664 */
10428 REGB1
= TAG_Int(3);
10429 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10430 if (!once_value_8
) {
10431 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
10432 REGB1
= TAG_Int(7);
10433 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
10434 once_value_8
= fra
.me
.REG
[3];
10435 register_static_object(&once_value_8
);
10436 } else fra
.me
.REG
[3] = once_value_8
;
10437 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10439 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10440 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10442 if (!once_value_9
) {
10443 fra
.me
.REG
[3] = BOX_NativeString(" is not a constructor.");
10444 REGB1
= TAG_Int(22);
10445 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
10446 once_value_9
= fra
.me
.REG
[3];
10447 register_static_object(&once_value_9
);
10448 } else fra
.me
.REG
[3] = once_value_9
;
10449 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10451 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10452 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
10453 /* syntax/typing.nit:1665 */
10456 /* syntax/typing.nit:1667 */
10457 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10458 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10459 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10460 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10461 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10462 if (UNTAG_Bool(REGB1
)) {
10463 /* syntax/typing.nit:1668 */
10464 REGB1
= TAG_Int(5);
10465 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10466 if (!once_value_10
) {
10467 fra
.me
.REG
[4] = BOX_NativeString("Error: ");
10468 REGB1
= TAG_Int(7);
10469 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
10470 once_value_10
= fra
.me
.REG
[4];
10471 register_static_object(&once_value_10
);
10472 } else fra
.me
.REG
[4] = once_value_10
;
10473 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10474 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10475 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10476 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10477 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10478 if (!once_value_11
) {
10479 fra
.me
.REG
[4] = BOX_NativeString(" is not a constructor in ");
10480 REGB1
= TAG_Int(25);
10481 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
10482 once_value_11
= fra
.me
.REG
[4];
10483 register_static_object(&once_value_11
);
10484 } else fra
.me
.REG
[4] = once_value_11
;
10485 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10486 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10487 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10488 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10489 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10490 if (!once_value_12
) {
10491 fra
.me
.REG
[4] = BOX_NativeString(".");
10492 REGB1
= TAG_Int(1);
10493 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
10494 once_value_12
= fra
.me
.REG
[4];
10495 register_static_object(&once_value_12
);
10496 } else fra
.me
.REG
[4] = once_value_12
;
10497 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10498 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10499 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10500 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10501 /* syntax/typing.nit:1669 */
10504 /* syntax/typing.nit:1671 */
10505 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10506 /* syntax/typing.nit:1672 */
10507 REGB1
= TAG_Bool(1);
10508 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
10510 stack_frame_head
= fra
.me
.prev
;
10513 static const char LOCATE_syntax___typing___ASendExpr___name
[] = "typing::ASendExpr::name";
10514 val_t
syntax___typing___ASendExpr___name(val_t p0
){
10515 struct {struct stack_frame_t me
;} fra
;
10517 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10518 fra
.me
.file
= LOCATE_syntax___typing
;
10519 fra
.me
.line
= 1678;
10520 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___name
;
10521 fra
.me
.has_broke
= 0;
10522 fra
.me
.REG_size
= 0;
10523 fra
.me
.nitni_local_ref_head
= NULL
;
10524 /* syntax/typing.nit:1678 */
10525 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1678);
10526 stack_frame_head
= fra
.me
.prev
;
10529 static const char LOCATE_syntax___typing___ASendExpr___closure_defs
[] = "typing::ASendExpr::(syntax_base::ASendExpr::closure_defs)";
10530 val_t
syntax___typing___ASendExpr___closure_defs(val_t p0
){
10531 struct {struct stack_frame_t me
;} fra
;
10533 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10534 fra
.me
.file
= LOCATE_syntax___typing
;
10535 fra
.me
.line
= 1681;
10536 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___closure_defs
;
10537 fra
.me
.has_broke
= 0;
10538 fra
.me
.REG_size
= 1;
10539 fra
.me
.nitni_local_ref_head
= NULL
;
10540 fra
.me
.REG
[0] = NIT_NULL
;
10541 fra
.me
.REG
[0] = p0
;
10542 /* syntax/typing.nit:1682 */
10543 fra
.me
.REG
[0] = NIT_NULL
;
10546 stack_frame_head
= fra
.me
.prev
;
10547 return fra
.me
.REG
[0];
10549 static const char LOCATE_syntax___typing___ASendExpr___after_typing
[] = "typing::ASendExpr::(typing::ANode::after_typing)";
10550 void syntax___typing___ASendExpr___after_typing(val_t p0
, val_t p1
){
10551 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10553 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10554 fra
.me
.file
= LOCATE_syntax___typing
;
10555 fra
.me
.line
= 1684;
10556 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___after_typing
;
10557 fra
.me
.has_broke
= 0;
10558 fra
.me
.REG_size
= 2;
10559 fra
.me
.nitni_local_ref_head
= NULL
;
10560 fra
.me
.REG
[0] = NIT_NULL
;
10561 fra
.me
.REG
[1] = NIT_NULL
;
10562 fra
.me
.REG
[0] = p0
;
10563 fra
.me
.REG
[1] = p1
;
10564 /* syntax/typing.nit:1686 */
10565 CALL_syntax___typing___ASendExpr___do_all_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10566 stack_frame_head
= fra
.me
.prev
;
10569 static const char LOCATE_syntax___typing___ASendExpr___do_all_typing
[] = "typing::ASendExpr::do_all_typing";
10570 void syntax___typing___ASendExpr___do_all_typing(val_t p0
, val_t p1
){
10571 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10575 static val_t once_value_2
; /* Once value */
10576 static val_t once_value_3
; /* Once value */
10577 static val_t once_value_4
; /* Once value */
10578 static val_t once_value_5
; /* Once value */
10579 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10580 fra
.me
.file
= LOCATE_syntax___typing
;
10581 fra
.me
.line
= 1689;
10582 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___do_all_typing
;
10583 fra
.me
.has_broke
= 0;
10584 fra
.me
.REG_size
= 7;
10585 fra
.me
.nitni_local_ref_head
= NULL
;
10586 fra
.me
.REG
[0] = NIT_NULL
;
10587 fra
.me
.REG
[1] = NIT_NULL
;
10588 fra
.me
.REG
[2] = NIT_NULL
;
10589 fra
.me
.REG
[3] = NIT_NULL
;
10590 fra
.me
.REG
[4] = NIT_NULL
;
10591 fra
.me
.REG
[5] = NIT_NULL
;
10592 fra
.me
.REG
[6] = NIT_NULL
;
10593 fra
.me
.REG
[0] = p0
;
10594 fra
.me
.REG
[1] = p1
;
10595 /* syntax/typing.nit:1689 */
10596 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10597 /* syntax/typing.nit:1691 */
10598 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10599 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10600 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10601 if (UNTAG_Bool(REGB0
)) {
10604 /* syntax/typing.nit:1692 */
10605 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10606 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10607 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10608 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10609 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10610 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10611 fra
.me
.REG
[4] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10612 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10613 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10614 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]);
10615 /* syntax/typing.nit:1693 */
10616 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10617 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10618 if (UNTAG_Bool(REGB1
)) {
10620 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10621 if (UNTAG_Bool(REGB0
)) {
10622 REGB0
= TAG_Bool(0);
10625 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
10629 if (UNTAG_Bool(REGB1
)) {
10632 /* syntax/typing.nit:1694 */
10633 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10634 REGB1
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
10635 if (UNTAG_Bool(REGB1
)) {
10637 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1694);
10639 /* syntax/typing.nit:1696 */
10640 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10641 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10642 if (UNTAG_Bool(REGB1
)) {
10643 /* syntax/typing.nit:1697 */
10644 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10645 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10646 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10647 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10648 if (UNTAG_Bool(REGB1
)) {
10649 /* syntax/typing.nit:1698 */
10650 REGB1
= TAG_Int(3);
10651 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10652 if (!once_value_2
) {
10653 fra
.me
.REG
[5] = BOX_NativeString("Error: try to invoke constructor ");
10654 REGB1
= TAG_Int(33);
10655 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB1
);
10656 once_value_2
= fra
.me
.REG
[5];
10657 register_static_object(&once_value_2
);
10658 } else fra
.me
.REG
[5] = once_value_2
;
10659 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10660 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10661 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10663 if (!once_value_3
) {
10664 fra
.me
.REG
[5] = BOX_NativeString(" in a method.");
10665 REGB1
= TAG_Int(13);
10666 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB1
);
10667 once_value_3
= fra
.me
.REG
[5];
10668 register_static_object(&once_value_3
);
10669 } else fra
.me
.REG
[5] = once_value_3
;
10670 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10671 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10672 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10673 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10675 /* syntax/typing.nit:1699 */
10676 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10677 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10678 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10679 if (UNTAG_Bool(REGB1
)) {
10680 /* syntax/typing.nit:1700 */
10681 REGB1
= TAG_Int(3);
10682 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10683 if (!once_value_4
) {
10684 fra
.me
.REG
[5] = BOX_NativeString("Error: constructor ");
10685 REGB1
= TAG_Int(19);
10686 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB1
);
10687 once_value_4
= fra
.me
.REG
[5];
10688 register_static_object(&once_value_4
);
10689 } else fra
.me
.REG
[5] = once_value_4
;
10690 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10691 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10692 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10693 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10694 if (!once_value_5
) {
10695 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
10696 REGB1
= TAG_Int(26);
10697 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB1
);
10698 once_value_5
= fra
.me
.REG
[5];
10699 register_static_object(&once_value_5
);
10700 } else fra
.me
.REG
[5] = once_value_5
;
10701 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10702 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10703 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10704 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10706 /* syntax/typing.nit:1702 */
10707 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[6]);
10711 /* syntax/typing.nit:1706 */
10712 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AAbsSendExpr___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10713 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
10714 /* syntax/typing.nit:1707 */
10715 REGB1
= TAG_Bool(1);
10716 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB1
;
10718 stack_frame_head
= fra
.me
.prev
;
10721 static const char LOCATE_syntax___typing___ASendReassignExpr___read_prop
[] = "typing::ASendReassignExpr::(syntax_base::ASendReassignExpr::read_prop)";
10722 val_t
syntax___typing___ASendReassignExpr___read_prop(val_t p0
){
10723 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10726 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10727 fra
.me
.file
= LOCATE_syntax___typing
;
10728 fra
.me
.line
= 1712;
10729 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___read_prop
;
10730 fra
.me
.has_broke
= 0;
10731 fra
.me
.REG_size
= 2;
10732 fra
.me
.nitni_local_ref_head
= NULL
;
10733 fra
.me
.REG
[0] = NIT_NULL
;
10734 fra
.me
.REG
[1] = NIT_NULL
;
10735 fra
.me
.REG
[0] = p0
;
10736 /* syntax/typing.nit:1712 */
10737 fra
.me
.REG
[1] = fra
.me
.REG
[0];
10738 fra
.me
.REG
[1] = ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[1]);
10739 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
10740 if (UNTAG_Bool(REGB0
)) {
10742 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1712);
10746 stack_frame_head
= fra
.me
.prev
;
10747 return fra
.me
.REG
[1];
10749 static const char LOCATE_syntax___typing___ASendReassignExpr___do_all_typing
[] = "typing::ASendReassignExpr::(typing::ASendExpr::do_all_typing)";
10750 void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0
, val_t p1
){
10751 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10756 static val_t once_value_2
; /* Once value */
10757 static val_t once_value_3
; /* Once value */
10758 static val_t once_value_4
; /* Once value */
10759 static val_t once_value_5
; /* Once value */
10760 static val_t once_value_6
; /* Once value */
10761 static val_t once_value_7
; /* Once value */
10762 static val_t once_value_8
; /* Once value */
10763 static val_t once_value_9
; /* Once value */
10764 static val_t once_value_10
; /* Once value */
10765 static val_t once_value_11
; /* Once value */
10766 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10767 fra
.me
.file
= LOCATE_syntax___typing
;
10768 fra
.me
.line
= 1714;
10769 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___do_all_typing
;
10770 fra
.me
.has_broke
= 0;
10771 fra
.me
.REG_size
= 7;
10772 fra
.me
.nitni_local_ref_head
= NULL
;
10773 fra
.me
.REG
[0] = NIT_NULL
;
10774 fra
.me
.REG
[1] = NIT_NULL
;
10775 fra
.me
.REG
[2] = NIT_NULL
;
10776 fra
.me
.REG
[3] = NIT_NULL
;
10777 fra
.me
.REG
[4] = NIT_NULL
;
10778 fra
.me
.REG
[5] = NIT_NULL
;
10779 fra
.me
.REG
[6] = NIT_NULL
;
10780 fra
.me
.REG
[0] = p0
;
10781 fra
.me
.REG
[1] = p1
;
10782 /* syntax/typing.nit:1714 */
10783 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10784 /* syntax/typing.nit:1716 */
10785 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10786 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10787 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10788 if (UNTAG_Bool(REGB0
)) {
10791 /* syntax/typing.nit:1717 */
10792 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10793 /* syntax/typing.nit:1718 */
10794 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10795 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10796 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10797 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10798 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10799 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10800 fra
.me
.REG
[5] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10801 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
);
10802 /* syntax/typing.nit:1719 */
10803 fra
.me
.REG
[5] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10804 /* syntax/typing.nit:1720 */
10805 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10806 if (UNTAG_Bool(REGB1
)) {
10808 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10809 if (UNTAG_Bool(REGB0
)) {
10810 REGB0
= TAG_Bool(0);
10813 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
10817 if (UNTAG_Bool(REGB1
)) {
10820 /* syntax/typing.nit:1721 */
10821 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10822 if (UNTAG_Bool(REGB1
)) {
10823 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1721);
10825 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10826 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10827 if (UNTAG_Bool(REGB1
)) {
10828 /* syntax/typing.nit:1722 */
10829 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10830 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10831 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10832 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10833 if (UNTAG_Bool(REGB1
)) {
10834 /* syntax/typing.nit:1723 */
10835 REGB1
= TAG_Int(3);
10836 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10837 if (!once_value_2
) {
10838 fra
.me
.REG
[6] = BOX_NativeString("Error: try to invoke constructor ");
10839 REGB1
= TAG_Int(33);
10840 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB1
);
10841 once_value_2
= fra
.me
.REG
[6];
10842 register_static_object(&once_value_2
);
10843 } else fra
.me
.REG
[6] = once_value_2
;
10844 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10845 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10846 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10848 if (!once_value_3
) {
10849 fra
.me
.REG
[6] = BOX_NativeString(" in a method.");
10850 REGB1
= TAG_Int(13);
10851 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB1
);
10852 once_value_3
= fra
.me
.REG
[6];
10853 register_static_object(&once_value_3
);
10854 } else fra
.me
.REG
[6] = once_value_3
;
10855 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10856 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10857 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10858 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10860 /* syntax/typing.nit:1724 */
10861 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10862 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10863 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10864 if (UNTAG_Bool(REGB1
)) {
10865 /* syntax/typing.nit:1725 */
10866 REGB1
= TAG_Int(3);
10867 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10868 if (!once_value_4
) {
10869 fra
.me
.REG
[6] = BOX_NativeString("Error: constructor ");
10870 REGB1
= TAG_Int(19);
10871 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB1
);
10872 once_value_4
= fra
.me
.REG
[6];
10873 register_static_object(&once_value_4
);
10874 } else fra
.me
.REG
[6] = once_value_4
;
10875 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10876 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10877 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10878 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10879 if (!once_value_5
) {
10880 fra
.me
.REG
[6] = BOX_NativeString(" is not invoken on 'self'.");
10881 REGB1
= TAG_Int(26);
10882 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB1
);
10883 once_value_5
= fra
.me
.REG
[6];
10884 register_static_object(&once_value_5
);
10885 } else fra
.me
.REG
[6] = once_value_5
;
10886 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10887 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10888 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10889 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10893 /* syntax/typing.nit:1728 */
10894 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10895 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10896 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10897 if (UNTAG_Bool(REGB1
)) {
10898 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1728);
10900 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10901 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10902 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*/;
10903 if (UNTAG_Bool(REGB1
)) {
10905 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1728);
10907 /* syntax/typing.nit:1729 */
10908 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10909 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10910 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10911 if (UNTAG_Bool(REGB1
)) {
10912 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10913 fra
.me
.REG
[4] = fra
.me
.REG
[0];
10915 /* syntax/typing.nit:1731 */
10916 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]);
10917 /* syntax/typing.nit:1732 */
10918 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10919 if (UNTAG_Bool(REGB1
)) {
10921 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10922 if (UNTAG_Bool(REGB0
)) {
10923 REGB0
= TAG_Bool(0);
10926 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10930 if (UNTAG_Bool(REGB1
)) {
10933 /* syntax/typing.nit:1733 */
10934 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10935 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10936 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]);
10937 /* syntax/typing.nit:1735 */
10938 ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
10939 /* syntax/typing.nit:1736 */
10940 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10941 fra
.me
.REG
[3] = fra
.me
.REG
[0];
10942 /* syntax/typing.nit:1737 */
10943 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10944 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
10945 /* syntax/typing.nit:1739 */
10946 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10947 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10948 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10949 REGB1
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10950 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10951 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10952 REGB2
= TAG_Int(3);
10953 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
10954 if (!once_value_6
) {
10955 fra
.me
.REG
[6] = BOX_NativeString("");
10956 REGB2
= TAG_Int(0);
10957 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
10958 once_value_6
= fra
.me
.REG
[6];
10959 register_static_object(&once_value_6
);
10960 } else fra
.me
.REG
[6] = once_value_6
;
10961 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10962 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10963 fra
.me
.REG
[6] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10964 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10966 if (!once_value_7
) {
10967 fra
.me
.REG
[6] = BOX_NativeString("=");
10968 REGB2
= TAG_Int(1);
10969 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
10970 once_value_7
= fra
.me
.REG
[6];
10971 register_static_object(&once_value_7
);
10972 } else fra
.me
.REG
[6] = once_value_7
;
10973 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10974 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10975 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10976 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10977 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
);
10978 /* syntax/typing.nit:1740 */
10979 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10980 if (UNTAG_Bool(REGB0
)) {
10981 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1740);
10983 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10984 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10985 if (UNTAG_Bool(REGB0
)) {
10986 /* syntax/typing.nit:1741 */
10987 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10988 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10989 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10990 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10991 if (UNTAG_Bool(REGB0
)) {
10992 /* syntax/typing.nit:1742 */
10993 REGB0
= TAG_Int(3);
10994 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10995 if (!once_value_8
) {
10996 fra
.me
.REG
[4] = BOX_NativeString("Error: try to invoke constructor ");
10997 REGB0
= TAG_Int(33);
10998 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
10999 once_value_8
= fra
.me
.REG
[4];
11000 register_static_object(&once_value_8
);
11001 } else fra
.me
.REG
[4] = once_value_8
;
11002 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11003 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
11004 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
11005 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
11006 if (!once_value_9
) {
11007 fra
.me
.REG
[4] = BOX_NativeString(" in a method.");
11008 REGB0
= TAG_Int(13);
11009 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
11010 once_value_9
= fra
.me
.REG
[4];
11011 register_static_object(&once_value_9
);
11012 } else fra
.me
.REG
[4] = once_value_9
;
11013 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11014 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
11015 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11016 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
11018 /* syntax/typing.nit:1743 */
11019 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11020 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11021 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11022 if (UNTAG_Bool(REGB0
)) {
11023 /* syntax/typing.nit:1744 */
11024 REGB0
= TAG_Int(3);
11025 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11026 if (!once_value_10
) {
11027 fra
.me
.REG
[4] = BOX_NativeString("Error: constructor ");
11028 REGB0
= TAG_Int(19);
11029 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
11030 once_value_10
= fra
.me
.REG
[4];
11031 register_static_object(&once_value_10
);
11032 } else fra
.me
.REG
[4] = once_value_10
;
11033 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11034 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
11035 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
11036 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
11037 if (!once_value_11
) {
11038 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
11039 REGB0
= TAG_Int(26);
11040 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
11041 once_value_11
= fra
.me
.REG
[5];
11042 register_static_object(&once_value_11
);
11043 } else fra
.me
.REG
[5] = once_value_11
;
11044 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11045 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
11046 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11047 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
11051 /* syntax/typing.nit:1748 */
11052 REGB0
= TAG_Bool(1);
11053 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
11055 stack_frame_head
= fra
.me
.prev
;
11058 static const char LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments
[] = "typing::ABinopExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
11059 val_t
syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0
){
11060 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11063 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11064 fra
.me
.file
= LOCATE_syntax___typing
;
11065 fra
.me
.line
= 1753;
11066 fra
.me
.meth
= LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments
;
11067 fra
.me
.has_broke
= 0;
11068 fra
.me
.REG_size
= 2;
11069 fra
.me
.nitni_local_ref_head
= NULL
;
11070 fra
.me
.REG
[0] = NIT_NULL
;
11071 fra
.me
.REG
[1] = NIT_NULL
;
11072 fra
.me
.REG
[0] = p0
;
11073 /* syntax/typing.nit:1753 */
11074 REGB0
= TAG_Int(1);
11075 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11076 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11077 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11080 stack_frame_head
= fra
.me
.prev
;
11081 return fra
.me
.REG
[1];
11083 static const char LOCATE_syntax___typing___AEqExpr___name
[] = "typing::AEqExpr::(typing::ASendExpr::name)";
11084 val_t
syntax___typing___AEqExpr___name(val_t p0
){
11085 struct {struct stack_frame_t me
;} fra
;
11088 static val_t once_value_1
; /* Once value */
11089 static val_t once_value_2
; /* Once value */
11090 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11091 fra
.me
.file
= LOCATE_syntax___typing
;
11092 fra
.me
.line
= 1756;
11093 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___name
;
11094 fra
.me
.has_broke
= 0;
11095 fra
.me
.REG_size
= 1;
11096 fra
.me
.nitni_local_ref_head
= NULL
;
11097 fra
.me
.REG
[0] = NIT_NULL
;
11098 fra
.me
.REG
[0] = p0
;
11099 /* syntax/typing.nit:1756 */
11100 if (!once_value_1
) {
11101 if (!once_value_2
) {
11102 fra
.me
.REG
[0] = BOX_NativeString("==");
11103 REGB0
= TAG_Int(2);
11104 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11105 once_value_2
= fra
.me
.REG
[0];
11106 register_static_object(&once_value_2
);
11107 } else fra
.me
.REG
[0] = once_value_2
;
11108 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11109 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11110 once_value_1
= fra
.me
.REG
[0];
11111 register_static_object(&once_value_1
);
11112 } else fra
.me
.REG
[0] = once_value_1
;
11113 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11116 stack_frame_head
= fra
.me
.prev
;
11117 return fra
.me
.REG
[0];
11119 static const char LOCATE_syntax___typing___AEqExpr___after_typing
[] = "typing::AEqExpr::(typing::ANode::after_typing)";
11120 void syntax___typing___AEqExpr___after_typing(val_t p0
, val_t p1
){
11121 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
11125 static val_t once_value_2
; /* Once value */
11126 static val_t once_value_3
; /* Once value */
11127 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11128 fra
.me
.file
= LOCATE_syntax___typing
;
11129 fra
.me
.line
= 1757;
11130 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___after_typing
;
11131 fra
.me
.has_broke
= 0;
11132 fra
.me
.REG_size
= 4;
11133 fra
.me
.nitni_local_ref_head
= NULL
;
11134 fra
.me
.REG
[0] = NIT_NULL
;
11135 fra
.me
.REG
[1] = NIT_NULL
;
11136 fra
.me
.REG
[2] = NIT_NULL
;
11137 fra
.me
.REG
[3] = NIT_NULL
;
11138 fra
.me
.REG
[0] = p0
;
11139 fra
.me
.REG
[1] = p1
;
11140 /* syntax/typing.nit:1757 */
11141 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11142 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11143 /* syntax/typing.nit:1759 */
11144 CALL_SUPER_syntax___typing___AEqExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11145 /* syntax/typing.nit:1760 */
11146 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11147 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11148 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11149 if (UNTAG_Bool(REGB0
)) {
11150 REGB0
= TAG_Bool(1);
11152 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11153 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11154 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
11157 if (UNTAG_Bool(REGB0
)) {
11160 /* syntax/typing.nit:1761 */
11161 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11162 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11163 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11164 if (UNTAG_Bool(REGB0
)) {
11165 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11166 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11167 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11168 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11170 REGB1
= TAG_Bool(0);
11173 if (UNTAG_Bool(REGB0
)) {
11174 REGB0
= TAG_Bool(1);
11176 /* syntax/typing.nit:1762 */
11177 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11178 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11179 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11180 /* syntax/typing.nit:1761 */
11183 if (UNTAG_Bool(REGB0
)) {
11184 /* syntax/typing.nit:1762 */
11185 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11186 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11187 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11188 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11190 /* syntax/typing.nit:1761 */
11191 REGB1
= TAG_Bool(0);
11194 if (UNTAG_Bool(REGB0
)) {
11195 /* syntax/typing.nit:1763 */
11196 if (!once_value_2
) {
11197 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
11198 REGB0
= TAG_Int(59);
11199 fra
.me
.REG
[1] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
11200 once_value_2
= fra
.me
.REG
[1];
11201 register_static_object(&once_value_2
);
11202 } else fra
.me
.REG
[1] = once_value_2
;
11203 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11204 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11206 /* syntax/typing.nit:1766 */
11207 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11208 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11209 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11210 if (UNTAG_Bool(REGB0
)) {
11211 /* syntax/typing.nit:1767 */
11212 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11213 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11214 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11215 if (UNTAG_Bool(REGB0
)) {
11216 /* syntax/typing.nit:1768 */
11217 if (!once_value_3
) {
11218 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between two null values.");
11219 REGB0
= TAG_Int(45);
11220 fra
.me
.REG
[1] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
11221 once_value_3
= fra
.me
.REG
[1];
11222 register_static_object(&once_value_3
);
11223 } else fra
.me
.REG
[1] = once_value_3
;
11224 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11225 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11227 /* syntax/typing.nit:1770 */
11228 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11229 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11232 /* syntax/typing.nit:1772 */
11233 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11234 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11235 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11236 if (UNTAG_Bool(REGB0
)) {
11237 /* syntax/typing.nit:1773 */
11238 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11239 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11243 stack_frame_head
= fra
.me
.prev
;
11246 static const char LOCATE_syntax___typing___AEqExpr___try_to_isa
[] = "typing::AEqExpr::try_to_isa";
11247 void syntax___typing___AEqExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
11248 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11252 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11253 fra
.me
.file
= LOCATE_syntax___typing
;
11254 fra
.me
.line
= 1777;
11255 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___try_to_isa
;
11256 fra
.me
.has_broke
= 0;
11257 fra
.me
.REG_size
= 5;
11258 fra
.me
.nitni_local_ref_head
= NULL
;
11259 fra
.me
.REG
[0] = NIT_NULL
;
11260 fra
.me
.REG
[1] = NIT_NULL
;
11261 fra
.me
.REG
[2] = NIT_NULL
;
11262 fra
.me
.REG
[3] = NIT_NULL
;
11263 fra
.me
.REG
[4] = NIT_NULL
;
11264 fra
.me
.REG
[0] = p0
;
11265 fra
.me
.REG
[1] = p1
;
11266 fra
.me
.REG
[2] = p2
;
11267 /* syntax/typing.nit:1779 */
11268 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11269 /* syntax/typing.nit:1780 */
11270 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11271 if (UNTAG_Bool(REGB0
)) {
11273 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11274 if (UNTAG_Bool(REGB1
)) {
11275 REGB1
= TAG_Bool(0);
11278 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11282 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11283 if (UNTAG_Bool(REGB0
)) {
11284 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11285 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
11287 REGB1
= TAG_Bool(0);
11290 if (UNTAG_Bool(REGB0
)) {
11291 /* syntax/typing.nit:1781 */
11292 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11293 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11294 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11295 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]);
11296 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11297 /* syntax/typing.nit:1782 */
11298 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11299 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11300 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]);
11301 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
11303 stack_frame_head
= fra
.me
.prev
;
11306 static const char LOCATE_syntax___typing___ANeExpr___name
[] = "typing::ANeExpr::(typing::ASendExpr::name)";
11307 val_t
syntax___typing___ANeExpr___name(val_t p0
){
11308 struct {struct stack_frame_t me
;} fra
;
11311 static val_t once_value_1
; /* Once value */
11312 static val_t once_value_2
; /* Once value */
11313 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11314 fra
.me
.file
= LOCATE_syntax___typing
;
11315 fra
.me
.line
= 1787;
11316 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___name
;
11317 fra
.me
.has_broke
= 0;
11318 fra
.me
.REG_size
= 1;
11319 fra
.me
.nitni_local_ref_head
= NULL
;
11320 fra
.me
.REG
[0] = NIT_NULL
;
11321 fra
.me
.REG
[0] = p0
;
11322 /* syntax/typing.nit:1787 */
11323 if (!once_value_1
) {
11324 if (!once_value_2
) {
11325 fra
.me
.REG
[0] = BOX_NativeString("!=");
11326 REGB0
= TAG_Int(2);
11327 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11328 once_value_2
= fra
.me
.REG
[0];
11329 register_static_object(&once_value_2
);
11330 } else fra
.me
.REG
[0] = once_value_2
;
11331 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11332 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11333 once_value_1
= fra
.me
.REG
[0];
11334 register_static_object(&once_value_1
);
11335 } else fra
.me
.REG
[0] = once_value_1
;
11336 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11339 stack_frame_head
= fra
.me
.prev
;
11340 return fra
.me
.REG
[0];
11342 static const char LOCATE_syntax___typing___ANeExpr___after_typing
[] = "typing::ANeExpr::(typing::ANode::after_typing)";
11343 void syntax___typing___ANeExpr___after_typing(val_t p0
, val_t p1
){
11344 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
11348 static val_t once_value_2
; /* Once value */
11349 static val_t once_value_3
; /* Once value */
11350 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11351 fra
.me
.file
= LOCATE_syntax___typing
;
11352 fra
.me
.line
= 1788;
11353 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___after_typing
;
11354 fra
.me
.has_broke
= 0;
11355 fra
.me
.REG_size
= 4;
11356 fra
.me
.nitni_local_ref_head
= NULL
;
11357 fra
.me
.REG
[0] = NIT_NULL
;
11358 fra
.me
.REG
[1] = NIT_NULL
;
11359 fra
.me
.REG
[2] = NIT_NULL
;
11360 fra
.me
.REG
[3] = NIT_NULL
;
11361 fra
.me
.REG
[0] = p0
;
11362 fra
.me
.REG
[1] = p1
;
11363 /* syntax/typing.nit:1788 */
11364 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11365 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11366 /* syntax/typing.nit:1790 */
11367 CALL_SUPER_syntax___typing___ANeExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11368 /* syntax/typing.nit:1791 */
11369 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11370 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11371 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11372 if (UNTAG_Bool(REGB0
)) {
11373 REGB0
= TAG_Bool(1);
11375 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11376 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11377 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
11380 if (UNTAG_Bool(REGB0
)) {
11383 /* syntax/typing.nit:1792 */
11384 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11385 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11386 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11387 if (UNTAG_Bool(REGB0
)) {
11388 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11389 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11390 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11391 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11393 REGB1
= TAG_Bool(0);
11396 if (UNTAG_Bool(REGB0
)) {
11397 REGB0
= TAG_Bool(1);
11399 /* syntax/typing.nit:1793 */
11400 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11401 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11402 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11403 /* syntax/typing.nit:1792 */
11406 if (UNTAG_Bool(REGB0
)) {
11407 /* syntax/typing.nit:1793 */
11408 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11409 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11410 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11411 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11413 /* syntax/typing.nit:1792 */
11414 REGB1
= TAG_Bool(0);
11417 if (UNTAG_Bool(REGB0
)) {
11418 /* syntax/typing.nit:1794 */
11419 if (!once_value_2
) {
11420 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
11421 REGB0
= TAG_Int(59);
11422 fra
.me
.REG
[1] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
11423 once_value_2
= fra
.me
.REG
[1];
11424 register_static_object(&once_value_2
);
11425 } else fra
.me
.REG
[1] = once_value_2
;
11426 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11427 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11429 /* syntax/typing.nit:1797 */
11430 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11431 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11432 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11433 if (UNTAG_Bool(REGB0
)) {
11434 /* syntax/typing.nit:1798 */
11435 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11436 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11437 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11438 if (UNTAG_Bool(REGB0
)) {
11439 /* syntax/typing.nit:1799 */
11440 if (!once_value_3
) {
11441 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between two null values.");
11442 REGB0
= TAG_Int(45);
11443 fra
.me
.REG
[1] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
11444 once_value_3
= fra
.me
.REG
[1];
11445 register_static_object(&once_value_3
);
11446 } else fra
.me
.REG
[1] = once_value_3
;
11447 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11448 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11450 /* syntax/typing.nit:1801 */
11451 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11452 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11455 /* syntax/typing.nit:1803 */
11456 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11457 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11458 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11459 if (UNTAG_Bool(REGB0
)) {
11460 /* syntax/typing.nit:1804 */
11461 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11462 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11466 stack_frame_head
= fra
.me
.prev
;
11469 static const char LOCATE_syntax___typing___ANeExpr___try_to_isa
[] = "typing::ANeExpr::try_to_isa";
11470 void syntax___typing___ANeExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
11471 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11475 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11476 fra
.me
.file
= LOCATE_syntax___typing
;
11477 fra
.me
.line
= 1808;
11478 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___try_to_isa
;
11479 fra
.me
.has_broke
= 0;
11480 fra
.me
.REG_size
= 5;
11481 fra
.me
.nitni_local_ref_head
= NULL
;
11482 fra
.me
.REG
[0] = NIT_NULL
;
11483 fra
.me
.REG
[1] = NIT_NULL
;
11484 fra
.me
.REG
[2] = NIT_NULL
;
11485 fra
.me
.REG
[3] = NIT_NULL
;
11486 fra
.me
.REG
[4] = NIT_NULL
;
11487 fra
.me
.REG
[0] = p0
;
11488 fra
.me
.REG
[1] = p1
;
11489 fra
.me
.REG
[2] = p2
;
11490 /* syntax/typing.nit:1810 */
11491 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11492 /* syntax/typing.nit:1811 */
11493 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11494 if (UNTAG_Bool(REGB0
)) {
11496 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11497 if (UNTAG_Bool(REGB1
)) {
11498 REGB1
= TAG_Bool(0);
11501 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11505 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11506 if (UNTAG_Bool(REGB0
)) {
11507 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11508 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
11510 REGB1
= TAG_Bool(0);
11513 if (UNTAG_Bool(REGB0
)) {
11514 /* syntax/typing.nit:1812 */
11515 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11516 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11517 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11518 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]);
11519 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11520 /* syntax/typing.nit:1813 */
11521 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11522 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11523 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]);
11524 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
11526 stack_frame_head
= fra
.me
.prev
;
11529 static const char LOCATE_syntax___typing___ALtExpr___name
[] = "typing::ALtExpr::(typing::ASendExpr::name)";
11530 val_t
syntax___typing___ALtExpr___name(val_t p0
){
11531 struct {struct stack_frame_t me
;} fra
;
11534 static val_t once_value_1
; /* Once value */
11535 static val_t once_value_2
; /* Once value */
11536 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11537 fra
.me
.file
= LOCATE_syntax___typing
;
11538 fra
.me
.line
= 1818;
11539 fra
.me
.meth
= LOCATE_syntax___typing___ALtExpr___name
;
11540 fra
.me
.has_broke
= 0;
11541 fra
.me
.REG_size
= 1;
11542 fra
.me
.nitni_local_ref_head
= NULL
;
11543 fra
.me
.REG
[0] = NIT_NULL
;
11544 fra
.me
.REG
[0] = p0
;
11545 /* syntax/typing.nit:1818 */
11546 if (!once_value_1
) {
11547 if (!once_value_2
) {
11548 fra
.me
.REG
[0] = BOX_NativeString("<");
11549 REGB0
= TAG_Int(1);
11550 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11551 once_value_2
= fra
.me
.REG
[0];
11552 register_static_object(&once_value_2
);
11553 } else fra
.me
.REG
[0] = once_value_2
;
11554 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11555 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11556 once_value_1
= fra
.me
.REG
[0];
11557 register_static_object(&once_value_1
);
11558 } else fra
.me
.REG
[0] = once_value_1
;
11559 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11562 stack_frame_head
= fra
.me
.prev
;
11563 return fra
.me
.REG
[0];
11565 static const char LOCATE_syntax___typing___ALeExpr___name
[] = "typing::ALeExpr::(typing::ASendExpr::name)";
11566 val_t
syntax___typing___ALeExpr___name(val_t p0
){
11567 struct {struct stack_frame_t me
;} fra
;
11570 static val_t once_value_1
; /* Once value */
11571 static val_t once_value_2
; /* Once value */
11572 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11573 fra
.me
.file
= LOCATE_syntax___typing
;
11574 fra
.me
.line
= 1821;
11575 fra
.me
.meth
= LOCATE_syntax___typing___ALeExpr___name
;
11576 fra
.me
.has_broke
= 0;
11577 fra
.me
.REG_size
= 1;
11578 fra
.me
.nitni_local_ref_head
= NULL
;
11579 fra
.me
.REG
[0] = NIT_NULL
;
11580 fra
.me
.REG
[0] = p0
;
11581 /* syntax/typing.nit:1821 */
11582 if (!once_value_1
) {
11583 if (!once_value_2
) {
11584 fra
.me
.REG
[0] = BOX_NativeString("<=");
11585 REGB0
= TAG_Int(2);
11586 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11587 once_value_2
= fra
.me
.REG
[0];
11588 register_static_object(&once_value_2
);
11589 } else fra
.me
.REG
[0] = once_value_2
;
11590 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11591 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11592 once_value_1
= fra
.me
.REG
[0];
11593 register_static_object(&once_value_1
);
11594 } else fra
.me
.REG
[0] = once_value_1
;
11595 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11598 stack_frame_head
= fra
.me
.prev
;
11599 return fra
.me
.REG
[0];
11601 static const char LOCATE_syntax___typing___ALlExpr___name
[] = "typing::ALlExpr::(typing::ASendExpr::name)";
11602 val_t
syntax___typing___ALlExpr___name(val_t p0
){
11603 struct {struct stack_frame_t me
;} fra
;
11606 static val_t once_value_1
; /* Once value */
11607 static val_t once_value_2
; /* Once value */
11608 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11609 fra
.me
.file
= LOCATE_syntax___typing
;
11610 fra
.me
.line
= 1824;
11611 fra
.me
.meth
= LOCATE_syntax___typing___ALlExpr___name
;
11612 fra
.me
.has_broke
= 0;
11613 fra
.me
.REG_size
= 1;
11614 fra
.me
.nitni_local_ref_head
= NULL
;
11615 fra
.me
.REG
[0] = NIT_NULL
;
11616 fra
.me
.REG
[0] = p0
;
11617 /* syntax/typing.nit:1824 */
11618 if (!once_value_1
) {
11619 if (!once_value_2
) {
11620 fra
.me
.REG
[0] = BOX_NativeString("<<");
11621 REGB0
= TAG_Int(2);
11622 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11623 once_value_2
= fra
.me
.REG
[0];
11624 register_static_object(&once_value_2
);
11625 } else fra
.me
.REG
[0] = once_value_2
;
11626 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11627 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11628 once_value_1
= fra
.me
.REG
[0];
11629 register_static_object(&once_value_1
);
11630 } else fra
.me
.REG
[0] = once_value_1
;
11631 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11634 stack_frame_head
= fra
.me
.prev
;
11635 return fra
.me
.REG
[0];
11637 static const char LOCATE_syntax___typing___AGtExpr___name
[] = "typing::AGtExpr::(typing::ASendExpr::name)";
11638 val_t
syntax___typing___AGtExpr___name(val_t p0
){
11639 struct {struct stack_frame_t me
;} fra
;
11642 static val_t once_value_1
; /* Once value */
11643 static val_t once_value_2
; /* Once value */
11644 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11645 fra
.me
.file
= LOCATE_syntax___typing
;
11646 fra
.me
.line
= 1827;
11647 fra
.me
.meth
= LOCATE_syntax___typing___AGtExpr___name
;
11648 fra
.me
.has_broke
= 0;
11649 fra
.me
.REG_size
= 1;
11650 fra
.me
.nitni_local_ref_head
= NULL
;
11651 fra
.me
.REG
[0] = NIT_NULL
;
11652 fra
.me
.REG
[0] = p0
;
11653 /* syntax/typing.nit:1827 */
11654 if (!once_value_1
) {
11655 if (!once_value_2
) {
11656 fra
.me
.REG
[0] = BOX_NativeString(">");
11657 REGB0
= TAG_Int(1);
11658 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11659 once_value_2
= fra
.me
.REG
[0];
11660 register_static_object(&once_value_2
);
11661 } else fra
.me
.REG
[0] = once_value_2
;
11662 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11663 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11664 once_value_1
= fra
.me
.REG
[0];
11665 register_static_object(&once_value_1
);
11666 } else fra
.me
.REG
[0] = once_value_1
;
11667 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11670 stack_frame_head
= fra
.me
.prev
;
11671 return fra
.me
.REG
[0];
11673 static const char LOCATE_syntax___typing___AGeExpr___name
[] = "typing::AGeExpr::(typing::ASendExpr::name)";
11674 val_t
syntax___typing___AGeExpr___name(val_t p0
){
11675 struct {struct stack_frame_t me
;} fra
;
11678 static val_t once_value_1
; /* Once value */
11679 static val_t once_value_2
; /* Once value */
11680 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11681 fra
.me
.file
= LOCATE_syntax___typing
;
11682 fra
.me
.line
= 1830;
11683 fra
.me
.meth
= LOCATE_syntax___typing___AGeExpr___name
;
11684 fra
.me
.has_broke
= 0;
11685 fra
.me
.REG_size
= 1;
11686 fra
.me
.nitni_local_ref_head
= NULL
;
11687 fra
.me
.REG
[0] = NIT_NULL
;
11688 fra
.me
.REG
[0] = p0
;
11689 /* syntax/typing.nit:1830 */
11690 if (!once_value_1
) {
11691 if (!once_value_2
) {
11692 fra
.me
.REG
[0] = BOX_NativeString(">=");
11693 REGB0
= TAG_Int(2);
11694 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11695 once_value_2
= fra
.me
.REG
[0];
11696 register_static_object(&once_value_2
);
11697 } else fra
.me
.REG
[0] = once_value_2
;
11698 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11699 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11700 once_value_1
= fra
.me
.REG
[0];
11701 register_static_object(&once_value_1
);
11702 } else fra
.me
.REG
[0] = once_value_1
;
11703 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11706 stack_frame_head
= fra
.me
.prev
;
11707 return fra
.me
.REG
[0];
11709 static const char LOCATE_syntax___typing___AGgExpr___name
[] = "typing::AGgExpr::(typing::ASendExpr::name)";
11710 val_t
syntax___typing___AGgExpr___name(val_t p0
){
11711 struct {struct stack_frame_t me
;} fra
;
11714 static val_t once_value_1
; /* Once value */
11715 static val_t once_value_2
; /* Once value */
11716 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11717 fra
.me
.file
= LOCATE_syntax___typing
;
11718 fra
.me
.line
= 1833;
11719 fra
.me
.meth
= LOCATE_syntax___typing___AGgExpr___name
;
11720 fra
.me
.has_broke
= 0;
11721 fra
.me
.REG_size
= 1;
11722 fra
.me
.nitni_local_ref_head
= NULL
;
11723 fra
.me
.REG
[0] = NIT_NULL
;
11724 fra
.me
.REG
[0] = p0
;
11725 /* syntax/typing.nit:1833 */
11726 if (!once_value_1
) {
11727 if (!once_value_2
) {
11728 fra
.me
.REG
[0] = BOX_NativeString(">>");
11729 REGB0
= TAG_Int(2);
11730 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11731 once_value_2
= fra
.me
.REG
[0];
11732 register_static_object(&once_value_2
);
11733 } else fra
.me
.REG
[0] = once_value_2
;
11734 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11735 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11736 once_value_1
= fra
.me
.REG
[0];
11737 register_static_object(&once_value_1
);
11738 } else fra
.me
.REG
[0] = once_value_1
;
11739 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11742 stack_frame_head
= fra
.me
.prev
;
11743 return fra
.me
.REG
[0];
11745 static const char LOCATE_syntax___typing___APlusExpr___name
[] = "typing::APlusExpr::(typing::ASendExpr::name)";
11746 val_t
syntax___typing___APlusExpr___name(val_t p0
){
11747 struct {struct stack_frame_t me
;} fra
;
11750 static val_t once_value_1
; /* Once value */
11751 static val_t once_value_2
; /* Once value */
11752 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11753 fra
.me
.file
= LOCATE_syntax___typing
;
11754 fra
.me
.line
= 1836;
11755 fra
.me
.meth
= LOCATE_syntax___typing___APlusExpr___name
;
11756 fra
.me
.has_broke
= 0;
11757 fra
.me
.REG_size
= 1;
11758 fra
.me
.nitni_local_ref_head
= NULL
;
11759 fra
.me
.REG
[0] = NIT_NULL
;
11760 fra
.me
.REG
[0] = p0
;
11761 /* syntax/typing.nit:1836 */
11762 if (!once_value_1
) {
11763 if (!once_value_2
) {
11764 fra
.me
.REG
[0] = BOX_NativeString("+");
11765 REGB0
= TAG_Int(1);
11766 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11767 once_value_2
= fra
.me
.REG
[0];
11768 register_static_object(&once_value_2
);
11769 } else fra
.me
.REG
[0] = once_value_2
;
11770 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11771 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11772 once_value_1
= fra
.me
.REG
[0];
11773 register_static_object(&once_value_1
);
11774 } else fra
.me
.REG
[0] = once_value_1
;
11775 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11778 stack_frame_head
= fra
.me
.prev
;
11779 return fra
.me
.REG
[0];
11781 static const char LOCATE_syntax___typing___AMinusExpr___name
[] = "typing::AMinusExpr::(typing::ASendExpr::name)";
11782 val_t
syntax___typing___AMinusExpr___name(val_t p0
){
11783 struct {struct stack_frame_t me
;} fra
;
11786 static val_t once_value_1
; /* Once value */
11787 static val_t once_value_2
; /* Once value */
11788 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11789 fra
.me
.file
= LOCATE_syntax___typing
;
11790 fra
.me
.line
= 1839;
11791 fra
.me
.meth
= LOCATE_syntax___typing___AMinusExpr___name
;
11792 fra
.me
.has_broke
= 0;
11793 fra
.me
.REG_size
= 1;
11794 fra
.me
.nitni_local_ref_head
= NULL
;
11795 fra
.me
.REG
[0] = NIT_NULL
;
11796 fra
.me
.REG
[0] = p0
;
11797 /* syntax/typing.nit:1839 */
11798 if (!once_value_1
) {
11799 if (!once_value_2
) {
11800 fra
.me
.REG
[0] = BOX_NativeString("-");
11801 REGB0
= TAG_Int(1);
11802 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11803 once_value_2
= fra
.me
.REG
[0];
11804 register_static_object(&once_value_2
);
11805 } else fra
.me
.REG
[0] = once_value_2
;
11806 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11807 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11808 once_value_1
= fra
.me
.REG
[0];
11809 register_static_object(&once_value_1
);
11810 } else fra
.me
.REG
[0] = once_value_1
;
11811 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11814 stack_frame_head
= fra
.me
.prev
;
11815 return fra
.me
.REG
[0];
11817 static const char LOCATE_syntax___typing___AStarshipExpr___name
[] = "typing::AStarshipExpr::(typing::ASendExpr::name)";
11818 val_t
syntax___typing___AStarshipExpr___name(val_t p0
){
11819 struct {struct stack_frame_t me
;} fra
;
11822 static val_t once_value_1
; /* Once value */
11823 static val_t once_value_2
; /* Once value */
11824 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11825 fra
.me
.file
= LOCATE_syntax___typing
;
11826 fra
.me
.line
= 1842;
11827 fra
.me
.meth
= LOCATE_syntax___typing___AStarshipExpr___name
;
11828 fra
.me
.has_broke
= 0;
11829 fra
.me
.REG_size
= 1;
11830 fra
.me
.nitni_local_ref_head
= NULL
;
11831 fra
.me
.REG
[0] = NIT_NULL
;
11832 fra
.me
.REG
[0] = p0
;
11833 /* syntax/typing.nit:1842 */
11834 if (!once_value_1
) {
11835 if (!once_value_2
) {
11836 fra
.me
.REG
[0] = BOX_NativeString("<=>");
11837 REGB0
= TAG_Int(3);
11838 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11839 once_value_2
= fra
.me
.REG
[0];
11840 register_static_object(&once_value_2
);
11841 } else fra
.me
.REG
[0] = once_value_2
;
11842 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11843 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11844 once_value_1
= fra
.me
.REG
[0];
11845 register_static_object(&once_value_1
);
11846 } else fra
.me
.REG
[0] = once_value_1
;
11847 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11850 stack_frame_head
= fra
.me
.prev
;
11851 return fra
.me
.REG
[0];
11853 static const char LOCATE_syntax___typing___AStarExpr___name
[] = "typing::AStarExpr::(typing::ASendExpr::name)";
11854 val_t
syntax___typing___AStarExpr___name(val_t p0
){
11855 struct {struct stack_frame_t me
;} fra
;
11858 static val_t once_value_1
; /* Once value */
11859 static val_t once_value_2
; /* Once value */
11860 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11861 fra
.me
.file
= LOCATE_syntax___typing
;
11862 fra
.me
.line
= 1845;
11863 fra
.me
.meth
= LOCATE_syntax___typing___AStarExpr___name
;
11864 fra
.me
.has_broke
= 0;
11865 fra
.me
.REG_size
= 1;
11866 fra
.me
.nitni_local_ref_head
= NULL
;
11867 fra
.me
.REG
[0] = NIT_NULL
;
11868 fra
.me
.REG
[0] = p0
;
11869 /* syntax/typing.nit:1845 */
11870 if (!once_value_1
) {
11871 if (!once_value_2
) {
11872 fra
.me
.REG
[0] = BOX_NativeString("*");
11873 REGB0
= TAG_Int(1);
11874 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11875 once_value_2
= fra
.me
.REG
[0];
11876 register_static_object(&once_value_2
);
11877 } else fra
.me
.REG
[0] = once_value_2
;
11878 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11879 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11880 once_value_1
= fra
.me
.REG
[0];
11881 register_static_object(&once_value_1
);
11882 } else fra
.me
.REG
[0] = once_value_1
;
11883 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11886 stack_frame_head
= fra
.me
.prev
;
11887 return fra
.me
.REG
[0];
11889 static const char LOCATE_syntax___typing___ASlashExpr___name
[] = "typing::ASlashExpr::(typing::ASendExpr::name)";
11890 val_t
syntax___typing___ASlashExpr___name(val_t p0
){
11891 struct {struct stack_frame_t me
;} fra
;
11894 static val_t once_value_1
; /* Once value */
11895 static val_t once_value_2
; /* Once value */
11896 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11897 fra
.me
.file
= LOCATE_syntax___typing
;
11898 fra
.me
.line
= 1848;
11899 fra
.me
.meth
= LOCATE_syntax___typing___ASlashExpr___name
;
11900 fra
.me
.has_broke
= 0;
11901 fra
.me
.REG_size
= 1;
11902 fra
.me
.nitni_local_ref_head
= NULL
;
11903 fra
.me
.REG
[0] = NIT_NULL
;
11904 fra
.me
.REG
[0] = p0
;
11905 /* syntax/typing.nit:1848 */
11906 if (!once_value_1
) {
11907 if (!once_value_2
) {
11908 fra
.me
.REG
[0] = BOX_NativeString("/");
11909 REGB0
= TAG_Int(1);
11910 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11911 once_value_2
= fra
.me
.REG
[0];
11912 register_static_object(&once_value_2
);
11913 } else fra
.me
.REG
[0] = once_value_2
;
11914 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11915 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11916 once_value_1
= fra
.me
.REG
[0];
11917 register_static_object(&once_value_1
);
11918 } else fra
.me
.REG
[0] = once_value_1
;
11919 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11922 stack_frame_head
= fra
.me
.prev
;
11923 return fra
.me
.REG
[0];
11925 static const char LOCATE_syntax___typing___APercentExpr___name
[] = "typing::APercentExpr::(typing::ASendExpr::name)";
11926 val_t
syntax___typing___APercentExpr___name(val_t p0
){
11927 struct {struct stack_frame_t me
;} fra
;
11930 static val_t once_value_1
; /* Once value */
11931 static val_t once_value_2
; /* Once value */
11932 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11933 fra
.me
.file
= LOCATE_syntax___typing
;
11934 fra
.me
.line
= 1851;
11935 fra
.me
.meth
= LOCATE_syntax___typing___APercentExpr___name
;
11936 fra
.me
.has_broke
= 0;
11937 fra
.me
.REG_size
= 1;
11938 fra
.me
.nitni_local_ref_head
= NULL
;
11939 fra
.me
.REG
[0] = NIT_NULL
;
11940 fra
.me
.REG
[0] = p0
;
11941 /* syntax/typing.nit:1851 */
11942 if (!once_value_1
) {
11943 if (!once_value_2
) {
11944 fra
.me
.REG
[0] = BOX_NativeString("%");
11945 REGB0
= TAG_Int(1);
11946 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11947 once_value_2
= fra
.me
.REG
[0];
11948 register_static_object(&once_value_2
);
11949 } else fra
.me
.REG
[0] = once_value_2
;
11950 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11951 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11952 once_value_1
= fra
.me
.REG
[0];
11953 register_static_object(&once_value_1
);
11954 } else fra
.me
.REG
[0] = once_value_1
;
11955 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11958 stack_frame_head
= fra
.me
.prev
;
11959 return fra
.me
.REG
[0];
11961 static const char LOCATE_syntax___typing___AUminusExpr___name
[] = "typing::AUminusExpr::(typing::ASendExpr::name)";
11962 val_t
syntax___typing___AUminusExpr___name(val_t p0
){
11963 struct {struct stack_frame_t me
;} fra
;
11966 static val_t once_value_1
; /* Once value */
11967 static val_t once_value_2
; /* Once value */
11968 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11969 fra
.me
.file
= LOCATE_syntax___typing
;
11970 fra
.me
.line
= 1855;
11971 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___name
;
11972 fra
.me
.has_broke
= 0;
11973 fra
.me
.REG_size
= 1;
11974 fra
.me
.nitni_local_ref_head
= NULL
;
11975 fra
.me
.REG
[0] = NIT_NULL
;
11976 fra
.me
.REG
[0] = p0
;
11977 /* syntax/typing.nit:1855 */
11978 if (!once_value_1
) {
11979 if (!once_value_2
) {
11980 fra
.me
.REG
[0] = BOX_NativeString("unary -");
11981 REGB0
= TAG_Int(7);
11982 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
11983 once_value_2
= fra
.me
.REG
[0];
11984 register_static_object(&once_value_2
);
11985 } else fra
.me
.REG
[0] = once_value_2
;
11986 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11987 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11988 once_value_1
= fra
.me
.REG
[0];
11989 register_static_object(&once_value_1
);
11990 } else fra
.me
.REG
[0] = once_value_1
;
11991 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11994 stack_frame_head
= fra
.me
.prev
;
11995 return fra
.me
.REG
[0];
11997 static const char LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments
[] = "typing::AUminusExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
11998 val_t
syntax___typing___AUminusExpr___compute_raw_arguments(val_t p0
){
11999 struct {struct stack_frame_t me
;} fra
;
12001 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12002 fra
.me
.file
= LOCATE_syntax___typing
;
12003 fra
.me
.line
= 1856;
12004 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments
;
12005 fra
.me
.has_broke
= 0;
12006 fra
.me
.REG_size
= 1;
12007 fra
.me
.nitni_local_ref_head
= NULL
;
12008 fra
.me
.REG
[0] = NIT_NULL
;
12009 fra
.me
.REG
[0] = p0
;
12010 /* syntax/typing.nit:1856 */
12011 fra
.me
.REG
[0] = NIT_NULL
;
12014 stack_frame_head
= fra
.me
.prev
;
12015 return fra
.me
.REG
[0];
12017 static const char LOCATE_syntax___typing___ACallFormExpr___after_typing
[] = "typing::ACallFormExpr::(typing::ANode::after_typing)";
12018 void syntax___typing___ACallFormExpr___after_typing(val_t p0
, val_t p1
){
12019 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
12023 static val_t once_value_1
; /* Once value */
12024 static val_t once_value_2
; /* Once value */
12025 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12026 fra
.me
.file
= LOCATE_syntax___typing
;
12027 fra
.me
.line
= 1860;
12028 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___after_typing
;
12029 fra
.me
.has_broke
= 0;
12030 fra
.me
.REG_size
= 9;
12031 fra
.me
.nitni_local_ref_head
= NULL
;
12032 fra
.me
.REG
[0] = NIT_NULL
;
12033 fra
.me
.REG
[1] = NIT_NULL
;
12034 fra
.me
.REG
[2] = NIT_NULL
;
12035 fra
.me
.REG
[3] = NIT_NULL
;
12036 fra
.me
.REG
[4] = NIT_NULL
;
12037 fra
.me
.REG
[5] = NIT_NULL
;
12038 fra
.me
.REG
[6] = NIT_NULL
;
12039 fra
.me
.REG
[7] = NIT_NULL
;
12040 fra
.me
.REG
[8] = NIT_NULL
;
12041 fra
.me
.REG
[0] = p0
;
12042 fra
.me
.REG
[1] = p1
;
12043 /* syntax/typing.nit:1860 */
12044 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12045 fra
.me
.REG
[3] = fra
.me
.REG
[1];
12046 /* syntax/typing.nit:1862 */
12047 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12048 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12049 if (UNTAG_Bool(REGB0
)) {
12050 /* syntax/typing.nit:1863 */
12051 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12052 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12053 /* syntax/typing.nit:1864 */
12054 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12055 fra
.me
.REG
[5] = CALL_syntax___scope___ScopeContext_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
12056 /* syntax/typing.nit:1865 */
12057 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
12058 if (UNTAG_Bool(REGB0
)) {
12060 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
12061 if (UNTAG_Bool(REGB1
)) {
12062 REGB1
= TAG_Bool(0);
12065 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
12069 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12070 if (UNTAG_Bool(REGB0
)) {
12071 /* syntax/typing.nit:1867 */
12072 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*/;
12073 if (UNTAG_Bool(REGB0
)) {
12074 /* syntax/typing.nit:1868 */
12075 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12076 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12077 fra
.me
.REG
[8] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12078 fra
.me
.REG
[8] = NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
12079 /* syntax/typing.nit:1869 */
12080 ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
12082 /* syntax/typing.nit:1871 */
12083 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12084 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
12085 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
12086 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12087 if (UNTAG_Bool(REGB0
)) {
12088 REGB0
= TAG_Bool(1);
12090 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12091 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_parser___parser_nodes___AParExprs
, ID_parser___parser_nodes___AParExprs
)) /*cast AParExprs*/;
12094 if (UNTAG_Bool(REGB0
)) {
12095 /* syntax/typing.nit:1872 */
12096 REGB0
= TAG_Int(3);
12097 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12098 if (!once_value_1
) {
12099 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
12100 REGB0
= TAG_Int(7);
12101 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
12102 once_value_1
= fra
.me
.REG
[6];
12103 register_static_object(&once_value_1
);
12104 } else fra
.me
.REG
[6] = once_value_1
;
12105 fra
.me
.REG
[6] = fra
.me
.REG
[6];
12106 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
12107 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12108 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
12109 if (!once_value_2
) {
12110 fra
.me
.REG
[4] = BOX_NativeString(" is variable, not a function.");
12111 REGB0
= TAG_Int(29);
12112 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
12113 once_value_2
= fra
.me
.REG
[4];
12114 register_static_object(&once_value_2
);
12115 } else fra
.me
.REG
[4] = once_value_2
;
12116 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12117 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
12118 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
12119 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
12120 /* syntax/typing.nit:1873 */
12123 /* syntax/typing.nit:1875 */
12124 fra
.me
.REG
[7] = CALL_syntax___typing___ACallFormExpr___variable_create(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
12125 fra
.me
.REG
[8] = fra
.me
.REG
[7];
12126 /* syntax/typing.nit:1876 */
12127 ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
12129 /* syntax/typing.nit:1878 */
12130 CALL_parser___parser_nodes___ANode___replace_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
12131 /* syntax/typing.nit:1879 */
12132 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
12133 /* syntax/typing.nit:1880 */
12137 /* syntax/typing.nit:1884 */
12138 CALL_SUPER_syntax___typing___ACallFormExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12140 stack_frame_head
= fra
.me
.prev
;
12143 static const char LOCATE_syntax___typing___ACallFormExpr___closure_defs
[] = "typing::ACallFormExpr::(syntax_base::ASendExpr::closure_defs)";
12144 val_t
syntax___typing___ACallFormExpr___closure_defs(val_t p0
){
12145 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12148 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12149 fra
.me
.file
= LOCATE_syntax___typing
;
12150 fra
.me
.line
= 1887;
12151 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___closure_defs
;
12152 fra
.me
.has_broke
= 0;
12153 fra
.me
.REG_size
= 2;
12154 fra
.me
.nitni_local_ref_head
= NULL
;
12155 fra
.me
.REG
[0] = NIT_NULL
;
12156 fra
.me
.REG
[1] = NIT_NULL
;
12157 fra
.me
.REG
[0] = p0
;
12158 /* syntax/typing.nit:1889 */
12159 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12160 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12161 if (UNTAG_Bool(REGB0
)) {
12162 /* syntax/typing.nit:1890 */
12163 fra
.me
.REG
[1] = NIT_NULL
;
12166 /* syntax/typing.nit:1892 */
12167 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12168 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12169 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12173 stack_frame_head
= fra
.me
.prev
;
12174 return fra
.me
.REG
[1];
12176 static const char LOCATE_syntax___typing___ACallFormExpr___variable_create
[] = "typing::ACallFormExpr::variable_create";
12177 val_t
syntax___typing___ACallFormExpr___variable_create(val_t p0
, val_t p1
){
12178 struct {struct stack_frame_t me
;} fra
;
12180 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12181 fra
.me
.file
= LOCATE_syntax___typing
;
12182 fra
.me
.line
= 1896;
12183 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___variable_create
;
12184 fra
.me
.has_broke
= 0;
12185 fra
.me
.REG_size
= 0;
12186 fra
.me
.nitni_local_ref_head
= NULL
;
12187 /* syntax/typing.nit:1896 */
12188 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1896);
12189 stack_frame_head
= fra
.me
.prev
;
12192 static const char LOCATE_syntax___typing___ACallExpr___variable_create
[] = "typing::ACallExpr::(typing::ACallFormExpr::variable_create)";
12193 val_t
syntax___typing___ACallExpr___variable_create(val_t p0
, val_t p1
){
12194 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12196 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12197 fra
.me
.file
= LOCATE_syntax___typing
;
12198 fra
.me
.line
= 1901;
12199 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___variable_create
;
12200 fra
.me
.has_broke
= 0;
12201 fra
.me
.REG_size
= 2;
12202 fra
.me
.nitni_local_ref_head
= NULL
;
12203 fra
.me
.REG
[0] = NIT_NULL
;
12204 fra
.me
.REG
[1] = NIT_NULL
;
12205 fra
.me
.REG
[0] = p0
;
12206 fra
.me
.REG
[1] = p1
;
12207 /* syntax/typing.nit:1903 */
12208 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12209 fra
.me
.REG
[0] = NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(fra
.me
.REG
[0]);
12212 stack_frame_head
= fra
.me
.prev
;
12213 return fra
.me
.REG
[0];
12215 static const char LOCATE_syntax___typing___ACallExpr___name
[] = "typing::ACallExpr::(typing::ASendExpr::name)";
12216 val_t
syntax___typing___ACallExpr___name(val_t p0
){
12217 struct {struct stack_frame_t me
;} fra
;
12219 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12220 fra
.me
.file
= LOCATE_syntax___typing
;
12221 fra
.me
.line
= 1906;
12222 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___name
;
12223 fra
.me
.has_broke
= 0;
12224 fra
.me
.REG_size
= 1;
12225 fra
.me
.nitni_local_ref_head
= NULL
;
12226 fra
.me
.REG
[0] = NIT_NULL
;
12227 fra
.me
.REG
[0] = p0
;
12228 /* syntax/typing.nit:1906 */
12229 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12230 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12233 stack_frame_head
= fra
.me
.prev
;
12234 return fra
.me
.REG
[0];
12236 static const char LOCATE_syntax___typing___ACallExpr___compute_raw_arguments
[] = "typing::ACallExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12237 val_t
syntax___typing___ACallExpr___compute_raw_arguments(val_t p0
){
12238 struct {struct stack_frame_t me
;} fra
;
12240 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12241 fra
.me
.file
= LOCATE_syntax___typing
;
12242 fra
.me
.line
= 1907;
12243 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___compute_raw_arguments
;
12244 fra
.me
.has_broke
= 0;
12245 fra
.me
.REG_size
= 1;
12246 fra
.me
.nitni_local_ref_head
= NULL
;
12247 fra
.me
.REG
[0] = NIT_NULL
;
12248 fra
.me
.REG
[0] = p0
;
12249 /* syntax/typing.nit:1907 */
12250 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12251 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12254 stack_frame_head
= fra
.me
.prev
;
12255 return fra
.me
.REG
[0];
12257 static const char LOCATE_syntax___typing___ACallAssignExpr___variable_create
[] = "typing::ACallAssignExpr::(typing::ACallFormExpr::variable_create)";
12258 val_t
syntax___typing___ACallAssignExpr___variable_create(val_t p0
, val_t p1
){
12259 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12261 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12262 fra
.me
.file
= LOCATE_syntax___typing
;
12263 fra
.me
.line
= 1911;
12264 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___variable_create
;
12265 fra
.me
.has_broke
= 0;
12266 fra
.me
.REG_size
= 3;
12267 fra
.me
.nitni_local_ref_head
= NULL
;
12268 fra
.me
.REG
[0] = NIT_NULL
;
12269 fra
.me
.REG
[1] = NIT_NULL
;
12270 fra
.me
.REG
[2] = NIT_NULL
;
12271 fra
.me
.REG
[0] = p0
;
12272 fra
.me
.REG
[1] = p1
;
12273 /* syntax/typing.nit:1913 */
12274 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12275 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_assign(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12276 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12277 fra
.me
.REG
[0] = NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
12280 stack_frame_head
= fra
.me
.prev
;
12281 return fra
.me
.REG
[0];
12283 static const char LOCATE_syntax___typing___ACallAssignExpr___name
[] = "typing::ACallAssignExpr::(typing::ASendExpr::name)";
12284 val_t
syntax___typing___ACallAssignExpr___name(val_t p0
){
12285 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12288 static val_t once_value_1
; /* Once value */
12289 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12290 fra
.me
.file
= LOCATE_syntax___typing
;
12291 fra
.me
.line
= 1916;
12292 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___name
;
12293 fra
.me
.has_broke
= 0;
12294 fra
.me
.REG_size
= 2;
12295 fra
.me
.nitni_local_ref_head
= NULL
;
12296 fra
.me
.REG
[0] = NIT_NULL
;
12297 fra
.me
.REG
[1] = NIT_NULL
;
12298 fra
.me
.REG
[0] = p0
;
12299 /* syntax/typing.nit:1916 */
12300 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12301 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12302 if (!once_value_1
) {
12303 fra
.me
.REG
[1] = BOX_NativeString("=");
12304 REGB0
= TAG_Int(1);
12305 fra
.me
.REG
[1] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
12306 once_value_1
= fra
.me
.REG
[1];
12307 register_static_object(&once_value_1
);
12308 } else fra
.me
.REG
[1] = once_value_1
;
12309 fra
.me
.REG
[1] = fra
.me
.REG
[1];
12310 fra
.me
.REG
[1] = CALL_standard___string___String_____plus(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12311 fra
.me
.REG
[1] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12314 stack_frame_head
= fra
.me
.prev
;
12315 return fra
.me
.REG
[1];
12317 static const char LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments
[] = "typing::ACallAssignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12318 val_t
syntax___typing___ACallAssignExpr___compute_raw_arguments(val_t p0
){
12319 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12321 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12322 fra
.me
.file
= LOCATE_syntax___typing
;
12323 fra
.me
.line
= 1917;
12324 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments
;
12325 fra
.me
.has_broke
= 0;
12326 fra
.me
.REG_size
= 2;
12327 fra
.me
.nitni_local_ref_head
= NULL
;
12328 fra
.me
.REG
[0] = NIT_NULL
;
12329 fra
.me
.REG
[1] = NIT_NULL
;
12330 fra
.me
.REG
[0] = p0
;
12331 /* syntax/typing.nit:1918 */
12332 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12333 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12334 /* syntax/typing.nit:1919 */
12335 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12336 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12337 /* syntax/typing.nit:1920 */
12340 stack_frame_head
= fra
.me
.prev
;
12341 return fra
.me
.REG
[1];
12343 static const char LOCATE_syntax___typing___ACallReassignExpr___variable_create
[] = "typing::ACallReassignExpr::(typing::ACallFormExpr::variable_create)";
12344 val_t
syntax___typing___ACallReassignExpr___variable_create(val_t p0
, val_t p1
){
12345 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12347 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12348 fra
.me
.file
= LOCATE_syntax___typing
;
12349 fra
.me
.line
= 1925;
12350 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___variable_create
;
12351 fra
.me
.has_broke
= 0;
12352 fra
.me
.REG_size
= 3;
12353 fra
.me
.nitni_local_ref_head
= NULL
;
12354 fra
.me
.REG
[0] = NIT_NULL
;
12355 fra
.me
.REG
[1] = NIT_NULL
;
12356 fra
.me
.REG
[2] = NIT_NULL
;
12357 fra
.me
.REG
[0] = p0
;
12358 fra
.me
.REG
[1] = p1
;
12359 /* syntax/typing.nit:1927 */
12360 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12361 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12362 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12363 fra
.me
.REG
[0] = NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
12366 stack_frame_head
= fra
.me
.prev
;
12367 return fra
.me
.REG
[0];
12369 static const char LOCATE_syntax___typing___ACallReassignExpr___name
[] = "typing::ACallReassignExpr::(typing::ASendExpr::name)";
12370 val_t
syntax___typing___ACallReassignExpr___name(val_t p0
){
12371 struct {struct stack_frame_t me
;} fra
;
12373 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12374 fra
.me
.file
= LOCATE_syntax___typing
;
12375 fra
.me
.line
= 1930;
12376 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___name
;
12377 fra
.me
.has_broke
= 0;
12378 fra
.me
.REG_size
= 1;
12379 fra
.me
.nitni_local_ref_head
= NULL
;
12380 fra
.me
.REG
[0] = NIT_NULL
;
12381 fra
.me
.REG
[0] = p0
;
12382 /* syntax/typing.nit:1930 */
12383 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12384 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12387 stack_frame_head
= fra
.me
.prev
;
12388 return fra
.me
.REG
[0];
12390 static const char LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments
[] = "typing::ACallReassignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12391 val_t
syntax___typing___ACallReassignExpr___compute_raw_arguments(val_t p0
){
12392 struct {struct stack_frame_t me
;} fra
;
12394 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12395 fra
.me
.file
= LOCATE_syntax___typing
;
12396 fra
.me
.line
= 1931;
12397 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments
;
12398 fra
.me
.has_broke
= 0;
12399 fra
.me
.REG_size
= 1;
12400 fra
.me
.nitni_local_ref_head
= NULL
;
12401 fra
.me
.REG
[0] = NIT_NULL
;
12402 fra
.me
.REG
[0] = p0
;
12403 /* syntax/typing.nit:1931 */
12404 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12405 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12408 stack_frame_head
= fra
.me
.prev
;
12409 return fra
.me
.REG
[0];
12411 static const char LOCATE_syntax___typing___ABraExpr___name
[] = "typing::ABraExpr::(typing::ASendExpr::name)";
12412 val_t
syntax___typing___ABraExpr___name(val_t p0
){
12413 struct {struct stack_frame_t me
;} fra
;
12416 static val_t once_value_1
; /* Once value */
12417 static val_t once_value_2
; /* Once value */
12418 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12419 fra
.me
.file
= LOCATE_syntax___typing
;
12420 fra
.me
.line
= 1935;
12421 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___name
;
12422 fra
.me
.has_broke
= 0;
12423 fra
.me
.REG_size
= 1;
12424 fra
.me
.nitni_local_ref_head
= NULL
;
12425 fra
.me
.REG
[0] = NIT_NULL
;
12426 fra
.me
.REG
[0] = p0
;
12427 /* syntax/typing.nit:1935 */
12428 if (!once_value_1
) {
12429 if (!once_value_2
) {
12430 fra
.me
.REG
[0] = BOX_NativeString("[]");
12431 REGB0
= TAG_Int(2);
12432 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
12433 once_value_2
= fra
.me
.REG
[0];
12434 register_static_object(&once_value_2
);
12435 } else fra
.me
.REG
[0] = once_value_2
;
12436 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12437 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12438 once_value_1
= fra
.me
.REG
[0];
12439 register_static_object(&once_value_1
);
12440 } else fra
.me
.REG
[0] = once_value_1
;
12441 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12444 stack_frame_head
= fra
.me
.prev
;
12445 return fra
.me
.REG
[0];
12447 static const char LOCATE_syntax___typing___ABraExpr___compute_raw_arguments
[] = "typing::ABraExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12448 val_t
syntax___typing___ABraExpr___compute_raw_arguments(val_t p0
){
12449 struct {struct stack_frame_t me
;} fra
;
12451 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12452 fra
.me
.file
= LOCATE_syntax___typing
;
12453 fra
.me
.line
= 1936;
12454 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___compute_raw_arguments
;
12455 fra
.me
.has_broke
= 0;
12456 fra
.me
.REG_size
= 1;
12457 fra
.me
.nitni_local_ref_head
= NULL
;
12458 fra
.me
.REG
[0] = NIT_NULL
;
12459 fra
.me
.REG
[0] = p0
;
12460 /* syntax/typing.nit:1936 */
12461 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12462 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12465 stack_frame_head
= fra
.me
.prev
;
12466 return fra
.me
.REG
[0];
12468 static const char LOCATE_syntax___typing___ABraExpr___closure_defs
[] = "typing::ABraExpr::(syntax_base::ASendExpr::closure_defs)";
12469 val_t
syntax___typing___ABraExpr___closure_defs(val_t p0
){
12470 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12473 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12474 fra
.me
.file
= LOCATE_syntax___typing
;
12475 fra
.me
.line
= 1937;
12476 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___closure_defs
;
12477 fra
.me
.has_broke
= 0;
12478 fra
.me
.REG_size
= 2;
12479 fra
.me
.nitni_local_ref_head
= NULL
;
12480 fra
.me
.REG
[0] = NIT_NULL
;
12481 fra
.me
.REG
[1] = NIT_NULL
;
12482 fra
.me
.REG
[0] = p0
;
12483 /* syntax/typing.nit:1939 */
12484 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12485 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12486 if (UNTAG_Bool(REGB0
)) {
12487 /* syntax/typing.nit:1940 */
12488 fra
.me
.REG
[1] = NIT_NULL
;
12491 /* syntax/typing.nit:1942 */
12492 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12493 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12494 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12498 stack_frame_head
= fra
.me
.prev
;
12499 return fra
.me
.REG
[1];
12501 static const char LOCATE_syntax___typing___ABraAssignExpr___name
[] = "typing::ABraAssignExpr::(typing::ASendExpr::name)";
12502 val_t
syntax___typing___ABraAssignExpr___name(val_t p0
){
12503 struct {struct stack_frame_t me
;} fra
;
12506 static val_t once_value_1
; /* Once value */
12507 static val_t once_value_2
; /* Once value */
12508 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12509 fra
.me
.file
= LOCATE_syntax___typing
;
12510 fra
.me
.line
= 1948;
12511 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___name
;
12512 fra
.me
.has_broke
= 0;
12513 fra
.me
.REG_size
= 1;
12514 fra
.me
.nitni_local_ref_head
= NULL
;
12515 fra
.me
.REG
[0] = NIT_NULL
;
12516 fra
.me
.REG
[0] = p0
;
12517 /* syntax/typing.nit:1948 */
12518 if (!once_value_1
) {
12519 if (!once_value_2
) {
12520 fra
.me
.REG
[0] = BOX_NativeString("[]=");
12521 REGB0
= TAG_Int(3);
12522 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
12523 once_value_2
= fra
.me
.REG
[0];
12524 register_static_object(&once_value_2
);
12525 } else fra
.me
.REG
[0] = once_value_2
;
12526 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12527 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12528 once_value_1
= fra
.me
.REG
[0];
12529 register_static_object(&once_value_1
);
12530 } else fra
.me
.REG
[0] = once_value_1
;
12531 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12534 stack_frame_head
= fra
.me
.prev
;
12535 return fra
.me
.REG
[0];
12537 static const char LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments
[] = "typing::ABraAssignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12538 val_t
syntax___typing___ABraAssignExpr___compute_raw_arguments(val_t p0
){
12539 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12541 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12542 fra
.me
.file
= LOCATE_syntax___typing
;
12543 fra
.me
.line
= 1949;
12544 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments
;
12545 fra
.me
.has_broke
= 0;
12546 fra
.me
.REG_size
= 2;
12547 fra
.me
.nitni_local_ref_head
= NULL
;
12548 fra
.me
.REG
[0] = NIT_NULL
;
12549 fra
.me
.REG
[1] = NIT_NULL
;
12550 fra
.me
.REG
[0] = p0
;
12551 /* syntax/typing.nit:1950 */
12552 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12553 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12554 /* syntax/typing.nit:1951 */
12555 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12556 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12557 /* syntax/typing.nit:1952 */
12560 stack_frame_head
= fra
.me
.prev
;
12561 return fra
.me
.REG
[1];
12563 static const char LOCATE_syntax___typing___ABraReassignExpr___name
[] = "typing::ABraReassignExpr::(typing::ASendExpr::name)";
12564 val_t
syntax___typing___ABraReassignExpr___name(val_t p0
){
12565 struct {struct stack_frame_t me
;} fra
;
12568 static val_t once_value_1
; /* Once value */
12569 static val_t once_value_2
; /* Once value */
12570 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12571 fra
.me
.file
= LOCATE_syntax___typing
;
12572 fra
.me
.line
= 1957;
12573 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___name
;
12574 fra
.me
.has_broke
= 0;
12575 fra
.me
.REG_size
= 1;
12576 fra
.me
.nitni_local_ref_head
= NULL
;
12577 fra
.me
.REG
[0] = NIT_NULL
;
12578 fra
.me
.REG
[0] = p0
;
12579 /* syntax/typing.nit:1957 */
12580 if (!once_value_1
) {
12581 if (!once_value_2
) {
12582 fra
.me
.REG
[0] = BOX_NativeString("[]");
12583 REGB0
= TAG_Int(2);
12584 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
12585 once_value_2
= fra
.me
.REG
[0];
12586 register_static_object(&once_value_2
);
12587 } else fra
.me
.REG
[0] = once_value_2
;
12588 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12589 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12590 once_value_1
= fra
.me
.REG
[0];
12591 register_static_object(&once_value_1
);
12592 } else fra
.me
.REG
[0] = once_value_1
;
12593 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12596 stack_frame_head
= fra
.me
.prev
;
12597 return fra
.me
.REG
[0];
12599 static const char LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments
[] = "typing::ABraReassignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12600 val_t
syntax___typing___ABraReassignExpr___compute_raw_arguments(val_t p0
){
12601 struct {struct stack_frame_t me
;} fra
;
12603 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12604 fra
.me
.file
= LOCATE_syntax___typing
;
12605 fra
.me
.line
= 1958;
12606 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments
;
12607 fra
.me
.has_broke
= 0;
12608 fra
.me
.REG_size
= 1;
12609 fra
.me
.nitni_local_ref_head
= NULL
;
12610 fra
.me
.REG
[0] = NIT_NULL
;
12611 fra
.me
.REG
[0] = p0
;
12612 /* syntax/typing.nit:1958 */
12613 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12614 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12617 stack_frame_head
= fra
.me
.prev
;
12618 return fra
.me
.REG
[0];
12620 static const char LOCATE_syntax___typing___AInitExpr___name
[] = "typing::AInitExpr::(typing::ASendExpr::name)";
12621 val_t
syntax___typing___AInitExpr___name(val_t p0
){
12622 struct {struct stack_frame_t me
;} fra
;
12625 static val_t once_value_1
; /* Once value */
12626 static val_t once_value_2
; /* Once value */
12627 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12628 fra
.me
.file
= LOCATE_syntax___typing
;
12629 fra
.me
.line
= 1962;
12630 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___name
;
12631 fra
.me
.has_broke
= 0;
12632 fra
.me
.REG_size
= 1;
12633 fra
.me
.nitni_local_ref_head
= NULL
;
12634 fra
.me
.REG
[0] = NIT_NULL
;
12635 fra
.me
.REG
[0] = p0
;
12636 /* syntax/typing.nit:1962 */
12637 if (!once_value_1
) {
12638 if (!once_value_2
) {
12639 fra
.me
.REG
[0] = BOX_NativeString("init");
12640 REGB0
= TAG_Int(4);
12641 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
12642 once_value_2
= fra
.me
.REG
[0];
12643 register_static_object(&once_value_2
);
12644 } else fra
.me
.REG
[0] = once_value_2
;
12645 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12646 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12647 once_value_1
= fra
.me
.REG
[0];
12648 register_static_object(&once_value_1
);
12649 } else fra
.me
.REG
[0] = once_value_1
;
12650 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12653 stack_frame_head
= fra
.me
.prev
;
12654 return fra
.me
.REG
[0];
12656 static const char LOCATE_syntax___typing___AInitExpr___compute_raw_arguments
[] = "typing::AInitExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12657 val_t
syntax___typing___AInitExpr___compute_raw_arguments(val_t p0
){
12658 struct {struct stack_frame_t me
;} fra
;
12660 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12661 fra
.me
.file
= LOCATE_syntax___typing
;
12662 fra
.me
.line
= 1963;
12663 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___compute_raw_arguments
;
12664 fra
.me
.has_broke
= 0;
12665 fra
.me
.REG_size
= 1;
12666 fra
.me
.nitni_local_ref_head
= NULL
;
12667 fra
.me
.REG
[0] = NIT_NULL
;
12668 fra
.me
.REG
[0] = p0
;
12669 /* syntax/typing.nit:1963 */
12670 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12671 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12674 stack_frame_head
= fra
.me
.prev
;
12675 return fra
.me
.REG
[0];
12677 static const char LOCATE_syntax___typing___AClosureCallExpr___variable
[] = "typing::AClosureCallExpr::(syntax_base::AClosureCallExpr::variable)";
12678 val_t
syntax___typing___AClosureCallExpr___variable(val_t p0
){
12679 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12682 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12683 fra
.me
.file
= LOCATE_syntax___typing
;
12684 fra
.me
.line
= 1968;
12685 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___variable
;
12686 fra
.me
.has_broke
= 0;
12687 fra
.me
.REG_size
= 2;
12688 fra
.me
.nitni_local_ref_head
= NULL
;
12689 fra
.me
.REG
[0] = NIT_NULL
;
12690 fra
.me
.REG
[1] = NIT_NULL
;
12691 fra
.me
.REG
[0] = p0
;
12692 /* syntax/typing.nit:1968 */
12693 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12694 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[1]);
12695 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12696 if (UNTAG_Bool(REGB0
)) {
12698 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1968);
12702 stack_frame_head
= fra
.me
.prev
;
12703 return fra
.me
.REG
[1];
12705 static const char LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments
[] = "typing::AClosureCallExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12706 val_t
syntax___typing___AClosureCallExpr___compute_raw_arguments(val_t p0
){
12707 struct {struct stack_frame_t me
;} fra
;
12709 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12710 fra
.me
.file
= LOCATE_syntax___typing
;
12711 fra
.me
.line
= 1969;
12712 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments
;
12713 fra
.me
.has_broke
= 0;
12714 fra
.me
.REG_size
= 1;
12715 fra
.me
.nitni_local_ref_head
= NULL
;
12716 fra
.me
.REG
[0] = NIT_NULL
;
12717 fra
.me
.REG
[0] = p0
;
12718 /* syntax/typing.nit:1969 */
12719 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AClosureCallExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12720 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12723 stack_frame_head
= fra
.me
.prev
;
12724 return fra
.me
.REG
[0];
12726 static const char LOCATE_syntax___typing___AClosureCallExpr___after_typing
[] = "typing::AClosureCallExpr::(typing::ANode::after_typing)";
12727 void syntax___typing___AClosureCallExpr___after_typing(val_t p0
, val_t p1
){
12728 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12732 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12733 fra
.me
.file
= LOCATE_syntax___typing
;
12734 fra
.me
.line
= 1971;
12735 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___after_typing
;
12736 fra
.me
.has_broke
= 0;
12737 fra
.me
.REG_size
= 5;
12738 fra
.me
.nitni_local_ref_head
= NULL
;
12739 fra
.me
.REG
[0] = NIT_NULL
;
12740 fra
.me
.REG
[1] = NIT_NULL
;
12741 fra
.me
.REG
[2] = NIT_NULL
;
12742 fra
.me
.REG
[3] = NIT_NULL
;
12743 fra
.me
.REG
[4] = NIT_NULL
;
12744 fra
.me
.REG
[0] = p0
;
12745 fra
.me
.REG
[1] = p1
;
12746 /* syntax/typing.nit:1973 */
12747 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12748 /* syntax/typing.nit:1974 */
12749 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12750 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12751 if (UNTAG_Bool(REGB0
)) {
12752 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12754 /* syntax/typing.nit:1975 */
12755 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12756 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12757 /* syntax/typing.nit:1976 */
12758 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12759 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12760 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12761 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]);
12762 /* syntax/typing.nit:1977 */
12763 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12764 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12765 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
12766 if (UNTAG_Bool(REGB1
)) {
12767 /* syntax/typing.nit:1978 */
12768 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12769 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12770 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12771 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12772 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]);
12774 /* syntax/typing.nit:1980 */
12775 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12776 if (UNTAG_Bool(REGB0
)) {
12779 /* syntax/typing.nit:1981 */
12780 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12781 /* syntax/typing.nit:1982 */
12782 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12783 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12784 /* syntax/typing.nit:1983 */
12785 REGB0
= TAG_Bool(1);
12786 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12788 stack_frame_head
= fra
.me
.prev
;
12791 static const char LOCATE_syntax___typing___AClosureId___to_symbol
[] = "typing::AClosureId::to_symbol";
12792 val_t
syntax___typing___AClosureId___to_symbol(val_t p0
){
12793 struct {struct stack_frame_t me
;} fra
;
12795 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12796 fra
.me
.file
= LOCATE_syntax___typing
;
12797 fra
.me
.line
= 1988;
12798 fra
.me
.meth
= LOCATE_syntax___typing___AClosureId___to_symbol
;
12799 fra
.me
.has_broke
= 0;
12800 fra
.me
.REG_size
= 0;
12801 fra
.me
.nitni_local_ref_head
= NULL
;
12802 /* syntax/typing.nit:1988 */
12803 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1988);
12804 stack_frame_head
= fra
.me
.prev
;
12807 static const char LOCATE_syntax___typing___ASimpleClosureId___to_symbol
[] = "typing::ASimpleClosureId::(typing::AClosureId::to_symbol)";
12808 val_t
syntax___typing___ASimpleClosureId___to_symbol(val_t p0
){
12809 struct {struct stack_frame_t me
;} fra
;
12811 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12812 fra
.me
.file
= LOCATE_syntax___typing
;
12813 fra
.me
.line
= 1991;
12814 fra
.me
.meth
= LOCATE_syntax___typing___ASimpleClosureId___to_symbol
;
12815 fra
.me
.has_broke
= 0;
12816 fra
.me
.REG_size
= 1;
12817 fra
.me
.nitni_local_ref_head
= NULL
;
12818 fra
.me
.REG
[0] = NIT_NULL
;
12819 fra
.me
.REG
[0] = p0
;
12820 /* syntax/typing.nit:1991 */
12821 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASimpleClosureId___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12822 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12825 stack_frame_head
= fra
.me
.prev
;
12826 return fra
.me
.REG
[0];
12828 static const char LOCATE_syntax___typing___ABreakClosureId___to_symbol
[] = "typing::ABreakClosureId::(typing::AClosureId::to_symbol)";
12829 val_t
syntax___typing___ABreakClosureId___to_symbol(val_t p0
){
12830 struct {struct stack_frame_t me
;} fra
;
12832 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12833 fra
.me
.file
= LOCATE_syntax___typing
;
12834 fra
.me
.line
= 1994;
12835 fra
.me
.meth
= LOCATE_syntax___typing___ABreakClosureId___to_symbol
;
12836 fra
.me
.has_broke
= 0;
12837 fra
.me
.REG_size
= 1;
12838 fra
.me
.nitni_local_ref_head
= NULL
;
12839 fra
.me
.REG
[0] = NIT_NULL
;
12840 fra
.me
.REG
[0] = p0
;
12841 /* syntax/typing.nit:1994 */
12842 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12843 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12846 stack_frame_head
= fra
.me
.prev
;
12847 return fra
.me
.REG
[0];
12849 static const char LOCATE_syntax___typing___AClosureDef___closure
[] = "typing::AClosureDef::(syntax_base::AClosureDef::closure)";
12850 val_t
syntax___typing___AClosureDef___closure(val_t p0
){
12851 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12854 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12855 fra
.me
.file
= LOCATE_syntax___typing
;
12856 fra
.me
.line
= 1999;
12857 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___closure
;
12858 fra
.me
.has_broke
= 0;
12859 fra
.me
.REG_size
= 2;
12860 fra
.me
.nitni_local_ref_head
= NULL
;
12861 fra
.me
.REG
[0] = NIT_NULL
;
12862 fra
.me
.REG
[1] = NIT_NULL
;
12863 fra
.me
.REG
[0] = p0
;
12864 /* syntax/typing.nit:1999 */
12865 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12866 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[1]);
12867 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12868 if (UNTAG_Bool(REGB0
)) {
12870 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1999);
12874 stack_frame_head
= fra
.me
.prev
;
12875 return fra
.me
.REG
[1];
12877 static const char LOCATE_syntax___typing___AClosureDef___escapable
[] = "typing::AClosureDef::escapable";
12878 val_t
syntax___typing___AClosureDef___escapable(val_t p0
){
12879 struct {struct stack_frame_t me
;} fra
;
12881 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12882 fra
.me
.file
= LOCATE_syntax___typing
;
12883 fra
.me
.line
= 2001;
12884 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___escapable
;
12885 fra
.me
.has_broke
= 0;
12886 fra
.me
.REG_size
= 1;
12887 fra
.me
.nitni_local_ref_head
= NULL
;
12888 fra
.me
.REG
[0] = NIT_NULL
;
12889 fra
.me
.REG
[0] = p0
;
12890 /* syntax/typing.nit:2001 */
12891 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]);
12892 stack_frame_head
= fra
.me
.prev
;
12893 return fra
.me
.REG
[0];
12895 static const char LOCATE_syntax___typing___AClosureDef___accept_typing
[] = "typing::AClosureDef::(typing::ANode::accept_typing)";
12896 void syntax___typing___AClosureDef___accept_typing(val_t p0
, val_t p1
){
12897 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12900 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12901 fra
.me
.file
= LOCATE_syntax___typing
;
12902 fra
.me
.line
= 2005;
12903 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing
;
12904 fra
.me
.has_broke
= 0;
12905 fra
.me
.REG_size
= 3;
12906 fra
.me
.nitni_local_ref_head
= NULL
;
12907 fra
.me
.REG
[0] = NIT_NULL
;
12908 fra
.me
.REG
[1] = NIT_NULL
;
12909 fra
.me
.REG
[2] = NIT_NULL
;
12910 fra
.me
.REG
[0] = p0
;
12911 fra
.me
.REG
[1] = p1
;
12912 /* syntax/typing.nit:2005 */
12913 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12914 /* syntax/typing.nit:2008 */
12915 REGB0
= TAG_Bool(ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2])!=NIT_NULL
);
12916 if (UNTAG_Bool(REGB0
)) {
12918 nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_syntax___typing
, 2008);
12920 REGB0
= ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2]);
12921 if (UNTAG_Bool(REGB0
)) {
12922 CALL_SUPER_syntax___typing___AClosureDef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12924 stack_frame_head
= fra
.me
.prev
;
12927 static const char LOCATE_syntax___typing___AClosureDef___accept_typing2
[] = "typing::AClosureDef::accept_typing2";
12928 void syntax___typing___AClosureDef___accept_typing2(val_t p0
, val_t p1
, val_t p2
){
12929 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
12935 static val_t once_value_1
; /* Once value */
12936 static val_t once_value_2
; /* Once value */
12937 static val_t once_value_3
; /* Once value */
12938 static val_t once_value_6
; /* Once value */
12939 static val_t once_value_7
; /* Once value */
12940 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12941 fra
.me
.file
= LOCATE_syntax___typing
;
12942 fra
.me
.line
= 2011;
12943 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing2
;
12944 fra
.me
.has_broke
= 0;
12945 fra
.me
.REG_size
= 8;
12946 fra
.me
.nitni_local_ref_head
= NULL
;
12947 fra
.me
.REG
[0] = NIT_NULL
;
12948 fra
.me
.REG
[1] = NIT_NULL
;
12949 fra
.me
.REG
[2] = NIT_NULL
;
12950 fra
.me
.REG
[3] = NIT_NULL
;
12951 fra
.me
.REG
[4] = NIT_NULL
;
12952 fra
.me
.REG
[5] = NIT_NULL
;
12953 fra
.me
.REG
[6] = NIT_NULL
;
12954 fra
.me
.REG
[7] = NIT_NULL
;
12955 fra
.me
.REG
[0] = p0
;
12956 fra
.me
.REG
[1] = p1
;
12957 fra
.me
.REG
[2] = p2
;
12958 /* syntax/typing.nit:2013 */
12959 ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12960 /* syntax/typing.nit:2015 */
12961 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12962 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12963 /* syntax/typing.nit:2016 */
12964 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12965 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12966 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12967 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
12968 if (UNTAG_Bool(REGB2
)) {
12970 /* ../lib/standard/kernel.nit:237 */
12971 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
12972 /* syntax/typing.nit:2016 */
12975 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
12976 if (UNTAG_Bool(REGB2
)) {
12977 /* syntax/typing.nit:2017 */
12978 REGB2
= TAG_Int(5);
12979 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
12980 if (!once_value_1
) {
12981 fra
.me
.REG
[5] = BOX_NativeString("Error: ");
12982 REGB2
= TAG_Int(7);
12983 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB2
);
12984 once_value_1
= fra
.me
.REG
[5];
12985 register_static_object(&once_value_1
);
12986 } else fra
.me
.REG
[5] = once_value_1
;
12987 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12988 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12989 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12990 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
12991 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12992 if (!once_value_2
) {
12993 fra
.me
.REG
[5] = BOX_NativeString(" automatic variable names expected, ");
12994 REGB2
= TAG_Int(36);
12995 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB2
);
12996 once_value_2
= fra
.me
.REG
[5];
12997 register_static_object(&once_value_2
);
12998 } else fra
.me
.REG
[5] = once_value_2
;
12999 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13000 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13001 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13002 REGB2
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
13003 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
13004 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13005 if (!once_value_3
) {
13006 fra
.me
.REG
[5] = BOX_NativeString(" found.");
13007 REGB2
= TAG_Int(7);
13008 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB2
);
13009 once_value_3
= fra
.me
.REG
[5];
13010 register_static_object(&once_value_3
);
13011 } else fra
.me
.REG
[5] = once_value_3
;
13012 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13013 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13014 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13015 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13016 /* syntax/typing.nit:2018 */
13019 /* syntax/typing.nit:2021 */
13020 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13021 ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13022 /* syntax/typing.nit:2023 */
13023 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13024 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
13025 /* syntax/typing.nit:2024 */
13026 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13027 /* syntax/typing.nit:2025 */
13028 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13029 /* syntax/typing.nit:2026 */
13030 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13031 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
13032 /* syntax/typing.nit:2027 */
13033 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
13034 CALL_syntax___syntax_base___AClosureDef___variables__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
13035 /* syntax/typing.nit:2028 */
13036 REGB2
= TAG_Int(0);
13037 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13038 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
13039 /* ../lib/standard/kernel.nit:404 */
13041 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
13042 if (UNTAG_Bool(REGB0
)) {
13044 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
13046 /* ../lib/standard/kernel.nit:242 */
13047 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
13048 /* ../lib/standard/kernel.nit:404 */
13049 if (UNTAG_Bool(REGB0
)) {
13050 /* syntax/typing.nit:2028 */
13052 /* syntax/typing.nit:2029 */
13053 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13054 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
13055 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
13056 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13057 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
13058 fra
.me
.REG
[7] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
13059 /* syntax/typing.nit:2030 */
13060 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13061 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
13062 if (UNTAG_Bool(REGB3
)) {
13063 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 2030);
13065 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
13066 /* syntax/typing.nit:2031 */
13067 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13068 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
13069 /* syntax/typing.nit:2032 */
13070 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13071 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
13072 /* ../lib/standard/kernel.nit:406 */
13073 REGB0
= TAG_Int(1);
13074 /* ../lib/standard/kernel.nit:245 */
13075 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
13076 /* ../lib/standard/kernel.nit:406 */
13079 /* ../lib/standard/kernel.nit:404 */
13084 /* syntax/typing.nit:2035 */
13085 REGB2
= TAG_Bool(1);
13086 ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[0]) = REGB2
;
13087 /* syntax/typing.nit:2036 */
13088 CALL_syntax___typing___ANode___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
13089 /* syntax/typing.nit:2038 */
13090 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13091 REGB2
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13092 REGB1
= TAG_Bool(0);
13093 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
13094 if (UNTAG_Bool(REGB0
)) {
13096 /* ../lib/standard/kernel.nit:199 */
13097 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
13098 /* syntax/typing.nit:2038 */
13101 if (UNTAG_Bool(REGB0
)) {
13102 /* syntax/typing.nit:2039 */
13103 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13104 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13105 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13106 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13107 if (UNTAG_Bool(REGB0
)) {
13109 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13110 if (UNTAG_Bool(REGB1
)) {
13111 REGB1
= TAG_Bool(0);
13114 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13118 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13119 if (UNTAG_Bool(REGB0
)) {
13120 /* syntax/typing.nit:2040 */
13121 if (!once_value_6
) {
13122 fra
.me
.REG
[3] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
13123 REGB0
= TAG_Int(77);
13124 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13125 once_value_6
= fra
.me
.REG
[3];
13126 register_static_object(&once_value_6
);
13127 } else fra
.me
.REG
[3] = once_value_6
;
13128 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13129 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
13131 /* syntax/typing.nit:2041 */
13132 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13133 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13134 if (UNTAG_Bool(REGB0
)) {
13135 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13136 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
13137 if (UNTAG_Bool(REGB0
)) {
13139 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
13140 if (UNTAG_Bool(REGB1
)) {
13141 REGB1
= TAG_Bool(0);
13144 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
13148 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13150 REGB1
= TAG_Bool(0);
13153 if (UNTAG_Bool(REGB0
)) {
13154 /* syntax/typing.nit:2042 */
13155 if (!once_value_7
) {
13156 fra
.me
.REG
[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
13157 REGB0
= TAG_Int(80);
13158 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
13159 once_value_7
= fra
.me
.REG
[2];
13160 register_static_object(&once_value_7
);
13161 } else fra
.me
.REG
[2] = once_value_7
;
13162 fra
.me
.REG
[2] = fra
.me
.REG
[2];
13163 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
13167 /* syntax/typing.nit:2045 */
13168 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
13169 /* syntax/typing.nit:2046 */
13170 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
13171 /* syntax/typing.nit:2047 */
13172 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13173 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13175 stack_frame_head
= fra
.me
.prev
;
13178 static const char LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast
[] = "typing::ATypeCheckExpr::check_expr_cast";
13179 void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
13180 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
13184 static val_t once_value_2
; /* Once value */
13185 static val_t once_value_3
; /* Once value */
13186 static val_t once_value_4
; /* Once value */
13187 static val_t once_value_5
; /* Once value */
13188 static val_t once_value_6
; /* Once value */
13189 static val_t once_value_7
; /* Once value */
13190 static val_t once_value_8
; /* Once value */
13191 static val_t once_value_9
; /* Once value */
13192 static val_t once_value_10
; /* Once value */
13193 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13194 fra
.me
.file
= LOCATE_syntax___typing
;
13195 fra
.me
.line
= 2053;
13196 fra
.me
.meth
= LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast
;
13197 fra
.me
.has_broke
= 0;
13198 fra
.me
.REG_size
= 6;
13199 fra
.me
.nitni_local_ref_head
= NULL
;
13200 fra
.me
.REG
[0] = NIT_NULL
;
13201 fra
.me
.REG
[1] = NIT_NULL
;
13202 fra
.me
.REG
[2] = NIT_NULL
;
13203 fra
.me
.REG
[3] = NIT_NULL
;
13204 fra
.me
.REG
[4] = NIT_NULL
;
13205 fra
.me
.REG
[5] = NIT_NULL
;
13206 fra
.me
.REG
[0] = p0
;
13207 fra
.me
.REG
[1] = p1
;
13208 fra
.me
.REG
[2] = p2
;
13209 fra
.me
.REG
[3] = p3
;
13210 /* syntax/typing.nit:2055 */
13211 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13212 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13213 if (UNTAG_Bool(REGB0
)) {
13216 /* syntax/typing.nit:2056 */
13217 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13218 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13219 if (UNTAG_Bool(REGB0
)) {
13222 /* syntax/typing.nit:2057 */
13223 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13224 /* syntax/typing.nit:2058 */
13225 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13226 /* syntax/typing.nit:2059 */
13227 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13228 if (UNTAG_Bool(REGB0
)) {
13230 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13233 if (UNTAG_Bool(REGB0
)) {
13234 /* syntax/typing.nit:2060 */
13235 REGB0
= TAG_Int(3);
13236 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13237 if (!once_value_2
) {
13238 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
13239 REGB0
= TAG_Int(33);
13240 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
13241 once_value_2
= fra
.me
.REG
[5];
13242 register_static_object(&once_value_2
);
13243 } else fra
.me
.REG
[5] = once_value_2
;
13244 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13245 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13246 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13247 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13248 if (!once_value_3
) {
13249 fra
.me
.REG
[5] = BOX_NativeString(".");
13250 REGB0
= TAG_Int(1);
13251 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
13252 once_value_3
= fra
.me
.REG
[5];
13253 register_static_object(&once_value_3
);
13254 } else fra
.me
.REG
[5] = once_value_3
;
13255 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13257 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13258 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13260 /* syntax/typing.nit:2061 */
13261 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13262 if (UNTAG_Bool(REGB0
)) {
13263 /* syntax/typing.nit:2062 */
13264 REGB0
= CALL_metamodel___type_formal___MMType___has_formal(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13265 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13266 if (UNTAG_Bool(REGB0
)) {
13267 REGB0
= CALL_metamodel___type_formal___MMType___has_formal(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13268 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13270 REGB1
= TAG_Bool(0);
13273 if (UNTAG_Bool(REGB0
)) {
13274 /* syntax/typing.nit:2064 */
13275 REGB0
= TAG_Int(5);
13276 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13277 if (!once_value_4
) {
13278 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
13279 REGB0
= TAG_Int(33);
13280 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
13281 once_value_4
= fra
.me
.REG
[5];
13282 register_static_object(&once_value_4
);
13283 } else fra
.me
.REG
[5] = once_value_4
;
13284 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13285 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13286 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13287 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13288 if (!once_value_5
) {
13289 fra
.me
.REG
[5] = BOX_NativeString(" since it is a ");
13290 REGB0
= TAG_Int(15);
13291 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
13292 once_value_5
= fra
.me
.REG
[5];
13293 register_static_object(&once_value_5
);
13294 } else fra
.me
.REG
[5] = once_value_5
;
13295 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13296 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13297 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13298 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13299 if (!once_value_6
) {
13300 fra
.me
.REG
[5] = BOX_NativeString(".");
13301 REGB0
= TAG_Int(1);
13302 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
13303 once_value_6
= fra
.me
.REG
[5];
13304 register_static_object(&once_value_6
);
13305 } else fra
.me
.REG
[5] = once_value_6
;
13306 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13307 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13308 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13309 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13312 /* syntax/typing.nit:2066 */
13313 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
13314 if (UNTAG_Bool(REGB0
)) {
13315 /* syntax/typing.nit:2068 */
13316 REGB0
= TAG_Int(3);
13317 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13318 if (!once_value_7
) {
13319 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is null therefore cannot be a ");
13320 REGB0
= TAG_Int(50);
13321 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
13322 once_value_7
= fra
.me
.REG
[5];
13323 register_static_object(&once_value_7
);
13324 } else fra
.me
.REG
[5] = once_value_7
;
13325 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13326 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13327 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13328 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13329 if (!once_value_8
) {
13330 fra
.me
.REG
[5] = BOX_NativeString(".");
13331 REGB0
= TAG_Int(1);
13332 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
13333 once_value_8
= fra
.me
.REG
[5];
13334 register_static_object(&once_value_8
);
13335 } else fra
.me
.REG
[5] = once_value_8
;
13336 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13337 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13338 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13339 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13341 /* syntax/typing.nit:2069 */
13342 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13343 if (UNTAG_Bool(REGB0
)) {
13344 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13345 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13346 if (UNTAG_Bool(REGB0
)) {
13348 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13352 REGB1
= TAG_Bool(0);
13355 if (UNTAG_Bool(REGB0
)) {
13356 /* syntax/typing.nit:2070 */
13357 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___type_formal___MMTypeFormal
, ID_metamodel___type_formal___MMTypeFormal
)) /*cast MMTypeFormal*/;
13358 if (UNTAG_Bool(REGB0
)) {
13359 fra
.me
.REG
[3] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13360 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13362 REGB1
= TAG_Bool(0);
13365 if (UNTAG_Bool(REGB0
)) {
13367 /* syntax/typing.nit:2076 */
13368 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AIsaExpr
, ID_parser___parser_nodes___AIsaExpr
)) /*cast AIsaExpr*/;
13369 if (UNTAG_Bool(REGB0
)) {
13370 /* syntax/typing.nit:2077 */
13371 if (!once_value_9
) {
13372 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '!= null'.");
13373 REGB0
= TAG_Int(26);
13374 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13375 once_value_9
= fra
.me
.REG
[3];
13376 register_static_object(&once_value_9
);
13377 } else fra
.me
.REG
[3] = once_value_9
;
13378 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13379 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
13381 /* syntax/typing.nit:2079 */
13382 if (!once_value_10
) {
13383 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
13384 REGB0
= TAG_Int(32);
13385 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13386 once_value_10
= fra
.me
.REG
[3];
13387 register_static_object(&once_value_10
);
13388 } else fra
.me
.REG
[3] = once_value_10
;
13389 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13390 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
13398 stack_frame_head
= fra
.me
.prev
;
13401 static const char LOCATE_syntax___typing___AIsaExpr___after_typing
[] = "typing::AIsaExpr::(typing::ANode::after_typing)";
13402 void syntax___typing___AIsaExpr___after_typing(val_t p0
, val_t p1
){
13403 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13407 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13408 fra
.me
.file
= LOCATE_syntax___typing
;
13409 fra
.me
.line
= 2087;
13410 fra
.me
.meth
= LOCATE_syntax___typing___AIsaExpr___after_typing
;
13411 fra
.me
.has_broke
= 0;
13412 fra
.me
.REG_size
= 5;
13413 fra
.me
.nitni_local_ref_head
= NULL
;
13414 fra
.me
.REG
[0] = NIT_NULL
;
13415 fra
.me
.REG
[1] = NIT_NULL
;
13416 fra
.me
.REG
[2] = NIT_NULL
;
13417 fra
.me
.REG
[3] = NIT_NULL
;
13418 fra
.me
.REG
[4] = NIT_NULL
;
13419 fra
.me
.REG
[0] = p0
;
13420 fra
.me
.REG
[1] = p1
;
13421 /* syntax/typing.nit:2089 */
13422 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13423 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13424 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]);
13425 /* syntax/typing.nit:2090 */
13426 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13427 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13428 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13429 if (UNTAG_Bool(REGB0
)) {
13432 /* syntax/typing.nit:2091 */
13433 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13434 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13435 /* syntax/typing.nit:2092 */
13436 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13437 if (UNTAG_Bool(REGB0
)) {
13439 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13440 if (UNTAG_Bool(REGB1
)) {
13441 REGB1
= TAG_Bool(0);
13444 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13448 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13449 if (UNTAG_Bool(REGB0
)) {
13450 /* syntax/typing.nit:2093 */
13451 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13452 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13453 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13454 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]);
13455 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13457 /* syntax/typing.nit:2095 */
13458 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13459 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13460 /* syntax/typing.nit:2096 */
13461 REGB0
= TAG_Bool(1);
13462 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13464 stack_frame_head
= fra
.me
.prev
;
13467 static const char LOCATE_syntax___typing___AAsCastExpr___after_typing
[] = "typing::AAsCastExpr::(typing::ANode::after_typing)";
13468 void syntax___typing___AAsCastExpr___after_typing(val_t p0
, val_t p1
){
13469 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
13473 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13474 fra
.me
.file
= LOCATE_syntax___typing
;
13475 fra
.me
.line
= 2102;
13476 fra
.me
.meth
= LOCATE_syntax___typing___AAsCastExpr___after_typing
;
13477 fra
.me
.has_broke
= 0;
13478 fra
.me
.REG_size
= 4;
13479 fra
.me
.nitni_local_ref_head
= NULL
;
13480 fra
.me
.REG
[0] = NIT_NULL
;
13481 fra
.me
.REG
[1] = NIT_NULL
;
13482 fra
.me
.REG
[2] = NIT_NULL
;
13483 fra
.me
.REG
[3] = NIT_NULL
;
13484 fra
.me
.REG
[0] = p0
;
13485 fra
.me
.REG
[1] = p1
;
13486 /* syntax/typing.nit:2104 */
13487 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13488 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13489 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]);
13490 /* syntax/typing.nit:2105 */
13491 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13492 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13493 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13494 if (UNTAG_Bool(REGB0
)) {
13497 /* syntax/typing.nit:2106 */
13498 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13499 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13500 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
13501 /* syntax/typing.nit:2107 */
13502 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
13503 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13504 if (UNTAG_Bool(REGB0
)) {
13506 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13507 if (UNTAG_Bool(REGB1
)) {
13508 REGB1
= TAG_Bool(0);
13511 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13515 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13516 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13518 stack_frame_head
= fra
.me
.prev
;
13521 static const char LOCATE_syntax___typing___AAsNotnullExpr___after_typing
[] = "typing::AAsNotnullExpr::(typing::ANode::after_typing)";
13522 void syntax___typing___AAsNotnullExpr___after_typing(val_t p0
, val_t p1
){
13523 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13526 static val_t once_value_2
; /* Once value */
13527 static val_t once_value_3
; /* Once value */
13528 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13529 fra
.me
.file
= LOCATE_syntax___typing
;
13530 fra
.me
.line
= 2112;
13531 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotnullExpr___after_typing
;
13532 fra
.me
.has_broke
= 0;
13533 fra
.me
.REG_size
= 5;
13534 fra
.me
.nitni_local_ref_head
= NULL
;
13535 fra
.me
.REG
[0] = NIT_NULL
;
13536 fra
.me
.REG
[1] = NIT_NULL
;
13537 fra
.me
.REG
[2] = NIT_NULL
;
13538 fra
.me
.REG
[3] = NIT_NULL
;
13539 fra
.me
.REG
[4] = NIT_NULL
;
13540 fra
.me
.REG
[0] = p0
;
13541 fra
.me
.REG
[1] = p1
;
13542 /* syntax/typing.nit:2114 */
13543 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13544 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13545 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13546 if (UNTAG_Bool(REGB0
)) {
13549 /* syntax/typing.nit:2115 */
13550 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13551 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13552 /* syntax/typing.nit:2116 */
13553 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
13554 if (UNTAG_Bool(REGB0
)) {
13555 /* syntax/typing.nit:2117 */
13556 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13557 if (!once_value_2
) {
13558 fra
.me
.REG
[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
13559 REGB0
= TAG_Int(43);
13560 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
13561 once_value_2
= fra
.me
.REG
[4];
13562 register_static_object(&once_value_2
);
13563 } else fra
.me
.REG
[4] = once_value_2
;
13564 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13565 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
13566 /* syntax/typing.nit:2118 */
13569 /* syntax/typing.nit:2119 */
13570 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13571 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13572 if (UNTAG_Bool(REGB0
)) {
13573 /* syntax/typing.nit:2120 */
13574 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13575 if (!once_value_3
) {
13576 fra
.me
.REG
[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
13577 REGB0
= TAG_Int(45);
13578 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
13579 once_value_3
= fra
.me
.REG
[4];
13580 register_static_object(&once_value_3
);
13581 } else fra
.me
.REG
[4] = once_value_3
;
13582 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13583 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
13586 /* syntax/typing.nit:2122 */
13587 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13588 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13589 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13590 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13591 /* syntax/typing.nit:2123 */
13592 REGB0
= TAG_Bool(1);
13593 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13595 stack_frame_head
= fra
.me
.prev
;
13598 static const char LOCATE_syntax___typing___AProxyExpr___after_typing
[] = "typing::AProxyExpr::(typing::ANode::after_typing)";
13599 void syntax___typing___AProxyExpr___after_typing(val_t p0
, val_t p1
){
13600 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
13603 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13604 fra
.me
.file
= LOCATE_syntax___typing
;
13605 fra
.me
.line
= 2128;
13606 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___after_typing
;
13607 fra
.me
.has_broke
= 0;
13608 fra
.me
.REG_size
= 2;
13609 fra
.me
.nitni_local_ref_head
= NULL
;
13610 fra
.me
.REG
[0] = NIT_NULL
;
13611 fra
.me
.REG
[1] = NIT_NULL
;
13612 fra
.me
.REG
[0] = p0
;
13613 fra
.me
.REG
[1] = p1
;
13614 /* syntax/typing.nit:2130 */
13615 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13616 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13617 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13618 if (UNTAG_Bool(REGB0
)) {
13621 /* syntax/typing.nit:2131 */
13622 REGB0
= TAG_Bool(1);
13623 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13624 /* syntax/typing.nit:2132 */
13625 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13626 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13627 if (UNTAG_Bool(REGB0
)) {
13630 /* syntax/typing.nit:2133 */
13631 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13632 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13633 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13634 /* syntax/typing.nit:2134 */
13635 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13636 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[1]);
13637 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13638 /* syntax/typing.nit:2135 */
13639 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13640 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[1]);
13641 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13643 stack_frame_head
= fra
.me
.prev
;
13646 static const char LOCATE_syntax___typing___AProxyExpr___is_self
[] = "typing::AProxyExpr::(typing::AExpr::is_self)";
13647 val_t
syntax___typing___AProxyExpr___is_self(val_t p0
){
13648 struct {struct stack_frame_t me
;} fra
;
13651 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13652 fra
.me
.file
= LOCATE_syntax___typing
;
13653 fra
.me
.line
= 2138;
13654 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___is_self
;
13655 fra
.me
.has_broke
= 0;
13656 fra
.me
.REG_size
= 1;
13657 fra
.me
.nitni_local_ref_head
= NULL
;
13658 fra
.me
.REG
[0] = NIT_NULL
;
13659 fra
.me
.REG
[0] = p0
;
13660 /* syntax/typing.nit:2138 */
13661 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13662 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13665 stack_frame_head
= fra
.me
.prev
;
13668 static const char LOCATE_syntax___typing___AProxyExpr___its_variable
[] = "typing::AProxyExpr::(typing::AExpr::its_variable)";
13669 val_t
syntax___typing___AProxyExpr___its_variable(val_t p0
){
13670 struct {struct stack_frame_t me
;} fra
;
13672 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13673 fra
.me
.file
= LOCATE_syntax___typing
;
13674 fra
.me
.line
= 2140;
13675 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___its_variable
;
13676 fra
.me
.has_broke
= 0;
13677 fra
.me
.REG_size
= 1;
13678 fra
.me
.nitni_local_ref_head
= NULL
;
13679 fra
.me
.REG
[0] = NIT_NULL
;
13680 fra
.me
.REG
[0] = p0
;
13681 /* syntax/typing.nit:2140 */
13682 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13683 fra
.me
.REG
[0] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13686 stack_frame_head
= fra
.me
.prev
;
13687 return fra
.me
.REG
[0];
13689 static const char LOCATE_syntax___typing___AOnceExpr___accept_typing
[] = "typing::AOnceExpr::(typing::ANode::accept_typing)";
13690 void syntax___typing___AOnceExpr___accept_typing(val_t p0
, val_t p1
){
13691 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13696 static val_t once_value_1
; /* Once value */
13697 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13698 fra
.me
.file
= LOCATE_syntax___typing
;
13699 fra
.me
.line
= 2144;
13700 fra
.me
.meth
= LOCATE_syntax___typing___AOnceExpr___accept_typing
;
13701 fra
.me
.has_broke
= 0;
13702 fra
.me
.REG_size
= 5;
13703 fra
.me
.nitni_local_ref_head
= NULL
;
13704 fra
.me
.REG
[0] = NIT_NULL
;
13705 fra
.me
.REG
[1] = NIT_NULL
;
13706 fra
.me
.REG
[2] = NIT_NULL
;
13707 fra
.me
.REG
[3] = NIT_NULL
;
13708 fra
.me
.REG
[4] = NIT_NULL
;
13709 fra
.me
.REG
[0] = p0
;
13710 fra
.me
.REG
[1] = p1
;
13711 /* syntax/typing.nit:2144 */
13712 fra
.me
.REG
[2] = fra
.me
.REG
[0];
13713 fra
.me
.REG
[3] = fra
.me
.REG
[1];
13714 /* syntax/typing.nit:2146 */
13715 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13716 REGB1
= TAG_Int(0);
13717 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
13718 if (UNTAG_Bool(REGB2
)) {
13720 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
13722 /* ../lib/standard/kernel.nit:244 */
13723 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
13724 /* syntax/typing.nit:2146 */
13725 if (UNTAG_Bool(REGB1
)) {
13726 /* syntax/typing.nit:2147 */
13727 if (!once_value_1
) {
13728 fra
.me
.REG
[4] = BOX_NativeString("Useless once in a once expression.");
13729 REGB1
= TAG_Int(34);
13730 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
13731 once_value_1
= fra
.me
.REG
[4];
13732 register_static_object(&once_value_1
);
13733 } else fra
.me
.REG
[4] = once_value_1
;
13734 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13735 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
13737 /* syntax/typing.nit:2149 */
13738 REGB1
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13739 REGB0
= TAG_Int(1);
13740 /* ../lib/standard/kernel.nit:245 */
13741 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
13742 /* syntax/typing.nit:2149 */
13743 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13744 /* syntax/typing.nit:2151 */
13745 CALL_SUPER_syntax___typing___AOnceExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
13746 /* syntax/typing.nit:2153 */
13747 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13748 REGB1
= TAG_Int(1);
13749 /* ../lib/standard/kernel.nit:247 */
13750 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
13751 /* syntax/typing.nit:2153 */
13752 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
13753 stack_frame_head
= fra
.me
.prev
;
13756 static const char LOCATE_syntax___typing___ADebugTypeExpr___after_typing
[] = "typing::ADebugTypeExpr::(typing::ANode::after_typing)";
13757 void syntax___typing___ADebugTypeExpr___after_typing(val_t p0
, val_t p1
){
13758 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
13762 static val_t once_value_2
; /* Once value */
13763 static val_t once_value_3
; /* Once value */
13764 static val_t once_value_4
; /* Once value */
13765 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13766 fra
.me
.file
= LOCATE_syntax___typing
;
13767 fra
.me
.line
= 2158;
13768 fra
.me
.meth
= LOCATE_syntax___typing___ADebugTypeExpr___after_typing
;
13769 fra
.me
.has_broke
= 0;
13770 fra
.me
.REG_size
= 6;
13771 fra
.me
.nitni_local_ref_head
= NULL
;
13772 fra
.me
.REG
[0] = NIT_NULL
;
13773 fra
.me
.REG
[1] = NIT_NULL
;
13774 fra
.me
.REG
[2] = NIT_NULL
;
13775 fra
.me
.REG
[3] = NIT_NULL
;
13776 fra
.me
.REG
[4] = NIT_NULL
;
13777 fra
.me
.REG
[5] = NIT_NULL
;
13778 fra
.me
.REG
[0] = p0
;
13779 fra
.me
.REG
[1] = p1
;
13780 /* syntax/typing.nit:2160 */
13781 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13782 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13783 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13784 if (UNTAG_Bool(REGB0
)) {
13787 /* syntax/typing.nit:2161 */
13788 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13789 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13790 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13791 if (UNTAG_Bool(REGB0
)) {
13794 /* syntax/typing.nit:2162 */
13795 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13796 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13797 /* syntax/typing.nit:2163 */
13798 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13799 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13800 /* syntax/typing.nit:2164 */
13801 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13802 if (UNTAG_Bool(REGB0
)) {
13804 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13807 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13808 if (UNTAG_Bool(REGB0
)) {
13809 /* syntax/typing.nit:2165 */
13810 REGB0
= TAG_Int(5);
13811 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13812 if (!once_value_2
) {
13813 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is a ");
13814 REGB0
= TAG_Int(25);
13815 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
13816 once_value_2
= fra
.me
.REG
[5];
13817 register_static_object(&once_value_2
);
13818 } else fra
.me
.REG
[5] = once_value_2
;
13819 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13821 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13822 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
13823 if (!once_value_3
) {
13824 fra
.me
.REG
[2] = BOX_NativeString(", expected ");
13825 REGB0
= TAG_Int(11);
13826 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
13827 once_value_3
= fra
.me
.REG
[2];
13828 register_static_object(&once_value_3
);
13829 } else fra
.me
.REG
[2] = once_value_3
;
13830 fra
.me
.REG
[2] = fra
.me
.REG
[2];
13831 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
13832 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13833 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
13834 if (!once_value_4
) {
13835 fra
.me
.REG
[3] = BOX_NativeString(".");
13836 REGB0
= TAG_Int(1);
13837 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13838 once_value_4
= fra
.me
.REG
[3];
13839 register_static_object(&once_value_4
);
13840 } else fra
.me
.REG
[3] = once_value_4
;
13841 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13842 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
13843 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13844 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13847 stack_frame_head
= fra
.me
.prev
;